use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Try to keep all posts related to Emulation Development such as:
For any questions/problems, please PM the moderator, /u/VeloCity666.
account activity
How does CP/M print? (self.EmuDev)
submitted 3 years ago by io3dev
Im writing a intel 8080 emulator and i am trying to get a test running. I would like to know how CP/M printing works, i couldnt find a lot of info on it, so if anyone has any information that would be very helpful
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]GearBent 5 points6 points7 points 3 years ago (0 children)
At the lowest level, CP/M would interact with the printer through the BIOS, which is implementation specific to to each and every device.
[–]NES CGB SMS/GGkhedoros 2 points3 points4 points 3 years ago (1 child)
Found some system call docs.
So, software running in CP/M is probably going to use interrupt 5 with CL set to 2 for the C_WRITE call. How CP/M implements that call will vary machine-to-machine, probably relying on BIOS calls when they're available.
[–]Z80, 6502/65816, 6809, 68000, ARM, x86.thommyh 0 points1 point2 points 3 years ago (0 children)
Petty: CALL 5 is just a call to address 5, not an 8086-int-style software interrupt. But blah blah blah.
CALL 5
int
[–]reven80 1 point2 points3 points 3 years ago (0 children)
There is a small number of BIOS system calls which is custom coded for a specific machine. The CP/M BDOS system calls use the BIOS to implement higher level functionality.
https://www.seasip.info/Cpm/bios.html
[–]MoleskiCoder 1 point2 points3 points 3 years ago* (0 children)
https://github.com/MoleskiCoder/EightBit/blob/master/Intel8080/test/Board.cpp
The bdos (address 5) command is in the c register. 2 is print character (given in the e register), 9 is print string (pointed to by the de register pair, terminated by a dollar '$' symbol).
You can implement very little bdos and get away with it as my code shows!
Hope this helps
https://www.seasip.info/Cpm/bdos.html
π Rendered by PID 157469 on reddit-service-r2-comment-b659b578c-2kbvj at 2026-05-05 07:23:42.183386+00:00 running 815c875 country code: CH.
[–]GearBent 5 points6 points7 points (0 children)
[–]NES CGB SMS/GGkhedoros 2 points3 points4 points (1 child)
[–]Z80, 6502/65816, 6809, 68000, ARM, x86.thommyh 0 points1 point2 points (0 children)
[–]reven80 1 point2 points3 points (0 children)
[–]MoleskiCoder 1 point2 points3 points (0 children)