Which communication protocol is used in AdLib sound card?Which C64 games support two buttons?Sound chips in...

Why don't key signatures indicate the tonic?

Can the "Friends" spell be used without making the target hostile?

Should I always close BufferedReader?

Why would space fleets be aligned?

What makes papers publishable in top-tier journals?

How can the probability of a fumble decrease linearly with more dice?

Can polar coordinate cause misalignment in TikZ?

How do I prevent a homebrew Grappling Hook feature from trivializing Tomb of Annihilation?

Early credit roll before the end of the film

TikZ graph edges not drawn nicely

Is a new boolean field better than null reference when a value can be meaningfully absent?

Bash script to truncate subject line of incoming email

How much mayhem could I cause as a fish?

What game did these black and yellow dice come from?

Updating Statistics: Estimated Number of Rows not equal to Actual for Index Scan. Why?

How to access internet and run apt-get through a middle server?

False written accusations not made public - is there law to cover this?

Best way to strengthen a wheel?

Does diversity provide anything that meritocracy does not?

Why does magnet wire need to be insulated?

Cat is tipping over bed-side lamps during the night

How do you catch Smeargle in Pokemon Go?

Why did the villain in the first Men in Black movie care about Earth's Cockroaches?

Why zero tolerance on nudity in space?



Which communication protocol is used in AdLib sound card?


Which C64 games support two buttons?Sound chips in 1977Which pointing devices were used by early laptop computers?Does an ISA card have a fixed memory address?CPU speedup breaking sound compatibilityWhy did the IBM PC need a sound card?Can't get the AY-3-8913 sound chip to work with my z80 (added schematic)Which machines, other than the PC-Engine, uses custom-waveform synthesis for sound?Is there a line printer sound simulator?IBM PC expansion card latency













2















By "AdLib sound card" I mean AdLib Music Synthesizer Card released in 1987.



Wikipedia says that AdLib uses frequency modulation synthesis to produce sound, but does it use MIDI communication protocol or some another way?




It's entirely possible that the FM synthesis uses MIDI under the hood to control the FM synthesis chip. The other option would be a specific driver control library which would be linked into the software.



-- From the question on the sound.stackexchange.com











share|improve this question























  • This type of device is (was?) well supported in Linux. So the driver details captured in that code-base would tell you pretty much everything.

    – jdv
    2 hours ago






  • 1





    Or, if you can find a copy of the "AdLib Music Synthesizer Card Programmer's Manual". My feelings are that MIDI was not used under the hood, as programming this thing was very much a low-level thing, where a handful of specific operators gave you access to oscillators, mixers, etc. (The control was such that you didn't have to use FM if you didn't want to -- there was an additive mode.)

    – jdv
    2 hours ago













  • @jdv Yes, I'm sure that MIDI wasn't used, because it's very easy to find YouTube videos entitled like "AdLib vs. MIDI". One: youtube.com/watch?v=He_mlHj7tOU, another: youtube.com/watch?v=v9snl7f5oms

    – john c. j.
    2 hours ago













  • Sound cards based on Yamaha's OPL2 / OPL3 FM synthesis chips had a predefined set of patch definitions corresponding to the 128 standard General Midi instruments. The MIDI driver software simply loaded the appropriate data into the chip as required. Computer games typically defined their own set of "non-standard" sounds, but still used MIDI to play the music. MIDI is a very compact data format and there would have been little value in trying to "invent a better wheel" to do the same task.

    – alephzero
    1 hour ago











  • @johnc.j. Both the options in the videos use MIDI. They are using the same MIDI file to control two different synthesizers. (Virtually every form of computer music still uses MIDI to control the synths, even if the synth is accessing hundreds of Gb of sampled audio to generate the actual sounds.)

    – alephzero
    1 hour ago
















2















By "AdLib sound card" I mean AdLib Music Synthesizer Card released in 1987.



Wikipedia says that AdLib uses frequency modulation synthesis to produce sound, but does it use MIDI communication protocol or some another way?




