This simulation is for Jonathon Nock's home-built Z80 computer. https://bitbucket.org/nockieboy/z80_minicomp/overview The simulation is written in JAVA and provides an optional GUI for debugging purposes. By default, no GUI is created. The option "gui" may be added to the JAVA command to enable the GUI, for example: java -jar VirtualZ80MiniComp.jar gui This simple implementation uses stdio for the system console. In order to faciliate accurate representation, most host systems will require changing the user's TTY settings to disable ECHO and to use unbuffered mode (so that each character is transmitted immediately, instead of all after ENTER is pressed). See the Linux shell script "run" for an example. In addition, Ctrl-C will terminate the JAVA program so in order to send a Ctrl-C to the Z80 computer you need to press Ctrl-A, which will be translated to Ctrl-C when sent to the Z80. Likewise, ENTER is translated to Carriage Return and BACKSPACE (ASCII DEL) is translated to Ctrl-H (BS). The file "CF" is my current CompactFlash card image I am using. This is for a 64M CF card - the maximum that current software can use. This image may be accessed outside the simulation using "cpmtools" (available from far too many locations...). The file "diskdefs" provides the format data needed by cpmtools to access each of the 8 partitions on the CF image. The formats are name "cfa" through "cfg" (for drives A: thru G:). The CF card currently contains: Boot tracks: CP/M 2.2 image (CBIOS64, BDOS, CCP) Drive A: some CP/M 2.2 utilities and other files, and Magic Wand EDIT.COM for xterm/vt100 terminal emulators. Also includes CPMLDR.COM, CCP.COM, and CPM3.SYS for starting CP/M 3. Drive B: contains CP/M 3 utilities and system generation files. In general, make drive B: the current drive after loading CP/M 3. Drive C: unused - setup for Update and Access timestamp (CP/M 3) Drive D: PL/I compile environment Drive E: PL/M setup (under ISIS) - not fully working Drive F: unused Drive G: unused Note: All BIOS source code is in Z80 assembly language and cannot be built using native CP/M tools. cpmtools example: $ cpmls -f cfc -F CF Directory For Drive A: User 0 Name Bytes Recs Attributes Prot Update Access ------------ ------ ------ ------------ ------ -------------- -------------- CPM3 SYS 24k 174 None 01/19/18 09:13 01/25/18 16:50 Total Bytes = 22k Total Records = 174 Files Found = 1 Total 1k Blocks = 24 Used/Max Dir Entries For Drive A: 130/ 512 $ (note, cpmtools doesn't know the true drive letter, so always says "A:") NOTE: cpmtools will not consider a drive as CP/M 3 format unless the diskdef contains the "os 3" clause.