Check the bottom of the page, and find out that it is not at all that strange to develop z80 apps with this simulator and some of the widely available devtools.
Dos with an auto start file to install the virtual harddisk:
SCARFMAN: whoever thought packman was first?
A (for my norms in those days) basic oneliner:
One of the motivations: a macro assembler development (no 2K limits, very to the point operation, C compiler exists, too):
The system can simply be started by double clicking the trs.exe program, and at that point only needs the proper discs to be installed. The only thing realy needed is to install the system drive, which is called ld1-531.dsk, by pressing F-8, then 0 and typing this name followed by two returns. In fact, I've included the cnf file, so it should start with Ldos right away, fill in the date as mm-dd-yy, pass the clock by pressing enter, and it will autoboot with reading the time from dos and installing the harddisk with my files on it.
To develop in Z80 assembly language, type 'edas' to load the assembler, load an example by typing l try2/asc:4. You can list the contents of the currently loaded assembly code by the p command. Use p# to print the first line, now use p to go over the source page wise. Assemble the code into memory by using a -im -we (including waiting for errors). Now start the program by typing a b followed by the entry address at the bottom of the assembler output.
The program should present the character set somewhere on top of the middle of the screen.
Assemble into a file by using a try2/cmd:4 to create a executable program. You may want to go back to LDOS by typing a b to try to run it by simply typing its name try2 if no other file like it exists somewhere on the file system.
Note that this has created a complete executable, and that it is perfectly possible to 'ORG' it at any address, including zero, and that a simple assembler directive can also produce a core image, i.e. strip off the LDOS executable file info to produce code that can immedeately be loaded in a RAM, ((E)EP)ROM or simulated core memory.
;inspect.asm ORG 39000 ENTRY LD HL,40003 LD A,(HL) AND 0F0H SRA A SRA A SRA A SRA A CALL TOASC LD (15998),A LD A,(HL) AND 0FH CALL TOASC LD (15999),A RET ;END OF PROG TOASC CP 10 JP M,TO9 ADD A,7 TO9 ADD A,48 RET END ENTRYTable is an example of having a fixed address table included in the program, with the purpose of letting it continue to live as semi shared memory, it remains resident as long as not overwritten when the program exists. Incidently, it is also not cleared when the program is loaded again, so LDOS may be used to call table to increment all values in the allotted table with one without destroying its contents. The code is also resident, and can be re-entered by simply calling 40000 (decimal).
;table.asm ORG 40000 ENTRY JP BEGIN TABLE DEFS 1024 BEGIN LD HL,TABLE LD DE,1024 LOOP INC (HL) INC HL DEC DE XOR A XOR D XOR E JP NZ,LOOP LD A,(TABLE) LD (15997),A RET END ENTRYWhen the two programs are available for LDOS, call table first, followed by inspect to see the values increment for each new invokation of table.