It's entirely possible that the FM synthesis uses MIDI under the hood to control the FM synthesis chip. The other option would be a specific driver control library which would be linked into the software.



-- From the question on the sound.stackexchange.com











share|improve this question























  • This type of device is (was?) well supported in Linux. So the driver details captured in that code-base would tell you pretty much everything.

    – jdv
    2 hours ago






  • 1





    Or, if you can find a copy of the "AdLib Music Synthesizer Card Programmer's Manual". My feelings are that MIDI was not used under the hood, as programming this thing was very much a low-level thing, where a handful of specific operators gave you access to oscillators, mixers, etc. (The control was such that you didn't have to use FM if you didn't want to -- there was an additive mode.)

    – jdv
    2 hours ago













  • @jdv Yes, I'm sure that MIDI wasn't used, because it's very easy to find YouTube videos entitled like "AdLib vs. MIDI". One: youtube.com/watch?v=He_mlHj7tOU, another: youtube.com/watch?v=v9snl7f5oms

    – john c. j.
    2 hours ago













  • Sound cards based on Yamaha's OPL2 / OPL3 FM synthesis chips had a predefined set of patch definitions corresponding to the 128 standard General Midi instruments. The MIDI driver software simply loaded the appropriate data into the chip as required. Computer games typically defined their own set of "non-standard" sounds, but still used MIDI to play the music. MIDI is a very compact data format and there would have been little value in trying to "invent a better wheel" to do the same task.

    – alephzero
    1 hour ago











  • @johnc.j. Both the options in the videos use MIDI. They are using the same MIDI file to control two different synthesizers. (Virtually every form of computer music still uses MIDI to control the synths, even if the synth is accessing hundreds of Gb of sampled audio to generate the actual sounds.)

    – alephzero
    1 hour ago














2












2








2








By "AdLib sound card" I mean AdLib Music Synthesizer Card released in 1987.



Wikipedia says that AdLib uses frequency modulation synthesis to produce sound, but does it use MIDI communication protocol or some another way?




It's entirely possible that the FM synthesis uses MIDI under the hood to control the FM synthesis chip. The other option would be a specific driver control library which would be linked into the software.



-- From the question on the sound.stackexchange.com











share|improve this question














By "AdLib sound card" I mean AdLib Music Synthesizer Card released in 1987.



Wikipedia says that AdLib uses frequency modulation synthesis to produce sound, but does it use MIDI communication protocol or some another way?




It's entirely possible that the FM synthesis uses MIDI under the hood to control the FM synthesis chip. The other option would be a specific driver control library which would be linked into the software.



-- From the question on the sound.stackexchange.com








ibm-pc gaming sound






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 2 hours ago









john c. j.john c. j.

1155




1155













  • This type of device is (was?) well supported in Linux. So the driver details captured in that code-base would tell you pretty much everything.

    – jdv
    2 hours ago






  • 1





    Or, if you can find a copy of the "AdLib Music Synthesizer Card Programmer's Manual". My feelings are that MIDI was not used under the hood, as programming this thing was very much a low-level thing, where a handful of specific operators gave you access to oscillators, mixers, etc. (The control was such that you didn't have to use FM if you didn't want to -- there was an additive mode.)

    – jdv
    2 hours ago













  • @jdv Yes, I'm sure that MIDI wasn't used, because it's very easy to find YouTube videos entitled like "AdLib vs. MIDI". One: youtube.com/watch?v=He_mlHj7tOU, another: youtube.com/watch?v=v9snl7f5oms

    – john c. j.
    2 hours ago













  • Sound cards based on Yamaha's OPL2 / OPL3 FM synthesis chips had a predefined set of patch definitions corresponding to the 128 standard General Midi instruments. The MIDI driver software simply loaded the appropriate data into the chip as required. Computer games typically defined their own set of "non-standard" sounds, but still used MIDI to play the music. MIDI is a very compact data format and there would have been little value in trying to "invent a better wheel" to do the same task.

    – alephzero
    1 hour ago











  • @johnc.j. Both the options in the videos use MIDI. They are using the same MIDI file to control two different synthesizers. (Virtually every form of computer music still uses MIDI to control the synths, even if the synth is accessing hundreds of Gb of sampled audio to generate the actual sounds.)

    – alephzero
    1 hour ago



















  • This type of device is (was?) well supported in Linux. So the driver details captured in that code-base would tell you pretty much everything.

    – jdv
    2 hours ago






  • 1





    Or, if you can find a copy of the "AdLib Music Synthesizer Card Programmer's Manual". My feelings are that MIDI was not used under the hood, as programming this thing was very much a low-level thing, where a handful of specific operators gave you access to oscillators, mixers, etc. (The control was such that you didn't have to use FM if you didn't want to -- there was an additive mode.)

    – jdv
    2 hours ago













  • @jdv Yes, I'm sure that MIDI wasn't used, because it's very easy to find YouTube videos entitled like "AdLib vs. MIDI". One: youtube.com/watch?v=He_mlHj7tOU, another: youtube.com/watch?v=v9snl7f5oms

    – john c. j.
    2 hours ago













  • Sound cards based on Yamaha's OPL2 / OPL3 FM synthesis chips had a predefined set of patch definitions corresponding to the 128 standard General Midi instruments. The MIDI driver software simply loaded the appropriate data into the chip as required. Computer games typically defined their own set of "non-standard" sounds, but still used MIDI to play the music. MIDI is a very compact data format and there would have been little value in trying to "invent a better wheel" to do the same task.

    – alephzero
    1 hour ago











  • @johnc.j. Both the options in the videos use MIDI. They are using the same MIDI file to control two different synthesizers. (Virtually every form of computer music still uses MIDI to control the synths, even if the synth is accessing hundreds of Gb of sampled audio to generate the actual sounds.)

    – alephzero
    1 hour ago

















This type of device is (was?) well supported in Linux. So the driver details captured in that code-base would tell you pretty much everything.

– jdv
2 hours ago





This type of device is (was?) well supported in Linux. So the driver details captured in that code-base would tell you pretty much everything.

– jdv
2 hours ago




1




1





Or, if you can find a copy of the "AdLib Music Synthesizer Card Programmer's Manual". My feelings are that MIDI was not used under the hood, as programming this thing was very much a low-level thing, where a handful of specific operators gave you access to oscillators, mixers, etc. (The control was such that you didn't have to use FM if you didn't want to -- there was an additive mode.)

– jdv
2 hours ago







Or, if you can find a copy of the "AdLib Music Synthesizer Card Programmer's Manual". My feelings are that MIDI was not used under the hood, as programming this thing was very much a low-level thing, where a handful of specific operators gave you access to oscillators, mixers, etc. (The control was such that you didn't have to use FM if you didn't want to -- there was an additive mode.)

– jdv
2 hours ago















@jdv Yes, I'm sure that MIDI wasn't used, because it's very easy to find YouTube videos entitled like "AdLib vs. MIDI". One: youtube.com/watch?v=He_mlHj7tOU, another: youtube.com/watch?v=v9snl7f5oms

– john c. j.
2 hours ago







@jdv Yes, I'm sure that MIDI wasn't used, because it's very easy to find YouTube videos entitled like "AdLib vs. MIDI". One: youtube.com/watch?v=He_mlHj7tOU, another: youtube.com/watch?v=v9snl7f5oms

– john c. j.
2 hours ago















Sound cards based on Yamaha's OPL2 / OPL3 FM synthesis chips had a predefined set of patch definitions corresponding to the 128 standard General Midi instruments. The MIDI driver software simply loaded the appropriate data into the chip as required. Computer games typically defined their own set of "non-standard" sounds, but still used MIDI to play the music. MIDI is a very compact data format and there would have been little value in trying to "invent a better wheel" to do the same task.

– alephzero
1 hour ago





Sound cards based on Yamaha's OPL2 / OPL3 FM synthesis chips had a predefined set of patch definitions corresponding to the 128 standard General Midi instruments. The MIDI driver software simply loaded the appropriate data into the chip as required. Computer games typically defined their own set of "non-standard" sounds, but still used MIDI to play the music. MIDI is a very compact data format and there would have been little value in trying to "invent a better wheel" to do the same task.

– alephzero
1 hour ago













@johnc.j. Both the options in the videos use MIDI. They are using the same MIDI file to control two different synthesizers. (Virtually every form of computer music still uses MIDI to control the synths, even if the synth is accessing hundreds of Gb of sampled audio to generate the actual sounds.)

– alephzero
1 hour ago





@johnc.j. Both the options in the videos use MIDI. They are using the same MIDI file to control two different synthesizers. (Virtually every form of computer music still uses MIDI to control the synths, even if the synth is accessing hundreds of Gb of sampled audio to generate the actual sounds.)

– alephzero
1 hour ago










1 Answer
1






active

oldest

votes


















4














The AdLib simply provides raw programmatic access to its OPL2:




The sound card is programmed by sending data to its internal registers via its two I/O ports: ...



The sound card possesses an array of two hundred forty-four registers; to write to a particular register, send the register number (01-F5) to the address port, and the desired value to the data port.



After writing to the register port, you must wait twelve cycles before sending the data; after writing the data, eighty-four cycles must elapse before any other sound card operation may be performed.




So, no MIDI, no other high-level format. The card produces nine channels of sound, each of which is the product of two sine-derived functions; you can instead configure it as six of those channels plus five percussion channels.



It supports automatic application of ADSR but otherwise it is a simple modal device. Set the current instrument set, their frequencies and volume envelopes, then they'll play continuously until you tell the card otherwise.



So, unlike MIDI or other formats like it, there's no inherent sequencing or timing of notes — the card has no autonomy in proceeding through music. It just makes the noises you've currently assigned to it.



(and as to implementation of that expensive-sounding audio generation, see this reverse engineering; summary: it's all log tables)






share|improve this answer


























  • This is correct so far as it goes, but it's only half the story. To produce some "interesting" sounds you need to change the values on the OPL registers under real time control. MIDI has always been used for that purpose, since it is a very compact representation of "music notation". The OPL chip is the "musical instrument," and MIDI is the "performer" on the instrument.

    – alephzero
    1 hour ago











  • @alephzero the question is "Which communication protocol is used in AdLib sound card?"; if you chose to use MIDI, that decision would live entirely in your code over on the CPU and the communication protocol you'd use with the AdLib sound card would still just be setting registers as and when you feel like it. So this is half the story as to how you'd write an AdLib music player, but the entire story as to the functioning of the AdLib card.

    – Tommy
    33 mins ago











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "648"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f9265%2fwhich-communication-protocol-is-used-in-adlib-sound-card%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









4














The AdLib simply provides raw programmatic access to its OPL2:




The sound card is programmed by sending data to its internal registers via its two I/O ports: ...



The sound card possesses an array of two hundred forty-four registers; to write to a particular register, send the register number (01-F5) to the address port, and the desired value to the data port.



After writing to the register port, you must wait twelve cycles before sending the data; after writing the data, eighty-four cycles must elapse before any other sound card operation may be performed.




So, no MIDI, no other high-level format. The card produces nine channels of sound, each of which is the product of two sine-derived functions; you can instead configure it as six of those channels plus five percussion channels.



It supports automatic application of ADSR but otherwise it is a simple modal device. Set the current instrument set, their frequencies and volume envelopes, then they'll play continuously until you tell the card otherwise.



So, unlike MIDI or other formats like it, there's no inherent sequencing or timing of notes — the card has no autonomy in proceeding through music. It just makes the noises you've currently assigned to it.



(and as to implementation of that expensive-sounding audio generation, see this reverse engineering; summary: it's all log tables)






share|improve this answer


























  • This is correct so far as it goes, but it's only half the story. To produce some "interesting" sounds you need to change the values on the OPL registers under real time control. MIDI has always been used for that purpose, since it is a very compact representation of "music notation". The OPL chip is the "musical instrument," and MIDI is the "performer" on the instrument.

    – alephzero
    1 hour ago











  • @alephzero the question is "Which communication protocol is used in AdLib sound card?"; if you chose to use MIDI, that decision would live entirely in your code over on the CPU and the communication protocol you'd use with the AdLib sound card would still just be setting registers as and when you feel like it. So this is half the story as to how you'd write an AdLib music player, but the entire story as to the functioning of the AdLib card.

    – Tommy
    33 mins ago
















4














The AdLib simply provides raw programmatic access to its OPL2:




The sound card is programmed by sending data to its internal registers via its two I/O ports: ...



The sound card possesses an array of two hundred forty-four registers; to write to a particular register, send the register number (01-F5) to the address port, and the desired value to the data port.



After writing to the register port, you must wait twelve cycles before sending the data; after writing the data, eighty-four cycles must elapse before any other sound card operation may be performed.




So, no MIDI, no other high-level format. The card produces nine channels of sound, each of which is the product of two sine-derived functions; you can instead configure it as six of those channels plus five percussion channels.



It supports automatic application of ADSR but otherwise it is a simple modal device. Set the current instrument set, their frequencies and volume envelopes, then they'll play continuously until you tell the card otherwise.



So, unlike MIDI or other formats like it, there's no inherent sequencing or timing of notes — the card has no autonomy in proceeding through music. It just makes the noises you've currently assigned to it.



(and as to implementation of that expensive-sounding audio generation, see this reverse engineering; summary: it's all log tables)






share|improve this answer


























  • This is correct so far as it goes, but it's only half the story. To produce some "interesting" sounds you need to change the values on the OPL registers under real time control. MIDI has always been used for that purpose, since it is a very compact representation of "music notation". The OPL chip is the "musical instrument," and MIDI is the "performer" on the instrument.

    – alephzero
    1 hour ago











  • @alephzero the question is "Which communication protocol is used in AdLib sound card?"; if you chose to use MIDI, that decision would live entirely in your code over on the CPU and the communication protocol you'd use with the AdLib sound card would still just be setting registers as and when you feel like it. So this is half the story as to how you'd write an AdLib music player, but the entire story as to the functioning of the AdLib card.

    – Tommy
    33 mins ago














4












4








4







The AdLib simply provides raw programmatic access to its OPL2:




The sound card is programmed by sending data to its internal registers via its two I/O ports: ...



The sound card possesses an array of two hundred forty-four registers; to write to a particular register, send the register number (01-F5) to the address port, and the desired value to the data port.



After writing to the register port, you must wait twelve cycles before sending the data; after writing the data, eighty-four cycles must elapse before any other sound card operation may be performed.




So, no MIDI, no other high-level format. The card produces nine channels of sound, each of which is the product of two sine-derived functions; you can instead configure it as six of those channels plus five percussion channels.



It supports automatic application of ADSR but otherwise it is a simple modal device. Set the current instrument set, their frequencies and volume envelopes, then they'll play continuously until you tell the card otherwise.



So, unlike MIDI or other formats like it, there's no inherent sequencing or timing of notes — the card has no autonomy in proceeding through music. It just makes the noises you've currently assigned to it.



(and as to implementation of that expensive-sounding audio generation, see this reverse engineering; summary: it's all log tables)






share|improve this answer















The AdLib simply provides raw programmatic access to its OPL2:




The sound card is programmed by sending data to its internal registers via its two I/O ports: ...



The sound card possesses an array of two hundred forty-four registers; to write to a particular register, send the register number (01-F5) to the address port, and the desired value to the data port.



After writing to the register port, you must wait twelve cycles before sending the data; after writing the data, eighty-four cycles must elapse before any other sound card operation may be performed.




So, no MIDI, no other high-level format. The card produces nine channels of sound, each of which is the product of two sine-derived functions; you can instead configure it as six of those channels plus five percussion channels.



It supports automatic application of ADSR but otherwise it is a simple modal device. Set the current instrument set, their frequencies and volume envelopes, then they'll play continuously until you tell the card otherwise.



So, unlike MIDI or other formats like it, there's no inherent sequencing or timing of notes — the card has no autonomy in proceeding through music. It just makes the noises you've currently assigned to it.



(and as to implementation of that expensive-sounding audio generation, see this reverse engineering; summary: it's all log tables)







share|improve this answer














share|improve this answer



share|improve this answer








edited 33 mins ago

























answered 2 hours ago









TommyTommy

14.8k14073




14.8k14073













  • This is correct so far as it goes, but it's only half the story. To produce some "interesting" sounds you need to change the values on the OPL registers under real time control. MIDI has always been used for that purpose, since it is a very compact representation of "music notation". The OPL chip is the "musical instrument," and MIDI is the "performer" on the instrument.

    – alephzero
    1 hour ago











  • @alephzero the question is "Which communication protocol is used in AdLib sound card?"; if you chose to use MIDI, that decision would live entirely in your code over on the CPU and the communication protocol you'd use with the AdLib sound card would still just be setting registers as and when you feel like it. So this is half the story as to how you'd write an AdLib music player, but the entire story as to the functioning of the AdLib card.

    – Tommy
    33 mins ago



















  • This is correct so far as it goes, but it's only half the story. To produce some "interesting" sounds you need to change the values on the OPL registers under real time control. MIDI has always been used for that purpose, since it is a very compact representation of "music notation". The OPL chip is the "musical instrument," and MIDI is the "performer" on the instrument.

    – alephzero
    1 hour ago











  • @alephzero the question is "Which communication protocol is used in AdLib sound card?"; if you chose to use MIDI, that decision would live entirely in your code over on the CPU and the communication protocol you'd use with the AdLib sound card would still just be setting registers as and when you feel like it. So this is half the story as to how you'd write an AdLib music player, but the entire story as to the functioning of the AdLib card.

    – Tommy
    33 mins ago

















This is correct so far as it goes, but it's only half the story. To produce some "interesting" sounds you need to change the values on the OPL registers under real time control. MIDI has always been used for that purpose, since it is a very compact representation of "music notation". The OPL chip is the "musical instrument," and MIDI is the "performer" on the instrument.

– alephzero
1 hour ago





This is correct so far as it goes, but it's only half the story. To produce some "interesting" sounds you need to change the values on the OPL registers under real time control. MIDI has always been used for that purpose, since it is a very compact representation of "music notation". The OPL chip is the "musical instrument," and MIDI is the "performer" on the instrument.

– alephzero
1 hour ago













@alephzero the question is "Which communication protocol is used in AdLib sound card?"; if you chose to use MIDI, that decision would live entirely in your code over on the CPU and the communication protocol you'd use with the AdLib sound card would still just be setting registers as and when you feel like it. So this is half the story as to how you'd write an AdLib music player, but the entire story as to the functioning of the AdLib card.

– Tommy
33 mins ago





@alephzero the question is "Which communication protocol is used in AdLib sound card?"; if you chose to use MIDI, that decision would live entirely in your code over on the CPU and the communication protocol you'd use with the AdLib sound card would still just be setting registers as and when you feel like it. So this is half the story as to how you'd write an AdLib music player, but the entire story as to the functioning of the AdLib card.

– Tommy
33 mins ago


















draft saved

draft discarded




















































Thanks for contributing an answer to Retrocomputing Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f9265%2fwhich-communication-protocol-is-used-in-adlib-sound-card%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

迭戈·戈丁...

A phrase ”follow into" in a context The 2019 Stack Overflow Developer Survey Results Are...

1960s short story making fun of James Bond-style spy fiction The 2019 Stack Overflow Developer...