CP/M BIOS Development Notes for Altair 8800 with IDE/CF Interface


These are notes I made during development of a version of CP/M 3.0 BIOS for the Altair 8800 that supports Altair async boards and floppy disk controller and also an IDE/CF card. The goal was to be able to support two 8Mb hard drives using an IDE interface. The hard drives can be either traditional magnetic disks or solid state, like a compact flash CF card.

My development system has an 8080 CPU, Douglas FDC+, Eberhard 88-2SIOJP and Monahan IDE/CF interface card.

Most of this document is code flow, single-stepped using SID. I've made notes as I go.

To make CPMLDR.com:

Use Douglas BIOS.asm, SCBLDR.asm and Digital Research CPMLDR.rel
RMAC BIOS
RMAC SCBLDR
LINK CPMLDR[L100]=CPMLDR,SCBLDR,BIOS

That creates a CPMLDR.COM file for FDC+ 330K floppies.

Debugging under CP/M:

SID starting address:   AB00 under CP/M 3.0, CC00 under CP/M 2.2
Found by running SID, and then using the L5 command, which shows the following instruction at location 0005:

0005 JMP AB00 (under CP/M 3.0) or
0005 JMP CC00 (under CP/M 2.2)


Build CPM3.SYS like this:
Using Parham BIOSKRN3.asm, SCB3.asm. BOOT3.asm, CHARIO3.asm, MOVE3.asm, DRVTBL3.asm, FDC3.asm and IDE3.asm 
RMAC BIOSKRN3
RMAC SCB3
RMAC BOOT3
RMAC CHARIO3
RMAC MOVE3
RMAC DRVTBL3
RMAC FDC3
RMAC IDE3
LINK BIOS3[q,os]=BIOSKRN3,SCB3,BOOT3,CHARIO3,MOVE3,DRVTBL3,FDC3,IDE3

Creates BIOS3.SPR and BIOS3.SYM

(Actually, the "q" switch is probably unnecessary since the symbol table generated is useless)

GENCPM:  A9 or CA for debugging, FE for production

When GENCPM was set for topmem=A9, the floppy-only CPM3.SYS reported this:

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#L8E00
  8E00  JMP  A8D1       (boot)
  8E03  JMP  8E6C	(wboot)
  8E06  JMP  8F72	(const)
  8E09  JMP  8F8D	(conin)
  8E0C  JMP  8ED5	(conout)
  8E0F  JMP  8EE1	(list)
  8E12  JMP  8EDB	(auxout)
  8E15  JMP  8F93	(auxin)
  8E18  JMP  A93F	(home)
  8E1B  JMP  A910	(seldsk)
  8E1E  JMP  A942	(settrk)
  8E21  JMP  A948	(setsec)
  8E24  JMP  A94E	(setdma)
  8E27  JMP  A965	(read)
  8E2A  JMP  A97B	(write)
  8E2D  JMP  8F0D	(listst)
  8E30  JMP  A95A	(sectrn)
  8E33  JMP  8F01	(conost)
  8E36  JMP  8F78	(auxist)
  8E39  JMP  8F07	(auxost)
  8E3C  JMP  8ECD	(devtbl)
  8E3F  JMP  9104	(devini)
  8E42  JMP  8ED1	(drvtbl)
  8E45  JMP  A99C	(multio)
  8E48  JMP  A9A0	(flush)
  8E4B  JMP  92BF	(move)
  8E4E  JMP  9094	(time)
  8E51  JMP  9020	(selmem)
  8E54  JMP  A956	(setbnk)
  8E57  JMP  92BE	(xmove)
  8E5A  JMP  0000	(userf)
  8E5D  JMP  0000	(reserv1)
  8E60  JMP  0000	(reserv2)



BIOS  8E00  1C00; login message starts at 90ED.

==> Created BIOS3.sym using PIP BIOS3.sym=BIOSKRN3.sym,SCB3.sym,BOOT3.sym,CHARIO3.sym,MOVE3.sym,DRVTBL3.sym,FLP3.sym,IDE3.sym

==> Don't do this ^ but instead use the BIOS3.sym file created by the linker.

==> Actually, neither symbol file has any correlation with what's actually loaded into memory.

GENCPM relocates everything so the symbols aren't useful.


SID CPMLDR.COM BIOS3.SYM
CP/M 3 SID - Version 3.0
SYMBOLS
NEXT MSZE  PC  END
2500 2500 0100 B62D
#I$B
#G
CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#L8E00
  8E00  JMP  A8D1
...
#PA8D1
#G8E00

01 PASS A8D1
 -Z-EI A=42 B=0001 D=6F00 H=005E S=027F P=A8D1 LXI  SP,8ECD
*A8D4
#TW#100
 -Z-EI A=42 B=0001 D=6F00 H=005E S=8ECD P=A8D4 MVI  C,0F
 -Z-EI A=42 B=000F D=6F00 H=005E S=8ECD P=A8D6 PUSH B
 -Z-EI A=42 B=000F D=6F00 H=005E S=8ECB P=A8D7 CALL 9104
 ---EI A=1E B=0F0F D=9127 H=9291 S=8ECB P=A8DA POP  B
 ---EI A=1E B=000F D=9127 H=9291 S=8ECD P=A8DB DCR  C
 ----I A=1E B=000E D=9127 H=9291 S=8ECD P=A8DC JP   A8D6
 ----I A=1E B=000E D=9127 H=9291 S=8ECD P=A8D6 PUSH B
 ----I A=1E B=000E D=9127 H=9291 S=8ECB P=A8D7 CALL 9104
 ----I A=1C B=0E0E D=9125 H=9291 S=8ECB P=A8DA POP  B
 ----I A=1C B=000E D=9125 H=9291 S=8ECD P=A8DB DCR  C
 ----I A=1C B=000D D=9125 H=9291 S=8ECD P=A8DC JP   A8D6
 ----I A=1C B=000D D=9125 H=9291 S=8ECD P=A8D6 PUSH B
 ----I A=1C B=000D D=9125 H=9291 S=8ECB P=A8D7 CALL 9104
 ----I A=1A B=0D0D D=9123 H=9291 S=8ECB P=A8DA POP  B
 ----I A=1A B=000D D=9123 H=9291 S=8ECD P=A8DB DCR  C
 ---EI A=1A B=000C D=9123 H=9291 S=8ECD P=A8DC JP   A8D6
 ---EI A=1A B=000C D=9123 H=9291 S=8ECD P=A8D6 PUSH B
 ---EI A=1A B=000C D=9123 H=9291 S=8ECB P=A8D7 CALL 9104
 ---EI A=18 B=0C0C D=9121 H=9291 S=8ECB P=A8DA POP  B
 ---EI A=18 B=000C D=9121 H=9291 S=8ECD P=A8DB DCR  C
 ----I A=18 B=000B D=9121 H=9291 S=8ECD P=A8DC JP   A8D6
 ----I A=18 B=000B D=9121 H=9291 S=8ECD P=A8D6 PUSH B
 ----I A=18 B=000B D=9121 H=9291 S=8ECB P=A8D7 CALL 9104
 ----I A=16 B=0B0B D=911F H=9291 S=8ECB P=A8DA POP  B
 ----I A=16 B=000B D=911F H=9291 S=8ECD P=A8DB DCR  C
 ---EI A=16 B=000A D=911F H=9291 S=8ECD P=A8DC JP   A8D6
 ---EI A=16 B=000A D=911F H=9291 S=8ECD P=A8D6 PUSH B
 ---EI A=16 B=000A D=911F H=9291 S=8ECB P=A8D7 CALL 9104
 ---EI A=14 B=0A0A D=911D H=9291 S=8ECB P=A8DA POP  B
 ---EI A=14 B=000A D=911D H=9291 S=8ECD P=A8DB DCR  C
 ---EI A=14 B=0009 D=911D H=9291 S=8ECD P=A8DC JP   A8D6
 ---EI A=14 B=0009 D=911D H=9291 S=8ECD P=A8D6 PUSH B
 ---EI A=14 B=0009 D=911D H=9291 S=8ECB P=A8D7 CALL 9104
 ---EI A=12 B=0909 D=911B H=9291 S=8ECB P=A8DA POP  B
 ---EI A=12 B=0009 D=911B H=9291 S=8ECD P=A8DB DCR  C
 ----I A=12 B=0008 D=911B H=9291 S=8ECD P=A8DC JP   A8D6
 ----I A=12 B=0008 D=911B H=9291 S=8ECD P=A8D6 PUSH B
 ----I A=12 B=0008 D=911B H=9291 S=8ECB P=A8D7 CALL 9104
 ----I A=10 B=0808 D=9119 H=9291 S=8ECB P=A8DA POP  B
 ----I A=10 B=0008 D=9119 H=9291 S=8ECD P=A8DB DCR  C
 ----I A=10 B=0007 D=9119 H=9291 S=8ECD P=A8DC JP   A8D6
 ----I A=10 B=0007 D=9119 H=9291 S=8ECD P=A8D6 PUSH B
 ----I A=10 B=0007 D=9119 H=9291 S=8ECB P=A8D7 CALL 9104
 ----- A=0E B=0707 D=9117 H=9291 S=8ECB P=A8DA POP  B
 ----- A=0E B=0007 D=9117 H=9291 S=8ECD P=A8DB DCR  C
 ---EI A=0E B=0006 D=9117 H=9291 S=8ECD P=A8DC JP   A8D6
 ---EI A=0E B=0006 D=9117 H=9291 S=8ECD P=A8D6 PUSH B
 ---EI A=0E B=0006 D=9117 H=9291 S=8ECB P=A8D7 CALL 9104
 ---E- A=0C B=0606 D=9115 H=9291 S=8ECB P=A8DA POP  B
 ---E- A=0C B=0006 D=9115 H=9291 S=8ECD P=A8DB DCR  C
 ---EI A=0C B=0005 D=9115 H=9291 S=8ECD P=A8DC JP   A8D6
 ---EI A=0C B=0005 D=9115 H=9291 S=8ECD P=A8D6 PUSH B
 ---EI A=0C B=0005 D=9115 H=9291 S=8ECB P=A8D7 CALL 9104
 ---E- A=0A B=0505 D=9113 H=9291 S=8ECB P=A8DA POP  B
 ---E- A=0A B=0005 D=9113 H=9291 S=8ECD P=A8DB DCR  C
 ----I A=0A B=0004 D=9113 H=9291 S=8ECD P=A8DC JP   A8D6
 ----I A=0A B=0004 D=9113 H=9291 S=8ECD P=A8D6 PUSH B
 ----I A=0A B=0004 D=9113 H=9291 S=8ECB P=A8D7 CALL 9104
 ----- A=08 B=0404 D=9111 H=9291 S=8ECB P=A8DA POP  B
 ----- A=08 B=0004 D=9111 H=9291 S=8ECD P=A8DB DCR  C
 ---EI A=08 B=0003 D=9111 H=9291 S=8ECD P=A8DC JP   A8D6
 ---EI A=08 B=0003 D=9111 H=9291 S=8ECD P=A8D6 PUSH B
 ---EI A=08 B=0003 D=9111 H=9291 S=8ECB P=A8D7 CALL 9104
 ---E- A=06 B=0303 D=910F H=9291 S=8ECB P=A8DA POP  B
 ---E- A=06 B=0003 D=910F H=9291 S=8ECD P=A8DB DCR  C
 ----I A=06 B=0002 D=910F H=9291 S=8ECD P=A8DC JP   A8D6
 ----I A=06 B=0002 D=910F H=9291 S=8ECD P=A8D6 PUSH B
 ----I A=06 B=0002 D=910F H=9291 S=8ECB P=A8D7 CALL 9104
 ----- A=04 B=0202 D=910D H=9291 S=8ECB P=A8DA POP  B
 ----- A=04 B=0002 D=910D H=9291 S=8ECD P=A8DB DCR  C
 ----I A=04 B=0001 D=910D H=9291 S=8ECD P=A8DC JP   A8D6
 ----I A=04 B=0001 D=910D H=9291 S=8ECD P=A8D6 PUSH B
 ----I A=04 B=0001 D=910D H=9291 S=8ECB P=A8D7 CALL 9104
 ----- A=FF B=0101 D=910B H=923E S=8ECB P=A8DA POP  B
 ----- A=FF B=0001 D=910B H=923E S=8ECD P=A8DB DCR  C
 -Z-EI A=FF B=0000 D=910B H=923E S=8ECD P=A8DC JP   A8D6
 -Z-EI A=FF B=0000 D=910B H=923E S=8ECD P=A8D6 PUSH B
 -Z-EI A=FF B=0000 D=910B H=923E S=8ECB P=A8D7 CALL 9104
 -Z-E- A=00 B=0000 D=9109 H=91C3 S=8ECB P=A8DA POP  B
 -Z-E- A=00 B=0000 D=9109 H=91C3 S=8ECD P=A8DB DCR  C
 --ME- A=00 B=00FF D=9109 H=91C3 S=8ECD P=A8DC JP   A8D6
 --ME- A=00 B=00FF D=9109 H=91C3 S=8ECD P=A8DF CALL 9037 (init in boot3)


SID CPMLDR.COM
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 B62D
#I$B
#G
CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#L8E00
  8E00  JMP  A8D1
...
#P9037
#G8E00

01 PASS 9037
 --ME- A=00 B=00FF D=9109 H=91C3 S=8ECB P=9037 LXI  H,8000
*903A
#TW#100
 --ME- A=00 B=00FF D=9109 H=8000 S=8ECB P=903A SHLD 8DBE
 --ME- A=00 B=00FF D=9109 H=8000 S=8ECB P=903D SHLD 8DC0
 --ME- A=00 B=00FF D=9109 H=8000 S=8ECB P=9040 LXI  H,4000
 --ME- A=00 B=00FF D=9109 H=4000 S=8ECB P=9043 SHLD 8DC6
 --ME- A=00 B=00FF D=9109 H=4000 S=8ECB P=9046 LXI  H,2000
 --ME- A=00 B=00FF D=9109 H=2000 S=8ECB P=9049 SHLD 8DC2
 --ME- A=00 B=00FF D=9109 H=2000 S=8ECB P=904C SHLD 8DC4
 --ME- A=00 B=00FF D=9109 H=2000 S=8ECB P=904F LXI  H,90ED	(sign-on message)
 --ME- A=00 B=00FF D=9109 H=90ED S=8ECB P=9052 JMP  8FB2	(jmp ?pmsg in bioskrn3)
 --ME- A=00 B=00FF D=9109 H=90ED S=8ECB P=8FB2 PUSH B
 --ME- A=00 B=00FF D=9109 H=90ED S=8EC9 P=8FB3 PUSH D
 --ME- A=00 B=00FF D=9109 H=90ED S=8EC7 P=8FB4 MOV  A,M
 --ME- A=0D B=00FF D=9109 H=90ED S=8EC7 P=8FB5 ORA  A
 ----- A=0D B=00FF D=9109 H=90ED S=8EC7 P=8FB6 JZ   8FC3	(pmsg$exit)
 ----- A=0D B=00FF D=9109 H=90ED S=8EC7 P=8FB9 MOV  C,A
 ----- A=0D B=000D D=9109 H=90ED S=8EC7 P=8FBA PUSH H
 ----- A=0D B=000D D=9109 H=90ED S=8EC5 P=8FBB CALL 8E0C	(call ?conout)


SID CPMLDR.COM
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 B62D
#I$B
#G
CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#L8E00
  8E00  JMP  A8D1
...
#P8E0C
#G8E00

01 PASS 8E0C
 ----- A=0D B=000D D=9109 H=90ED S=8EC3 P=8E0C JMP  8ED5	(jmp conout in bioskrn3)
*8ED5
#TW#100
 ----- A=0D B=000D D=9109 H=90ED S=8EC3 P=8ED5 LHLD 8DC0	(@covec)
 ----- A=0D B=000D D=9109 H=8000 S=8EC3 P=8ED8 JMP  8EE4	(jmp out$scan)
 ----- A=0D B=000D D=9109 H=8000 S=8EC3 P=8EE4 MVI  B,00
 ----- A=0D B=000D D=9109 H=8000 S=8EC3 P=8EE6 DAD  H
 C---- A=0D B=000D D=9109 H=0000 S=8EC3 P=8EE7 JNC  8EFA	(not$out$device)
 C---- A=0D B=000D D=9109 H=0000 S=8EC3 P=8EEA PUSH H
 C---- A=0D B=000D D=9109 H=0000 S=8EC1 P=8EEB PUSH B
 C---- A=0D B=000D D=9109 H=0000 S=8EBF P=8EEC CALL 8F27	(not$out$ready: call coster, ora a)	
 --ME- A=FF B=000D D=9195 H=91D5 S=8EBF P=8EEF ORA  A
 --ME- A=FF B=000D D=9195 H=91D5 S=8EBF P=8EF0 JZ   8EEC	(not$out$ready)
 --ME- A=FF B=000D D=9195 H=91D5 S=8EBF P=8EF3 POP  B
 --ME- A=FF B=000D D=9195 H=91D5 S=8EC1 P=8EF4 PUSH B
 --ME- A=FF B=000D D=9195 H=91D5 S=8EBF P=8EF5 CALL 914B	(call ?co in chario3)


SID CPMLDR.COM
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 B62D
#I$B
#G
CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#L8E00
  8E00  JMP  A8D1
...
#P914B
#G8E00

01 PASS 914B
 --ME- A=FF B=000D D=9195 H=91D5 S=8EBD P=914B CALL 91B4	(call dev$dispatch in chario3)
*91B4
#TW#100
 --ME- A=FF B=000D D=9195 H=91D5 S=8EBB P=91B4 MOV  A,B
 --ME- A=00 B=000D D=9195 H=91D5 S=8EBB P=91B5 STA  9292	(dev$code)
 --ME- A=00 B=000D D=9195 H=91D5 S=8EBB P=91B8 ADD  A
 -Z-E- A=00 B=000D D=9195 H=91D5 S=8EBB P=91B9 POP  H
 -Z-E- A=00 B=000D D=9195 H=914E S=8EBD P=91BA MOV  E,A
 -Z-E- A=00 B=000D D=9100 H=914E S=8EBD P=91BB MVI  D,00
 -Z-E- A=00 B=000D D=0000 H=914E S=8EBD P=91BD DAD  D
 -Z-E- A=00 B=000D D=0000 H=914E S=8EBD P=91BE MOV  E,M
 -Z-E- A=00 B=000D D=00DD H=914E S=8EBD P=91BF INX  H
 -Z-E- A=00 B=000D D=00DD H=914F S=8EBD P=91C0 MOV  D,M
 -Z-E- A=00 B=000D D=91DD H=914F S=8EBD P=91C1 XCHG
 -Z-E- A=00 B=000D D=914F H=91DD S=8EBD P=91C2 PCHL		<== run off rails.  dev handler address is junk.

=========================================================================================

So CONIO3.asm needs to be modified to interface with 2SIO boards.


New build:

=========================================================================================

A>b:sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

#L8E00
  8E00  JMP  A8D1
...
#P9037
#G8E00


01 PASS 9037  (init)
 --ME- A=00 B=00FF D=9109 H=91D0 S=8ECB P=9037 LXI  H,8000
*903A
#TW#1000
 --ME- A=00 B=00FF D=9109 H=8000 S=8ECB P=903A SHLD 8DBE
 --ME- A=00 B=00FF D=9109 H=8000 S=8ECB P=903D SHLD 8DC0
 --ME- A=00 B=00FF D=9109 H=8000 S=8ECB P=9040 LXI  H,4000
 --ME- A=00 B=00FF D=9109 H=4000 S=8ECB P=9043 SHLD 8DC6
 --ME- A=00 B=00FF D=9109 H=4000 S=8ECB P=9046 LXI  H,2000
 --ME- A=00 B=00FF D=9109 H=2000 S=8ECB P=9049 SHLD 8DC2
 --ME- A=00 B=00FF D=9109 H=2000 S=8ECB P=904C SHLD 8DC4
 --ME- A=00 B=00FF D=9109 H=2000 S=8ECB P=904F LXI  H,90ED   (sign-on message)
 --ME- A=00 B=00FF D=9109 H=90ED S=8ECB P=9052 JMP  8FB2     (jmp ?pmsg in bioskrn3)
 --ME- A=00 B=00FF D=9109 H=90ED S=8ECB P=8FB2 PUSH B
 --ME- A=00 B=00FF D=9109 H=90ED S=8EC9 P=8FB3 PUSH D
 --ME- A=00 B=00FF D=9109 H=90ED S=8EC7 P=8FB4 MOV  A,M
 --ME- A=0D B=00FF D=9109 H=90ED S=8EC7 P=8FB5 ORA  A
 ----- A=0D B=00FF D=9109 H=90ED S=8EC7 P=8FB6 JZ   8FC3     (pmsg$exit)
 ----- A=0D B=00FF D=9109 H=90ED S=8EC7 P=8FB9 MOV  C,A
 ----- A=0D B=000D D=9109 H=90ED S=8EC7 P=8FBA PUSH H
 ----- A=0D B=000D D=9109 H=90ED S=8EC5 P=8FBB CALL 8E0C     (call ?cono)  <== Look inside there.  Not printing characters properly.  Not hanging though.
 -Z-E- A=00 B=010D D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=010D D=915C H=90ED S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=010D D=915C H=90EE S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=010D D=915C H=90EE S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=0A B=010D D=915C H=90EE S=8EC7 P=8FB5 ORA  A
 ---E- A=0A B=010D D=915C H=90EE S=8EC7 P=8FB6 JZ   8FC3
 ---E- A=0A B=010D D=915C H=90EE S=8EC7 P=8FB9 MOV  C,A
 ---E- A=0A B=010A D=915C H=90EE S=8EC7 P=8FBA PUSH H
 ---E- A=0A B=010A D=915C H=90EE S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=010A D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=010A D=915C H=90EE S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=010A D=915C H=90EF S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=010A D=915C H=90EF S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=0A B=010A D=915C H=90EF S=8EC7 P=8FB5 ORA  A
 ---E- A=0A B=010A D=915C H=90EF S=8EC7 P=8FB6 JZ   8FC3
 ---E- A=0A B=010A D=915C H=90EF S=8EC7 P=8FB9 MOV  C,A
 ---E- A=0A B=010A D=915C H=90EF S=8EC7 P=8FBA PUSH H
 ---E- A=0A B=010A D=915C H=90EF S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=010A D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=010A D=915C H=90EF S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=010A D=915C H=90F0 S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=010A D=915C H=90F0 S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=43 B=010A D=915C H=90F0 S=8EC7 P=8FB5 ORA  A
 ----- A=43 B=010A D=915C H=90F0 S=8EC7 P=8FB6 JZ   8FC3
 ----- A=43 B=010A D=915C H=90F0 S=8EC7 P=8FB9 MOV  C,A
 ----- A=43 B=0143 D=915C H=90F0 S=8EC7 P=8FBA PUSH H
 ----- A=43 B=0143 D=915C H=90F0 S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=0143 D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=0143 D=915C H=90F0 S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=0143 D=915C H=90F1 S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=0143 D=915C H=90F1 S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=50 B=0143 D=915C H=90F1 S=8EC7 P=8FB5 ORA  A
 ---E- A=50 B=0143 D=915C H=90F1 S=8EC7 P=8FB6 JZ   8FC3
 ---E- A=50 B=0143 D=915C H=90F1 S=8EC7 P=8FB9 MOV  C,A
 ---E- A=50 B=0150 D=915C H=90F1 S=8EC7 P=8FBA PUSH H
 ---E- A=50 B=0150 D=915C H=90F1 S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=0150 D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=0150 D=915C H=90F1 S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=0150 D=915C H=90F2 S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=0150 D=915C H=90F2 S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=2F B=0150 D=915C H=90F2 S=8EC7 P=8FB5 ORA  A
 ----- A=2F B=0150 D=915C H=90F2 S=8EC7 P=8FB6 JZ   8FC3
 ----- A=2F B=0150 D=915C H=90F2 S=8EC7 P=8FB9 MOV  C,A
 ----- A=2F B=012F D=915C H=90F2 S=8EC7 P=8FBA PUSH H
 ----- A=2F B=012F D=915C H=90F2 S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=012F D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=012F D=915C H=90F2 S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=012F D=915C H=90F3 S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=012F D=915C H=90F3 S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=4D B=012F D=915C H=90F3 S=8EC7 P=8FB5 ORA  A
 ---E- A=4D B=012F D=915C H=90F3 S=8EC7 P=8FB6 JZ   8FC3
 ---E- A=4D B=012F D=915C H=90F3 S=8EC7 P=8FB9 MOV  C,A
 ---E- A=4D B=014D D=915C H=90F3 S=8EC7 P=8FBA PUSH H
 ---E- A=4D B=014D D=915C H=90F3 S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=014D D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=014D D=915C H=90F3 S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=014D D=915C H=90F4 S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=014D D=915C H=90F4 S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=20 B=014D D=915C H=90F4 S=8EC7 P=8FB5 ORA  A
 ----- A=20 B=014D D=915C H=90F4 S=8EC7 P=8FB6 JZ   8FC3
 ----- A=20 B=014D D=915C H=90F4 S=8EC7 P=8FB9 MOV  C,A
 ----- A=20 B=0120 D=915C H=90F4 S=8EC7 P=8FBA PUSH H
 ----- A=20 B=0120 D=915C H=90F4 S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=0120 D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=0120 D=915C H=90F4 S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=0120 D=915C H=90F5 S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=0120 D=915C H=90F5 S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=50 B=0120 D=915C H=90F5 S=8EC7 P=8FB5 ORA  A
 ---E- A=50 B=0120 D=915C H=90F5 S=8EC7 P=8FB6 JZ   8FC3
 ---E- A=50 B=0120 D=915C H=90F5 S=8EC7 P=8FB9 MOV  C,A
 ---E- A=50 B=0150 D=915C H=90F5 S=8EC7 P=8FBA PUSH H
 ---E- A=50 B=0150 D=915C H=90F5 S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=0150 D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=0150 D=915C H=90F5 S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=0150 D=915C H=90F6 S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=0150 D=915C H=90F6 S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=6C B=0150 D=915C H=90F6 S=8EC7 P=8FB5 ORA  A
 ---E- A=6C B=0150 D=915C H=90F6 S=8EC7 P=8FB6 JZ   8FC3
 ---E- A=6C B=0150 D=915C H=90F6 S=8EC7 P=8FB9 MOV  C,A
 ---E- A=6C B=016C D=915C H=90F6 S=8EC7 P=8FBA PUSH H
 ---E- A=6C B=016C D=915C H=90F6 S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=016C D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=016C D=915C H=90F6 S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=016C D=915C H=90F7 S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=016C D=915C H=90F7 S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=75 B=016C D=915C H=90F7 S=8EC7 P=8FB5 ORA  A
 ----- A=75 B=016C D=915C H=90F7 S=8EC7 P=8FB6 JZ   8FC3
 ----- A=75 B=016C D=915C H=90F7 S=8EC7 P=8FB9 MOV  C,A
 ----- A=75 B=0175 D=915C H=90F7 S=8EC7 P=8FBA PUSH H
 ----- A=75 B=0175 D=915C H=90F7 S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=0175 D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=0175 D=915C H=90F7 S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=0175 D=915C H=90F8 S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=0175 D=915C H=90F8 S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=73 B=0175 D=915C H=90F8 S=8EC7 P=8FB5 ORA  A
 ----- A=73 B=0175 D=915C H=90F8 S=8EC7 P=8FB6 JZ   8FC3
 ----- A=73 B=0175 D=915C H=90F8 S=8EC7 P=8FB9 MOV  C,A
 ----- A=73 B=0173 D=915C H=90F8 S=8EC7 P=8FBA PUSH H
 ----- A=73 B=0173 D=915C H=90F8 S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=0173 D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=0173 D=915C H=90F8 S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=0173 D=915C H=90F9 S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=0173 D=915C H=90F9 S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=20 B=0173 D=915C H=90F9 S=8EC7 P=8FB5 ORA  A
 ----- A=20 B=0173 D=915C H=90F9 S=8EC7 P=8FB6 JZ   8FC3
 ----- A=20 B=0173 D=915C H=90F9 S=8EC7 P=8FB9 MOV  C,A
 ----- A=20 B=0120 D=915C H=90F9 S=8EC7 P=8FBA PUSH H
 ----- A=20 B=0120 D=915C H=90F9 S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=0120 D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=0120 D=915C H=90F9 S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=0120 D=915C H=90FA S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=0120 D=915C H=90FA S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=76 B=0120 D=915C H=90FA S=8EC7 P=8FB5 ORA  A
 ----- A=76 B=0120 D=915C H=90FA S=8EC7 P=8FB6 JZ   8FC3
 ----- A=76 B=0120 D=915C H=90FA S=8EC7 P=8FB9 MOV  C,A
 ----- A=76 B=0176 D=915C H=90FA S=8EC7 P=8FBA PUSH H
 ----- A=76 B=0176 D=915C H=90FA S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=0176 D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=0176 D=915C H=90FA S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=0176 D=915C H=90FB S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=0176 D=915C H=90FB S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=33 B=0176 D=915C H=90FB S=8EC7 P=8FB5 ORA  A
 ---E- A=33 B=0176 D=915C H=90FB S=8EC7 P=8FB6 JZ   8FC3
 ---E- A=33 B=0176 D=915C H=90FB S=8EC7 P=8FB9 MOV  C,A
 ---E- A=33 B=0133 D=915C H=90FB S=8EC7 P=8FBA PUSH H
 ---E- A=33 B=0133 D=915C H=90FB S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=0133 D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=0133 D=915C H=90FB S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=0133 D=915C H=90FC S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=0133 D=915C H=90FC S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=2E B=0133 D=915C H=90FC S=8EC7 P=8FB5 ORA  A
 ---E- A=2E B=0133 D=915C H=90FC S=8EC7 P=8FB6 JZ   8FC3
 ---E- A=2E B=0133 D=915C H=90FC S=8EC7 P=8FB9 MOV  C,A
 ---E- A=2E B=012E D=915C H=90FC S=8EC7 P=8FBA PUSH H
 ---E- A=2E B=012E D=915C H=90FC S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=012E D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=012E D=915C H=90FC S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=012E D=915C H=90FD S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=012E D=915C H=90FD S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=30 B=012E D=915C H=90FD S=8EC7 P=8FB5 ORA  A
 ---E- A=30 B=012E D=915C H=90FD S=8EC7 P=8FB6 JZ   8FC3
 ---E- A=30 B=012E D=915C H=90FD S=8EC7 P=8FB9 MOV  C,A
 ---E- A=30 B=0130 D=915C H=90FD S=8EC7 P=8FBA PUSH H
 ---E- A=30 B=0130 D=915C H=90FD S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=0130 D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=0130 D=915C H=90FD S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=0130 D=915C H=90FE S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=0130 D=915C H=90FE S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=68 B=0130 D=915C H=90FE S=8EC7 P=8FB5 ORA  A
 ----- A=68 B=0130 D=915C H=90FE S=8EC7 P=8FB6 JZ   8FC3
 ----- A=68 B=0130 D=915C H=90FE S=8EC7 P=8FB9 MOV  C,A
 ----- A=68 B=0168 D=915C H=90FE S=8EC7 P=8FBA PUSH H
 ----- A=68 B=0168 D=915C H=90FE S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=0168 D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=0168 D=915C H=90FE S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=0168 D=915C H=90FF S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=0168 D=915C H=90FF S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=64 B=0168 D=915C H=90FF S=8EC7 P=8FB5 ORA  A
 ----- A=64 B=0168 D=915C H=90FF S=8EC7 P=8FB6 JZ   8FC3
 ----- A=64 B=0168 D=915C H=90FF S=8EC7 P=8FB9 MOV  C,A
 ----- A=64 B=0164 D=915C H=90FF S=8EC7 P=8FBA PUSH H
 ----- A=64 B=0164 D=915C H=90FF S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=0164 D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=0164 D=915C H=90FF S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=0164 D=915C H=9100 S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=0164 D=915C H=9100 S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=0D B=0164 D=915C H=9100 S=8EC7 P=8FB5 ORA  A
 ----- A=0D B=0164 D=915C H=9100 S=8EC7 P=8FB6 JZ   8FC3
 ----- A=0D B=0164 D=915C H=9100 S=8EC7 P=8FB9 MOV  C,A
 ----- A=0D B=010D D=915C H=9100 S=8EC7 P=8FBA PUSH H
 ----- A=0D B=010D D=915C H=9100 S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=010D D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=010D D=915C H=9100 S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=010D D=915C H=9101 S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=010D D=915C H=9101 S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=0A B=010D D=915C H=9101 S=8EC7 P=8FB5 ORA  A
 ---E- A=0A B=010D D=915C H=9101 S=8EC7 P=8FB6 JZ   8FC3
 ---E- A=0A B=010D D=915C H=9101 S=8EC7 P=8FB9 MOV  C,A
 ---E- A=0A B=010A D=915C H=9101 S=8EC7 P=8FBA PUSH H
 ---E- A=0A B=010A D=915C H=9101 S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=010A D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=010A D=915C H=9101 S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=010A D=915C H=9102 S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=010A D=915C H=9102 S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=0A B=010A D=915C H=9102 S=8EC7 P=8FB5 ORA  A
 ---E- A=0A B=010A D=915C H=9102 S=8EC7 P=8FB6 JZ   8FC3
 ---E- A=0A B=010A D=915C H=9102 S=8EC7 P=8FB9 MOV  C,A
 ---E- A=0A B=010A D=915C H=9102 S=8EC7 P=8FBA PUSH H
 ---E- A=0A B=010A D=915C H=9102 S=8EC5 P=8FBB CALL 8E0C
 -Z-E- A=00 B=010A D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=010A D=915C H=9102 S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=010A D=915C H=9103 S=8EC7 P=8FC0 JMP  8FB4   (pmsg$loop)
 -Z-E- A=00 B=010A D=915C H=9103 S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=00 B=010A D=915C H=9103 S=8EC7 P=8FB5 ORA  A
 -Z-E- A=00 B=010A D=915C H=9103 S=8EC7 P=8FB6 JZ   8FC3   (pmsg$exit)
 -Z-E- A=00 B=010A D=915C H=9103 S=8EC7 P=8FC3 POP  D
 -Z-E- A=00 B=010A D=9109 H=9103 S=8EC9 P=8FC4 POP  B
 -Z-E- A=00 B=00FF D=9109 H=9103 S=8ECB P=8FC5 RET         (done with init)
 -Z-E- A=00 B=00FF D=9109 H=9103 S=8ECD P=A898 LXI  B,1000
 -Z-E- A=00 B=1000 D=9109 H=9103 S=8ECD P=A89B LXI  H,927B
 -Z-E- A=00 B=1000 D=9109 H=927B S=8ECD P=A89E PUSH B
 -Z-E- A=00 B=1000 D=9109 H=927B S=8ECB P=A89F MOV  E,M
 -Z-E- A=00 B=1000 D=91A5 H=927B S=8ECB P=A8A0 INX  H
 -Z-E- A=00 B=1000 D=91A5 H=927C S=8ECB P=A8A1 MOV  D,M
 -Z-E- A=00 B=1000 D=92A5 H=927C S=8ECB P=A8A2 INX  H
 -Z-E- A=00 B=1000 D=92A5 H=927D S=8ECB P=A8A3 MOV  A,E
 -Z-E- A=A5 B=1000 D=92A5 H=927D S=8ECB P=A8A4 ORA  D
 --ME- A=B7 B=1000 D=92A5 H=927D S=8ECB P=A8A5 JZ   A8BD
 --ME- A=B7 B=1000 D=92A5 H=927D S=8ECB P=A8A8 PUSH H
 --ME- A=B7 B=1000 D=92A5 H=927D S=8EC9 P=A8A9 XCHG
 --ME- A=B7 B=1000 D=927D H=92A5 S=8EC9 P=A8AA DCX  H
 --ME- A=B7 B=1000 D=927D H=92A4 S=8EC9 P=A8AB DCX  H
 --ME- A=B7 B=1000 D=927D H=92A3 S=8EC9 P=A8AC MOV  A,M
 --ME- A=00 B=1000 D=927D H=92A3 S=8EC9 P=A8AD STA  A975
 --ME- A=00 B=1000 D=927D H=92A3 S=8EC9 P=A8B0 MOV  A,C
 --ME- A=00 B=1000 D=927D H=92A3 S=8EC9 P=A8B1 STA  A974
 --ME- A=00 B=1000 D=927D H=92A3 S=8EC9 P=A8B4 DCX  H
 --ME- A=00 B=1000 D=927D H=92A2 S=8EC9 P=A8B5 MOV  D,M
 --ME- A=00 B=1000 D=937D H=92A2 S=8EC9 P=A8B6 DCX  H
 --ME- A=00 B=1000 D=937D H=92A1 S=8EC9 P=A8B7 MOV  E,M
 --ME- A=00 B=1000 D=9322 H=92A1 S=8EC9 P=A8B8 XCHG
 --ME- A=00 B=1000 D=92A1 H=9322 S=8EC9 P=A8B9 CALL 8FB1
 --ME- A=00 B=1000 D=92A1 H=9322 S=8EC9 P=A8BC POP  H
 --ME- A=00 B=1000 D=92A1 H=927D S=8ECB P=A8BD POP  B
 --ME- A=00 B=1000 D=92A1 H=927D S=8ECD P=A8BE INR  C
 ----- A=00 B=1001 D=92A1 H=927D S=8ECD P=A8BF DCR  B
 ---E- A=00 B=0F01 D=92A1 H=927D S=8ECD P=A8C0 JNZ  A89E
 ---E- A=00 B=0F01 D=92A1 H=927D S=8ECD P=A89E PUSH B
 ---E- A=00 B=0F01 D=92A1 H=927D S=8ECB P=A89F MOV  E,M
 ---E- A=00 B=0F01 D=92C8 H=927D S=8ECB P=A8A0 INX  H
 ---E- A=00 B=0F01 D=92C8 H=927E S=8ECB P=A8A1 MOV  D,M
 ---E- A=00 B=0F01 D=92C8 H=927E S=8ECB P=A8A2 INX  H
 ---E- A=00 B=0F01 D=92C8 H=927F S=8ECB P=A8A3 MOV  A,E
 ---E- A=C8 B=0F01 D=92C8 H=927F S=8ECB P=A8A4 ORA  D
 --M-- A=DA B=0F01 D=92C8 H=927F S=8ECB P=A8A5 JZ   A8BD
 --M-- A=DA B=0F01 D=92C8 H=927F S=8ECB P=A8A8 PUSH H
 --M-- A=DA B=0F01 D=92C8 H=927F S=8EC9 P=A8A9 XCHG
 --M-- A=DA B=0F01 D=927F H=92C8 S=8EC9 P=A8AA DCX  H
 --M-- A=DA B=0F01 D=927F H=92C7 S=8EC9 P=A8AB DCX  H
 --M-- A=DA B=0F01 D=927F H=92C6 S=8EC9 P=A8AC MOV  A,M
 --M-- A=01 B=0F01 D=927F H=92C6 S=8EC9 P=A8AD STA  A975
 --M-- A=01 B=0F01 D=927F H=92C6 S=8EC9 P=A8B0 MOV  A,C
 --M-- A=01 B=0F01 D=927F H=92C6 S=8EC9 P=A8B1 STA  A974
 --M-- A=01 B=0F01 D=927F H=92C6 S=8EC9 P=A8B4 DCX  H
 --M-- A=01 B=0F01 D=927F H=92C5 S=8EC9 P=A8B5 MOV  D,M
 --M-- A=01 B=0F01 D=937F H=92C5 S=8EC9 P=A8B6 DCX  H
 --M-- A=01 B=0F01 D=937F H=92C4 S=8EC9 P=A8B7 MOV  E,M
 --M-- A=01 B=0F01 D=9322 H=92C4 S=8EC9 P=A8B8 XCHG
 --M-- A=01 B=0F01 D=92C4 H=9322 S=8EC9 P=A8B9 CALL 8FB1
 --M-- A=01 B=0F01 D=92C4 H=9322 S=8EC9 P=A8BC POP  H
 --M-- A=01 B=0F01 D=92C4 H=927F S=8ECB P=A8BD POP  B
 --M-- A=01 B=0F01 D=92C4 H=927F S=8ECD P=A8BE INR  C
 ----- A=01 B=0F02 D=92C4 H=927F S=8ECD P=A8BF DCR  B
 ----I A=01 B=0E02 D=92C4 H=927F S=8ECD P=A8C0 JNZ  A89E
 ----I A=01 B=0E02 D=92C4 H=927F S=8ECD P=A89E PUSH B
 ----I A=01 B=0E02 D=92C4 H=927F S=8ECB P=A89F MOV  E,M
 ----I A=01 B=0E02 D=9200 H=927F S=8ECB P=A8A0 INX  H
 ----I A=01 B=0E02 D=9200 H=9280 S=8ECB P=A8A1 MOV  D,M
 ----I A=01 B=0E02 D=8E00 H=9280 S=8ECB P=A8A2 INX  H
 ----I A=01 B=0E02 D=8E00 H=9281 S=8ECB P=A8A3 MOV  A,E
 ----I A=00 B=0E02 D=8E00 H=9281 S=8ECB P=A8A4 ORA  D
 --ME- A=8E B=0E02 D=8E00 H=9281 S=8ECB P=A8A5 JZ   A8BD
 --ME- A=8E B=0E02 D=8E00 H=9281 S=8ECB P=A8A8 PUSH H
 --ME- A=8E B=0E02 D=8E00 H=9281 S=8EC9 P=A8A9 XCHG
 --ME- A=8E B=0E02 D=9281 H=8E00 S=8EC9 P=A8AA DCX  H
 --ME- A=8E B=0E02 D=9281 H=8DFF S=8EC9 P=A8AB DCX  H
 --ME- A=8E B=0E02 D=9281 H=8DFE S=8EC9 P=A8AC MOV  A,M
 --ME- A=06 B=0E02 D=9281 H=8DFE S=8EC9 P=A8AD STA  A975
 --ME- A=06 B=0E02 D=9281 H=8DFE S=8EC9 P=A8B0 MOV  A,C
 --ME- A=02 B=0E02 D=9281 H=8DFE S=8EC9 P=A8B1 STA  A974
 --ME- A=02 B=0E02 D=9281 H=8DFE S=8EC9 P=A8B4 DCX  H
 --ME- A=02 B=0E02 D=9281 H=8DFD S=8EC9 P=A8B5 MOV  D,M
 --ME- A=02 B=0E02 D=6F81 H=8DFD S=8EC9 P=A8B6 DCX  H
 --ME- A=02 B=0E02 D=6F81 H=8DFC S=8EC9 P=A8B7 MOV  E,M
 --ME- A=02 B=0E02 D=6F7B H=8DFC S=8EC9 P=A8B8 XCHG
 --ME- A=02 B=0E02 D=8DFC H=6F7B S=8EC9 P=A8B9 CALL 8FB1  <== waiting for keyboard input.  Once a key is pressed, we see the message,
                                                              "CPMLDR error:  failed to open CPM3.SYS"


=========================================================================================


SID CPMLDR.COM
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G
CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#P8E0C                    (calls ?cono, which jumps to conout)
#G8E00

01 PASS 8E0C
 ----- A=0D B=000D D=9109 H=90ED S=8EC3 P=8E0C JMP  8ED5   (conout)
*8ED5
#TW#10
 ----- A=0D B=000D D=9109 H=90ED S=8EC3 P=8ED5 LHLD 8DC0   (@covec)
 ----- A=0D B=000D D=9109 H=8000 S=8EC3 P=8ED8 JMP  8EE4   (out$scan)
 ----- A=0D B=000D D=9109 H=8000 S=8EC3 P=8EE4 MVI  B,00
 ----- A=0D B=000D D=9109 H=8000 S=8EC3 P=8EE6 DAD  H
 C---- A=0D B=000D D=9109 H=0000 S=8EC3 P=8EE7 JNC  8EFA   (not$out$device)
 C---- A=0D B=000D D=9109 H=0000 S=8EC3 P=8EEA PUSH H
 C---- A=0D B=000D D=9109 H=0000 S=8EC1 P=8EEB PUSH B
 C---- A=0D B=000D D=9109 H=0000 S=8EBF P=8EEC CALL 8F27   (coster)
 ----- A=FF B=000D D=91A2 H=9201 S=8EBF P=8EEF ORA  A
 --ME- A=FF B=000D D=91A2 H=9201 S=8EBF P=8EF0 JZ   8EEC   (not$out$ready)
*8EF3
#TW#10
 --ME- A=FF B=000D D=91A2 H=9201 S=8EBF P=8EF3 POP  B
 --ME- A=FF B=000D D=91A2 H=9201 S=8EC1 P=8EF4 PUSH B
 --ME- A=FF B=000D D=91A2 H=9201 S=8EBF P=8EF5 CALL 9158   (?co)
 -Z-E- A=00 B=000D D=915C H=9225 S=8EBF P=8EF8 POP  B
 -Z-E- A=00 B=000D D=915C H=9225 S=8EC1 P=8EF9 POP  H
 -Z-E- A=00 B=000D D=915C H=0000 S=8EC3 P=8EFA INR  B
 ----- A=00 B=010D D=915C H=0000 S=8EC3 P=8EFB MOV  A,H
 ----- A=00 B=010D D=915C H=0000 S=8EC3 P=8EFC ORA  L
 -Z-E- A=00 B=010D D=915C H=0000 S=8EC3 P=8EFD JNZ  8EE6   (co$next)
 -Z-E- A=00 B=010D D=915C H=0000 S=8EC3 P=8F00 RET            <== Back to 8FBE, returned from conout
*8FBE
#TW#10
 -Z-E- A=00 B=010D D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=010D D=915C H=90ED S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=010D D=915C H=90EE S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=010D D=915C H=90EE S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=0A B=010D D=915C H=90EE S=8EC7 P=8FB5 ORA  A
 ---E- A=0A B=010D D=915C H=90EE S=8EC7 P=8FB6 JZ   8FC3
 ---E- A=0A B=010D D=915C H=90EE S=8EC7 P=8FB9 MOV  C,A
 ---E- A=0A B=010A D=915C H=90EE S=8EC7 P=8FBA PUSH H
 ---E- A=0A B=010A D=915C H=90EE S=8EC5 P=8FBB CALL 8E0C
01 PASS 8E0C
 ---E- A=0A B=010A D=915C H=90EE S=8EC3 P=8E0C JMP  8ED5
*8ED5
#

=========================================================================================

Inside conout (8ED5), we have one jump to out$scan and two calls within that.
The jump is to 8EE4 (out$scan).
The first call is to 8F27 (coster).
Second call is to 9158 (?co).
Sign-on message is at 90ED.

...so let's examine ?co at 9158.


=========================================================================================

SID CPMLDR.COM
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G
CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#P9158                    (calls ?co, which calls dev$dispatch at 91C1)
#G8E00

01 PASS 9158
#TW#14
 --ME- A=FF B=000D D=91A2 H=9201 S=8EBD P=9158 CALL 91C1  (dev$dispatch)
 --ME- A=FF B=000D D=91A2 H=9201 S=8EBB P=91C1 MOV  A,B
 --ME- A=00 B=000D D=91A2 H=9201 S=8EBB P=91C2 STA  9237
 --ME- A=00 B=000D D=91A2 H=9201 S=8EBB P=91C5 ADD  A
 -Z-E- A=00 B=000D D=91A2 H=9201 S=8EBB P=91C6 POP  H
 -Z-E- A=00 B=000D D=91A2 H=915B S=8EBD P=91C7 MOV  E,A
 -Z-E- A=00 B=000D D=9100 H=915B S=8EBD P=91C8 MVI  D,00
 -Z-E- A=00 B=000D D=0000 H=915B S=8EBD P=91CA DAD  D
 -Z-E- A=00 B=000D D=0000 H=915B S=8EBD P=91CB MOV  E,M
 -Z-E- A=00 B=000D D=0025 H=915B S=8EBD P=91CC INX  H
 -Z-E- A=00 B=000D D=0025 H=915C S=8EBD P=91CD MOV  D,M
 -Z-E- A=00 B=000D D=9225 H=915C S=8EBD P=91CE XCHG
 -Z-E- A=00 B=000D D=915C H=9225 S=8EBD P=91CF PCHL
 -Z-E- A=00 B=000D D=915C H=9225 S=8EBD P=9225 OUT  11
*9227

=========================================================================================

Looks good as far as selecting the output device, but the accumulator doesn't have the character to print. Not sure about the 00 accumulator - being the same as a null terminator - so doesn't iterate through all chars in the sign-on message string or if there are other things wrong, causing the program to run off the rails after the 9158 (?co) passpoint below.


=========================================================================================

#TW
 -Z-E- A=00 B=000D D=915C H=9225 S=8EBD P=9227 RET
 -Z-E- A=00 B=000D D=915C H=9225 S=8EBF P=8EF8 POP  B
 -Z-E- A=00 B=000D D=915C H=9225 S=8EC1 P=8EF9 POP  H
 -Z-E- A=00 B=000D D=915C H=0000 S=8EC3 P=8EFA INR  B
 ----- A=00 B=010D D=915C H=0000 S=8EC3 P=8EFB MOV  A,H
 ----- A=00 B=010D D=915C H=0000 S=8EC3 P=8EFC ORA  L
 -Z-E- A=00 B=010D D=915C H=0000 S=8EC3 P=8EFD JNZ  8EE6
 -Z-E- A=00 B=010D D=915C H=0000 S=8EC3 P=8F00 RET
 -Z-E- A=00 B=010D D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=010D D=915C H=90ED S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=010D D=915C H=90EE S=8EC7 P=8FC0 JMP  8FB4
 -Z-E- A=00 B=010D D=915C H=90EE S=8EC7 P=8FB4 MOV  A,M
 -Z-E- A=0A B=010D D=915C H=90EE S=8EC7 P=8FB5 ORA  A
 ---E- A=0A B=010D D=915C H=90EE S=8EC7 P=8FB6 JZ   8FC3
 ---E- A=0A B=010D D=915C H=90EE S=8EC7 P=8FB9 MOV  C,A
 ---E- A=0A B=010A D=915C H=90EE S=8EC7 P=8FBA PUSH H
 ---E- A=0A B=010A D=915C H=90EE S=8EC5 P=8FBB CALL 8E0C
01 PASS 9158
 --ME- A=FF B=000A D=91A2 H=9201 S=8EBD P=9158 CALL 91C1

=========================================================================================

...and then off the rails.

Modified CHARIO3.asm to add a MOV A,C instruction in DEV$DISPATCH.
That fixed CHARIO3, so now this BIOS can talk.

Upon booting (without SID and CPMLDR.COM) - just straight from the GENCPM'ed floppy -
this is what I now see:


=========================================================================================

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA


CP/M Plus v3.0hd


CP/M Error On @: Read/Only Disk


=========================================================================================

Troubleshooting with debugger:


=========================================================================================

SID CPMLDR.COM
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#L8E00
  8E00  JMP  A888       (boot)
  8E03  JMP  8E6C       (wboot)
  8E06  JMP  8F72       (const)
  8E09  JMP  8F8D       (conin)
  8E0C  JMP  8ED5       (conout)
  8E0F  JMP  8EE1       (list)
  8E12  JMP  8EDB       (auxout)
  8E15  JMP  8F93       (auxin)
  8E18  JMP  A8F6       (home)
  8E1B  JMP  A8C7       (seldsk)
  8E1E  JMP  A8F9       (settrk)
  8E21  JMP  A8FF       (setsec)
  8E24  JMP  A905       (setdma)
  8E27  JMP  A91C       (read)
  8E2A  JMP  A932       (write)
  8E2D  JMP  8F0D       (listst)
  8E30  JMP  A911       (sectrn)
  8E33  JMP  8F01       (conost)
  8E36  JMP  8F78       (auxist)
  8E39  JMP  8F07       (auxost)
  8E3C  JMP  8ECD       (devtbl)
  8E3F  JMP  9104       (devini)
  8E42  JMP  8ED1       (drvtbl)
  8E45  JMP  A953       (multio)
  8E48  JMP  A957       (flush)
  8E4B  JMP  9276       (move)
  8E4E  JMP  9094       (time)
  8E51  JMP  9020       (selmem)
  8E54  JMP  A90D       (setbnk)
  8E57  JMP  9275       (xmove)
  8E5A  JMP  0000       (userf)
  8E5D  JMP  0000       (reserv1)
  8E60  JMP  0000       (reserv2)

#PA8C7                  (seldsk)
#PA8F9                  (settrk)
#PA8FF                  (setsec)
#PA905                  (setdma)
#PA91C                  (read)
#G8E00



CP/M Plus v3.0hd


CP/M Error On @: Read/Only Disk
01 PASS A8C7
 -Z-E- A=00 B=0000 D=0000 H=0000 S=6FDE P=A8C7 MOV  A,C
*A8C8

=========================================================================================

...so we get this error without ever running any of the functions seldsk, settrk, setsec, setdma or read.


=========================================================================================

SID CPMLDR.COM
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#P9037             <== init
#G8E00

01 PASS 9037
 --ME- A=00 B=00FF D=9109 H=91D1 S=8ECB P=9037 LXI  H,8000   (dev 0)
*903A
#TW#10
 --ME- A=00 B=00FF D=9109 H=8000 S=8ECB P=903A SHLD 8DBE     (@civec)
 --ME- A=00 B=00FF D=9109 H=8000 S=8ECB P=903D SHLD 8DC0     (@covec)
 --ME- A=00 B=00FF D=9109 H=8000 S=8ECB P=9040 LXI  H,4000   (dev 1)
 --ME- A=00 B=00FF D=9109 H=4000 S=8ECB P=9043 SHLD 8DC6     (@lovec)
 --ME- A=00 B=00FF D=9109 H=4000 S=8ECB P=9046 LXI  H,2000   (dev 2)
 --ME- A=00 B=00FF D=9109 H=2000 S=8ECB P=9049 SHLD 8DC2     (@aivec)
 --ME- A=00 B=00FF D=9109 H=2000 S=8ECB P=904C SHLD 8DC4     (@aovec)
 --ME- A=00 B=00FF D=9109 H=2000 S=8ECB P=904F LXI  H,90ED   (sign-on message)
 --ME- A=00 B=00FF D=9109 H=90ED S=8ECB P=9052 JMP  8FB2     (?pmsg)
 --ME- A=00 B=00FF D=9109 H=90ED S=8ECB P=8FB2 PUSH B
*8FB3
#TW#....
 --ME- A=00 B=00FF D=9109 H=90ED S=8EC9 P=8FB3 PUSH D
 --ME- A=00 B=00FF D=9109 H=90ED S=8EC7 P=8FB4 MOV  A,M
 --ME- A=0D B=00FF D=9109 H=90ED S=8EC7 P=8FB5 ORA  A
 ----- A=0D B=00FF D=9109 H=90ED S=8EC7 P=8FB6 JZ   8FC3     (pmsg$exit)
 ----- A=0D B=00FF D=9109 H=90ED S=8EC7 P=8FB9 MOV  C,A
 ----- A=0D B=000D D=9109 H=90ED S=8EC7 P=8FBA PUSH H
 ----- A=0D B=000D D=9109 H=90ED S=8EC5 P=8FBB CALL 8E0C     (call ?conout)
 -Z-E- A=00 B=010D D=915C H=0000 S=8EC5 P=8FBE POP  H
 -Z-E- A=00 B=010D D=915C H=90ED S=8EC7 P=8FBF INX  H
 -Z-E- A=00 B=010D D=915C H=90EE S=8EC7 P=8FC0 JMP  8FB4

=========================================================================================

... (print all of the sign-on message)


=========================================================================================

#TW#10
 -Z-E- A=00 B=010A D=915C H=9103 S=8EC7 P=8FB5 ORA  A
 -Z-E- A=00 B=010A D=915C H=9103 S=8EC7 P=8FB6 JZ   8FC3
 -Z-E- A=00 B=010A D=915C H=9103 S=8EC7 P=8FC3 POP  D
 -Z-E- A=00 B=010A D=9109 H=9103 S=8EC9 P=8FC4 POP  B
 -Z-E- A=00 B=00FF D=9109 H=9103 S=8ECB P=8FC5 RET             <== Done with init
 -Z-E- A=00 B=00FF D=9109 H=9103 S=8ECD P=A899 LXI  B,1000
 -Z-E- A=00 B=1000 D=9109 H=9103 S=8ECD P=A89C LXI  H,927C     (lxi h, @dtbl)
 -Z-E- A=00 B=1000 D=9109 H=927C S=8ECD P=A89F PUSH B          (d$init$loop)
 -Z-E- A=00 B=1000 D=9109 H=927C S=8ECB P=A8A0 MOV  E,M
 -Z-E- A=00 B=1000 D=91A6 H=927C S=8ECB P=A8A1 INX  H
*A8A2
#TW#10
 -Z-E- A=00 B=1000 D=91A6 H=927D S=8ECB P=A8A2 MOV  D,M
 -Z-E- A=00 B=1000 D=92A6 H=927D S=8ECB P=A8A3 INX  H
 -Z-E- A=00 B=1000 D=92A6 H=927E S=8ECB P=A8A4 MOV  A,E
 -Z-E- A=A6 B=1000 D=92A6 H=927E S=8ECB P=A8A5 ORA  D
 --M-- A=B6 B=1000 D=92A6 H=927E S=8ECB P=A8A6 JZ   A8BE       (d$init$next)
 --M-- A=B6 B=1000 D=92A6 H=927E S=8ECB P=A8A9 PUSH H
 --M-- A=B6 B=1000 D=92A6 H=927E S=8EC9 P=A8AA XCHG            (dph addess in HL)
 --M-- A=B6 B=1000 D=927E H=92A6 S=8EC9 P=A8AB DCX  H
 --M-- A=B6 B=1000 D=927E H=92A5 S=8EC9 P=A8AC DCX  H
 --M-- A=B6 B=1000 D=927E H=92A4 S=8EC9 P=A8AD MOV  A,M
*A8AE
#TW#10
 --M-- A=00 B=1000 D=927E H=92A4 S=8EC9 P=A8AE STA  A976        (@RDRV)
 --M-- A=00 B=1000 D=927E H=92A4 S=8EC9 P=A8B1 MOV  A,C
 --M-- A=00 B=1000 D=927E H=92A4 S=8EC9 P=A8B2 STA  A975        (@ADRV)
 --M-- A=00 B=1000 D=927E H=92A4 S=8EC9 P=A8B5 DCX  H
 --M-- A=00 B=1000 D=927E H=92A3 S=8EC9 P=A8B6 MOV  D,M
 --M-- A=00 B=1000 D=937E H=92A3 S=8EC9 P=A8B7 DCX  H
 --M-- A=00 B=1000 D=937E H=92A2 S=8EC9 P=A8B8 MOV  E,M        
 --M-- A=00 B=1000 D=9323 H=92A2 S=8EC9 P=A8B9 XCHG             (drive 0 init pointer)
 --M-- A=00 B=1000 D=92A2 H=9323 S=8EC9 P=A8BA CALL 8FB1        (ipchl - call drive init 0)
 --M-- A=00 B=1000 D=92A2 H=9323 S=8EC9 P=A8BD POP  H
*A8BE
#TW#10
 --M-- A=00 B=1000 D=92A2 H=927E S=8ECB P=A8BE POP  B           (d$init$next)
 --M-- A=00 B=1000 D=92A2 H=927E S=8ECD P=A8BF INR  C
 ----- A=00 B=1001 D=92A2 H=927E S=8ECD P=A8C0 DCR  B
 ---E- A=00 B=0F01 D=92A2 H=927E S=8ECD P=A8C1 JNZ  A89F        (d$init$loop)
 ---E- A=00 B=0F01 D=92A2 H=927E S=8ECD P=A89F PUSH B
 ---E- A=00 B=0F01 D=92A2 H=927E S=8ECB P=A8A0 MOV  E,M
 ---E- A=00 B=0F01 D=92C9 H=927E S=8ECB P=A8A1 INX  H
 ---E- A=00 B=0F01 D=92C9 H=927F S=8ECB P=A8A2 MOV  D,M
 ---E- A=00 B=0F01 D=92C9 H=927F S=8ECB P=A8A3 INX  H
 ---E- A=00 B=0F01 D=92C9 H=9280 S=8ECB P=A8A4 MOV  A,E
*A8A5
#TW#10
 ---E- A=C9 B=0F01 D=92C9 H=9280 S=8ECB P=A8A5 ORA  D
 --ME- A=DB B=0F01 D=92C9 H=9280 S=8ECB P=A8A6 JZ   A8BE
 --ME- A=DB B=0F01 D=92C9 H=9280 S=8ECB P=A8A9 PUSH H
 --ME- A=DB B=0F01 D=92C9 H=9280 S=8EC9 P=A8AA XCHG
 --ME- A=DB B=0F01 D=9280 H=92C9 S=8EC9 P=A8AB DCX  H
 --ME- A=DB B=0F01 D=9280 H=92C8 S=8EC9 P=A8AC DCX  H
 --ME- A=DB B=0F01 D=9280 H=92C7 S=8EC9 P=A8AD MOV  A,M
 --ME- A=01 B=0F01 D=9280 H=92C7 S=8EC9 P=A8AE STA  A976
 --ME- A=01 B=0F01 D=9280 H=92C7 S=8EC9 P=A8B1 MOV  A,C
 --ME- A=01 B=0F01 D=9280 H=92C7 S=8EC9 P=A8B2 STA  A975
*A8B5
#TW#10
 --ME- A=01 B=0F01 D=9280 H=92C7 S=8EC9 P=A8B5 DCX  H
 --ME- A=01 B=0F01 D=9280 H=92C6 S=8EC9 P=A8B6 MOV  D,M
 --ME- A=01 B=0F01 D=9380 H=92C6 S=8EC9 P=A8B7 DCX  H
 --ME- A=01 B=0F01 D=9380 H=92C5 S=8EC9 P=A8B8 MOV  E,M
 --ME- A=01 B=0F01 D=9323 H=92C5 S=8EC9 P=A8B9 XCHG
 --ME- A=01 B=0F01 D=92C5 H=9323 S=8EC9 P=A8BA CALL 8FB1        (ipchl - 1)
 --ME- A=01 B=0F01 D=92C5 H=9323 S=8EC9 P=A8BD POP  H
 --ME- A=01 B=0F01 D=92C5 H=9280 S=8ECB P=A8BE POP  B
 --ME- A=01 B=0F01 D=92C5 H=9280 S=8ECD P=A8BF INR  C
 ----- A=01 B=0F02 D=92C5 H=9280 S=8ECD P=A8C0 DCR  B
*A8C1
#TW#10
 ----I A=01 B=0E02 D=92C5 H=9280 S=8ECD P=A8C1 JNZ  A89F
 ----I A=01 B=0E02 D=92C5 H=9280 S=8ECD P=A89F PUSH B
 ----I A=01 B=0E02 D=92C5 H=9280 S=8ECB P=A8A0 MOV  E,M
 ----I A=01 B=0E02 D=9200 H=9280 S=8ECB P=A8A1 INX  H
 ----I A=01 B=0E02 D=9200 H=9281 S=8ECB P=A8A2 MOV  D,M
 ----I A=01 B=0E02 D=8E00 H=9281 S=8ECB P=A8A3 INX  H
 ----I A=01 B=0E02 D=8E00 H=9282 S=8ECB P=A8A4 MOV  A,E
 ----I A=00 B=0E02 D=8E00 H=9282 S=8ECB P=A8A5 ORA  D
 --ME- A=8E B=0E02 D=8E00 H=9282 S=8ECB P=A8A6 JZ   A8BE
 --ME- A=8E B=0E02 D=8E00 H=9282 S=8ECB P=A8A9 PUSH H
*A8AA
#TW#10
 --ME- A=8E B=0E02 D=8E00 H=9282 S=8EC9 P=A8AA XCHG
 --ME- A=8E B=0E02 D=9282 H=8E00 S=8EC9 P=A8AB DCX  H
 --ME- A=8E B=0E02 D=9282 H=8DFF S=8EC9 P=A8AC DCX  H
 --ME- A=8E B=0E02 D=9282 H=8DFE S=8EC9 P=A8AD MOV  A,M
 --ME- A=06 B=0E02 D=9282 H=8DFE S=8EC9 P=A8AE STA  A976
 --ME- A=06 B=0E02 D=9282 H=8DFE S=8EC9 P=A8B1 MOV  A,C
 --ME- A=02 B=0E02 D=9282 H=8DFE S=8EC9 P=A8B2 STA  A975
 --ME- A=02 B=0E02 D=9282 H=8DFE S=8EC9 P=A8B5 DCX  H
 --ME- A=02 B=0E02 D=9282 H=8DFD S=8EC9 P=A8B6 MOV  D,M
 --ME- A=02B=0E02 D=6F82 H=8DFD S=8EC9 P=A8B7 DCX  H
*A8B8
#TW#10
 --ME- A=02 B=0E02 D=6F82 H=8DFC S=8EC9 P=A8B8 MOV  E,M
 --ME- A=02 B=0E02 D=6F7B H=8DFC S=8EC9 P=A8B9 XCHG
 --ME- A=02 B=0E02 D=8DFC H=6F7B S=8EC9 P=A8BA CALL 8FB1        (ipchl - 2)
CP/M Error On @: Read/Only Disk

=========================================================================================

...looks like it is hanging here, perhaps because the IDE module isn't loaded.


New build with IDE3 linked in, GENned for topmem=A9:

=========================================================================================

A>pip a:=b:cpm3.sys

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8600  1E00
 BDOS3    SPR  6700  1F00

 25K TPA

*01A9
#L8600
  8600  JMP  A27D       (boot)
  8603  JMP  866C       (wboot)
  8606  JMP  8772       (const)
  8609  JMP  878D       (conin)
  860C  JMP  86D5       (conout)
  860F  JMP  86E1       (list)
  8612  JMP  86DB       (auxout)
  8615  JMP  8793       (auxin)
  8618  JMP  A2EB       (home)
  861B  JMP  A2BC       (seldsk)
  861E  JMP  A2EE       (settrk)
  8621  JMP  A2F4       (setsec)
  8624  JMP  A2FA       (setdma)
  8627  JMP  A311       (read)
  862A  JMP  A327       (write)
  862D  JMP  870D       (listst)
  8630  JMP  A306       (sectrn)
  8633  JMP  8701       (conost)
  8636  JMP  8778       (auxist)
  8639  JMP  8707       (auxost)
  863C  JMP  86CD       (devtbl)
  863F  JMP  8904       (devini)
  8642  JMP  86D1       (drvtbl)
  8645  JMP  A348       (multio)
  8648  JMP  A34C       (flush)
  864B  JMP  8A76       (move)
  864E  JMP  8894       (time)
  8651  JMP  8820       (selmem)
  8654  JMP  A302       (setbnk)
  8657  JMP  8A75       (xmove)
  865A  JMP  0000       (userf)
  865D  JMP  0000       (reserv1)
  8660  JMP  0000       (reserv2)

#P8663
#G8600


CP/M Plus v3.0hd


01 PASS 8663
 -Z-EI A=00 B=0010 D=0000 H=8A9C S=86CD P=8663 CALL 8678
*8678
#TW#10
 -Z-EI A=00 B=0010 D=0000 H=8A9C S=86CB P=8678 MVI  A,C3
 -Z-EI A=C3 B=0010 D=0000 H=8A9C S=86CB P=867A STA  0000
 -Z-EI A=C3 B=0010 D=0000 H=8A9C S=86CB P=867D STA  0005
 -Z-EI A=C3 B=0010 D=0000 H=8A9C S=86CB P=8680 LXI  H,8603
 -Z-EI A=C3 B=0010 D=0000 H=8603 S=86CB P=8683 SHLD 0001
 -Z-EI A=C3 B=0010 D=0000 H=8603 S=86CB P=8686 LHLD 85FE
 -Z-EI A=C3 B=0010 D=0000 H=6706 S=86CB P=8689 SHLD 0006
 -Z-EI A=C3 B=0010 D=0000 H=6706 S=86CB P=868C RET
 -Z-EI A=C3 B=0010 D=0000 H=6706 S=86CD P=8666 CALL 8860     (?ldccp)

=========================================================================================

Hang


=========================================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8600  1E00
 BDOS3    SPR  6700  1F00

 25K TPA

*01A9

#P8860                (?ldccp)
#G8600


CP/M Plus v3.0hd


01 PASS 8860
 -Z-EI A=C3 B=0010 D=0000 H=6706 S=86CB P=8860 XRA  A        (?ldccp)
*8861
#TW#10
 -Z-E- A=00 B=0010 D=0000 H=6706 S=86CB P=8861 STA  88D9     (CCP$FCB+15)
 -Z-E- A=00 B=0010 D=0000 H=6706 S=86CB P=8864 LXI  H,0000
 -Z-E- A=00 B=0010 D=0000 H=0000 S=86CB P=8867 SHLD 88EA     (FCB$NR)
 -Z-E- A=00 B=0010 D=0000 H=0000 S=86CB P=886A LXI  D,88CA   (CCP$FCB)
 -Z-E- A=00 B=0010 D=88CA H=0000 S=86CB P=886D CALL 8895     (OPEN)

=========================================================================================

Hang


=========================================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8600  1E00
 BDOS3    SPR  6700  1F00

 25K TPA

*01A9
#P8895
#G8600


CP/M Plus v3.0hd


01 PASS 8895
 -Z-E- A=00 B=0010 D=88CA H=0000 S=86C9 P=8895 MVI  C,0F     (OPEN)
*8897
#TW#100
 -Z-E- A=00 B=000F D=88CA H=0000 S=86C9 P=8897 JMP  0005     (BDOS)
 -Z-E- A=00 B=000F D=88CA H=0000 S=86C9 P=0005 JMP  6706
 -Z-E- A=00 B=000F D=88CA H=0000 S=86C9 P=6706 XCHG
 -Z-E- A=00 B=000F D=0000 H=88CA S=86C9 P=6707 SHLD 85DB
 -Z-E- A=00 B=000F D=0000 H=88CA S=86C9 P=670A XCHG
 -Z-E- A=00 B=000F D=88CA H=0000 S=86C9 P=670B MOV  A,C
 -Z-E- A=0F B=000F D=88CA H=0000 S=86C9 P=670C STA  85DF
 -Z-E- A=0F B=000F D=88CA H=0000 S=86C9 P=670F CPI  0E
 ----I A=0F B=000F D=88CA H=0000 S=86C9 P=6711 JC   6737
 ----I A=0F B=000F D=88CA H=0000 S=86C9 P=6714 LXI  H,0000
 ----I A=0F B=000F D=88CA H=0000 S=86C9 P=6717 SHLD 83BD
 ----I A=0F B=000F D=88CA H=0000 S=86C9 P=671A LDA  85DA
 ----I A=00 B=000F D=88CA H=0000 S=86C9 P=671D STA  83C6
 ----I A=00 B=000F D=88CA H=0000 S=86C9 P=6720 LDA  85E6
 ----I A=01 B=000F D=88CA H=0000 S=86C9 P=6723 DCR  A
 -Z-EI A=00 B=000F D=88CA H=0000 S=86C9 P=6724 JZ   6737
 -Z-EI A=00 B=000F D=88CA H=0000 S=86C9 P=6737 MOV  A,E
 -Z-EI A=CA B=000F D=88CA H=0000 S=86C9 P=6738 STA  83C3
 -Z-EI A=CA B=000F D=88CA H=0000 S=86C9 P=673B LXI  H,0000
 -Z-EI A=CA B=000F D=88CA H=0000 S=86C9 P=673E SHLD 6E7A
 -Z-EI A=CA B=000F D=88CA H=0000 S=86C9 P=6741 SHLD 85DD
 -Z-EI A=CA B=000F D=88CA H=0000 S=86C9 P=6744 DAD  SP
 -Z-EI A=CA B=000F D=88CA H=86C9 S=86C9 P=6745 SHLD 69CB
 -Z-EI A=CA B=000F D=88CA H=86C9 S=86C9 P=6748 LXI  SP,67EC
 -Z-EI A=CA B=000F D=88CA H=86C9 S=67EC P=674B LXI  H,8364
 -Z-EI A=CA B=000F D=88CA H=8364 S=67EC P=674E PUSH H
 -Z-EI A=CA B=000F D=88CA H=8364 S=67EA P=674F MOV  A,C
 -Z-EI A=0F B=000F D=88CA H=8364 S=67EA P=6750 CPI  33
 C-M-I A=0F B=000F D=88CA H=8364 S=67EA P=6752 JNC  675C
 C-M-I A=0F B=000F D=88CA H=8364 S=67EA P=6755 MOV  C,E
 C-M-I A=0F B=00CA D=88CA H=8364 S=67EA P=6756 LXI  H,67EC
 C-M-I A=0F B=00CA D=88CA H=67EC S=67EA P=6759 JMP  676E
 C-M-I A=0F B=00CA D=88CA H=67EC S=67EA P=676E MOV  E,A
 C-M-I A=0F B=00CA D=880F H=67EC S=67EA P=676F MVI  D,00
 C-M-I A=0F B=00CA D=000F H=67EC S=67EA P=6771 DAD  D
 --M-I A=0F B=00CA D=000F H=67FB S=67EA P=6772 DAD  D
 --M-I A=0F B=00CA D=000F H=680A S=67EA P=6773 MOV  E,M
 --M-I A=0F B=00CA D=0035 H=680A S=67EA P=6774 INX  H
 --M-I A=0F B=00CA D=0035 H=680B S=67EA P=6775 MOV  D,M
 --M-I A=0F B=00CA D=7F35 H=680B S=67EA P=6776 LHLD 85DB
 --M-I A=0F B=00CA D=7F35 H=88CA S=67EA P=6779 XCHG
 --M-I A=0F B=00CA D=88CA H=7F35 S=67EA P=677A PCHL
 --M-I A=0F B=00CA D=88CA H=7F35 S=67EA P=7F35 CALL 7212
 --M-I A=00 B=00CA D=000E H=88D8 S=67EA P=7F38 CALL 7DA5

=========================================================================================

... we eventually get here and loop forever:


=========================================================================================

 CZ-E- A=24 B=8A00 D=8AA6 H=8B24 S=67B2 P=8B26 JMP  861B     (jmp ?slDsk)
 CZ-E- A=24 B=8A00 D=8AA6 H=8B24 S=67B2 P=861B JMP  A2BC     (jmp seldsk)
 CZ-E- A=24 B=8A00 D=8AA6 H=8B24 S=67B2 P=A2BC MOV  A,C      (seldsk)
 CZ-E- A=00 B=8A00 D=8AA6 H=8B24 S=67B2 P=A2BD STA  A36A     (@ADRV)
 CZ-E- A=00 B=8A00 D=8AA6 H=8B24 S=67B2 P=A2C0 MOV  L,C
 CZ-E- A=00 B=8A00 D=8AA6 H=8B00 S=67B2 P=A2C1 MVI  H,00
 CZ-E- A=00 B=8A00 D=8AA6 H=0000 S=67B2 P=A2C3 DAD  H
 -Z-E- A=00 B=8A00 D=8AA6 H=0000 S=67B2 P=A2C4 LXI  B,8A7C   (@dtbl)
 -Z-E- A=00 B=8A7C D=8AA6 H=0000 S=67B2 P=A2C7 DAD  B
 -Z-E- A=00 B=8A7C D=8AA6 H=8A7C S=67B2 P=A2C8 MOV  A,M
 -Z-E- A=A6 B=8A7C D=8AA6 H=8A7C S=67B2 P=A2C9 INX  H
 -Z-E- A=A6 B=8A7C D=8AA6 H=8A7D S=67B2 P=A2CA MOV  H,M
 -Z-E- A=A6 B=8A7C D=8AA6 H=8A7D S=67B2 P=A2CB MOV  L,A
 -Z-E- A=A6 B=8A7C D=8AA6 H=8AA6 S=67B2 P=A2CC ORA  H
 --M-- A=AE B=8A7C D=8AA6 H=8AA6 S=67B2 P=A2CD RZ
 --M-- A=AE B=8A7C D=8AA6 H=8AA6 S=67B2 P=A2CE MOV  A,E
 --M-- A=A6 B=8A7C D=8AA6 H=8AA6 S=67B2 P=A2CF ANI  01
 -Z-E- A=00 B=8A7C D=8AA6 H=8AA6 S=67B2 P=A2D1 JNZ  A2EA     (not$first$select)
 -Z-E- A=00 B=8A7C D=8AA6 H=8AA6 S=67B2 P=A2D4 PUSH H
 -Z-E- A=00 B=8A7C D=8AA6 H=8AA6 S=67B0 P=A2D5 XCHG
 -Z-E- A=00 B=8A7C D=8AA6 H=8AA6 S=67B0 P=A2D6 LXI  H,FFFE
 -Z-E- A=00 B=8A7C D=8AA6 H=FFFE S=67B0 P=A2D9 DAD  D
 CZ-E- A=00 B=8A7C D=8AA6 H=8AA4 S=67B0 P=A2DA MOV  A,M
 CZ-E- A=00 B=8A7C D=8AA6 H=8AA4 S=67B0 P=A2DB STA  A36B     (@RDRV)
 CZ-E- A=00 B=8A7C D=8AA6 H=8AA4 S=67B0 P=A2DE LXI  H,FFFA
 CZ-E- A=00 B=8A7C D=8AA6 H=FFFA S=67B0 P=A2E1 DAD  D
 CZ-E- A=00 B=8A7C D=8AA6 H=8AA0 S=67B0 P=A2E2 MOV  A,M
 CZ-E- A=24 B=8A7C D=8AA6 H=8AA0 S=67B0 P=A2E3 INX  H
 CZ-E- A=24 B=8A7C D=8AA6 H=8AA1 S=67B0 P=A2E4 MOV  H,M
 CZ-E- A=24 B=8A7C D=8AA6 H=8BA1 S=67B0 P=A2E5 MOV  L,A     (HL=login)
 CZ-E- A=24 B=8A7C D=8AA6 H=8B24 S=67B0 P=A2E6 CALL 87B1    (ipchl)
 CZ-E- A=24 B=8A7C D=8AA6 H=8B24 S=67AE P=87B1 PCHL         (login=>8B24)
 CZ-E- A=24 B=8A7C D=8AA6 H=8B24 S=67AE P=8B24 MVI  C,00

...

 CZ-E- A=24 B=8A00 D=8AA6 H=8B24 S=67AE P=8B26 JMP  861B
 CZ-E- A=24 B=8A00 D=8AA6 H=8B24 S=67AE P=861B JMP  A2BC
...

=========================================================================================

The login function should not call seldsk. 'Cause the seldsk flow in bioskrn3 calls login near the end of the function.

So if login calls seldsk, it creates an endless loop.

Removed the selDsk call in the login function and just made login immediately return. Getting closer.

This is what I now get:


=========================================================================================

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8600  1E00
 BDOS3    SPR  6700  1F00

 25K TPA


CP/M Plus v3.0hd


BIOS ERR ON A: NO CCP.COM FILE

=========================================================================================

After removing the seldsk call in login:


=========================================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8600  1E00
 BDOS3    SPR  6700  1F00

 25K TPA

*01A9
#P8895
#G8600


CP/M Plus v3.0hd


01 PASS 8895
 -Z-E- A=00 B=0010 D=88CA H=0000 S=86C9 P=8895 MVI  C,0F     (OPEN)
*8897
#TW#100
 -Z-E- A=00 B=000F D=88CA H=0000 S=86C9 P=8897 JMP  0005     (jmp BDOS)
 -Z-E- A=00 B=000F D=88CA H=0000 S=86C9 P=0005 JMP  6706
 -Z-E- A=00 B=000F D=88CA H=0000 S=86C9 P=6706 XCHG
 -Z-E- A=00 B=000F D=0000 H=88CA S=86C9 P=6707 SHLD 85DB
 -Z-E- A=00 B=000F D=0000 H=88CA S=86C9 P=670A XCHG
 -Z-E- A=00 B=000F D=88CA H=0000 S=86C9 P=670B MOV  A,C
 -Z-E- A=0F B=000F D=88CA H=0000 S=86C9 P=670C STA  85DF
 -Z-E- A=0F B=000F D=88CA H=0000 S=86C9 P=670F CPI  0E
 ----I A=0F B=000F D=88CA H=0000 S=86C9 P=6711 JC   6737
 ----I A=0F B=000F D=88CA H=0000 S=86C9 P=6714 LXI  H,0000
 ----I A=0F B=000F D=88CA H=0000 S=86C9 P=6717 SHLD 83BD
 ----I A=0F B=000F D=88CA H=0000 S=86C9 P=671A LDA  85DA
 ----I A=00 B=000F D=88CA H=0000 S=86C9 P=671D STA  83C6
 ----I A=00 B=000F D=88CA H=0000 S=86C9 P=6720 LDA  85E6
 ----I A=01 B=000F D=88CA H=0000 S=86C9 P=6723 DCR  A
 -Z-EI A=00 B=000F D=88CA H=0000 S=86C9 P=6724 JZ   6737
 -Z-EI A=00 B=000F D=88CA H=0000 S=86C9 P=6737 MOV  A,E
 -Z-EI A=CA B=000F D=88CA H=0000 S=86C9 P=6738 STA  83C3
 -Z-EI A=CA B=000F D=88CA H=0000 S=86C9 P=673B LXI  H,0000
 -Z-EI A=CA B=000F D=88CA H=0000 S=86C9 P=673E SHLD 6E7A
 -Z-EI A=CA B=000F D=88CA H=0000 S=86C9 P=6741 SHLD 85DD
 -Z-EI A=CA B=000F D=88CA H=0000 S=86C9 P=6744 DAD  SP
 -Z-EI A=CA B=000F D=88CA H=86C9 S=86C9 P=6745 SHLD 69CB
 -Z-EI A=CA B=000F D=88CA H=86C9 S=86C9 P=6748 LXI  SP,67EC
 -Z-EI A=CA B=000F D=88CA H=86C9 S=67EC P=674B LXI  H,8364
 -Z-EI A=CA B=000F D=88CA H=8364 S=67EC P=674E PUSH H
 -Z-EI A=CA B=000F D=88CA H=8364 S=67EA P=674F MOV  A,C
 -Z-EI A=0F B=000F D=88CA H=8364 S=67EA P=6750 CPI  33
 C-M-I A=0F B=000F D=88CA H=8364 S=67EA P=6752 JNC  675C
 C-M-I A=0F B=000F D=88CA H=8364 S=67EA P=6755 MOV  C,E
 C-M-I A=0F B=00CA D=88CA H=8364 S=67EA P=6756 LXI  H,67EC
 C-M-I A=0F B=00CA D=88CA H=67EC S=67EA P=6759 JMP  676E
 C-M-I A=0F B=00CA D=88CA H=67EC S=67EA P=676E MOV  E,A
 C-M-I A=0F B=00CA D=880F H=67EC S=67EA P=676F MVI  D,00
 C-M-I A=0F B=00CA D=000F H=67EC S=67EA P=6771 DAD  D
 --M-I A=0F B=00CA D=000F H=67FB S=67EA P=6772 DAD  D
 --M-I A=0F B=00CA D=000F H=680A S=67EA P=6773 MOV  E,M
 --M-I A=0F B=00CA D=0035 H=680A S=67EA P=6774 INX  H
 --M-I A=0F B=00CA D=0035 H=680B S=67EA P=6775 MOV  D,M
 --M-I A=0F B=00CA D=7F35 H=680B S=67EA P=6776 LHLD 85DB
 --M-I A=0F B=00CA D=7F35 H=88CA S=67EA P=6779 XCHG
 --M-I A=0F B=00CA D=88CA H=7F35 S=67EA P=677A PCHL
 --M-I A=0F B=00CA D=88CA H=7F35 S=67EA P=7F35 CALL 7212
 --M-I A=00 B=00CA D=000E H=88D8 S=67EA P=7F38 CALL 7DA5
 -Z-E- A=00 B=0F00 D=83CD H=85F0 S=67EA P=7F3B CALL 7715
 ---E- A=72 B=0F00 D=83CD H=88D5 S=67EA P=7F3E LDA  85E0
 ---E- A=00 B=0F00 D=83CD H=88D5 S=67EA P=7F41 ORA  A
 -Z-E- A=00 B=0F00 D=83CD H=88D5 S=67EA P=7F42 JZ   7F4E
 -Z-E- A=00 B=0F00 D=83CD H=88D5 S=67EA P=7F4E CALL 77A1
 -Z-EI A=FF B=0002 D=88CA H=FFFF S=67EA P=7F51 CALL 7F7C
 -Z-EI A=00 B=0002 D=88CA H=85E2 S=67EA P=7F54 LXI  H,83E1
 -Z-EI A=00 B=0002 D=88CA H=83E1 S=67EA P=7F57 CMP  M=00
 -Z-EI A=00 B=0002 D=88CA H=83E1 S=67EA P=7F58 RZ
 -Z-EI A=00 B=0002 D=88CA H=83E1 S=67EC P=8364 LDA  85DD
 -Z-EI A=FF B=0002 D=88CA H=83E1 S=67EC P=8367 ORA  A
 --ME- A=FF B=0002 D=88CA H=83E1 S=67EC P=8368 JZ   837B
 --ME- A=FF B=0002 D=88CA H=83E1 S=67EC P=836B LHLD 85DB
 --ME- A=FF B=0002 D=88CA H=88CA S=67EC P=836E LDA  83E3
 --ME- A=01 B=0002 D=88CA H=88CA S=67EC P=8371 MOV  M,A
 --ME- A=01 B=0002 D=88CA H=88CA S=67EC P=8372 LXI  D,0008
 --ME- A=01 B=0002 D=0008 H=88CA S=67EC P=8375 DAD  D
 --ME- A=01 B=0002 D=0008 H=88D2 S=67EC P=8376 LDA  83D7
 --ME- A=00 B=0002 D=0008 H=88D2 S=67EC P=8379 ORA  M=20
 ----- A=20 B=0002 D=0008 H=88D2 S=67EC P=837A MOV  M,A
 ----- A=20 B=0002 D=0008 H=88D2 S=67EC P=837B LHLD 69CB
 ----- A=20 B=0002 D=0008 H=86C9 S=67EC P=837E SPHL
 ----- A=20 B=0002 D=0008 H=86C9 S=86C9 P=837F LHLD 6E7A
 ----- A=20 B=0002 D=0008 H=00FF S=86C9 P=8382 MOV  A,L
 ----- A=FF B=0002 D=0008 H=00FF S=86C9 P=8383 MOV  B,H
 ----- A=FF B=0002 D=0008 H=00FF S=86C9 P=8384 RET
 ----- A=FF B=0002 D=0008 H=00FF S=86CB P=8870 INR  A        <== test for zero after open()
 -Z-EI A=00 B=0002 D=0008 H=00FF S=86CB P=8871 CALL 87B2
BIOS ERR ON A: NO CCP.COM FILE
 -Z-E- A=00 B=0001 D=0008 H=88C9 S=86CB P=8879 CALL 8609
 -Z-E- A=0D B=0001 D=8939 H=8A02 S=86CB P=887C ??=  18
 -Z-E- A=0D B=0001 D=8939 H=8A02 S=86CB P=887D JPO  0011
 -Z-E- A=0D B=0001 D=8939 H=8A02 S=86CB P=8880 LXI  B,9ACD
*8883

=========================================================================================

Rebuilt BIOS3 without IDE3 and DRV2 and DRV3 entries in drive table:


=========================================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#L8E00
  8E00  JMP  A88B       (boot)
  8E03  JMP  8E6C	(wboot)
  8E06  JMP  8F72	(const)
  8E09  JMP  8F8D	(conin)
  8E0C  JMP  8ED5	(conout)
  8E0F  JMP  8EE1	(list)
  8E12  JMP  8EDB	(auxout)
  8E15  JMP  8F93	(auxin)
  8E18  JMP  A8F9	(home)
  8E1B  JMP  A8CA	(seldsk)
  8E1E  JMP  A8FC	(settrk)
  8E21  JMP  A902	(setsec)
  8E24  JMP  A908	(setdma)
  8E27  JMP  A91F	(read)
  8E2A  JMP  A935	(write)
  8E2D  JMP  8F0D	(listst)
  8E30  JMP  A914	(sectrn)
  8E33  JMP  8F01	(conost)
  8E36  JMP  8F78	(auxist)
  8E39  JMP  8F07	(auxost)
  8E3C  JMP  8ECD	(devtbl)
  8E3F  JMP  9104	(devini)
  8E42  JMP  8ED1	(drvtbl)
  8E45  JMP  A956	(multio)
  8E48  JMP  A95A	(flush)
  8E4B  JMP  9282	(move)
  8E4E  JMP  9094	(time)
  8E51  JMP  9020	(selmem)
  8E54  JMP  A910	(setbnk)
  8E57  JMP  9281	(xmove)
  8E5A  JMP  0000	(userf)
  8E5D  JMP  0000	(reserv1)
  8E60  JMP  0000	(reserv2)
#PA88B
#G8E00

...

 --ME- A=11 B=00FF D=9109 H=91D1 S=8ECD P=A899 CALL 9037

CP/M Plus v3.0hd
                                                             (ret from init)
 -Z-E- A=00 B=00FF D=9109 H=9103 S=8ECD P=A89C LXI  B,1000
 -Z-E- A=00 B=1000 D=9109 H=9103 S=8ECD P=A89F LXI  H,9288   (lxi h, @dtbl)
 -Z-E- A=00 B=1000 D=9109 H=9288 S=8ECD P=A8A2 PUSH B
 -Z-E- A=00 B=1000 D=9109 H=9288 S=8ECB P=A8A3 MOV  E,M
 -Z-E- A=00 B=1000 D=91B2 H=9288 S=8ECB P=A8A4 INX  H
 -Z-E- A=00 B=1000 D=91B2 H=9289 S=8ECB P=A8A5 MOV  D,M
 -Z-E- A=00 B=1000 D=92B2 H=9289 S=8ECB P=A8A6 INX  H
 -Z-E- A=00 B=1000 D=92B2 H=928A S=8ECB P=A8A7 MOV  A,E      (d0->928A)
 -Z-E- A=B2 B=1000 D=92B2 H=928A S=8ECB P=A8A8 ORA  D
 --ME- A=B2 B=1000 D=92B2 H=928A S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 --ME- A=B2 B=1000 D=92B2 H=928A S=8ECB P=A8AC PUSH H
 --ME- A=B2 B=1000 D=92B2 H=928A S=8EC9 P=A8AD XCHG
 --ME- A=B2 B=1000 D=928A H=92B2 S=8EC9 P=A8AE DCX  H
 --ME- A=B2 B=1000 D=928A H=92B1 S=8EC9 P=A8AF DCX  H
 --ME- A=B2 B=1000 D=928A H=92B0 S=8EC9 P=A8B0 MOV  A,M
 --ME- A=00 B=1000 D=928A H=92B0 S=8EC9 P=A8B1 STA  A979     (@RDRV)
 --ME- A=00 B=1000 D=928A H=92B0 S=8EC9 P=A8B4 MOV  A,C
 --ME- A=00 B=1000 D=928A H=92B0 S=8EC9 P=A8B5 STA  A978     (@ADRV)
 --ME- A=00 B=1000 D=928A H=92B0 S=8EC9 P=A8B8 DCX  H
 --ME- A=00 B=1000 D=928A H=92AF S=8EC9 P=A8B9 MOV  D,M
 --ME- A=00 B=1000 D=938A H=92AF S=8EC9 P=A8BA DCX  H
 --ME- A=00 B=1000 D=938A H=92AE S=8EC9 P=A8BB MOV  E,M
 --ME- A=00 B=1000 D=932F H=92AE S=8EC9 P=A8BC XCHG
 --ME- A=00 B=1000 D=92AE H=932F S=8EC9 P=A8BD CALL 8FB1     (ipchl)
 --ME- A=00 B=1000 D=92AE H=932F S=8EC7 P=8FB1 PCHL          (call drive 0 init) 
 --ME- A=00 B=1000 D=92AE H=932F S=8EC7 P=932F RET           (...which is a null function)
 --ME- A=00 B=1000 D=92AE H=932F S=8EC9 P=A8C0 POP  H        (get d0->928A in HL)
 --ME- A=00 B=1000 D=92AE H=928A S=8ECB P=A8C1 POP  B        (recover drive# as counter)
 --ME- A=00 B=1000 D=92AE H=928A S=8ECD P=A8C2 INR  C
 ----- A=00 B=1001 D=92AE H=928A S=8ECD P=A8C3 DCR  B
 ---E- A=00 B=0F01 D=92AE H=928A S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ---E- A=00 B=0F01 D=92AE H=928A S=8ECD P=A8A2 PUSH B
 ---E- A=00 B=0F01 D=92AE H=928A S=8ECB P=A8A3 MOV  E,M
 ---E- A=00 B=0F01 D=92D5 H=928A S=8ECB P=A8A4 INX  H
 ---E- A=00 B=0F01 D=92D5 H=928B S=8ECB P=A8A5 MOV  D,M
 ---E- A=00 B=0F01 D=92D5 H=928B S=8ECB P=A8A6 INX  H
 ---E- A=00 B=0F01 D=92D5 H=928C S=8ECB P=A8A7 MOV  A,E
 ---E- A=D5 B=0F01 D=92D5 H=928C S=8ECB P=A8A8 ORA  D
 --ME- A=D7 B=0F01 D=92D5 H=928C S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 --ME- A=D7 B=0F01 D=92D5 H=928C S=8ECB P=A8AC PUSH H
 --ME- A=D7 B=0F01 D=92D5 H=928C S=8EC9 P=A8AD XCHG
 --ME- A=D7 B=0F01 D=928C H=92D5 S=8EC9 P=A8AE DCX  H
 --ME- A=D7 B=0F01 D=928C H=92D4 S=8EC9 P=A8AF DCX  H
 --ME- A=D7 B=0F01 D=928C H=92D3 S=8EC9 P=A8B0 MOV  A,M
 --ME- A=01 B=0F01 D=928C H=92D3 S=8EC9 P=A8B1 STA  A979     (@RDRV)
 --ME- A=01 B=0F01 D=928C H=92D3 S=8EC9 P=A8B4 MOV  A,C
 --ME- A=01 B=0F01 D=928C H=92D3 S=8EC9 P=A8B5 STA  A978     (@ADRV)
 --ME- A=01 B=0F01 D=928C H=92D3 S=8EC9 P=A8B8 DCX  H
 --ME- A=01 B=0F01 D=928C H=92D2 S=8EC9 P=A8B9 MOV  D,M
 --ME- A=01 B=0F01 D=938C H=92D2 S=8EC9 P=A8BA DCX  H
 --ME- A=01 B=0F01 D=938C H=92D1 S=8EC9 P=A8BB MOV  E,M
 --ME- A=01 B=0F01 D=932F H=92D1 S=8EC9 P=A8BC XCHG
 --ME- A=01 B=0F01 D=92D1 H=932F S=8EC9 P=A8BD CALL 8FB1     (ipchl)
 --ME- A=01 B=0F01 D=92D1 H=932F S=8EC7 P=8FB1 PCHL          (call drive 1 init)
 --ME- A=01 B=0F01 D=92D1 H=932F S=8EC7 P=932F RET           (...which is a null function)
 --ME- A=01 B=0F01 D=92D1 H=932F S=8EC9 P=A8C0 POP  H        (get d0->928C in HL)
 --ME- A=01 B=0F01 D=92D1 H=928C S=8ECB P=A8C1 POP  B        (recover drive# as counter)
 --ME- A=01 B=0F01 D=92D1 H=928C S=8ECD P=A8C2 INR  C
 ----- A=01 B=0F02 D=92D1 H=928C S=8ECD P=A8C3 DCR  B
 ----I A=01 B=0E02 D=92D1 H=928C S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ----I A=01 B=0E02 D=92D1 H=928C S=8ECD P=A8A2 PUSH B
 ----I A=01 B=0E02 D=92D1 H=928C S=8ECB P=A8A3 MOV  E,M
 ----I A=01 B=0E02 D=9200 H=928C S=8ECB P=A8A4 INX  H
 ----I A=01 B=0E02 D=9200 H=928D S=8ECB P=A8A5 MOV  D,M
 ----I A=01 B=0E02 D=0000 H=928D S=8ECB P=A8A6 INX  H
 ----I A=01 B=0E02 D=0000 H=928E S=8ECB P=A8A7 MOV  A,E
 ----I A=00 B=0E02 D=0000 H=928E S=8ECB P=A8A8 ORA  D
 -Z-E- A=00 B=0E02 D=0000 H=928E S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 -Z-E- A=00 B=0E02 D=0000 H=928E S=8ECB P=A8C1 POP  B
 -Z-E- A=00 B=0E02 D=0000 H=928E S=8ECD P=A8C2 INR  C
 ---E- A=00 B=0E03 D=0000 H=928E S=8ECD P=A8C3 DCR  B
 ----I A=00 B=0D03 D=0000 H=928E S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ----I A=00 B=0D03 D=0000 H=928E S=8ECD P=A8A2 PUSH B
 ----I A=00 B=0D03 D=0000 H=928E S=8ECB P=A8A3 MOV  E,M
 ----I A=00 B=0D03 D=0000 H=928E S=8ECB P=A8A4 INX  H
 ----I A=00 B=0D03 D=0000 H=928F S=8ECB P=A8A5 MOV  D,M
 ----I A=00 B=0D03 D=0000 H=928F S=8ECB P=A8A6 INX  H
 ----I A=00 B=0D03 D=0000 H=9290 S=8ECB P=A8A7 MOV  A,E
 ----I A=00 B=0D03 D=0000 H=9290 S=8ECB P=A8A8 ORA  D
 -Z-E- A=00 B=0D03 D=0000 H=9290 S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 -Z-E- A=00 B=0D03 D=0000 H=9290 S=8ECB P=A8C1 POP  B
 -Z-E- A=00 B=0D03 D=0000 H=9290 S=8ECD P=A8C2 INR  C
 ----- A=00 B=0D04 D=0000 H=9290 S=8ECD P=A8C3 DCR  B
 ---EI A=00 B=0C04 D=0000 H=9290 S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ---EI A=00 B=0C04 D=0000 H=9290 S=8ECD P=A8A2 PUSH B
 ---EI A=00 B=0C04 D=0000 H=9290 S=8ECB P=A8A3 MOV  E,M
 ---EI A=00 B=0C04 D=0000 H=9290 S=8ECB P=A8A4 INX  H
 ---EI A=00 B=0C04 D=0000 H=9291 S=8ECB P=A8A5 MOV  D,M
 ---EI A=00 B=0C04 D=0000 H=9291 S=8ECB P=A8A6 INX  H
 ---EI A=00 B=0C04 D=0000 H=9292 S=8ECB P=A8A7 MOV  A,E
 ---EI A=00 B=0C04 D=0000 H=9292 S=8ECB P=A8A8 ORA  D
 -Z-E- A=00 B=0C04 D=0000 H=9292 S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 -Z-E- A=00 B=0C04 D=0000 H=9292 S=8ECB P=A8C1 POP  B
 -Z-E- A=00 B=0C04 D=0000 H=9292 S=8ECD P=A8C2 INR  C
 ---E- A=00 B=0C05 D=0000 H=9292 S=8ECD P=A8C3 DCR  B
 ----I A=00 B=0B05 D=0000 H=9292 S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ----I A=00 B=0B05 D=0000 H=9292 S=8ECD P=A8A2 PUSH B
 ----I A=00 B=0B05 D=0000 H=9292 S=8ECB P=A8A3 MOV  E,M
 ----I A=00 B=0B05 D=0000 H=9292 S=8ECB P=A8A4 INX  H
 ----I A=00 B=0B05 D=0000 H=9293 S=8ECB P=A8A5 MOV  D,M
 ----I A=00 B=0B05 D=0000 H=9293 S=8ECB P=A8A6 INX  H
 ----I A=00 B=0B05 D=0000 H=9294 S=8ECB P=A8A7 MOV  A,E
 ----I A=00 B=0B05 D=0000 H=9294 S=8ECB P=A8A8 ORA  D
 -Z-E- A=00 B=0B05 D=0000 H=9294 S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 -Z-E- A=00 B=0B05 D=0000 H=9294 S=8ECB P=A8C1 POP  B
 -Z-E- A=00 B=0B05 D=0000 H=9294 S=8ECD P=A8C2 INR  C
 ---E- A=00 B=0B06 D=0000 H=9294 S=8ECD P=A8C3 DCR  B
 ---EI A=00 B=0A06 D=0000 H=9294 S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ---EI A=00 B=0A06 D=0000 H=9294 S=8ECD P=A8A2 PUSH B
 ---EI A=00 B=0A06 D=0000 H=9294 S=8ECB P=A8A3 MOV  E,M
 ---EI A=00 B=0A06 D=0000 H=9294 S=8ECB P=A8A4 INX  H
 ---EI A=00 B=0A06 D=0000 H=9295 S=8ECB P=A8A5 MOV  D,M
 ---EI A=00 B=0A06 D=0000 H=9295 S=8ECB P=A8A6 INX  H
 ---EI A=00 B=0A06 D=0000 H=9296 S=8ECB P=A8A7 MOV  A,E
 ---EI A=00 B=0A06 D=0000 H=9296 S=8ECB P=A8A8 ORA  D
 -Z-E- A=00 B=0A06 D=0000 H=9296 S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 -Z-E- A=00 B=0A06 D=0000 H=9296 S=8ECB P=A8C1 POP  B
 -Z-E- A=00 B=0A06 D=0000 H=9296 S=8ECD P=A8C2 INR  C
 ----- A=00 B=0A07 D=0000 H=9296 S=8ECD P=A8C3 DCR  B
 ---EI A=00 B=0907 D=0000 H=9296 S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ---EI A=00 B=0907 D=0000 H=9296 S=8ECD P=A8A2 PUSH B
 ---EI A=00 B=0907 D=0000 H=9296 S=8ECB P=A8A3 MOV  E,M
 ---EI A=00 B=0907 D=0000 H=9296 S=8ECB P=A8A4 INX  H
 ---EI A=00 B=0907 D=0000 H=9297 S=8ECB P=A8A5 MOV  D,M
 ---EI A=00 B=0907 D=0000 H=9297 S=8ECB P=A8A6 INX  H
 ---EI A=00 B=0907 D=0000 H=9298 S=8ECB P=A8A7 MOV  A,E
 ---EI A=00 B=0907 D=0000 H=9298 S=8ECB P=A8A8 ORA  D
 -Z-E- A=00 B=0907 D=0000 H=9298 S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 -Z-E- A=00 B=0907 D=0000 H=9298 S=8ECB P=A8C1 POP  B
 -Z-E- A=00 B=0907 D=0000 H=9298 S=8ECD P=A8C2 INR  C
 ----- A=00 B=0908 D=0000 H=9298 S=8ECD P=A8C3 DCR  B
 ----I A=00 B=0808 D=0000 H=9298 S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ----I A=00 B=0808 D=0000 H=9298 S=8ECD P=A8A2 PUSH B
 ----I A=00 B=0808 D=0000 H=9298 S=8ECB P=A8A3 MOV  E,M
 ----I A=00 B=0808 D=0000 H=9298 S=8ECB P=A8A4 INX  H
 ----I A=00 B=0808 D=0000 H=9299 S=8ECB P=A8A5 MOV  D,M
 ----I A=00 B=0808 D=0000 H=9299 S=8ECB P=A8A6 INX  H
 ----I A=00 B=0808 D=0000 H=929A S=8ECB P=A8A7 MOV  A,E
 ----I A=00 B=0808 D=0000 H=929A S=8ECB P=A8A8 ORA  D
 -Z-E- A=00 B=0808 D=0000 H=929A S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 -Z-E- A=00 B=0808 D=0000 H=929A S=8ECB P=A8C1 POP  B
 -Z-E- A=00 B=0808 D=0000 H=929A S=8ECD P=A8C2 INR  C
 ---E- A=00 B=0809 D=0000 H=929A S=8ECD P=A8C3 DCR  B
 ----I A=00 B=0709 D=0000 H=929A S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ----I A=00 B=0709 D=0000 H=929A S=8ECD P=A8A2 PUSH B
 ----I A=00 B=0709 D=0000 H=929A S=8ECB P=A8A3 MOV  E,M
 ----I A=00 B=0709 D=0000 H=929A S=8ECB P=A8A4 INX  H
 ----I A=00 B=0709 D=0000 H=929B S=8ECB P=A8A5 MOV  D,M
 ----I A=00 B=0709 D=0000 H=929B S=8ECB P=A8A6 INX  H
 ----I A=00 B=0709 D=0000 H=929C S=8ECB P=A8A7 MOV  A,E
 ----I A=00 B=0709 D=0000 H=929C S=8ECB P=A8A8 ORA  D
 -Z-E- A=00 B=0709 D=0000 H=929C S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 -Z-E- A=00 B=0709 D=0000 H=929C S=8ECB P=A8C1 POP  B
 -Z-E- A=00 B=0709 D=0000 H=929C S=8ECD P=A8C2 INR  C
 ---E- A=00 B=070A D=0000 H=929C S=8ECD P=A8C3 DCR  B
 ---EI A=00 B=060A D=0000 H=929C S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ---EI A=00 B=060A D=0000 H=929C S=8ECD P=A8A2 PUSH B
 ---EI A=00 B=060A D=0000 H=929C S=8ECB P=A8A3 MOV  E,M
 ---EI A=00 B=060A D=0000 H=929C S=8ECB P=A8A4 INX  H
 ---EI A=00 B=060A D=0000 H=929D S=8ECB P=A8A5 MOV  D,M
 ---EI A=00 B=060A D=0000 H=929D S=8ECB P=A8A6 INX  H
 ---EI A=00 B=060A D=0000 H=929E S=8ECB P=A8A7 MOV  A,E
 ---EI A=00 B=060A D=0000 H=929E S=8ECB P=A8A8 ORA  D
 -Z-E- A=00 B=060A D=0000 H=929E S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 -Z-E- A=00 B=060A D=0000 H=929E S=8ECB P=A8C1 POP  B
 -Z-E- A=00 B=060A D=0000 H=929E S=8ECD P=A8C2 INR  C
 ----- A=00 B=060B D=0000 H=929E S=8ECD P=A8C3 DCR  B
 ---EI A=00 B=050B D=0000 H=929E S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ---EI A=00 B=050B D=0000 H=929E S=8ECD P=A8A2 PUSH B
 ---EI A=00 B=050B D=0000 H=929E S=8ECB P=A8A3 MOV  E,M
 ---EI A=00 B=050B D=0000 H=929E S=8ECB P=A8A4 INX  H
 ---EI A=00 B=050B D=0000 H=929F S=8ECB P=A8A5 MOV  D,M
 ---EI A=00 B=050B D=0000 H=929F S=8ECB P=A8A6 INX  H
 ---EI A=00 B=050B D=0000 H=92A0 S=8ECB P=A8A7 MOV  A,E
 ---EI A=00 B=050B D=0000 H=92A0 S=8ECB P=A8A8 ORA  D
 -Z-E- A=00 B=050B D=0000 H=92A0 S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 -Z-E- A=00 B=050B D=0000 H=92A0 S=8ECB P=A8C1 POP  B
 -Z-E- A=00 B=050B D=0000 H=92A0 S=8ECD P=A8C2 INR  C
 ---E- A=00 B=050C D=0000 H=92A0 S=8ECD P=A8C3 DCR  B
 ----I A=00 B=040C D=0000 H=92A0 S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ----I A=00 B=040C D=0000 H=92A0 S=8ECD P=A8A2 PUSH B
 ----I A=00 B=040C D=0000 H=92A0 S=8ECB P=A8A3 MOV  E,M
 ----I A=00 B=040C D=0000 H=92A0 S=8ECB P=A8A4 INX  H
 ----I A=00 B=040C D=0000 H=92A1 S=8ECB P=A8A5 MOV  D,M
 ----I A=00 B=040C D=0000 H=92A1 S=8ECB P=A8A6 INX  H
 ----I A=00 B=040C D=0000 H=92A2 S=8ECB P=A8A7 MOV  A,E
 ----I A=00 B=040C D=0000 H=92A2 S=8ECB P=A8A8 ORA  D
 -Z-E- A=00 B=040C D=0000 H=92A2 S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 -Z-E- A=00 B=040C D=0000 H=92A2 S=8ECB P=A8C1 POP  B
 -Z-E- A=00 B=040C D=0000 H=92A2 S=8ECD P=A8C2 INR  C
 ----- A=00 B=040D D=0000 H=92A2 S=8ECD P=A8C3 DCR  B
 ---EI A=00 B=030D D=0000 H=92A2 S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ---EI A=00 B=030D D=0000 H=92A2 S=8ECD P=A8A2 PUSH B
 ---EI A=00 B=030D D=0000 H=92A2 S=8ECB P=A8A3 MOV  E,M
 ---EI A=00 B=030D D=0000 H=92A2 S=8ECB P=A8A4 INX  H
 ---EI A=00 B=030D D=0000 H=92A3 S=8ECB P=A8A5 MOV  D,M
 ---EI A=00 B=030D D=0000 H=92A3 S=8ECB P=A8A6 INX  H
 ---EI A=00 B=030D D=0000 H=92A4 S=8ECB P=A8A7 MOV  A,E
 ---EI A=00 B=030D D=0000 H=92A4 S=8ECB P=A8A8 ORA  D
 -Z-E- A=00 B=030D D=0000 H=92A4 S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 -Z-E- A=00 B=030D D=0000 H=92A4 S=8ECB P=A8C1 POP  B
 -Z-E- A=00 B=030D D=0000 H=92A4 S=8ECD P=A8C2 INR  C
 ----- A=00 B=030E D=0000 H=92A4 S=8ECD P=A8C3 DCR  B
 ----I A=00 B=020E D=0000 H=92A4 S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ----I A=00 B=020E D=0000 H=92A4 S=8ECD P=A8A2 PUSH B
 ----I A=00 B=020E D=0000 H=92A4 S=8ECB P=A8A3 MOV  E,M
 ----I A=00 B=020E D=0000 H=92A4 S=8ECB P=A8A4 INX  H
 ----I A=00 B=020E D=0000 H=92A5 S=8ECB P=A8A5 MOV  D,M
 ----I A=00 B=020E D=0000 H=92A5 S=8ECB P=A8A6 INX  H
 ----I A=00 B=020E D=0000 H=92A6 S=8ECB P=A8A7 MOV  A,E
 ----I A=00 B=020E D=0000 H=92A6 S=8ECB P=A8A8 ORA  D
 -Z-E- A=00 B=020E D=0000 H=92A6 S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 -Z-E- A=00 B=020E D=0000 H=92A6 S=8ECB P=A8C1 POP  B
 -Z-E- A=00 B=020E D=0000 H=92A6 S=8ECD P=A8C2 INR  C
 ---E- A=00 B=020F D=0000 H=92A6 S=8ECD P=A8C3 DCR  B
 ----I A=00 B=010F D=0000 H=92A6 S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 ----I A=00 B=010F D=0000 H=92A6 S=8ECD P=A8A2 PUSH B
 ----I A=00 B=010F D=0000 H=92A6 S=8ECB P=A8A3 MOV  E,M
 ----I A=00 B=010F D=0000 H=92A6 S=8ECB P=A8A4 INX  H
 ----I A=00 B=010F D=0000 H=92A7 S=8ECB P=A8A5 MOV  D,M
 ----I A=00 B=010F D=0000 H=92A7 S=8ECB P=A8A6 INX  H
 ----I A=00 B=010F D=0000 H=92A8 S=8ECB P=A8A7 MOV  A,E
 ----I A=00 B=010F D=0000 H=92A8 S=8ECB P=A8A8 ORA  D
 -Z-E- A=00 B=010F D=0000 H=92A8 S=8ECB P=A8A9 JZ   A8C1     (d$init$next)
 -Z-E- A=00 B=010F D=0000 H=92A8 S=8ECB P=A8C1 POP  B
 -Z-E- A=00 B=010F D=0000 H=92A8 S=8ECD P=A8C2 INR  C
 ----I A=00 B=0110 D=0000 H=92A8 S=8ECD P=A8C3 DCR  B
 -Z-EI A=00 B=0010 D=0000 H=92A8 S=8ECD P=A8C4 JNZ  A8A2     (d$init$loop)
 -Z-EI A=00 B=0010 D=0000 H=92A8 S=8ECD P=A8C7 JMP  8E63     (jmp boot$1)
 -Z-EI A=00 B=0010 D=0000 H=92A8 S=8ECD P=8E63 CALL 8E78     (call set$jumps)
 -Z-EI A=00 B=0010 D=0000 H=92A8 S=8ECB P=8E78 MVI  A,C3     (jmp instruction = C3)
 -Z-EI A=C3 B=0010 D=0000 H=92A8 S=8ECB P=8E7A STA  0000     (store jmp in 0000)
 -Z-EI A=C3 B=0010 D=0000 H=92A8 S=8ECB P=8E7D STA  0005     (...and in 0005 for BDOS)
 -Z-EI A=C3 B=0010 D=0000 H=92A8 S=8ECB P=8E80 LXI  H,8E03   (?wboot)
 -Z-EI A=C3 B=0010 D=0000 H=8E03 S=8ECB P=8E83 SHLD 0001
 -Z-EI A=C3 B=0010 D=0000 H=8E03 S=8ECB P=8E86 LHLD 8DFE     (@MXTPA)
 -Z-EI A=C3 B=0010 D=0000 H=6F06 S=8ECB P=8E89 SHLD 0006     (put @MXTPA after the BDOS jump instruction)
 -Z-EI A=C3 B=0010 D=0000 H=6F06 S=8ECB P=8E8C RET           (ret from set$jumps)
 -Z-EI A=C3 B=0010 D=0000 H=6F06 S=8ECD P=8E66 CALL 9060     (call ?ldccp)
 -Z-EI A=C3 B=0010 D=0000 H=6F06 S=8ECB P=9060 XRA  A        (zero accumulator)
 -Z-E- A=00 B=0010 D=0000 H=6F06 S=8ECB P=9061 STA  90D9     (store in CCP$FCB+15  90D9)
 -Z-E- A=00 B=0010 D=0000 H=6F06 S=8ECB P=9064 LXI  H,0000   (zero HL)
 -Z-E- A=00 B=0010 D=0000 H=0000 S=8ECB P=9067 SHLD 90EA     (store in FCB$NR      90EA)
 -Z-E- A=00 B=0010 D=0000 H=0000 S=8ECB P=906A LXI  D,90CA   (put CCP$FCB in DE    90CA)
 -Z-E- A=00 B=0010 D=90CA H=0000 S=8ECB P=906D CALL 9095     (open)

...

(just before calling read function in FDC3)

 ----I A=01 B=9601 D=0000 H=96A5 S=6FD4 P=7764 CALL 8E27
 ----I A=01 B=9601 D=0000 H=96A5 S=6FD2 P=8E27 JMP  A91F

...

=========================================================================================

Here is a partial run with passpoint at the read function call:


=========================================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#PA91F
#G8E00


CP/M Plus v3.0hd


01 PASS A91F
 ----I A=01 B=9601 D=0000 H=96A5 S=6FD2 P=A91F LHLD A978     (@ADRV)
 ----I A=01 B=9601 D=0000 H=0000 S=6FD2 P=A922 MVI  H,00
 ----I A=01 B=9601 D=0000 H=0000 S=6FD2 P=A924 DAD  H
 ----I A=01 B=9601 D=0000 H=0000 S=6FD2 P=A925 LXI  D,9288   (@DTBL)
 ----I A=01 B=9601 D=9288 H=0000 S=6FD2 P=A928 DAD  D
 ----I A=01 B=9601 D=9288 H=9288 S=6FD2 P=A929 MOV  A,M
 ----I A=B2 B=9601 D=9288 H=9288 S=6FD2 P=A92A INX  H
 ----I A=B2 B=9601 D=9288 H=9289 S=6FD2 P=A92B MOV  H,M
 ----I A=B2 B=9601 D=9288 H=9289 S=6FD2 P=A92C MOV  L,A
 ----I A=B2 B=9601 D=9288 H=92B2 S=6FD2 P=A92D PUSH H
 ----I A=B2 B=9601 D=9288 H=92B2 S=6FD0 P=A92E LXI  D,FFF8
 ----I A=B2 B=9601 D=FFF8 H=92B2 S=6FD0 P=A931 DAD  D
 C---I A=B2 B=9601 D=FFF8 H=92AA S=6FD0 P=A932 JMP  A948     (rw$common)
 C---I A=B2 B=9601 D=FFF8 H=92AA S=6FD0 P=A948 MOV  A,M
 C---I A=31 B=9601 D=FFF8 H=92AA S=6FD0 P=A949 INX  H
 C---I A=31 B=9601 D=FFF8 H=92AB S=6FD0 P=A94A MOV  H,M
 C---I A=31 B=9601 D=FFF8 H=93AB S=6FD0 P=A94B MOV  L,A
 C---I A=31 B=9601 D=FFF8 H=9331 S=6FD0 P=A94C POP  D        (HL<=address of read driver code 9331)
 C---I A=31 B=9601 D=92B2 H=9331 S=6FD2 P=A94D DCX  D
 C---I A=31 B=9601 D=92B1 H=9331 S=6FD2 P=A94E DCX  D
 C---I A=31 B=9601 D=92B0 H=9331 S=6FD2 P=A94F LDAX D
 C---I A=00 B=9601 D=92B0 H=9331 S=6FD2 P=A950 STA  A979
 C---I A=00 B=9601 D=92B0 H=9331 S=6FD2 P=A953 INX  D
 C---I A=00 B=9601 D=92B1 H=9331 S=6FD2 P=A954 INX  D
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=A955 PCHL          (jump to fdRead within FDC3)
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446     (call ckFlush)
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD0 P=9446 LDA  969F     (bfDirty)
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD0 P=9449 ORA  A
 -Z-E- A=00 B=9601 D=92B2 H=9331 S=6FD0 P=944A RZ            (done with ckFlush)
 -Z-E- A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9334 EI
 -Z-E- A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9335 CALL 93DF     (readTrk)  
 -Z-E- A=00 B=9601 D=92B2 H=9331 S=6FD0 P=93DF LHLD 96A0     (bfDrive)
 -Z-E- A=00 B=9601 D=92B2 H=FFFF S=6FD0 P=93E2 LDA  A979     (@RDRV)
 -Z-E- A=00 B=9601 D=92B2 H=FFFF S=6FD0 P=93E5 CMP  L
 C---- A=00 B=9601 D=92B2 H=FFFF S=6FD0 P=93E6 JNZ  93EE     (rtNew)
 C---- A=00 B=9601 D=92B2 H=FFFF S=6FD0 P=93EE MVI  A,FF
 C---- A=FF B=9601 D=92B2 H=FFFF S=6FD0 P=93F0 STA  96A0     (bfDrive)
 C---- A=FF B=9601 D=92B2 H=FFFF S=6FD0 P=93F3 CALL 94D0     (dSelDrv)
 C---- A=FF B=9601 D=92B2 H=FFFF S=6FCE P=94D0 LXI  H,9699   (curDrv)
 C---- A=FF B=9601 D=92B2 H=9699 S=6FCE P=94D3 MOV  E,M
 C---- A=FF B=9601 D=9200 H=9699 S=6FCE P=94D4 LDA  A979     (@RDRV)
 C---- A=00 B=9601 D=9200 H=9699 S=6FCE P=94D7 MOV  C,A
 C---- A=00 B=9600 D=9200 H=9699 S=6FCE P=94D8 CMP  E
 -Z-EI A=00 B=9600 D=9200 H=9699 S=6FCE P=94D9 JNZ  94E6     (newDrv)
 -Z-EI A=00 B=9600 D=9200 H=9699 S=6FCE P=94DC IN   08       (in DRVSTAT)
 -Z-EI A=C5 B=9600 D=9200 H=9699 S=6FCE P=94DE ANI  08
 -Z-EI A=00 B=9600 D=9200 H=9699 S=6FCE P=94E0 JZ   951B     (dSelExt - selected drive == current drive)
 -Z-EI A=00 B=9600 D=9200 H=9699 S=6FCE P=951B MVI  A,04     (load head)
 -Z-EI A=04 B=9600 D=9200 H=9699 S=6FCE P=951D OUT  09       (out DRVCMD)
 -Z-EI A=04 B=9600 D=9200 H=9699 S=6FCE P=951F RET           (from dSelDrv, back to rtNew)
 -Z-EI A=04 B=9600 D=9200 H=9699 S=6FD0 P=93F6 RNZ
 -Z-EI A=04 B=9600 D=9200 H=9699 S=6FD0 P=93F7 MVI  A,02     (init restore/seek attempt counter)
 -Z-EI A=02 B=9600 D=9200 H=9699 S=6FD0 P=93F9 STA  96A4     (skRetry)
 -Z-EI A=02 B=9600 D=9200 H=9699 S=6FD0 P=93FC CALL 9520     (dSeek)
 -Z-EI A=02 B=9600 D=9200 H=9699 S=6FCE P=9520 DI
 -Z-EI A=02 B=9600 D=9200 H=9699 S=6FCE P=9521 LDA  969A     (curTrk)
 -Z-EI A=FF B=9600 D=9200 H=9699 S=6FCE P=9524 CPI  FF       (UNDEF)
 -Z-EI A=FF B=9600 D=9200 H=9699 S=6FCE P=9526 JNZ  952D     (dTrkVld - not valid 'cause 1st access)
 -Z-EI A=FF B=9600 D=9200 H=9699 S=6FCE P=9529 CALL 9545     (dRestor)
 -Z-EI A=FF B=9600 D=9200 H=9699 S=6FCC P=9545 XRA  A        (set A=0)
 -Z-E- A=00 B=9600 D=9200 H=9699 S=6FCC P=9546 STA  969A     (store in curTrk)
 -Z-E- A=00 B=9600 D=9200 H=9699 S=6FCC P=9549 IN   08       (in DRVSTAT)
 -Z-E- A=C5 B=9600 D=9200 H=9699 S=6FCC P=954B ANI  40       (ani sTRACK0)
 ----- A=40 B=9600 D=9200 H=9699 S=6FCC P=954D RZ            (if head at track 0, return)
 ----- A=40 B=9600 D=9200 H=9699 S=6FCC P=954E MVI  C,03     (step in 3 tracks)
 ----- A=40 B=9603 D=9200 H=9699 S=6FCC P=9550 MVI  B,01     (mvi b,cSTEPI)
 ----- A=40 B=0103 D=9200 H=9699 S=6FCC P=9552 CALL 9570     (call dStep to move 3 steps in)
 ----- A=40 B=0103 D=9200 H=9699 S=6FCA P=9570 IN   08       (in DRVSTAT)
 ----- A=C5 B=0103 D=9200 H=9699 S=6FCA P=9572 ANI  02       (ani sMOVEOK)
 -Z-E- A=00 B=0103 D=9200 H=9699 S=6FCA P=9574 JNZ  9570     (jnz dStep - wait 'til sMOVEOK)
 -Z-E- A=00 B=0103 D=9200 H=9699 S=6FCA P=9577 IN   08       (no wait needed, so IN DRVSTAT)
 -Z-E- A=C5 B=0103 D=9200 H=9699 S=6FCA P=9579 ANI  40       (ani sTRACK0)
 ----- A=40 B=0103 D=9200 H=9699 S=6FCA P=957B JNZ  9584     (jnz dStep1)
 ----- A=40 B=0103 D=9200 H=9699 S=6FCA P=9584 MOV  A,B      (dStep1, so step in)
 ----- A=01 B=0103 D=9200 H=9699 S=6FCA P=9585 OUT  09       (out DRVCMD)
 ----- A=01 B=0103 D=9200 H=9699 S=6FCA P=9587 DCR  C
 ----I A=01 B=0102 D=9200 H=9699 S=6FCA P=9588 JNZ  9570     (jnz dStep)
 ----I A=01 B=0102 D=9200 H=9699 S=6FCA P=9570 IN   08       (in DRVSTAT)
 ----I A=C5 B=0102 D=9200 H=9699 S=6FCA P=9572 ANI  02       (ani sMOVEOK)
 -Z-E- A=00 B=0102 D=9200 H=9699 S=6FCA P=9574 JNZ  9570     (jnz dStep - wait 'til sMOVEOK)
 -Z-E- A=00 B=0102 D=9200 H=9699 S=6FCA P=9577 IN   08       (no wait needed, so IN DRVSTAT)
 -Z-E- A=C5 B=0102 D=9200 H=9699 S=6FCA P=9579 ANI  40       (ani sTRACK0)
 ----- A=40 B=0102 D=9200 H=9699 S=6FCA P=957B JNZ  9584     (jnz dStep1)
 ----- A=40 B=0102 D=9200 H=9699 S=6FCA P=9584 MOV  A,B      (dStep1, so step in)
 ----- A=01 B=0102 D=9200 H=9699 S=6FCA P=9585 OUT  09       (out DRVCMD)
 ----- A=01 B=0102 D=9200 H=9699 S=6FCA P=9587 DCR  C
 ----I A=01 B=0101 D=9200 H=9699 S=6FCA P=9588 JNZ  9570     (jnz dStep)
 ----I A=01 B=0101 D=9200 H=9699 S=6FCA P=9570 IN   08       (in DRVSTAT)
 ----I A=C5 B=0101 D=9200 H=9699 S=6FCA P=9572 ANI  02       (ani sMOVEOK)
 -Z-E- A=00 B=0101 D=9200 H=9699 S=6FCA P=9574 JNZ  9570     (jnz dStep - wait 'til sMOVEOK)
 -Z-E- A=00 B=0101 D=9200 H=9699 S=6FCA P=9577 IN   08       (no wait needed, so IN DRVSTAT)
 -Z-E- A=C5 B=0101 D=9200 H=9699 S=6FCA P=9579 ANI  40       (ani sTRACK0)
 ----- A=40 B=0101 D=9200 H=9699 S=6FCA P=957B JNZ  9584     (jnz dStep1)
 ----- A=40 B=0101 D=9200 H=9699 S=6FCA P=9584 MOV  A,B      (dStep1, so step in)
 ----- A=01 B=0101 D=9200 H=9699 S=6FCA P=9585 OUT  09       (out DRVCMD)
 ----- A=01 B=0101 D=9200 H=9699 S=6FCA P=9587 DCR  C
 -Z-EI A=01 B=0100 D=9200 H=9699 S=6FCA P=9588 JNZ  9570     (jnz dStep)
 -Z-EI A=01 B=0100 D=9200 H=9699 S=6FCA P=958B INR  C        (make C non-zero)
 ----- A=01 B=0101 D=9200 H=9699 S=6FCA P=958C RET           (...and RET to dRestor)
 ----- A=01 B=0101 D=9200 H=9699 S=6FCC P=9555 MVI  A,14     (a=20 decimal, for 20ms delay)     
 ----- A=14 B=0101 D=9200 H=9699 S=6FCC P=9557 CALL 95A6     (call delayMs)
 ----- A=14 B=0101 D=9200 H=9699 S=6FCA P=95A6 MVI  B,69     (105 iterations)
 ----- A=14 B=6901 D=9200 H=9699 S=6FCA P=95A8 NOP           (takes 4 cycles)
 ----- A=14 B=6901 D=9200 H=9699 S=6FCA P=95A9 DCR  B        (takes 5 cycles)
 ----I A=14 B=6801 D=9200 H=9699 S=6FCA P=95AA JNZ  95A8     (takes 10 cycles, back around 'til B=0)
 ----I A=14 B=6801 D=9200 H=9699 S=6FCA P=95A8 NOP
 ----I A=14 B=6801 D=9200 H=9699 S=6FCA P=95A9 DCR  B
 ----I A=14 B=6701 D=9200 H=9699 S=6FCA P=95AA JNZ  95A8
...
 ----I A=14 B=0201 D=9200 H=9699 S=6FCA P=95AA JNZ  95A8
 ----I A=14 B=0201 D=9200 H=9699 S=6FCA P=95A8 NOP
 ----I A=14 B=0201 D=9200 H=9699 S=6FCA P=95A9 DCR  B
 ----I A=14 B=0101 D=9200 H=9699 S=6FCA P=95AA JNZ  95A8
 ----I A=14 B=0101 D=9200 H=9699 S=6FCA P=95A8 NOP
 ----I A=14 B=0101 D=9200 H=9699 S=6FCA P=95A9 DCR  B
 -Z-EI A=14 B=0001 D=9200 H=9699 S=6FCA P=95AA JNZ  95A8
 -Z-EI A=14 B=0001 D=9200 H=9699 S=6FCA P=95AD DCR  A        (decrement the millisecond counter A)
 ----I A=13 B=0001 D=9200 H=9699 S=6FCA P=95AE JNZ  95A6     (...and keep it up) 
 ----I A=13 B=0001 D=9200 H=9699 S=6FCA P=95A6 MVI  B,69
 ----I A=13 B=6901 D=9200 H=9699 S=6FCA P=95A8 NOP
 ----I A=13 B=6901 D=9200 H=9699 S=6FCA P=95A9 DCR  B
 ----I A=13 B=6801 D=9200 H=9699 S=6FCA P=95AA JNZ  95A8
 ----I A=13 B=6801 D=9200 H=9699 S=6FCA P=95A8 NOP
 ----I A=13 B=6801 D=9200 H=9699 S=6FCA P=95A9 DCR  B
 ----I A=13 B=6701 D=9200 H=9699 S=6FCA P=95AA JNZ  95A8
...
 ----I A=01 B=0201 D=9200 H=9699 S=6FCA P=95A8 NOP
 ----I A=01 B=0201 D=9200 H=9699 S=6FCA P=95A9 DCR  B
 ----I A=01 B=0101 D=9200 H=9699 S=6FCA P=95AA JNZ  95A8
 ----I A=01 B=0101 D=9200 H=9699 S=6FCA P=95A8 NOP
 ----I A=01 B=0101 D=9200 H=9699 S=6FCA P=95A9 DCR  B
 -Z-EI A=01 B=0001 D=9200 H=9699 S=6FCA P=95AA JNZ  95A8
 -Z-EI A=01 B=0001 D=9200 H=9699 S=6FCA P=95AD DCR  A
 -Z-EI A=00 B=0001 D=9200 H=9699 S=6FCA P=95AE JNZ  95A6
 -Z-EI A=00 B=0001 D=9200 H=9699 S=6FCA P=95B1 RET

=========================================================================================

The instruction after the RET is at 955A. So put a passpoint there.


=========================================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#P955A
#G8E00


CP/M Plus v3.0hd


01 PASS 955A
 -Z-EI A=00 B=0001 D=9200 H=9699 S=6FCC P=955A MVI  C,57     (NUMTRK+10)
 -Z-EI A=00 B=0057 D=9200 H=9699 S=6FCC P=955C MVI  B,02     (STEPO)
 -Z-EI A=00 B=0257 D=9200 H=9699 S=6FCC P=955E CALL 9570     (dStep)
 -Z-EI A=00 B=0257 D=9200 H=9699 S=6FCA P=9570 IN   08
 -Z-EI A=C5 B=0257 D=9200 H=9699 S=6FCA P=9572 ANI  02
 -Z-E- A=00 B=0257 D=9200 H=9699 S=6FCA P=9574 JNZ  9570
 -Z-E- A=00 B=0257 D=9200 H=9699 S=6FCA P=9577 IN   08
 -Z-E- A=C5 B=0257 D=9200 H=9699 S=6FCA P=9579 ANI  40
 ----- A=40 B=0257 D=9200 H=9699 S=6FCA P=957B JNZ  9584
 ----- A=40 B=0257 D=9200 H=9699 S=6FCA P=9584 MOV  A,B
 ----- A=02 B=0257 D=9200 H=9699 S=6FCA P=9585 OUT  09
 ----- A=02 B=0257 D=9200 H=9699 S=6FCA P=9587 DCR  C
 ---EI A=02 B=0256 D=9200 H=9699 S=6FCA P=9588 JNZ  9570
 ---EI A=02 B=0256 D=9200 H=9699 S=6FCA P=9570 IN   08
 ---EI A=C5 B=0256 D=9200 H=9699 S=6FCA P=9572 ANI  02
 -Z-E- A=00 B=0256 D=9200 H=9699 S=6FCA P=9574 JNZ  9570
 -Z-E- A=00 B=0256 D=9200 H=9699 S=6FCA P=9577 IN   08
 -Z-E- A=C5 B=0256 D=9200 H=9699 S=6FCA P=9579 ANI  40
 ----- A=40 B=0256 D=9200 H=9699 S=6FCA P=957B JNZ  9584
 ----- A=40 B=0256 D=9200 H=9699 S=6FCA P=9584 MOV  A,B
 ----- A=02 B=0256 D=9200 H=9699 S=6FCA P=9585 OUT  09
 ----- A=02 B=0256 D=9200 H=9699 S=6FCA P=9587 DCR  C
 ---EI A=02 B=0255 D=9200 H=9699 S=6FCA P=9588 JNZ  9570
 ---EI A=02 B=0255 D=9200 H=9699 S=6FCA P=9570 IN   08
 ---EI A=C5 B=0255 D=9200 H=9699 S=6FCA P=9572 ANI  02
 -Z-E- A=00 B=0255 D=9200 H=9699 S=6FCA P=9574 JNZ  9570
 -Z-E- A=00 B=0255 D=9200 H=9699 S=6FCA P=9577 IN   08
 -Z-E- A=C5 B=0255 D=9200 H=9699 S=6FCA P=9579 ANI  40
 ----- A=40 B=0255 D=9200 H=9699 S=6FCA P=957B JNZ  9584
 ----- A=40 B=0255 D=9200 H=9699 S=6FCA P=9584 MOV  A,B
 ----- A=02 B=0255 D=9200 H=9699 S=6FCA P=9585 OUT  09
 ----- A=02 B=0255 D=9200 H=9699 S=6FCA P=9587 DCR  C
 ----I A=02 B=0254 D=9200 H=9699 S=6FCA P=9588 JNZ  9570
 ----I A=02 B=0254 D=9200 H=9699 S=6FCA P=9570 IN   08
 ----I A=C5 B=0254 D=9200 H=9699 S=6FCA P=9572 ANI  02
 -Z-E- A=00 B=0254 D=9200 H=9699 S=6FCA P=9574 JNZ  9570
 -Z-E- A=00 B=0254 D=9200 H=9699 S=6FCA P=9577 IN   08
 -Z-E- A=C5 B=0254 D=9200 H=9699 S=6FCA P=9579 ANI  40
 ----- A=40 B=0254 D=9200 H=9699 S=6FCA P=957B JNZ  9584
 ----- A=40 B=0254 D=9200 H=9699 S=6FCA P=9584 MOV  A,B
 ----- A=02 B=0254 D=9200 H=9699 S=6FCA P=9585 OUT  09
 ----- A=02 B=0254 D=9200 H=9699 S=6FCA P=9587 DCR  C
 ---EI A=02 B=0253 D=9200 H=9699 S=6FCA P=9588 JNZ  9570
 ---EI A=02 B=0253 D=9200 H=9699 S=6FCA P=9570 IN   08
 ---EI A=C5 B=0253 D=9200 H=9699 S=6FCA P=9572 ANI  02
 -Z-E- A=00 B=0253 D=9200 H=9699 S=6FCA P=9574 JNZ  9570
 -Z-E- A=00 B=0253 D=9200 H=9699 S=6FCA P=9577 IN   08
 -Z-E- A=C5 B=0253 D=9200 H=9699 S=6FCA P=9579 ANI  40
 ----- A=40 B=0253 D=9200 H=9699 S=6FCA P=957B JNZ  9584
 ----- A=40 B=0253 D=9200 H=9699 S=6FCA P=9584 MOV  A,B
 ----- A=02 B=0253 D=9200 H=9699 S=6FCA P=9585 OUT  09
 ----- A=02 B=0253 D=9200 H=9699 S=6FCA P=9587 DCR  C
 ----I A=02 B=0252 D=9200 H=9699 S=6FCA P=9588 JNZ  9570
 ----I A=02 B=0252 D=9200 H=9699 S=6FCA P=9570 IN   08
 ----I A=C5 B=0252 D=9200 H=9699 S=6FCA P=9572 ANI  02
 -Z-E- A=00 B=0252 D=9200 H=9699 S=6FCA P=9574 JNZ  9570
 -Z-E- A=00 B=0252 D=9200 H=9699 S=6FCA P=9577 IN   08
 -Z-E- A=C5 B=0252 D=9200 H=9699 S=6FCA P=9579 ANI  40
 ----- A=40 B=0252 D=9200 H=9699 S=6FCA P=957B JNZ  9584
 ----- A=40 B=0252 D=9200 H=9699 S=6FCA P=9584 MOV  A,B
 ----- A=02 B=0252 D=9200 H=9699 S=6FCA P=9585 OUT  09
 ----- A=02 B=0252 D=9200 H=9699 S=6FCA P=9587 DCR  C
 ----I A=02 B=0251 D=9200 H=9699 S=6FCA P=9588 JNZ  9570
 ----I A=02 B=0251 D=9200 H=9699 S=6FCA P=9570 IN   08
 ----I A=C5 B=0251 D=9200 H=9699 S=6FCA P=9572 ANI  02
 -Z-E- A=00 B=0251 D=9200 H=9699 S=6FCA P=9574 JNZ  9570
 -Z-E- A=00 B=0251 D=9200 H=9699 S=6FCA P=9577 IN   08
 -Z-E- A=C5 B=0251 D=9200 H=9699 S=6FCA P=9579 ANI  40
 ----- A=40 B=0251 D=9200 H=9699 S=6FCA P=957B JNZ  9584
...
 ---EI A=08 B=1222 D=9200 H=9699 S=6FCA P=95A8 NOP
 ---EI A=08 B=1222 D=9200 H=9699 S=6FCA P=95A9 DCR  B
 ---EI A=08 B=1122 D=9200 H=9699 S=6FCA P=95AA JNZ  95A8
...from B=69 hex down to 0

...

 -Z-EI A=00 B=0022 D=9200 H=9699 S=6FCA P=95B1 RET
 -Z-EI A=00 B=0022 D=9200 H=9699 S=6FCC P=9569 RET
 -Z-EI A=00 B=0022 D=9200 H=9699 S=6FCE P=952C RNZ
 -Z-EI A=00 B=0022 D=9200 H=9699 S=6FCE P=952D LXI  H,A97A   (@TRK)  <==dTrkVld:
 -Z-EI A=00 B=0022 D=9200 H=A97A S=6FCE P=9530 SUB  M=02
 C-M-- A=FE B=0022 D=9200 H=A97A S=6FCE P=9531 RZ
 C-M-- A=FE B=0022 D=9200 H=A97A S=6FCE P=9532 MVI  B,02     (mvi b,cSTEPO)
 C-M-- A=FE B=0222 D=9200 H=A97A S=6FCE P=9534 JNC  953B     (dDoSeek if NOT carry)
 C-M-- A=FE B=0222 D=9200 H=A97A S=6FCE P=9537 MVI  B,01     (cSTEPI)
 C-M-- A=FE B=0122 D=9200 H=A97A S=6FCE P=9539 CMA
 C-M-- A=01 B=0122 D=9200 H=A97A S=6FCE P=953A INR  A
 C---- A=02 B=0122 D=9200 H=A97A S=6FCE P=953B MOV  C,A
 C---- A=02 B=0102 D=9200 H=A97A S=6FCE P=953C MOV  A,M
 C---- A=02 B=0102 D=9200 H=A97A S=6FCE P=953D STA  969A
 C---- A=02 B=0102 D=9200 H=A97A S=6FCE P=9540 CALL 9570
 C---- A=02 B=0102 D=9200 H=A97A S=6FCC P=9570 IN   08
 C---- A=85 B=0102 D=9200 H=A97A S=6FCC P=9572 ANI  02
 -Z-E- A=00 B=0102 D=9200 H=A97A S=6FCC P=9574 JNZ  9570  <== dStep, back here
 -Z-E- A=00 B=0102 D=9200 H=A97A S=6FCC P=9577 IN   08

...

=========================================================================================

At any point in the "read" function or its subroutines, we can break out by pressing ctrl-C.
But if we do, then we get the message, "BIOS ERR ON A: NO CCP.COM FILE."
Then we're hung and done.


fdRead  (9331)
readTrk (93DF)

Breakpoint at fdRead:

======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#G8E00,9331


CP/M Plus v3.0hd


*9331
#TW
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446     (ckFlush)
 -Z-E- A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9334 EI
 -Z-E- A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9335 CALL 93DF     (readTrk)
 -Z-EI A=00 B=0082 D=A100 H=0200 S=6FD2 P=9338 EI
 -Z-EI A=00 B=0082 D=A100 H=0200 S=6FD2 P=9339 JNZ  933F     (exitDio)
 -Z-EI A=00 B=0082 D=A100 H=0200 S=6FD2 P=933C CALL 9352     (movRead)
 -Z-EI A=00 B=0082 D=A100 H=0200 S=6FD0 P=9352 CALL 93CF     (altSkew)
 -Z-EI A=00 B=0082 D=A100 H=0200 S=6FCE P=93CF LDA  A97A     (@TRK)
 -Z-EI A=02 B=0082 D=A100 H=0200 S=6FCE P=93D2 CPI  06       (06=DATATRK)
 C-ME- A=02 B=0082 D=A100 H=0200 S=6FCE P=93D4 LDA  A97C     (@SECT)
 C-ME- A=01 B=0082 D=A100 H=0200 S=6FCE P=93D7 RC            (correct sector, return to movRead)
 C-ME- A=01 B=0082 D=A100 H=0200 S=6FD0 P=9355 CALL 9599     (dSecAdr)
 C-ME- A=01 B=0082 D=A100 H=0200 S=6FCE P=9599 LXI  H,9657   (secAddr)
 C-ME- A=01 B=0082 D=A100 H=9657 S=6FCE P=959C MVI  B,00
 C-ME- A=01 B=0082 D=A100 H=9657 S=6FCE P=959E RLC
 --ME- A=02 B=0082 D=A100 H=9657 S=6FCE P=959F MOV  C,A
 --ME- A=02 B=0002 D=A100 H=9657 S=6FCE P=95A0 DAD  B
 --ME- A=02 B=0002 D=A100 H=9659 S=6FCE P=95A1 MOV  A,M
 --ME- A=F4 B=0002 D=A100 H=9659 S=6FCE P=95A2 INX  H
 --ME- A=F4 B=0002 D=A100 H=965A S=6FCE P=95A3 MOV  H,M
 --ME- A=F4 B=0002 D=A100 H=975A S=6FCE P=95A4 MOV  L,A
 --ME- A=F4 B=0002 D=A100 H=97F4 S=6FCE P=95A5 RET           (ret to movRead with HL=sectorBuffer 97F4)
 --ME- A=F4 B=0002 D=A100 H=97F4 S=6FD0 P=9358 MOV  A,M      (A=sector valid flag)
 --ME- A=00 B=0002 D=A100 H=97F4 S=6FD0 P=9359 ORA  A        (check for flag)
 -Z-E- A=00 B=0002 D=A100 H=97F4 S=6FD0 P=935A RNZ           (good sector, so do not return)
 -Z-E- A=00 B=0002 D=A100 H=97F4 S=6FD0 P=935B LXI  D,0008   (8=DATDATA+1, DE=offset to data portion of sector)
 -Z-E- A=00 B=0002 D=0008 H=97F4 S=6FD0 P=935E LDA  A97A     (lda @TRK)
 -Z-E- A=02 B=0002 D=0008 H=97F4 S=6FD0 P=9361 CPI  06       (cpi DATATRK)
 C-ME- A=02 B=0002 D=0008 H=97F4 S=6FD0 P=9363 JNC  9369     (jnc mrMove - if data track already correct)
 C-ME- A=02 B=0002 D=0008 H=97F4 S=6FD0 P=9366 LXI  D,0004   (4=SYSDATA+1, DE=offset to data portion of sector)
 C-ME- A=02 B=0002 D=0004 H=97F4 S=6FD0 P=9369 DAD  D
 --ME- A=02 B=0002 D=0004 H=97F8 S=6FD0 P=936A XCHG
 --ME- A=02 B=0002 D=97F8 H=0004 S=6FD0 P=936B LHLD A97E     (@DMA = 96A5)
 --ME- A=02 B=0002 D=97F8 H=96A5 S=6FD0 P=936E MVI  B,80     (CSECLEN - 128 - number of bytes to move)
 --ME- A=02 B=8002 D=97F8 H=96A5 S=6FD0 P=9370 LDAX D
 --ME- A=E5 B=8002 D=97F8 H=96A5 S=6FD0 P=9371 MOV  M,A
 --ME- A=E5 B=8002 D=97F8 H=96A5 S=6FD0 P=9372 INX  H
 --ME- A=E5 B=8002 D=97F8 H=96A6 S=6FD0 P=9373 INX  D
 --ME- A=E5 B=8002 D=97F9 H=96A6 S=6FD0 P=9374 DCR  B
 ----- A=E5 B=7F02 D=97F9 H=96A6 S=6FD0 P=9375 JNZ  9370
*9370
#T#6
 ----- A=E5 B=7F02 D=97F9 H=96A6 S=6FD0 P=9370 LDAX D
 ----- A=E5 B=7F02 D=97F9 H=96A6 S=6FD0 P=9371 MOV  M,A
 ----- A=E5 B=7F02 D=97F9 H=96A6 S=6FD0 P=9372 INX  H
 ----- A=E5 B=7F02 D=97F9 H=96A7 S=6FD0 P=9373 INX  D
 ----- A=E5 B=7F02 D=97FA H=96A7 S=6FD0 P=9374 DCR  B
 ---EI A=E5 B=7E02 D=97FA H=96A7 S=6FD0 P=9375 JNZ  9370
*9370
#T#6
 ---EI A=E5 B=7E02 D=97FA H=96A7 S=6FD0 P=9370 LDAX D
 ---EI A=E5 B=7E02 D=97FA H=96A7 S=6FD0 P=9371 MOV  M,A
 ---EI A=E5 B=7E02 D=97FA H=96A7 S=6FD0 P=9372 INX  H
 ---EI A=E5 B=7E02 D=97FA H=96A8 S=6FD0 P=9373 INX  D
 ---EI A=E5 B=7E02 D=97FB H=96A8 S=6FD0 P=9374 DCR  B
 ---EI A=E5 B=7D02 D=97FB H=96A8 S=6FD0 P=9375 JNZ  9370
*9370
...
#T#6
 ---EI A=E5 B=0302 D=9875 H=9722 S=6FD0 P=9370 LDAX D
 ---EI A=E5 B=0302 D=9875 H=9722 S=6FD0 P=9371 MOV  M,A
 ---EI A=E5 B=0302 D=9875 H=9722 S=6FD0 P=9372 INX  H
 ---EI A=E5 B=0302 D=9875 H=9723 S=6FD0 P=9373 INX  D
 ---EI A=E5 B=0302 D=9876 H=9723 S=6FD0 P=9374 DCR  B
 ----I A=E5 B=0202 D=9876 H=9723 S=6FD0 P=9375 JNZ  9370
*9370
#T#6
 ----I A=E5 B=0202 D=9876 H=9723 S=6FD0 P=9370 LDAX D
 ----I A=E5 B=0202 D=9876 H=9723 S=6FD0 P=9371 MOV  M,A
 ----I A=E5 B=0202 D=9876 H=9723 S=6FD0 P=9372 INX  H
 ----I A=E5 B=0202 D=9876 H=9724 S=6FD0 P=9373 INX  D
 ----I A=E5 B=0202 D=9877 H=9724 S=6FD0 P=9374 DCR  B
 ----I A=E5 B=0102 D=9877 H=9724 S=6FD0 P=9375 JNZ  9370
*9370
#TW6
 ----I A=E5 B=0102 D=9877 H=9724 S=6FD0 P=9370 LDAX D
 ----I A=E5 B=0102 D=9877 H=9724 S=6FD0 P=9371 MOV  M,A
 ----I A=E5 B=0102 D=9877 H=9724 S=6FD0 P=9372 INX  H
 ----I A=E5 B=0102 D=9877 H=9725 S=6FD0 P=9373 INX  D
 ----I A=E5 B=0102 D=9878 H=9725 S=6FD0 P=9374 DCR  B
 -Z-EI A=E5 B=0002 D=9878 H=9725 S=6FD0 P=9375 JNZ  9370
*9378
#T
 -Z-EI A=E5 B=0002 D=9878 H=9725 S=6FD0 P=9378 RET
*933F
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#

======================================================================

OK, so I now see the data was successfully read and placed into @DMA.

Problem is it's all E5 bytes.

At first I thought maybe it was reading the IDE drive. But it can't be. The IDE module is not even linked in.

The diskette in the drive is a CPM 2.2 diskette that boots. It includes CPM3.SYS - the one I'm debugging - and CCP.COM and CPMLDR.COM. So SID can execute these files and talk to the disk. But what it reads is all E5 characters.

Let's pick back up where we left off. Setting breakpoint at 933F, right after the RET at the end of movRead, back into fdRead.


======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#G8E00,933F


CP/M Plus v3.0hd


*933F
#DA97A,A97C
A97A: 02 00 01                                               (lookin' at track 2, sector 1)
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#T
 -Z-EI A=E5 B=0002 D=9878 H=9725 S=6FD2 P=933F MVI  A,00
*9341
#T
 -Z-EI A=00 B=0002 D=9878 H=9725 S=6FD2 P=9341 RZ
*7767
#P9331
#G                                                           (let's see if we fdRead again)

01 PASS 9331                                                 (yes, looks like we do)
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#P933F                                                       (let's do the read and see what we get)
01 PASS 933F
 -Z-EI A=E5 B=0012 D=9CC0 H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 09                                               (track 2, sector 9)
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331                                                 (another fdRead)
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#G

01 PASS 933F                                                 (another movRead)
 -Z-EI A=E5 B=0032 D=A550 H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 11                                               (track 2, sector 11)
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331                                                 (read again)
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#G

01 PASS 933F                                                 (memcpy again)
 -Z-EI A=E5 B=0032 D=A550 H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 19                                               (track 2, sector 19)
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#G

01 PASS 933F
 -Z-EI A=E5 B=0006 D=998A H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 03                                        ...
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#G

01 PASS 933F
 -Z-EI A=E5 B=0016 D=9DD2 H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 0B                                        ...
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#G

01 PASS 933F
 -Z-EI A=E5 B=0026 D=A21A H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 13                                        ...
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#G

01 PASS 933F
 -Z-EI A=E5 B=0036 D=A662 H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 1B                                        ...
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#G

01 PASS 933F
 -Z-EI A=E5 B=000A D=9A9C H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 05                                        ...
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#G

01 PASS 933F
 -Z-EI A=E5 B=001A D=9EE4 H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 0D                                        ...
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#G

01 PASS 933F
 -Z-EI A=E5 B=002A D=A32C H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 15                                        ...
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#G

01 PASS 933F
 -Z-EI A=E5 B=003A D=A774 H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 1D                                        ...
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#G

01 PASS 933F
 -Z-EI A=E5 B=000E D=9BAE H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 07                                        ...
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#G

01 PASS 933F
 -Z-EI A=E5 B=001E D=9FF6 H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 0F                                        ...
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#G

01 PASS 933F
 -Z-EI A=E5 B=002E D=A43E H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 17                                        ...
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#G

01 PASS 933F
 -Z-EI A=E5 B=003E D=A886 H=9725 S=6FD2 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 1F                                        ...
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD4 P=9331 CALL 9446
*9446
#G

01 PASS 933F
 -Z-EI A=E5 B=0002 D=9878 H=9725 S=6FD4 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 01                                        ...
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD4 P=9331 CALL 9446
*9446
#G

01 PASS 933F
 -Z-EI A=E5 B=0012 D=9CC0 H=9725 S=6FD4 P=933F MVI  A,00
*9341
#DA97A,A97C
A97A: 02 00 09
#D96A5
96A5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96B5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96C5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96D5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96E5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96F5: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9705: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9715: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

BIOS ERR ON A: NO CCP.COM FILE

======================================================================

That's where the code gave up and decided the disk didn't have CCP.COM on it.

It tried these sectors on track 2 in the following order:

01,09,11,19,03,0B,13,1B,05,0D,15,1D,07,0F,17,1F,01,09

That's 18 sector reads. Notice it did 16 and then repeated the first two.

In decimal, the order of sectors is as follows:

01,09,17,25,03,11,19,27,05,13,21,29,07,15,23,31

Sanity check. Let's see what the Douglas CP/M 3.0 BIOS does in bootup.

I built a copy with topmem=A7. That makes a version with the jump table in the same place as the modular version I'm working on, 8E00. This leaves enough room for SID.


======================================================================


A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1A00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#L8E00
  8E00  JMP  8E61       (boot)
  8E03  JMP  8EB9	(wboot)
  8E06  JMP  8FA3       (const)
  8E09  JMP  8F8A       (conin)
  8E0C  JMP  8F9D       (conout)
  8E0F  JMP  8FC7       (list)
  8E12  JMP  8FB5       (auxout)
  8E15  JMP  8FAF       (auxin)
  8E18  JMP  90D5       (home)
  8E1B  JMP  90C2       (seldsk)
  8E1E  JMP  90DA       (settrk)
  8E21  JMP  90DF       (setsec)
  8E24  JMP  90E5       (setdma)
  8E27  JMP  90F2       (read)
  8E2A  JMP  9105       (write)
  8E2D  JMP  8FCD       (listst)
  8E30  JMP  90EB       (sectrn)
  8E33  JMP  8FA9       (conost)
  8E36  JMP  8FBB       (auxist)
  8E39  JMP  8FC1       (auxost)
  8E3C  JMP  8F74       (devtbl)
  8E3F  JMP  8F89       (devini)
  8E42  JMP  8F78       (drvtbl)
  8E45  JMP  8F89       (multio)
  8E48  JMP  8F87       (flush)
  8E4B  JMP  8F7C       (move)
  8E4E  JMP  8F89       (time)
  8E51  JMP  8F89       (selmem)
  8E54  JMP  8F89       (setbnk)
  8E57  JMP  8F89       (xmove)
  8E5A  JMP  8EB9       (userf)
  8E5D  JMP  8EB9       (reserv1)
  8E60  RLC             (reserv2)

#G8E00,90F2                                                  (read breakpoint)

CP/M 3 BIOS v1.0 for Altair 8" Floppy

*90F2
#T#5
 ----I A=01 B=9501 D=0000 H=9561 S=6FD2 P=90F2 CALL 9207     (call ckFlush)
 ----I A=01 B=9501 D=0000 H=9561 S=6FD0 P=9207 LDA  9556     (bfDirty)
 ----I A=00 B=9501 D=0000 H=9561 S=6FD0 P=920A ORA  A
 -Z-E- A=00 B=9501 D=0000 H=9561 S=6FD0 P=920B RZ
 -Z-E- A=00 B=9501 D=0000 H=9561 S=6FD2 P=90F5 EI            (done with ckFlush)
*90F6
#TW
 -Z-E- A=00 B=9501 D=0000 H=9561 S=6FD2 P=90F6 CALL 91A0     (readTrk)
*90F9
#T
 -Z-EI A=00 B=0082 D=A100 H=0200 S=6FD2 P=90F9 EI
 -Z-EI A=00 B=0082 D=A100 H=0200 S=6FD2 P=90FA JNZ  9100     (exitDio)
 -Z-EI A=00 B=0082 D=A100 H=0200 S=6FD2 P=90FD CALL 9113     (movRead)
 -Z-EI A=00 B=0082 D=A100 H=0200 S=6FD0 P=9113 CALL 9190     (altSkew)
 -Z-EI A=00 B=0082 D=A100 H=0200 S=6FCE P=9190 LDA  955A     (@TRK)
 -Z-EI A=02 B=0082 D=A100 H=0200 S=6FCE P=9193 CPI  06       (06=DATATRK)
 C-ME- A=02 B=0082 D=A100 H=0200 S=6FCE P=9195 LDA  955B     (@SECT)
 C-ME- A=00 B=0082 D=A100 H=0200 S=6FCE P=9198 RC
 C-ME- A=00 B=0082 D=A100 H=0200 S=6FD0 P=9116 CALL 936B     (dSecAdr)
 C-ME- A=00 B=0082 D=A100 H=0200 S=6FCE P=936B LXI  H,9429   (secAddr)
 C-ME- A=00 B=0082 D=A100 H=9429 S=6FCE P=936E MVI  B,00
 C-ME- A=00 B=0082 D=A100 H=9429 S=6FCE P=9370 RLC
 --ME- A=00 B=0082 D=A100 H=9429 S=6FCE P=9371 MOV  C,A
 --ME- A=00 B=0000 D=A100 H=9429 S=6FCE P=9372 DAD  B
 --ME- A=00 B=0000 D=A100 H=9429 S=6FCE P=9373 MOV  A,M
 --ME- A=6D B=0000 D=A100 H=9429 S=6FCE P=9374 INX  H
 --ME- A=6D B=0000 D=A100 H=942A S=6FCE P=9375 MOV  H,M
 --ME- A=6D B=0000 D=A100 H=962A S=6FCE P=9376 MOV  L,A
 --ME- A=6D B=0000 D=A100 H=966D S=6FCE P=9377 RET           (ret to movRead with HL=sectorBuffer 966D)
 --ME- A=6D B=0000 D=A100 H=966D S=6FD0 P=9119 MOV  A,M      (A=valid sector flag)
 --ME- A=00 B=0000 D=A100 H=966D S=6FD0 P=911A ORA  A        (check for flag)
 -Z-E- A=00 B=0000 D=A100 H=966D S=6FD0 P=911B RNZ           (good sector, so do not return)
 -Z-E- A=00 B=0000 D=A100 H=966D S=6FD0 P=911C LXI  D,0008   (8=DATDATA+1, DE=offset to data portion of sector)
 -Z-E- A=00 B=0000 D=0008 H=966D S=6FD0 P=911F LDA  955A     (lda @TRK)
 -Z-E- A=02 B=0000 D=0008 H=966D S=6FD0 P=9122 CPI  06       (cpi DATATRK)
 C-ME- A=02 B=0000 D=0008 H=966D S=6FD0 P=9124 JNC  912A     (jnc mrMove - if data track already correct)
 C-ME- A=02 B=0000 D=0008 H=966D S=6FD0 P=9127 LXI  D,0004   (4=SYSDATA+1, DE=offset to data portion of sector)
 C-ME- A=02 B=0000 D=0004 H=966D S=6FD0 P=912A DAD  D
 --ME- A=02 B=0000 D=0004 H=9671 S=6FD0 P=912B XCHG
 --ME- A=02 B=0000 D=9671 H=0004 S=6FD0 P=912C LHLD 955C     (@DMA = 9561)
 --ME- A=02 B=0000 D=9671 H=9561 S=6FD0 P=912F MVI  B,80     (CSECLEN - 128 - number of bytes to move)
*9131
#T#6
 --ME- A=02 B=8000 D=9671 H=9561 S=6FD0 P=9131 LDAX D
 --ME- A=00 B=8000 D=9671 H=9561 S=6FD0 P=9132 MOV  M,A
 --ME- A=00 B=8000 D=9671 H=9561 S=6FD0 P=9133 INX  H
 --ME- A=00 B=8000 D=9671 H=9562 S=6FD0 P=9134 INX  D
 --ME- A=00 B=8000 D=9672 H=9562 S=6FD0 P=9135 DCR  B
 ----- A=00 B=7F00 D=9672 H=9562 S=6FD0 P=9136 JNZ  9131
*9131
#T#6
 ----- A=00 B=7F00 D=9672 H=9562 S=6FD0 P=9131 LDAX D
 ----- A=4C B=7F00 D=9672 H=9562 S=6FD0 P=9132 MOV  M,A
 ----- A=4C B=7F00 D=9672 H=9562 S=6FD0 P=9133 INX  H
 ----- A=4C B=7F00 D=9672 H=9563 S=6FD0 P=9134 INX  D
 ----- A=4C B=7F00 D=9673 H=9563 S=6FD0 P=9135 DCR  B
 ---EI A=4C B=7E00 D=9673 H=9563 S=6FD0 P=9136 JNZ  9131
*9131
#T#6
 ---EI A=4C B=7E00 D=9673 H=9563 S=6FD0 P=9131 LDAX D
 ---EI A=38 B=7E00 D=9673 H=9563 S=6FD0 P=9132 MOV  M,A
 ---EI A=38 B=7E00 D=9673 H=9563 S=6FD0 P=9133 INX  H
 ---EI A=38 B=7E00 D=9673 H=9564 S=6FD0 P=9134 INX  D
 ---EI A=38 B=7E00 D=9674 H=9564 S=6FD0 P=9135 DCR  B
 ---EI A=38 B=7D00 D=9674 H=9564 S=6FD0 P=9136 JNZ  9131
*9131

...

#T#6
 ----I A=00 B=0400 D=96ED H=95DD S=6FD0 P=9131 LDAX D
 ----I A=00 B=0400 D=96ED H=95DD S=6FD0 P=9132 MOV  M,A
 ----I A=00 B=0400 D=96ED H=95DD S=6FD0 P=9133 INX  H
 ----I A=00 B=0400 D=96ED H=95DE S=6FD0 P=9134 INX  D
 ----I A=00 B=0400 D=96EE H=95DE S=6FD0 P=9135 DCR  B
 ---EI A=00 B=0300 D=96EE H=95DE S=6FD0 P=9136 JNZ  9131
*9131
#T#6
 ---EI A=00 B=0300 D=96EE H=95DE S=6FD0 P=9131 LDAX D
 ---EI A=00 B=0300 D=96EE H=95DE S=6FD0 P=9132 MOV  M,A
 ---EI A=00 B=0300 D=96EE H=95DE S=6FD0 P=9133 INX  H
 ---EI A=00 B=0300 D=96EE H=95DF S=6FD0 P=9134 INX  D
 ---EI A=00 B=0300 D=96EF H=95DF S=6FD0 P=9135 DCR  B
 ----I A=00 B=0200 D=96EF H=95DF S=6FD0 P=9136 JNZ  9131
*9131
#T#6
 ----I A=00 B=0200 D=96EF H=95DF S=6FD0 P=9131 LDAX D
 ----I A=00 B=0200 D=96EF H=95DF S=6FD0 P=9132 MOV  M,A
 ----I A=00 B=0200 D=96EF H=95DF S=6FD0 P=9133 INX  H
 ----I A=00 B=0200 D=96EF H=95E0 S=6FD0 P=9134 INX  D
 ----I A=00 B=0200 D=96F0 H=95E0 S=6FD0 P=9135 DCR  B
 ----I A=00 B=0100 D=96F0 H=95E0 S=6FD0 P=9136 JNZ  9131
*9131
#T#6
 ----I A=00 B=0100 D=96F0 H=95E0 S=6FD0 P=9131 LDAX D
 ----I A=00 B=0100 D=96F0 H=95E0 S=6FD0 P=9132 MOV  M,A
 ----I A=00 B=0100 D=96F0 H=95E0 S=6FD0 P=9133 INX  H
 ----I A=00 B=0100 D=96F0 H=95E1 S=6FD0 P=9134 INX  D
 ----I A=00 B=0100 D=96F1 H=95E1 S=6FD0 P=9135 DCR  B
 -Z-EI A=00 B=0000 D=96F1 H=95E1 S=6FD0 P=9136 JNZ  9131
*9139
#T
 -Z-EI A=00 B=0000 D=96F1 H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 00                                           ..
#D9561
9561: 00 4C 38 30 20 20 20 20 20 43 4F 4D 00 00 00 54 .L80     COM...T
9571: 02 03 04 05 06 07 00 00 00 00 00 00 00 00 00 00 ................
9581: 00 50 43 32 46 4C 4F 50 20 43 4F 4D 00 00 00 11 .PC2FLOP COM....
9591: 08 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95A1: 00 46 4C 4F 50 32 50 43 20 43 4F 4D 00 00 00 13 .FLOP2PC COM....
95B1: 0A 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95C1: 00 41 53 4D 20 20 20 20 20 43 4F 4D 00 00 00 40 .ASM     COM...@
95D1: 0C 0D 0E 0F 00 00 00 00 00 00 00 00 00 00 00 00 ................
95E1: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95F1: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#P9139
#G

01 PASS 9139
 -Z-EI A=00 B=0020 D=9F81 H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 10                                           ..
#D9561
9561: 00 53 55 42 4D 49 54 20 20 43 4F 4D 00 00 00 11 .SUBMIT  COM....
9571: 15 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9581: 00 4C 4F 41 44 20 20 20 20 43 4F 4D 00 00 00 10 .LOAD    COM....
9591: 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95A1: 00 53 55 52 56 45 59 20 20 43 4F 4D 00 00 00 09 .SURVEY  COM....
95B1: 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95C1: 00 56 49 45 57 20 20 20 20 43 4F 4D 00 00 00 03 .VIEW    COM....
95D1: 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95E1: FF FF F8 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95F1: 00 00 00 7E 65 00 00 00 00 00 00 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0030 D=A3C9 H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 18                                           ..
#D9561
9561: 00 4D 38 30 20 20 20 20 20 43 4F 4D 00 00 00 80 .M80     COM....
9571: 1A 1B 1C 1D 1E 1F 20 21 00 00 00 00 00 00 00 00 ...... !........
9581: 00 4D 38 30 20 20 20 20 20 43 4F 4D 01 00 00 1D .M80     COM....
9591: 22 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "#..............
95A1: 00 4D 41 43 20 20 20 20 20 43 4F 4D 00 00 00 5C .MAC     COM...\
95B1: 24 25 26 27 28 29 00 00 00 00 00 00 00 00 00 00 $%&'()..........
95C1: 00 4D 42 41 53 49 43 20 20 43 4F 4D 00 00 00 80 .MBASIC  COM....
95D1: 2A 2B 2C 2D 2E 2F 30 31 00 00 00 00 00 00 00 00 *+,-./01........
95E1: FF FF FF C0 00 00 00 00 00 00 00 00 00 00 00 00 ................
95F1: 00 00 00 7E 65 11 00 00 00 00 00 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0004 D=9803 H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 02                                           ..
#D9561
9561: 00 4D 42 41 53 49 43 20 20 43 4F 4D 01 00 00 3E .MBASIC  COM...>
9571: 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 2345............
9581: 00 50 49 50 20 20 20 20 20 43 4F 4D 00 00 00 3A .PIP     COM...:
9591: 36 37 38 39 00 00 00 00 00 00 00 00 00 00 00 00 6789............
95A1: 00 53 54 41 54 20 20 20 20 43 4F 4D 00 00 00 2A .STAT    COM...*
95B1: 3A 3B 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 :;<.............
95C1: 00 44 44 54 20 20 20 20 20 43 4F 4D 00 00 00 26 .DDT     COM...&
95D1: 3D 3E 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 =>?.............
95E1: FF FF FF FF FF FF C0 00 00 00 00 00 00 00 00 00 ................
95F1: 00 00 00 7E 65 11 1E 00 00 00 00 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0014 D=9C4B H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 0A                                           ..
#D9561
9561: 00 50 43 50 55 54 20 20 20 43 4F 4D 00 00 00 08 .PCPUT   COM....
9571: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @...............
9581: 00 4E 53 57 50 20 20 20 20 43 4F 4D 00 00 00 58 .NSWP    COM...X
9591: 41 42 43 44 45 46 00 00 00 00 00 00 00 00 00 00 ABCDEF..........
95A1: 00 53 59 53 47 45 4E 20 20 43 4F 4D 00 00 00 09 .SYSGEN  COM....
95B1: 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 G...............
95C1: 00 50 43 47 45 54 20 20 20 43 4F 4D 00 00 00 07 .PCGET   COM....
95D1: 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 H...............
95E1: FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 ................
95F1: 00 00 00 7E 65 11 1E 16 00 00 00 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0024 D=A093 H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 12                                           ..
#D9561
9561: 00 43 52 43 20 20 20 20 20 43 4F 4D 00 00 00 11 .CRC     COM....
9571: 49 4A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 IJ..............
9581: 00 4D 4F 56 43 50 4D 20 20 43 4F 4D 00 00 00 53 .MOVCPM  COM...S
9591: 4B 4C 4D 4E 4F 50 00 00 00 00 00 00 00 00 00 00 KLMNOP..........
95A1: 00 53 49 44 20 20 20 20 20 43 4F 4D 00 00 00 3E .SID     COM...>
95B1: 51 52 53 54 00 00 00 00 00 00 00 00 00 00 00 00 QRST............
95C1: 00 43 50 4D 4C 44 52 20 20 43 4F 4D 00 00 00 48 .CPMLDR  COM...H
95D1: 55 56 57 58 59 00 00 00 00 00 00 00 00 00 00 00 UVWXY...........
95E1: FF FF FF FF FF FF FF FF FF 80 00 00 00 00 00 00 ................
95F1: 00 00 00 7E 65 11 1E 16 CE 00 00 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=E5 B=0034 D=A4DB H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 1A                                           ..
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 00 00 00 00 ................
95F1: 00 00 00 7E 65 11 1E 16 CE D5 00 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=E5 B=0008 D=9915 H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 04                                           ..
#D9561
9561: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9571: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9581: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9591: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95A1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95B1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=E5 B=0018 D=9D5D H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 0C                                           ..
#D9561
9561: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9571: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9581: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9591: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95A1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95B1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=E5 B=0028 D=A1A5 H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 14                                           ..
#D9561
9561: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9571: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9581: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9591: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95A1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95B1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=E5 B=0038 D=A5ED H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 1C                                           ..
#D9561
9561: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9571: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9581: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9591: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95A1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95B1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=E5 B=000C D=9A27 H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 06                                           ..
#D9561
9561: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9571: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9581: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9591: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95A1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95B1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=E5 B=001C D=9E6F H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 0E                                           ..
#D9561
9561: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9571: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9581: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9591: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95A1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95B1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=E5 B=002C D=A2B7 H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 16                                           ..
#D9561
9561: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9571: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9581: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9591: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95A1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95B1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=E5 B=003C D=A6FF H=95E1 S=6FD0 P=9139 RET
*9100
#D955A,955B
955A: 02 1E                                           ..
#D9561
9561: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9571: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9581: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
9591: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95A1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95B1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0000 D=96F1 H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 00                                           ..
#D9561
9561: 00 4C 38 30 20 20 20 20 20 43 4F 4D 00 00 00 54 .L80     COM...T
9571: 02 03 04 05 06 07 00 00 00 00 00 00 00 00 00 00 ................
9581: 00 50 43 32 46 4C 4F 50 20 43 4F 4D 00 00 00 11 .PC2FLOP COM....
9591: 08 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95A1: 00 46 4C 4F 50 32 50 43 20 43 4F 4D 00 00 00 13 .FLOP2PC COM....
95B1: 0A 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95C1: 00 41 53 4D 20 20 20 20 20 43 4F 4D 00 00 00 40 .ASM     COM...@
95D1: 0C 0D 0E 0F 00 00 00 00 00 00 00 00 00 00 00 00 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0010 D=9B39 H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 08                                           ..
#D9561
9561: 00 44 55 4D 50 20 20 20 20 43 4F 4D 00 00 00 03 .DUMP    COM....
9571: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9581: 00 58 53 55 42 20 20 20 20 43 4F 4D 00 00 00 06 .XSUB    COM....
9591: 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95A1: 00 46 4F 52 4D 41 54 20 20 43 4F 4D 00 00 00 0E .FORMAT  COM....
95B1: 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95C1: 00 4C 53 20 20 20 20 20 20 43 4F 4D 00 00 00 18 .LS      COM....
95D1: 13 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0020 D=9F81 H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 10                                           ..
#D9561
9561: 00 53 55 42 4D 49 54 20 20 43 4F 4D 00 00 00 11 .SUBMIT  COM....
9571: 15 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9581: 00 4C 4F 41 44 20 20 20 20 43 4F 4D 00 00 00 10 .LOAD    COM....
9591: 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95A1: 00 53 55 52 56 45 59 20 20 43 4F 4D 00 00 00 09 .SURVEY  COM....
95B1: 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95C1: 00 56 49 45 57 20 20 20 20 43 4F 4D 00 00 00 03 .VIEW    COM....
95D1: 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0030 D=A3C9 H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 18                                           ..
#D9561
9561: 00 4D 38 30 20 20 20 20 20 43 4F 4D 00 00 00 80 .M80     COM....
9571: 1A 1B 1C 1D 1E 1F 20 21 00 00 00 00 00 00 00 00 ...... !........
9581: 00 4D 38 30 20 20 20 20 20 43 4F 4D 01 00 00 1D .M80     COM....
9591: 22 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "#..............
95A1: 00 4D 41 43 20 20 20 20 20 43 4F 4D 00 00 00 5C .MAC     COM...\
95B1: 24 25 26 27 28 29 00 00 00 00 00 00 00 00 00 00 $%&'()..........
95C1: 00 4D 42 41 53 49 43 20 20 43 4F 4D 00 00 00 80 .MBASIC  COM....
95D1: 2A 2B 2C 2D 2E 2F 30 31 00 00 00 00 00 00 00 00 *+,-./01........
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0004 D=9803 H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 02                                           ..
#D9561
9561: 00 4D 42 41 53 49 43 20 20 43 4F 4D 01 00 00 3E .MBASIC  COM...>
9571: 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 2345............
9581: 00 50 49 50 20 20 20 20 20 43 4F 4D 00 00 00 3A .PIP     COM...:
9591: 36 37 38 39 00 00 00 00 00 00 00 00 00 00 00 00 6789............
95A1: 00 53 54 41 54 20 20 20 20 43 4F 4D 00 00 00 2A .STAT    COM...*
95B1: 3A 3B 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 :;<.............
95C1: 00 44 44 54 20 20 20 20 20 43 4F 4D 00 00 00 26 .DDT     COM...&
95D1: 3D 3E 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 =>?.............
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0014 D=9C4B H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 0A                                           ..
#D9561
9561: 00 50 43 50 55 54 20 20 20 43 4F 4D 00 00 00 08 .PCPUT   COM....
9571: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @...............
9581: 00 4E 53 57 50 20 20 20 20 43 4F 4D 00 00 00 58 .NSWP    COM...X
9591: 41 42 43 44 45 46 00 00 00 00 00 00 00 00 00 00 ABCDEF..........
95A1: 00 53 59 53 47 45 4E 20 20 43 4F 4D 00 00 00 09 .SYSGEN  COM....
95B1: 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 G...............
95C1: 00 50 43 47 45 54 20 20 20 43 4F 4D 00 00 00 07 .PCGET   COM....
95D1: 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 H...............
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0024 D=A093 H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 12                                           ..
#D9561
9561: 00 43 52 43 20 20 20 20 20 43 4F 4D 00 00 00 11 .CRC     COM....
9571: 49 4A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 IJ..............
9581: 00 4D 4F 56 43 50 4D 20 20 43 4F 4D 00 00 00 53 .MOVCPM  COM...S
9591: 4B 4C 4D 4E 4F 50 00 00 00 00 00 00 00 00 00 00 KLMNOP..........
95A1: 00 53 49 44 20 20 20 20 20 43 4F 4D 00 00 00 3E .SID     COM...>
95B1: 51 52 53 54 00 00 00 00 00 00 00 00 00 00 00 00 QRST............
95C1: 00 43 50 4D 4C 44 52 20 20 43 4F 4D 00 00 00 48 .CPMLDR  COM...H
95D1: 55 56 57 58 59 00 00 00 00 00 00 00 00 00 00 00 UVWXY...........
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=E5 B=0034 D=A4DB H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 1A                                           ..
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=C3 B=0000 D=96F5 H=0180 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 00                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0010 D=9B3D H=0200 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 08                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=03 B=0020 D=9F85 H=0280 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 10                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0030 D=A3CD H=0300 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 18                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0004 D=9807 H=0380 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 02                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=1A B=0014 D=9C4F H=0400 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 0A                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=36 B=0024 D=A097 H=0480 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 12                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=46 B=0034 D=A4DF H=0500 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 1A                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=F1 B=0008 D=9919 H=0580 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 04                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=07 B=0018 D=9D61 H=0600 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 0C                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00.........
#G

01 PASS 9139
 -Z-EI A=11 B=0028 D=A1A9 H=0680 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 14                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=0D B=0038 D=A5F1 H=0700 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 1C                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=07 B=000C D=9A2B H=0780 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 06                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=04 B=001C D=9E73 H=0800 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 0E                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=B0 B=002C D=A2BB H=0880 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 16                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=77 B=003C D=A703 H=0900 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 1E                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0022 D=A00E H=0980 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 01                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=F6 B=0032 D=A456 H=0A00 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 09                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=72 B=0002 D=977E H=0A80 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 11                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=B5 B=0012 D=9BC6 H=0B00 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 19                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=78 B=0026 D=A120 H=0B80 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 03                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=2A B=0036 D=A568 H=0C00 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 0B                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=87 B=0006 D=9890 H=0C80 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 13                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=3A B=0016 D=9CD8 H=0D00 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 1B                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=002A D=A232 H=0D80 S=6FE4 P=9139 RET
*9100
#D955A,955B
955A: 33 05                                           3.
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0000 D=96F1 H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 00                                           ..
#D9561
9561: 00 4C 38 30 20 20 20 20 20 43 4F 4D 00 00 00 54 .L80     COM...T
9571: 02 03 04 05 06 07 00 00 00 00 00 00 00 00 00 00 ................
9581: 00 50 43 32 46 4C 4F 50 20 43 4F 4D 00 00 00 11 .PC2FLOP COM....
9591: 08 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95A1: 00 46 4C 4F 50 32 50 43 20 43 4F 4D 00 00 00 13 .FLOP2PC COM....
95B1: 0A 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95C1: 00 41 53 4D 20 20 20 20 20 43 4F 4D 00 00 00 40 .ASM     COM...@
95D1: 0C 0D 0E 0F 00 00 00 00 00 00 00 00 00 00 00 00 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0010 D=9B39 H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 08                                           ..
#D9561
9561: 00 44 55 4D 50 20 20 20 20 43 4F 4D 00 00 00 03 .DUMP    COM....
9571: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9581: 00 58 53 55 42 20 20 20 20 43 4F 4D 00 00 00 06 .XSUB    COM....
9591: 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95A1: 00 46 4F 52 4D 41 54 20 20 43 4F 4D 00 00 00 0E .FORMAT  COM....
95B1: 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95C1: 00 4C 53 20 20 20 20 20 20 43 4F 4D 00 00 00 18 .LS      COM....
95D1: 13 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0020 D=9F81 H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 10                                           ..
#D9561
9561: 00 53 55 42 4D 49 54 20 20 43 4F 4D 00 00 00 11 .SUBMIT  COM....
9571: 15 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9581: 00 4C 4F 41 44 20 20 20 20 43 4F 4D 00 00 00 10 .LOAD    COM....
9591: 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95A1: 00 53 55 52 56 45 59 20 20 43 4F 4D 00 00 00 09 .SURVEY  COM....
95B1: 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95C1: 00 56 49 45 57 20 20 20 20 43 4F 4D 00 00 00 03 .VIEW    COM....
95D1: 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0030 D=A3C9 H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 18                                           ..
#D9561
9561: 00 4D 38 30 20 20 20 20 20 43 4F 4D 00 00 00 80 .M80     COM....
9571: 1A 1B 1C 1D 1E 1F 20 21 00 00 00 00 00 00 00 00 ...... !........
9581: 00 4D 38 30 20 20 20 20 20 43 4F 4D 01 00 00 1D .M80     COM....
9591: 22 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "#..............
95A1: 00 4D 41 43 20 20 20 20 20 43 4F 4D 00 00 00 5C .MAC     COM...\
95B1: 24 25 26 27 28 29 00 00 00 00 00 00 00 00 00 00 $%&'()..........
95C1: 00 4D 42 41 53 49 43 20 20 43 4F 4D 00 00 00 80 .MBASIC  COM....
95D1: 2A 2B 2C 2D 2E 2F 30 31 00 00 00 00 00 00 00 00 *+,-./01........
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0004 D=9803 H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 02                                           ..
#D9561
9561: 00 4D 42 41 53 49 43 20 20 43 4F 4D 01 00 00 3E .MBASIC  COM...>
9571: 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 2345............
9581: 00 50 49 50 20 20 20 20 20 43 4F 4D 00 00 00 3A .PIP     COM...:
9591: 36 37 38 39 00 00 00 00 00 00 00 00 00 00 00 00 6789............
95A1: 00 53 54 41 54 20 20 20 20 43 4F 4D 00 00 00 2A .STAT    COM...*
95B1: 3A 3B 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 :;<.............
95C1: 00 44 44 54 20 20 20 20 20 43 4F 4D 00 00 00 26 .DDT     COM...&
95D1: 3D 3E 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 =>?.............
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0014 D=9C4B H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 0A                                           ..
#D9561
9561: 00 50 43 50 55 54 20 20 20 43 4F 4D 00 00 00 08 .PCPUT   COM....
9571: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @...............
9581: 00 4E 53 57 50 20 20 20 20 43 4F 4D 00 00 00 58 .NSWP    COM...X
9591: 41 42 43 44 45 46 00 00 00 00 00 00 00 00 00 00 ABCDEF..........
95A1: 00 53 59 53 47 45 4E 20 20 43 4F 4D 00 00 00 09 .SYSGEN  COM....
95B1: 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 G...............
95C1: 00 50 43 47 45 54 20 20 20 43 4F 4D 00 00 00 07 .PCGET   COM....
95D1: 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 H...............
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=00 B=0024 D=A093 H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 12                                           ..
#D9561
9561: 00 43 52 43 20 20 20 20 20 43 4F 4D 00 00 00 11 .CRC     COM....
9571: 49 4A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 IJ..............
9581: 00 4D 4F 56 43 50 4D 20 20 43 4F 4D 00 00 00 53 .MOVCPM  COM...S
9591: 4B 4C 4D 4E 4F 50 00 00 00 00 00 00 00 00 00 00 KLMNOP..........
95A1: 00 53 49 44 20 20 20 20 20 43 4F 4D 00 00 00 3E .SID     COM...>
95B1: 51 52 53 54 00 00 00 00 00 00 00 00 00 00 00 00 QRST............
95C1: 00 43 50 4D 4C 44 52 20 20 43 4F 4D 00 00 00 48 .CPMLDR  COM...H
95D1: 55 56 57 58 59 00 00 00 00 00 00 00 00 00 00 00 UVWXY...........
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9139
 -Z-EI A=E5 B=0034 D=A4DB H=95E1 S=6FD2 P=9139 RET
*9100
#D955A,955B
955A: 02 1A                                           ..
#D9561
9561: E5 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
9571: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
9581: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
9591: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
95A1: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 74 .CPM3    SYS...t
95B1: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
95C1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95D1: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF C0 3F F0 00 00 ............?...
95F1: 00 00 00 7E 65 11 1E 16 CE D5 0A 00 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

A>

======================================================================

CP/M is loaded, as is evidenced by the "A>" prompt.

Back to the modular code:

Going to jump right to the fdRead function, see what track it's trying to read. If not the same as the Douglas code, I'll manipulate @TRK and @SECT and run the read function to see what happens. After the function returns - and the memcpy (mrMove) function runs - I'll examine @DMA to see what we have.


======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#P9331    (passpoint at beginning of fdRead)
#P933F    (passpoint at end of mrMove)
#G8E00


CP/M Plus v3.0hd


01 PASS 9331           (execution stopped at the passpoint at the beginning of fdRead)
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 9446
*9446
#DA97A,A97C            (A97A is @TRK and A97C is @SECT)
A97A: 02 00 01         (so it wants to read track 2, sector 1)
#SA97C                 (command to set memory at location A97C, which is @SECT)
A97C 01 00             (change 01 to 00)
A97D 00 .              (. command to end data entry)
#DA97A,A97C            (examine memory to confirm)
A97A: 02 00 00         (now it wants to read track 2, sector 0 - just like Douglas's BIOS)
#G                     (go)

01 PASS 933F           (execution stopped at the passpoint at the end of mrMove)
 -Z-EI A=00 B=0000 D=97EF H=9725 S=6FD2 P=933F MVI  A,00
*9341         
#DA97A,A97C            (look again at @TRK and @SECT, just as a sanity check)
A97A: 02 00 00         (still track 2, sector 0)
#D96A5                 (examine @DMA block)
96A5: 00 4C 38 30 20 20 20 20 20 43 4F 4D 00 00 00 54 .L80     COM...T
96B5: 02 03 04 05 06 07 00 00 00 00 00 00 00 00 00 00 ................
96C5: 00 50 43 32 46 4C 4F 50 20 43 4F 4D 00 00 00 11 .PC2FLOP COM....
96D5: 08 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96E5: 00 46 4C 4F 50 32 50 43 20 43 4F 4D 00 00 00 13 .FLOP2PC COM....
96F5: 0A 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9705: 00 41 53 4D 20 20 20 20 20 43 4F 4D 00 00 00 40 .ASM     COM...@
9715: 0C 0D 0E 0F 00 00 00 00 00 00 00 00 00 00 00 00 ................
9725: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9735: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9745: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9755: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#

======================================================================

OK, there we go. I see now the read works just fine. What doesn't work is whatever is setting the sequence of sectors for the directory read.

The sector sequence should be:

00,10,18,02,0A,12,1A,04,0C,14,1C,06,0E,16,1E (in hex)
   -or-
00,16,24,02,10,18,26,04,12,20,28,06,14,22,30 (in decimal)

The sequence it tries to do right now is this:

01,09,11,19,03,0B,13,1B,05,0D,15,1D,07,0F,17,1F,01,09   (in hex)
   -or-
01,09,17,25,03,11,19,27,05,13,21,29,07,15,23,31,01,09   (in decimal)

So that's what I'll investigate next.

Looking at setsec, to see what it is initially set for.

First, from modular cpm3.sys:


=======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#PA902              (setsec)
#G8E00


CP/M Plus v3.0hd


01 PASS A902
 --ME- A=9F B=0001 D=0000 H=0001 S=6FD0 P=A902 MOV  L,C
*A903

=======================================================================

BC is requested sector number, so we can already see it is set to 1.

Now using the Douglas BIOS. The requested sector is also 1, so something
is translating it back to 0 after this point. The skewing code does this,
and now I see that skewing logic must happen after this point.


=======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1A00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#P90DF              (setsec)
#G8E00

CP/M 3 BIOS v1.0 for Altair 8" Floppy

01 PASS 90DF
 -Z-EI A=00 B=0001 D=0000 H=0001 S=6FD0 P=90DF MOV  A,C
*90E0
#

=======================================================================
  

Again, BC is requested sector number, so it is set to 1 in the Douglas BIOS too.

By the way, don't be fooled by the fact that the initial instruction is different.
Mike's code is a little different than DRI code. But it does the same thing.

Running the Douglas BIOS several times to observe the setsec sequence:

01,09,11,19,03,0B,13,1B,05,0D,15,1D,07,0F,17,1F

Now the modular BIOS:

01,09,11,19,03,0B,13,1B,05,0D,15,1D,07,0F,17,1F

So, as you can see, it's the same sequence issued by BDOS. Something after that
is modifying the sequence.

There are two sector modifiers - one (sectran) that is called by BDOS and another (altSkew) that is called withing the low-level read and write functions. That second one looks at the track and checks to see if it's a system track or not, which the directory is a part of. What the altSkew function considers a "system track" are those less than 6. So it should not be modifying the sector number when reading directory tracks. But maybe it is. Something sure is.

Watch [BC] for the track number.

Douglas BIOS run:


=======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1A00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#P90DF
#G8E00

CP/M 3 BIOS v1.0 for Altair 8" Floppy

01 PASS 90DF
 -Z-EI A=00 B=0001 D=0000 H=0001 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0009 D=0000 H=0009 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0011 D=0000 H=0011 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0019 D=0000 H=0019 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0003 D=0000 H=0003 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=000B D=0000 H=000B S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0013 D=0000 H=0013 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=001B D=0000 H=001B S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0005 D=0000 H=0005 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=000D D=0000 H=000D S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0015 D=0000 H=0015 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=001D D=0000 H=001D S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0007 D=0000 H=0007 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=000F D=0000 H=000F S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0017 D=0000 H=0017 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=001F D=0000 H=001F S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0001 D=0000 H=0001 S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0009 D=0000 H=0009 S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0011 D=0000 H=0011 S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0019 D=0000 H=0019 S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0003 D=0000 H=0003 S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=000B D=0000 H=000B S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0013 D=0000 H=0013 S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=001B D=0000 H=001B S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0001 D=0620 H=0001 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0009 D=0620 H=0009 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0011 D=0620 H=0011 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0019 D=0620 H=0019 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0003 D=0620 H=0003 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=000B D=0620 H=000B S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0013 D=0620 H=0013 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=001B D=0620 H=001B S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0005 D=0620 H=0005 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=000D D=0620 H=000D S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0015 D=0620 H=0015 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=001D D=0620 H=001D S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0007 D=0620 H=0007 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=000F D=0620 H=000F S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0017 D=0620 H=0017 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=001F D=0620 H=001F S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0002 D=0620 H=0002 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=000A D=0620 H=000A S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0012 D=0620 H=0012 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=001A D=0620 H=001A S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0004 D=0620 H=0004 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=000C D=0620 H=000C S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0014 D=0620 H=0014 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=001C D=0620 H=001C S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0006 D=0620 H=0006 S=6FE6 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0001 D=0000 H=0001 S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0009 D=0000 H=0009 S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0011 D=0000 H=0011 S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0019 D=0000 H=0019 S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0003 D=0000 H=0003 S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=000B D=0000 H=000B S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0013 D=0000 H=0013 S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=001B D=0000 H=001B S=6FD2 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0005 D=0000 H=0005 S=6FD2 P=90DF MOV  A,C
*90E0
#G
A>

=======================================================================

Now a modular BIOS run.

Again, watch the track number sequence in [BC].


=======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#PA902              (setsec)
#G8E00


CP/M Plus v3.0hd


01 PASS A902
 --ME- A=9F B=0001 D=0000 H=0001 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0009 D=0001 H=0009 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0011 D=0002 H=0011 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0019 D=0003 H=0019 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0003 D=0004 H=0003 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=000B D=0005 H=000B S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0013 D=0006 H=0013 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=001B D=0007 H=001B S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0005 D=0008 H=0005 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=000D D=0009 H=000D S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0015 D=000A H=0015 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=001D D=000B H=001D S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0007 D=000C H=0007 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=000F D=000D H=000F S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0017 D=000E H=0017 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=001F D=000F H=001F S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0001 D=0000 H=0001 S=6FD2 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0009 D=0001 H=0009 S=6FD2 P=A902 MOV  L,C
*A903
#G

BIOS ERR ON A: NO CCP.COM 

=======================================================================

Let's look at sectrn. Its job is to use the value of [BC] as an index into the tranTable. It does a lookup into the tranTable and returns the value that is [BC] elements into the array. That is used to translate the logical sector provided by BDOS into the physical sector required by the hardware layer. So let's see how the sectrn function in the modular code compares to the sectrn function in the Douglas code.

The current CPM3.SYS file is from the modular BIOS, so we'll test that first:


=======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#PA914
#G8E00


CP/M Plus v3.0hd


01 PASS A914
 -Z-EI A=00 B=0000 D=930F H=0000 S=6FD0 P=A914 MOV  L,C
 -Z-EI A=00 B=0000 D=930F H=0000 S=6FD0 P=A915 MOV  H,B
 -Z-EI A=00 B=0000 D=930F H=0000 S=6FD0 P=A916 MOV  A,D
 -Z-EI A=93 B=0000 D=930F H=0000 S=6FD0 P=A917 ORA  E
 --ME- A=9F B=0000 D=930F H=0000 S=6FD0 P=A918 RZ
 --ME- A=9F B=0000 D=930F H=0000 S=6FD0 P=A919 XCHG
 --ME- A=9F B=0000 D=0000 H=930F S=6FD0 P=A91A DAD  B
 --ME- A=9F B=0000 D=0000 H=930F S=6FD0 P=A91B MOV  L,M
 --ME- A=9F B=0000 D=0000 H=9301 S=6FD0 P=A91C MVI  H,00
 --ME- A=9F B=0000 D=0000 H=0001 S=6FD0 P=A91E RET
*784B

=======================================================================

The first value is 01.

I'll set a passpoint at the RET instruction, which is where we should examine [HL] for the return value. And I'll remove the passpoint at the beginning of sectrn.


=======================================================================

#PA91E
#-PA914
#G

01 PASS A91E
 --ME- A=9F B=0001 D=0001 H=0009 S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=0002 D=0002 H=0011 S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=0003 D=0003 H=0019 S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=0004 D=0004 H=0003 S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=0005 D=0005 H=000B S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=0006 D=0006 H=0013 S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=0007 D=0007 H=001B S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=0008 D=0008 H=0005 S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=0009 D=0009 H=000D S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=000A D=000A H=0015 S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=000B D=000B H=001D S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=000C D=000C H=0007 S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=000D D=000D H=000F S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=000E D=000E H=0017 S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=000F D=000F H=001F S=6FD0 P=A91E RET
*784B
#G

01 PASS A91E
 --ME- A=9F B=0000 D=0000 H=0001 S=6FD2 P=A91E RET
*784B

=======================================================================

This accurately reflects the entries in the tranTable:

01,09,11,19,03,0B,13,1B,05,0D,15,1D,07,0F,17,1F,01,09   (in hex)
   -or-
01,09,17,25,03,11,19,27,05,13,21,29,07,15,23,31,01,09   (in decimal)

Let's look at the Douglas code and see what it does. Setsec is at 90EB in his code.


=======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1A00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#P90EB
#G8E00

CP/M 3 BIOS v1.0 for Altair 8" Floppy

01 PASS 90EB
 -Z-EI A=00 B=0000 D=950E H=0000 S=6FD0 P=90EB XCHG
 -Z-EI A=00 B=0000 D=0000 H=950E S=6FD0 P=90EC MVI  B,00
 -Z-EI A=00 B=0000 D=0000 H=950E S=6FD0 P=90EE DAD  B
 -Z-EI A=00 B=0000 D=0000 H=950E S=6FD0 P=90EF MOV  L,M
 -Z-EI A=00 B=0000 D=0000 H=9501 S=6FD0 P=90F0 MOV  H,B
 -Z-EI A=00 B=0000 D=0000 H=0001 S=6FD0 P=90F1 RET
*784B

=======================================================================

Here we see the RET is at 90F1, so let's set a passpoint there and remove the one at 90EB, beginning of sectrn. Run the code 'til the end of the sequence - where it starts to repeat - and see what we've got:


=======================================================================

#P90F1
#-P90EB
#G

01 PASS 90F1
 -Z-EI A=00 B=0001 D=0000 H=0009 S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=0002 D=0000 H=0011 S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=0003 D=0000 H=0019 S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=0004 D=0000 H=0003 S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=0005 D=0000 H=000B S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=0006 D=0000 H=0013 S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=0007 D=0000 H=001B S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=0008 D=0000 H=0005 S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=0009 D=0000 H=000D S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=000A D=0000 H=0015 S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=000B D=0000 H=001D S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=000C D=0000 H=0007 S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=000D D=0000 H=000F S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=000E D=0000 H=0017 S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=000F D=0000 H=001F S=6FD0 P=90F1 RET
*784B
#G

01 PASS 90F1
 -Z-EI A=00 B=0000 D=0000 H=0001 S=6FD2 P=90F1 RET
*784B

=======================================================================

Same sequence. So the two versions of the code are in agreement in sectrn.

01,09,11,19,03,0B,13,1B,05,0D,15,1D,07,0F,17,1F,01,09   (in hex)
   -or-
01,09,17,25,03,11,19,27,05,13,21,29,07,15,23,31,01,09   (in decimal)

Now I need to learn how that is used to translate the logical sectors to physical sectors. This is the sequence of sectors we expect to see when reading the directory on track 2:

00,10,18,02,0A,12,1A,04,0C,14,1C,06,0E,16,1E (in hex)
   -or-
00,16,24,02,10,18,26,04,12,20,28,06,14,22,30 (in decimal)

The Douglas code takes the logical sectors from BDOS, and combines them with the values it gobbled up from sectrn and spits out the proper physical sector values. But not the modular code. It parrots the values from the tranTable, as if it were adding zero to the entries instead of doing the right math. Not a translation at all. My task is to find where the actual translation occurs and fix it.

Let's look at setsec. It's 90DF in the Douglas code and A902 in the modular code.

Douglas run creates same (01,09,11,19,03,0B,13,1B,05,0D,15,1D,07,0F,17,1F,01,09) sequence:

=======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1A00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#P90DF
#G8E00

CP/M 3 BIOS v1.0 for Altair 8" Floppy

01 PASS 90DF
 -Z-EI A=00 B=0001 D=0000 H=0001 S=6FD0 P=90DF MOV  A,C
*90E0
#
#G

01 PASS 90DF
 -Z-EI A=00 B=0009 D=0000 H=0009 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0011 D=0000 H=0011 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0019 D=0000 H=0019 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0003 D=0000 H=0003 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=000B D=0000 H=000B S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0013 D=0000 H=0013 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=001B D=0000 H=001B S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0005 D=0000 H=0005 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=000D D=0000 H=000D S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0015 D=0000 H=0015 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=001D D=0000 H=001D S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0007 D=0000 H=0007 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=000F D=0000 H=000F S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0017 D=0000 H=0017 S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=001F D=0000 H=001F S=6FD0 P=90DF MOV  A,C
*90E0
#G

01 PASS 90DF
 -Z-EI A=00 B=0001 D=0000 H=0001 S=6FD2 P=90DF MOV  A,C
*90E0

=======================================================================

Modular run also creates the same (01,09,11,19,03,0B,13,1B,05,0D,15,1D,07,0F,17,1F,01,09) sequence:

=======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#PA902
#G8E00


CP/M Plus v3.0hd


01 PASS A902
 --ME- A=9F B=0001 D=0000 H=0001 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0009 D=0001 H=0009 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0011 D=0002 H=0011 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0019 D=0003 H=0019 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0003 D=0004 H=0003 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=000B D=0005 H=000B S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0013 D=0006 H=0013 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=001B D=0007 H=001B S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0005 D=0008 H=0005 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=000D D=0009 H=000D S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0015 D=000A H=0015 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=001D D=000B H=001D S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0007 D=000C H=0007 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=000F D=000D H=000F S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0017 D=000E H=0017 S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=001F D=000F H=001F S=6FD0 P=A902 MOV  L,C
*A903
#G

01 PASS A902
 --ME- A=9F B=0001 D=0000 H=0001 S=6FD2 P=A902 MOV  L,C
*A903

=======================================================================

Let's look at read. It's 90F2 in the Douglas code and A91F in the modular code. Each expects the sector number to be in memory, at the @SECT location. @TRK,@SECT is at A97A,A97C in the modular code. It's at 955A,955B in Douglas code.

Douglas code shows the updated sequence. But the modular code doesn't. So something happens in the Douglas code to update @SECT between setsec and read. It doesn't happen in the modular code. So let's single-step the Douglas code starting at setsec and watch for anything that touches 955B.


=======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1A00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#P90DF         (setsec)
#G8E00

CP/M 3 BIOS v1.0 for Altair 8" Floppy

01 PASS 90DF
 -Z-EI A=00 B=0001 D=0000 H=0001 S=6FD0 P=90DF MOV  A,C
*90E0
##T
 -Z-EI A=01 B=0001 D=0000 H=0001 S=6FD0 P=90E0 DCR  A
*90E1
#T
 -Z-EI A=00 B=0001 D=0000 H=0001 S=6FD0 P=90E1 STA  955B     (Uuuh, yeah.  Here it is.)
*90E4
#T
 -Z-EI A=00 B=0001 D=0000 H=0001 S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=0009 D=0000 H=0009 S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=09 B=0009 D=0000 H=0009 S=6FD0 P=90E0 DCR  A
*90E1
#T
 ----I A=08 B=0009 D=0000 H=0009 S=6FD0 P=90E1 STA  955B     (And again.)
*90E4
#T
 ----I A=08 B=0009 D=0000 H=0009 S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=0011 D=0000 H=0011 S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=11 B=0011 D=0000 H=0011 S=6FD0 P=90E0 DCR  A
*90E1
#T
 ----I A=10 B=0011 D=0000 H=0011 S=6FD0 P=90E1 STA  955B     (Again.  Is it always just decremented?)
*90E4
#T
 ----I A=10 B=0011 D=0000 H=0011 S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=0019 D=0000 H=0019 S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=19 B=0019 D=0000 H=0019 S=6FD0 P=90E0 DCR  A
*90E1
#T
 ---EI A=18 B=0019 D=0000 H=0019 S=6FD0 P=90E1 STA  955B
*90E4
#T
 ---EI A=18 B=0019 D=0000 H=0019 S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=0003 D=0000 H=0003 S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=03 B=0003 D=0000 H=0003 S=6FD0 P=90E0 DCR  A
*90E1
#T
 ----I A=02 B=0003 D=0000 H=0003 S=6FD0 P=90E1 STA  955B
*90E4
#T
 ----I A=02 B=0003 D=0000 H=0003 S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=000B D=0000 H=000B S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=0B B=000B D=0000 H=000B S=6FD0 P=90E0 DCR  A
*90E1
#T
 ---EI A=0A B=000B D=0000 H=000B S=6FD0 P=90E1 STA  955B
*90E4
#G

01 PASS 90DF
 -Z-EI A=00 B=0013 D=0000 H=0013 S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=13 B=0013 D=0000 H=0013 S=6FD0 P=90E0 DCR  A
*90E1
#T
 ---EI A=12 B=0013 D=0000 H=0013 S=6FD0 P=90E1 STA  955B
*90E4
#T
 ---EI A=12 B=0013 D=0000 H=0013 S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=001B D=0000 H=001B S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=1B B=001B D=0000 H=001B S=6FD0 P=90E0 DCR  A
*90E1
#T
 ----I A=1A B=001B D=0000 H=001B S=6FD0 P=90E1 STA  955B
*90E4
#T
 ----I A=1A B=001B D=0000 H=001B S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=0005 D=0000 H=0005 S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=05 B=0005 D=0000 H=0005 S=6FD0 P=90E0 DCR  A
*90E1
#T
 ----I A=04 B=0005 D=0000 H=0005 S=6FD0 P=90E1 STA  955B
*90E4
#T
 ----I A=04 B=0005 D=0000 H=0005 S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=000D D=0000 H=000D S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=0D B=000D D=0000 H=000D S=6FD0 P=90E0 DCR  A
*90E1
#T
 ---EI A=0C B=000D D=0000 H=000D S=6FD0 P=90E1 STA  955B
*90E4
#T
 ---EI A=0C B=000D D=0000 H=000D S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=0015 D=0000 H=0015 S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=15 B=0015 D=0000 H=0015 S=6FD0 P=90E0 DCR  A
*90E1
#T
 ---EI A=14 B=0015 D=0000 H=0015 S=6FD0 P=90E1 STA  955B
*90E4
#T
 ---EI A=14 B=0015 D=0000 H=0015 S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=001D D=0000 H=001D S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=1D B=001D D=0000 H=001D S=6FD0 P=90E0 DCR  A
*90E1
#T
 ----I A=1C B=001D D=0000 H=001D S=6FD0 P=90E1 STA  955B
*90E4
#T
 ----I A=1C B=001D D=0000 H=001D S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=0007 D=0000 H=0007 S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=07 B=0007 D=0000 H=0007 S=6FD0 P=90E0 DCR  A
*90E1
#T
 ---EI A=06 B=0007 D=0000 H=0007 S=6FD0 P=90E1 STA  955B
*90E4
#T
 ---EI A=06 B=0007 D=0000 H=0007 S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=000F D=0000 H=000F S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=0F B=000F D=0000 H=000F S=6FD0 P=90E0 DCR  A
*90E1
#T
 ----I A=0E B=000F D=0000 H=000F S=6FD0 P=90E1 STA  955B
*90E4
#T
 ----I A=0E B=000F D=0000 H=000F S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=0017 D=0000 H=0017 S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=17 B=0017 D=0000 H=0017 S=6FD0 P=90E0 DCR  A
*90E1
#T
 ----I A=16 B=0017 D=0000 H=0017 S=6FD0 P=90E1 STA  955B
*90E4
#T
 ----I A=16 B=0017 D=0000 H=0017 S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=001F D=0000 H=001F S=6FD0 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=1F B=001F D=0000 H=001F S=6FD0 P=90E0 DCR  A
*90E1
#T
 ---EI A=1E B=001F D=0000 H=001F S=6FD0 P=90E1 STA  955B
*90E4
#T
 ---EI A=1E B=001F D=0000 H=001F S=6FD0 P=90E4 RET
*7853
#G

01 PASS 90DF
 -Z-EI A=00 B=0001 D=0000 H=0001 S=6FD2 P=90DF MOV  A,C
*90E0
#T
 -Z-EI A=01 B=0001 D=0000 H=0001 S=6FD2 P=90E0 DCR  A
*90E1
#T
 -Z-EI A=00 B=0001 D=0000 H=0001 S=6FD2 P=90E1 STA  955B
*90E4
#T
 -Z-EI A=00 B=0001 D=0000 H=0001 S=6FD2 P=90E4 RET
*7853
#

=======================================================================

Apparently, yes. It's just a simple decrement. Let's look at the same function in the modular BIOS.

No decrement, so adding one in for testing. For now, it's in the setsec function in the "invariant" BIOSKRNL code. Once I get this running, I'll remove it from there and put it in the FDC3 module.

Running the modified code:


=======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#L8E00
  8E00  JMP  A893       (boot)
  8E03  JMP  8E6C       (wboot)
  8E06  JMP  8F72       (const)
  8E09  JMP  8F8D       (conin)
  8E0C  JMP  8ED5       (conout)
  8E0F  JMP  8EE1       (list)
  8E12  JMP  8EDB       (auxout)
  8E15  JMP  8F93       (auxin)
  8E18  JMP  A901       (home)
  8E1B  JMP  A8D2       (seldsk)
  8E1E  JMP  A904       (settrk)
  8E21  JMP  A90A       (setsec)
  8E24  JMP  A911       (setdma)
  8E27  JMP  A928       (read)
  8E2A  JMP  A93E       (write)
  8E2D  JMP  8F0D       (listst)
  8E30  JMP  A91D       (sectrn)
  8E33  JMP  8F01       (conost)
  8E36  JMP  8F78       (auxist)
  8E39  JMP  8F07       (auxost)
  8E3C  JMP  8ECD       (devtbl)
  8E3F  JMP  9104       (devini)
  8E42  JMP  8ED1       (drvtbl)
  8E45  JMP  A95F       (multio)
  8E48  JMP  A963       (flush)
  8E4B  JMP  9282       (move)
  8E4E  JMP  9094       (time)
  8E51  JMP  9020       (selmem)
  8E54  JMP  A919       (setbnk)
  8E57  JMP  9281       (xmove)
  8E5A  JMP  0000       (userf)
  8E5D  JMP  0000       (reserv1)
  8E60  JMP  0000       (reserv2)
#PA904                                    (passpoint at settrk
#PA90A                                                  setsec
#PA928                                                    read
#PA91D                                              and sectrn)
#G8E00


CP/M Plus v3.0hd


01 PASS A904                                                 (settrk: BC is track number)
 -Z-E- A=00 B=0000 D=00C0 H=972E S=6FE0 P=A904 MOV  L,C
 -Z-E- A=00 B=0000 D=00C0 H=9700 S=6FE0 P=A905 MOV  H,B
 -Z-E- A=00 B=0000 D=00C0 H=0000 S=6FE0 P=A906 SHLD A983     (@TRK = 0000)
 -Z-E- A=00 B=0000 D=00C0 H=0000 S=6FE0 P=A909 RET
*774F
#G

01 PASS A904                                                 (settrk)
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A905 MOV  H,B
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A906 SHLD A983     (@TRK = 0002)
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A909 RET
*7827
#G

01 PASS A91D                                                 (sectrn: BC is BDOS sector)
 -Z-EI A=00 B=0000 D=930F H=0000 S=6FD0 P=A91D MOV  L,C
 -Z-EI A=00 B=0000 D=930F H=0000 S=6FD0 P=A91E MOV  H,B
 -Z-EI A=00 B=0000 D=930F H=0000 S=6FD0 P=A91F MOV  A,D
 -Z-EI A=93 B=0000 D=930F H=0000 S=6FD0 P=A920 ORA  E
 --ME- A=9F B=0000 D=930F H=0000 S=6FD0 P=A921 RZ
 --ME- A=9F B=0000 D=930F H=0000 S=6FD0 P=A922 XCHG
 --ME- A=9F B=0000 D=0000 H=930F S=6FD0 P=A923 DAD  B
 --ME- A=9F B=0000 D=0000 H=930F S=6FD0 P=A924 MOV  L,M
 --ME- A=9F B=0000 D=0000 H=9301 S=6FD0 P=A925 MVI  H,00
 --ME- A=9F B=0000 D=0000 H=0001 S=6FD0 P=A927 RET           (0001 HL is 1-indexed physical sector)
*784B
#G

01 PASS A90A                                                 (setsec: BC is physical sector)
 --ME- A=9F B=0001 D=0000 H=0001 S=6FD0 P=A90A MOV  L,C
 --ME- A=9F B=0001 D=0000 H=0001 S=6FD0 P=A90B MOV  H,B
 --ME- A=9F B=0001 D=0000 H=0001 S=6FD0 P=A90C DCX  H
 --ME- A=9F B=0001 D=0000 H=0000 S=6FD0 P=A90D SHLD A985     (@SECT = 0000)
 --ME- A=9F B=0001 D=0000 H=0000 S=6FD0 P=A910 RET
*7853
#G

01 PASS A928                                                 (read:  HL = @DMA)
 ----I A=01 B=9601 D=0000 H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 00 00                                     ....   (track 0002, sector 0000)
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: 00 4C 38 30 20 20 20 20 20 43 4F 4D 00 00 00 54 .L80     COM...T
96BD: 02 03 04 05 06 07 00 00 00 00 00 00 00 00 00 00 ................
96CD: 00 50 43 32 46 4C 4F 50 20 43 4F 4D 00 00 00 11 .PC2FLOP COM....
96DD: 08 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96ED: 00 46 4C 4F 50 32 50 43 20 43 4F 4D 00 00 00 13 .FLOP2PC COM....
96FD: 0A 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
970D: 00 41 53 4D 20 20 20 20 20 43 4F 4D 00 00 00 40 .ASM     COM...@
971D: 0C 0D 0E 0F 00 00 00 00 00 00 00 00 00 00 00 00 ................
972D: FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
973D: 00 00 00 7E 00 00 00 00 00 00 00 00 00 00 00 00 ...~............
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D                                                 (sectrn: BC is BDOS sector)
 -Z-EI A=00 B=0001 D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A                                                 (setsec: BC is physical sector)
 --ME- A=9F B=0009 D=0001 H=0009 S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928                                                 (read:  HL = @DMA)
 ----I A=01 B=9601 D=0001 H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986                                                  (@TRK, @SECT)
A983: 02 00 08 00                                     ....
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: 00 44 55 4D 50 20 20 20 20 43 4F 4D 00 00 00 03 .DUMP    COM....
96BD: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96CD: 00 58 53 55 42 20 20 20 20 43 4F 4D 00 00 00 06 .XSUB    COM....
96DD: 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96ED: 00 46 4F 52 4D 41 54 20 20 43 4F 4D 00 00 00 0E .FORMAT  COM....
96FD: 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
970D: 00 4C 53 20 20 20 20 20 20 43 4F 4D 00 00 00 18 .LS      COM....
971D: 13 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
972D: FF FF F8 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
973D: 00 00 00 7E 65 00 00 00 00 00 00 00 00 00 00 00 ...~e...........
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D
 -Z-EI A=00 B=0002 D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=0011 D=0002 H=0011 S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=0002 H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 10 00                                     ....
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: 00 53 55 42 4D 49 54 20 20 43 4F 4D 00 00 00 11 .SUBMIT  COM....
96BD: 15 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96CD: 00 4C 4F 41 44 20 20 20 20 43 4F 4D 00 00 00 10 .LOAD    COM....
96DD: 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96ED: 00 53 55 52 56 45 59 20 20 43 4F 4D 00 00 00 09 .SURVEY  COM....
96FD: 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
970D: 00 56 49 45 57 20 20 20 20 43 4F 4D 00 00 00 03 .VIEW    COM....
971D: 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
972D: FF FF FF C0 00 00 00 00 00 00 00 00 00 00 00 00 ................
973D: 00 00 00 7E 65 11 00 00 00 00 00 00 00 00 00 00 ...~e...........
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D
 -Z-EI A=00 B=0003 D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=0019 D=0003 H=0019 S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=0003 H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 18 00                                     ....
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: 00 4D 38 30 20 20 20 20 20 43 4F 4D 00 00 00 80 .M80     COM....
96BD: 1A 1B 1C 1D 1E 1F 20 21 00 00 00 00 00 00 00 00 ...... !........
96CD: 00 4D 38 30 20 20 20 20 20 43 4F 4D 01 00 00 1D .M80     COM....
96DD: 22 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "#..............
96ED: 00 4D 41 43 20 20 20 20 20 43 4F 4D 00 00 00 5C .MAC     COM...\
96FD: 24 25 26 27 28 29 00 00 00 00 00 00 00 00 00 00 $%&'()..........
970D: 00 4D 42 41 53 49 43 20 20 43 4F 4D 00 00 00 80 .MBASIC  COM....
971D: 2A 2B 2C 2D 2E 2F 30 31 00 00 00 00 00 00 00 00 *+,-./01........
972D: FF FF FF FF FF FF C0 00 00 00 00 00 00 00 00 00 ................
973D: 00 00 00 7E 65 11 1E 00 00 00 00 00 00 00 00 00 ...~e...........
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D
 -Z-EI A=00 B=0004 D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=0003 D=0004 H=0003 S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=0004 H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 02 00                                     ....
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: 00 4D 42 41 53 49 43 20 20 43 4F 4D 01 00 00 3E .MBASIC  COM...>
96BD: 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 2345............
96CD: 00 50 49 50 20 20 20 20 20 43 4F 4D 00 00 00 3A .PIP     COM...:
96DD: 36 37 38 39 00 00 00 00 00 00 00 00 00 00 00 00 6789............
96ED: 00 53 54 41 54 20 20 20 20 43 4F 4D 00 00 00 2A .STAT    COM...*
96FD: 3A 3B 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 :;<.............
970D: 00 44 44 54 20 20 20 20 20 43 4F 4D 00 00 00 26 .DDT     COM...&
971D: 3D 3E 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 =>?.............
972D: FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 ................
973D: 00 00 00 7E 65 11 1E 16 00 00 00 00 00 00 00 00 ...~e...........
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D
 -Z-EI A=00 B=0005 D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=000B D=0005 H=000B S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=0005 H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 0A 00                                     ....
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: 00 50 43 50 55 54 20 20 20 43 4F 4D 00 00 00 08 .PCPUT   COM....
96BD: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @...............
96CD: 00 4E 53 57 50 20 20 20 20 43 4F 4D 00 00 00 58 .NSWP    COM...X
96DD: 41 42 43 44 45 46 00 00 00 00 00 00 00 00 00 00 ABCDEF..........
96ED: 00 53 59 53 47 45 4E 20 20 43 4F 4D 00 00 00 09 .SYSGEN  COM....
96FD: 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 G...............
970D: 00 50 43 47 45 54 20 20 20 43 4F 4D 00 00 00 07 .PCGET   COM....
971D: 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 H...............
972D: FF FF FF FF FF FF FF FF FF 80 00 00 00 00 00 00 ................
973D: 00 00 00 7E 65 11 1E 16 CE 00 00 00 00 00 00 00 ...~e...........
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D
 -Z-EI A=00 B=0006 D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=0013 D=0006 H=0013 S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=0006 H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 12 00                                     ....
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: 00 43 52 43 20 20 20 20 20 43 4F 4D 00 00 00 11 .CRC     COM....
96BD: 49 4A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 IJ..............
96CD: 00 4D 4F 56 43 50 4D 20 20 43 4F 4D 00 00 00 53 .MOVCPM  COM...S
96DD: 4B 4C 4D 4E 4F 50 00 00 00 00 00 00 00 00 00 00 KLMNOP..........
96ED: 00 53 49 44 20 20 20 20 20 43 4F 4D 00 00 00 3E .SID     COM...>
96FD: 51 52 53 54 00 00 00 00 00 00 00 00 00 00 00 00 QRST............
970D: 00 43 50 4D 4C 44 52 20 20 43 4F 4D 00 00 00 48 .CPMLDR  COM...H
971D: 55 56 57 58 59 00 00 00 00 00 00 00 00 00 00 00 UVWXY...........
972D: FF FF FF FF FF FF FF FF FF FF FF C0 00 00 00 00 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 00 00 00 00 00 00 ...~e...........
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D
 -Z-EI A=00 B=0007 D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=001B D=0007 H=001B S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=0007 H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 1A 00                                     ....
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: 00 43 50 4D 33 4D 4F 44 31 53 59 53 00 00 00 78 .CPM3MOD1SYS...x
96BD: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
96CD: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
96DD: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
96ED: 00 43 50 4D 33 4D 4F 44 32 53 59 53 00 00 00 78 .CPM3MOD2SYS...x
96FD: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
970D: 00 43 50 4D 33 44 55 47 20 53 59 53 00 00 00 74 .CPM3DUG SYS...t
971D: 6C 6D 6E 6F 70 71 72 73 00 00 00 00 00 00 00 00 lmnopqrs........
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 00 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 00 00 00 00 00 ...~e.....n.....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D
 -Z-EI A=00 B=0008 D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=0005 D=0008 H=0005 S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=0008 H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 04 00                                     ....
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
96BD: 74 75 76 77 78 79 7A 7B 00 00 00 00 00 00 00 00 tuvwxyz{........
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D
 -Z-EI A=00 B=0009 D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=000D D=0009 H=000D S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=0009 H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 0C 00                                     ....
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96BD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D
 -Z-EI A=00 B=000A D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=0015 D=000A H=0015 S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=000A H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 14 00                                     ....
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96BD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D
 -Z-EI A=00 B=000B D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=001D D=000B H=001D S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=000B H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 1C 00                                     ....
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96BD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D
 -Z-EI A=00 B=000C D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=0007 D=000C H=0007 S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=000C H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 06 00                                     ....
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96BD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D
 -Z-EI A=00 B=000D D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=000F D=000D H=000F S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=000D H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 0E 00                                     ....
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96BD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D
 -Z-EI A=00 B=000E D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=0017 D=000E H=0017 S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=000E H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 16 00                                     ....
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A904 MOV  L,C
*A905
#D96AD
96AD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96BD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A91D
 -Z-EI A=00 B=000F D=930F H=0000 S=6FD0 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=001F D=000F H=001F S=6FD0 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=000F H=96AD S=6FD2 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 1E 00                                     ....
#G

01 PASS A904
 -Z-EI A=0F B=0000 D=8BCD H=8BE4 S=6FE2 P=A904 MOV  L,C
*A905
#D96AD
96AD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96BD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS A904
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FCA P=A904 MOV  L,C
*A905
#G

01 PASS A91D
 -Z-EI A=00 B=0000 D=930F H=0000 S=6FD2 P=A91D MOV  L,C
*A91E
#G

01 PASS A90A
 --ME- A=9F B=0001 D=0000 H=0001 S=6FD2 P=A90A MOV  L,C
*A90B
#G

01 PASS A928
 ----I A=01 B=9601 D=0000 H=96AD S=6FD4 P=A928 LHLD A981
*A92B
#DA983,A986
A983: 02 00 00 00                                     ....
#

...Starting the second pass.

=======================================================================

Let's monitor each read function, placing a breakpoint at the final RET instruction so we can see the registers there and also check @TRK, @SECT and @DMA.


=======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#LA928                       (BIOSKRNL read entry point)
  A928  LHLD A981            (@ADRV)
  A92B  MVI  H,00
  A92D  DAD  H
  A92E  LXI  D,9288          (@DTBL)
  A931  DAD  D
  A932  MOV  A,M
  A933  INX  H
  A934  MOV  H,M
  A935  MOV  L,A
  A936  PUSH H
  A937  LXI  D,FFF8
  A93A  DAD  D
  A93B  JMP  A951            (rw$common)
  ~~~~
#LA951
  A951  MOV  A,M
  A952  INX  H
  A953  MOV  H,M
  A954  MOV  L,A
  A955  POP  D
  A956  DCX  D
  A957  DCX  D
  A958  LDAX D
  A959  STA  A982            (@RDRV)
  A95C  INX  D
  A95D  INX  D
  A95E  PCHL
  ~~~~
#G8E00,A95E                  (run to the call to fdRead)
*A95E
#X
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=A95E PCHL          (9331 is the fdRead entry point)
#L9331
  9331  CALL 944E            (call ckFlush)
  9334  EI
  9335  CALL 93E7            (call readTrk)
  9338  EI
  9339  JNZ  933F            (jnz over call to movRead)
  933C  CALL 9352            (call movRead)
  933F  MVI  A,00
  9341  RZ                   (return with HL=@DMA+seclen, A=00 and Z=1 if everything is OK)
  9342  INR  A
  9343  RET                  (otherwise, return with A!=0 and Z=0)
  ~~~~
#L9352                       (movRead)
  9352  CALL 93D7            (call altSkew)
  9355  CALL 95A1            (call dSecAdr)
  9358  MOV  A,M
  9359  ORA  A
  935A  RNZ
  935B  LXI  D,0008
  935E  LDA  A983            (lda @TRK)
  9361  CPI  06
  9363  JNC  9369
  9366  LXI  D,0004
  9369  DAD  D
  936A  XCHG
  936B  LHLD A987            (lda @DMA)
  936E  MVI  B,80
  9370  LDAX D               (mrLoop - iteration to copy sector)
  9371  MOV  M,A
  9372  INX  H
  9373  INX  D
  9374  DCR  B
  9375  JNZ  9370            (loop back to mrLoop to copy data)
  9378  RET

=======================================================================

So, upon entry to fdRead, we should expect to see @TRK, @SECT and @DMA. The TRK/SECT data is in memory locations A983-A986, and those values should be the now familiar sequence. The DMA address is in locations A987 and A988 and will be (96AD) while reading the directory. On exit, we should expect to see HL==@DMA+80h (972D during directory transfers), A==00, Z==1 and 128 bytes of sector data starting at @DMA. The HL register will be 96AD if reading the directory but will be 0100 if reading the first sector of the CCP.COM file. Every subsequent sector read will increase by 128 (80h), so 0180, then 0200, then 0280 and so on until the entire file is read.


=======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#P9331             (entry to fdRead)
#P9341             (return on success)
#P9343             (return on error)
#G8E00


CP/M Plus v3.0hd


01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 00 00 AD 96                               ......
#G

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#P9331
#P9341
#P9343
#G8E00


CP/M Plus v3.0hd


01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 00 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0000 D=97F7 H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: 00 4C 38 30 20 20 20 20 20 43 4F 4D 00 00 00 54 .L80     COM...T
96BD: 02 03 04 05 06 07 00 00 00 00 00 00 00 00 00 00 ................
96CD: 00 50 43 32 46 4C 4F 50 20 43 4F 4D 00 00 00 11 .PC2FLOP COM....
96DD: 08 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96ED: 00 46 4C 4F 50 32 50 43 20 43 4F 4D 00 00 00 13 .FLOP2PC COM....
96FD: 0A 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
970D: 00 41 53 4D 20 20 20 20 20 43 4F 4D 00 00 00 40 .ASM     COM...@
971D: 0C 0D 0E 0F 00 00 00 00 00 00 00 00 00 00 00 00 ................
972D: C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
973D: ..............
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 08 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0010 D=9C3F H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: 00 44 55 4D 50 20 20 20 20 43 4F 4D 00 00 00 03 .DUMP    COM....
96BD: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96CD: 00 58 53 55 42 20 20 20 20 43 4F 4D 00 00 00 06 .XSUB    COM....
96DD: 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96ED: 00 46 4F 52 4D 41 54 20 20 43 4F 4D 00 00 00 0E .FORMAT  COM....
96FD: 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
970D: 00 4C 53 20 20 20 20 20 20 43 4F 4D 00 00 00 18 .LS      COM....
971D: 13 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
972D: FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
973D: 00 00 00 7E 00 00 00 00 00 00 00 00 00 00 00 00 ...~............
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,DA988
A983: 02 00 10 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0020 D=A087 H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: 00 53 55 42 4D 49 54 20 20 43 4F 4D 00 00 00 11 .SUBMIT  COM....
96BD: 15 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96CD: 00 4C 4F 41 44 20 20 20 20 43 4F 4D 00 00 00 10 .LOAD    COM....
96DD: 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96ED: 00 53 55 52 56 45 59 20 20 43 4F 4D 00 00 00 09 .SURVEY  COM....
96FD: 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
970D: 00 56 49 45 57 20 20 20 20 43 4F 4D 00 00 00 03 .VIEW    COM....
971D: 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
972D: FF FF F8 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
973D: 00 00 00 7E 65 00 00 00 00 00 00 00 00 00 00 00 ...~e...........
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 18 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0030 D=A4CF H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: 00 4D 38 30 20 20 20 20 20 43 4F 4D 00 00 00 80 .M80     COM....
96BD: 1A 1B 1C 1D 1E 1F 20 21 00 00 00 00 00 00 00 00 ...... !........
96CD: 00 4D 38 30 20 20 20 20 20 43 4F 4D 01 00 00 1D .M80     COM....
96DD: 22 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "#..............
96ED: 00 4D 41 43 20 20 20 20 20 43 4F 4D 00 00 00 5C .MAC     COM...\
96FD: 24 25 26 27 28 29 00 00 00 00 00 00 00 00 00 00 $%&'()..........
970D: 00 4D 42 41 53 49 43 20 20 43 4F 4D 00 00 00 80 .MBASIC  COM....
971D: 2A 2B 2C 2D 2E 2F 30 31 00 00 00 00 00 00 00 00 *+,-./01........
972D: FF FF FF C0 00 00 00 00 00 00 00 00 00 00 00 00 ................
973D: 00 00 00 7E 65 11 00 00 00 00 00 00 00 00 00 00 ...~e...........
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 02 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0004 D=9909 H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: 00 4D 42 41 53 49 43 20 20 43 4F 4D 01 00 00 3E .MBASIC  COM...>
96BD: 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 2345............
96CD: 00 50 49 50 20 20 20 20 20 43 4F 4D 00 00 00 3A .PIP     COM...:
96DD: 36 37 38 39 00 00 00 00 00 00 00 00 00 00 00 00 6789............
96ED: 00 53 54 41 54 20 20 20 20 43 4F 4D 00 00 00 2A .STAT    COM...*
96FD: 3A 3B 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 :;<.............
970D: 00 44 44 54 20 20 20 20 20 43 4F 4D 00 00 00 26 .DDT     COM...&
971D: 3D 3E 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 =>?.............
972D: FF FF FF FF FF FF C0 00 00 00 00 00 00 00 00 00 ................
973D: 00 00 00 7E 65 11 1E 00 00 00 00 00 00 00 00 00 ...~e...........
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 0A 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0014 D=9D51 H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: 00 50 43 50 55 54 20 20 20 43 4F 4D 00 00 00 08 .PCPUT   COM....
96BD: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @...............
96CD: 00 4E 53 57 50 20 20 20 20 43 4F 4D 00 00 00 58 .NSWP    COM...X
96DD: 41 42 43 44 45 46 00 00 00 00 00 00 00 00 00 00 ABCDEF..........
96ED: 00 53 59 53 47 45 4E 20 20 43 4F 4D 00 00 00 09 .SYSGEN  COM....
96FD: 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 G...............
970D: 00 50 43 47 45 54 20 20 20 43 4F 4D 00 00 00 07 .PCGET   COM....
971D: 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 H...............
972D: FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 0~e...........
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 12 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0024 D=A199 H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: 00 43 52 43 20 20 20 20 20 43 4F 4D 00 00 00 11 .CRC     COM....
96BD: 49 4A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 IJ..............
96CD: 00 4D 4F 56 43 50 4D 20 20 43 4F 4D 00 00 00 53 .MOVCPM  COM...S
96DD: 4B 4C 4D 4E 4F 50 00 00 00 00 00 00 00 00 00 00 KLMNOP..........
96ED: 00 53 49 44 20 20 20 20 20 43 4F 4D 00 00 00 3E .SID     COM...>
96FD: 51 52 53 54 00 00 00 00 00 00 00 00 00 00 00 00 QRST............
970D: 00 43 50 4D 4C 44 52 20 20 43 4F 4D 00 00 00 48 .CPMLDR  COM...H
971D: 55 56 57 58 59 00 00 00 00 00 00 00 00 00 00 00 UVWXY...........
972D: FF FF FF FF FF FF FF FF FF 80 00 00 00 00 00 00 ................
973D: 00 00 00 7E 65 11 1E 16 CE 00 00 00 00 00 00 00 ...~e...........
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 1A 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0034 D=A5E1 H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: 00 43 50 4D 33 4D 4F 44 31 53 59 53 00 00 00 78 .CPM3MOD1SYS...x
96BD: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
96CD: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
96DD: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
96ED: 00 43 50 4D 33 4D 4F 44 32 53 59 53 00 00 00 78 .CPM3MOD2SYS...x
96FD: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
970D: 00 43 50 4D 33 44 55 47 20 53 59 53 00 00 00 74 .CPM3DUG SYS...t
971D: 6C 6D 6E 6F 70 71 72 73 00 00 00 00 00 00 00 00 lmnopqrs........
972D: FF FF FF FF FF FF FF FF FF FF FF C0 00 00 00 00 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 00 00 00 00 00 00 ...~e...........
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 04 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0008 D=9A1B H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: 00 43 50 4D 33 20 20 20 20 53 59 53 00 00 00 78 .CPM3    SYS...x
96BD: 74 75 76 77 78 79 7A 7B 00 00 00 00 00 00 00 00 tuvwxyz{........
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 00 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 00 00 00 00 00 ...~e.....n.....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 0C 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0018 D=9E63 H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96BD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 14 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0028 D=A2AB H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96BD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 1C 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0038 D=A6F3 H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96BD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 06 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=000C D=9B2D H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96BD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 0E 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=001C D=9F75 H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96BD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D:  FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 16 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=002C D=A3BD H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96BD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD2 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 1E 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=003C D=A805 H=972D S=6FD2 P=9341 RZ
*7767
#D96AD
96AD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96BD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96CD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96DD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96ED: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
96FD: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
970D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
971D: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD4 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 00 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0000 D=97F7 H=972D S=6FD4 P=9341 RZ
*7767
#D96AD
96AD: 00 4C 38 30 20 20 20 20 20 43 4F 4D 00 00 00 54 .L80     COM...T
96BD: 02 03 04 05 06 07 00 00 00 00 00 00 00 00 00 00 ................
96CD: 00 50 43 32 46 4C 4F 50 20 43 4F 4D 00 00 00 11 .PC2FLOP COM....
96DD: 08 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96ED: 00 46 4C 4F 50 32 50 43 20 43 4F 4D 00 00 00 13 .FLOP2PC COM....
96FD: 0A 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
970D: 00 41 53 4D 20 20 20 20 20 43 4F 4D 00 00 00 40 .ASM     COM...@
971D: 0C 0D 0E 0F 00 00 00 00 00 00 00 00 00 00 00 00 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD4 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 08 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0010 D=9C3F H=972D S=6FD4 P=9341 RZ
*7767
#D96AD
96AD: 00 44 55 4D 50 20 20 20 20 43 4F 4D 00 00 00 03 .DUMP    COM....
96BD: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96CD: 00 58 53 55 42 20 20 20 20 43 4F 4D 00 00 00 06 .XSUB    COM....
96DD: 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96ED: 00 46 4F 52 4D 41 54 20 20 43 4F 4D 00 00 00 0E .FORMAT  COM....
96FD: 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
970D: 00 4C 53 20 20 20 20 20 20 43 4F 4D 00 00 00 18 .LS      COM....
971D: 13 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD4 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 10 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0020 D=A087 H=972D S=6FD4 P=9341 RZ
*7767
#D96AD
96AD: 00 53 55 42 4D 49 54 20 20 43 4F 4D 00 00 00 11 .SUBMIT  COM....
96BD: 15 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96CD: 00 4C 4F 41 44 20 20 20 20 43 4F 4D 00 00 00 10 .LOAD    COM....
96DD: 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96ED: 00 53 55 52 56 45 59 20 20 43 4F 4D 00 00 00 09 .SURVEY  COM....
96FD: 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
970D: 00 56 49 45 57 20 20 20 20 43 4F 4D 00 00 00 03 .VIEW    COM....
971D: 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD4 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 18 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0030 D=A4CF H=972D S=6FD4 P=9341 RZ
*7767
#D96AD
96AD: 00 4D 38 30 20 20 20 20 20 43 4F 4D 00 00 00 80 .M80     COM....
96BD: 1A 1B 1C 1D 1E 1F 20 21 00 00 00 00 00 00 00 00 ...... !........
96CD: 00 4D 38 30 20 20 20 20 20 43 4F 4D 01 00 00 1D .M80     COM....
96DD: 22 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "#..............
96ED: 00 4D 41 43 20 20 20 20 20 43 4F 4D 00 00 00 5C .MAC     COM...\
96FD: 24 25 26 27 28 29 00 00 00 00 00 00 00 00 00 00 $%&'()..........
970D: 00 4D 42 41 53 49 43 20 20 43 4F 4D 00 00 00 80 .MBASIC  COM....
971D: 2A 2B 2C 2D 2E 2F 30 31 00 00 00 00 00 00 00 00 *+,-./01........
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD4 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 02 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0004 D=9909 H=972D S=6FD4 P=9341 RZ
*7767
#D96AD
96AD: 00 4D 42 41 53 49 43 20 20 43 4F 4D 01 00 00 3E .MBASIC  COM...>
96BD: 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 2345............
96CD: 00 50 49 50 20 20 20 20 20 43 4F 4D 00 00 00 3A .PIP     COM...:
96DD: 36 37 38 39 00 00 00 00 00 00 00 00 00 00 00 00 6789............
96ED: 00 53 54 41 54 20 20 20 20 43 4F 4D 00 00 00 2A .STAT    COM...*
96FD: 3A 3B 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 :;<.............
970D: 00 44 44 54 20 20 20 20 20 43 4F 4D 00 00 00 26 .DDT     COM...&
971D: 3D 3E 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 =>?.............
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD4 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 0A 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0014 D=9D51 H=972D S=6FD4 P=9341 RZ
*7767
#D96AD
96AD: 00 50 43 50 55 54 20 20 20 43 4F 4D 00 00 00 08 .PCPUT   COM....
96BD: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @...............
96CD: 00 4E 53 57 50 20 20 20 20 43 4F 4D 00 00 00 58 .NSWP    COM...X
96DD: 41 42 43 44 45 46 00 00 00 00 00 00 00 00 00 00 ABCDEF..........
96ED: 00 53 59 53 47 45 4E 20 20 43 4F 4D 00 00 00 09 .SYSGEN  COM....
96FD: 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 G...............
970D: 00 50 43 47 45 54 20 20 20 43 4F 4D 00 00 00 07 .PCGET   COM....
971D: 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 H...............
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD4 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 12 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0024 D=A199 H=972D S=6FD4 P=9341 RZ
*7767
#D96AD
96AD: 00 43 52 43 20 20 20 20 20 43 4F 4D 00 00 00 11 .CRC     COM....
96BD: 49 4A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 IJ..............
96CD: 00 4D 4F 56 43 50 4D 20 20 43 4F 4D 00 00 00 53 .MOVCPM  COM...S
96DD: 4B 4C 4D 4E 4F 50 00 00 00 00 00 00 00 00 00 00 KLMNOP..........
96ED: 00 53 49 44 20 20 20 20 20 43 4F 4D 00 00 00 3E .SID     COM...>
96FD: 51 52 53 54 00 00 00 00 00 00 00 00 00 00 00 00 QRST............
970D: 00 43 50 4D 4C 44 52 20 20 43 4F 4D 00 00 00 48 .CPMLDR  COM...H
971D: 55 56 57 58 59 00 00 00 00 00 00 00 00 00 00 00 UVWXY...........
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C---I A=00 B=9601 D=92B2 H=9331 S=6FD4 P=9331 CALL 944E
*944E
#DA983,A988
A983: 02 00 1A 00 AD 96                               ......
#G

01 PASS 9341
 -Z-EI A=00 B=0034 D=A5E1 H=972D S=6FD4 P=9341 RZ
*7767
#D96AD
96AD: 00 43 50 4D 33 4D 4F 44 31 53 59 53 00 00 00 78 .CPM3MOD1SYS...x
96BD: 5A 5B 5C 5D 5E 5F 60 61 00 00 00 00 00 00 00 00 Z[\]^_`a........
96CD: 00 43 43 50 20 20 20 20 20 43 4F 4D 00 00 00 19 .CCP     COM....
96DD: 62 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc..............
96ED: 00 43 50 4D 33 4D 4F 44 32 53 59 53 00 00 00 78 .CPM3MOD2SYS...x
96FD: 64 65 66 67 68 69 6A 6B 00 00 00 00 00 00 00 00 defghijk........
970D: 00 43 50 4D 33 44 55 47 20 53 59 53 00 00 00 74 .CPM3DUG SYS...t
971D: 6C 6D 6E 6F 70 71 72 73 00 00 00 00 00 00 00 00 lmnopqrs........
972D: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 ................
973D: 00 00 00 7E 65 11 1E 16 CE D5 6E 66 00 00 00 00 ...~e.....nf....
974D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
975D: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

BIOS ERR ON A: NO CCP.COM FILE

=======================================================================

===  This is odd.   On the second pass, when the sector containing  ===
===  the  CCP.COM  directory is read, the code flow  presents  the  ===
===  warning.  Might single step through the flow after the fdRead  ===
===  function next time to see where that goes.   In the meantime,  ===
===  after pressing a character, the current code flow continues.   ===

=======================================================================

01 PASS 9331
 C-ME- A=00 B=0080 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 00 00 80 00                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0000 D=97FB H=0100 S=6FE6 P=9341 RZ
*7767
#D0000
0000: C3 03 8E F3 00 C3 06 6F 08 E6 08 C2 07 00 3E 04 .......o......>.
0010: D3 09 C3 20 00 DB 08 E6 02 C2 15 00 3E 02 D3 09 ... ........>...
0020: DB 08 E6 40 C2 15 00 01 00 01 21 80 DD CD 48 00 ...@......!...H.
0030: DB 08 E6 02 C2 30 00 3E C3 86 D2 01 01 01 21 80 .....0.>......!.
0040: ED CD 48 00 FB C3 00 F5 C5 E5 7C FE DF DA 56 00 ..H.......|...V.
0050: CD 72 00 C2 00 00 E1 11 00 01 19 00 00 24 42 20 .r...........$B
0060: 20 20 20 20 20 20 20 20 00 00 00 00 00 20 20 20         .....
0070: 20 20 20 20 20 20 20 20 00 00 00 00 00 D1 C0 21         .......!
0080: C3 1A 04 00 00 00 C3 1B 01 C3 06 00 07 00 00 00 ................
0090: 4C 4F 41 44 45 52 20 20 FF 00 00 79 FE 3B C2 09 LOADER  ...y.;..
00A0: 01 C1 C5 21 00 00 39 31 BE 03 22 9A 03 C5 EB 22 ...!..91.."...."
00B0: 98 03 7C B5 F5 CC 00 02 F1 C4 30 02 D1 21 00 01 ..|.......0..!..
#G

01 PASS 9331
 C-ME- A=00 B=0100 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 08 00 00 01                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0010 D=9C43 H=0180 S=6FE6 P=9341 RZ
*7767
#D0100
0100: 00 00 23 4E 23 46 3A 8F 03 B7 CA 92 01 23 34 CA ..#N#F:......#4.
0110: 9D 01 D5 CD 0F 03 E1 CD CA 02 CD D0 01 E1 11 10 ................
0120: 00 19 E5 5E 23 56 7B B2 C2 82 01 CD 03 01 3A 00 ...^#V{.......:.
0130: 02 FE C9 C2 BF 01 2A 8D 03 2E B3 7E F6 02 77 2A ......*....~..w*
0140: 01 01 44 4D 21 00 02 11 00 01 CD 26 03 C3 5F 01 ..DM!......&.._.
0150: 2A 06 00 2E 00 01 06 00 CD 26 03 1E 18 12 1E 0D *........&......
0160: 12 1B 3E 07 12 6B 1E 0B 73 23 72 EB 72 2B 36 06 ..>..k..s#r.r+6.
0170: 2E 06 22 06 00 22 94 03 11 92 03 0E 31 C3 05 00 ..".."......1...
0180: D5 E5 CD 8F 01 CD 95 01 E1 D1 25 C2 7A 01 C9 0E ..........%.z...
0190: 1A CD 8D 02 C9 0E 14 11 AB 01 CD 8D 02 B7 11 FA ................
01A0: 01 C8 0E 09 CD 8D 02 F3 76 FF C9 00 43 50 4D 33 ........v...CPM3
01B0: 20 20 20 20 53 59 53 00 00 00 78 74 75 76 77 78     SYS...xtuvwx
#G

01 PASS 9331
 C-ME- A=00 B=0180 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 10 00 80 01                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0020 D=A08B H=0200 S=6FE6 P=9341 RZ
*7767
#D0180
0180: 2A 06 00 44 60 2E 18 34 35 C0 2E 0B 46 2E 0E 7E *..D`..45...F..~
0190: B7 CA 04 02 2E 0C 5E 23 56 78 12 1B 3E 06 12 13 ......^#Vx..>...
01A0: 60 2E 0C 73 23 72 7A B7 C5 CC F0 01 C1 C3 04 02 `..s#rz.........
01B0: E5 11 90 03 CD FB 01 EB E1 E5 01 20 00 09 36 00 ........... ..6.
01C0: 23 4E 23 66 69 25 24 CA 67 01 E5 D5 E5 CD 31 03 #N#fi%$.g.....1.
01D0: E1 F5 1E 80 3A 07 00 3D 94 DA FA 02 3C FE 40 D2 ....:..=....<.@.
01E0: 76 02 07 5F 7D B7 CA 76 02 06 02 3D FA 70 02 05 v.._}..v...=.p..
01F0: 7B 90 CA FA 02 5F D5 E5 CD 33 03 E1 E5 CD 3B 03 {...._...3....;.
0200: 44 52 20 65 72 72 6F 72 3A 20 20 66 61 69 6C 65 DR error:  faile
0210: 64 20 74 6F 20 72 65 61 64 20 43 50 4D 33 2E 53 d to read CPM3.S
0220: 59 53 0D 0A 24 0D 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A YS..$...........
0230: 0A 0A 0A 0A 0A 0A 0A
#G

01 PASS 9331
 C-ME- A=00 B=0200 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 18 00 00 02                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0030 D=A4D3 H=0280 S=6FE6 P=9341 RZ
*7767
#D0200
0200: E1 D1 F5 7B 3C 1F 84 67 22 96 03 F1 CA 54 02 C1 ...{<..g"....T..
0210: 3D 58 CD 33 03 0E 1A D1 F5 CD 05 00 F1 2A 9C 03 =X.3.........*..
0220: EB C2 6A 01 D1 E1 01 09 00 09 7E E6 7F FE 50 C0 ..j.......~...P.
0230: 23 7E E6 7F FE 52 C0 23 7E E6 7F D6 4C C0 7B B7 #~...R.#~...L.{.
0240: C2 67 01 62 6B 23 4E 23 46 6B 24 D5 C5 CD 26 03 .g.bk#N#Fk$...&.
0250: C1 D1 D5 5A 1D E5 63 1E 00 78 B1 CA F7 02 0B 7B ...Z..c..x.....{
0260: E6 07 C2 EA 02 E3 7E 23 E3 6F 7D 17 6F D2 F3 02 ......~#.o}.o...
0270: 1A 84 12 13 C3 D9 02 D1 D1 C9 CD 31 03 21 80 00 ...........1.!..
0280: 01 AA 3B 00 00 00 8E 00 00 00 00 00 00 EB 22 DF ..;...........".
0290: 09 EB 79 FE 0E DA A5 02 32 E2 09 AF 32 B7 09 3A ..y.....2...2..:
02A0: DE 09 32 BE 09 7B 32 BA 09 21 00 00 22 09 04 22 ..2..{2..!..".."
02B0: E1 09 39 22 40 03 31 92 03 21 4E 09 E5 79 FE 32 ..9"@.1..!N..y.2
#G

01 PASS 9331
 C-ME- A=00 B=0280 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 02 00 80 02                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0004 D=990D H=0300 S=6FE6 P=9341 RZ
*7767
#D0280
0280: CD 3B 03 C2 8F 02 21 FE 00 22 9C 03 C3 8F 02 3A .;....!..".....:
0290: 07 00 3D 0B 90 03 FE 0F DA 77 01 2A 96 03 BC DA ..=......w.*....
02A0: 77 01 57 1E 00 C9 78 B1 C8 0B 7E 12 13 23 C3 26 w.W...x...~..#.&
02B0: 03 1E 01 2A 8D 03 2E E6 7E 73 C9 EB 0E 1A E5 CD ...*....~s......
02C0: 05 00 0E 14 2A 98 03 EB CD 05 00 22 9C 03 D1 B7 ....*......"....
02D0: C8 5C C9 0D 0A 43 61 6E 6E 6F 74 20 6C 6F 61 64 .\...Cannot load
02E0: 20 50 72 6F 67 72 61 6D 20 32 32 31 32 38 32 20  Program 221282
02F0: 20 43 4F 50 59 52 20 27 38 32 20 44 52 49 20 00  COPYR '82 DRI .
0300: E8 03 E8 03 3B 09 E8 03 E8 03 E8 03 E8 03 41 09 ....;.........A.
0310: 47 09 E8 03 E8 03 E8 03 E8 03 E8 03 E8 03 E8 03 G...............
0320: E8 03 E8 03 E8 03 E8 03 E8 03 E8 03 E8 03 E8 03 ................
0330: E8 03 E8 03 E8 03 E8 03 E8 03 E8 03 E8 03 E8 03 ................
#G

01 PASS 9331
 C-ME- A=00 B=0300 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 0A 00 00 03                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0014 D=9D55 H=0380 S=6FE6 P=9341 RZ
*7767
#D0300
0300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0310: 3C 00 62 FE 00 80 00 00 80 48 41 10 04 12 24 12 <.b......HA...$.
0320: 40 08 00 10 00 88 44 48 00 20 04 80 00 09 00 20 @.....DH. .....
0330: 00 00 01 20 00 00 10 00 00 11 12 00 00 41 00 10 ... .........A..
0340: 40 82 08 21 00 22 08 01 10 00 00 00 20 01 00 04 @..!."...... ...
0350: 08 01 02 08 24 12 00 24 40 00 84 00 02 04 00 00 ....$..$@.......
0360: 00 00 00 00 00 00 00 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0370: 1A 1A 1A 1A 1A 1A 1A 137 05 3D 00 19 0E 00 0E F9 05 19 06 ....7.=.........
0390: 4E 09 3A EE 03 B7 C2 9E 03 C5 CD 0C 0B C1 79 21 N.:...........y!
03A0: DA 09 FE 7F C8 34 FE 20 D0 35 7E B7 C8 79 FE 08 .....4. .5~..y..
03B0: C2 B5 03 35 C9 FE 0A C0 36 00 C9 79 FE 09 C2 92 ...5....6..y....
#G

01 PASS 9331
 C-ME- A=00 B=0380 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 12 00 80 03                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0024 D=A19D H=0400 S=6FE6 P=9341 RZ
*7767
#D0380
0380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0390: 00 00 00 00 00 00 00 00 00 00 31 2D 0F 21 0C 05 ..........1-.!..
03A0: E5 11 6A 0D 0E 31 CD 05 00 22 8D 03 2E FA 7E 32 ..j..1..."....~2
03B0: 8F 03 2E 99 7E 32 A0 0D 3A 07 00 96 C2 58 04 01 ....~2..:....X..
03C0: 94 02 CD 0F 03 63 6B CD CA 02 2A 06 00 6B 0E 06 .....ck...*..k..
03D0: CD AE 0B 1E 0B CD EB 01 0E 62 CD 05 00 06 B6 CD .........b......
03E0: FF 0B 3C 0F 0F 0F 0F E6 0F 11 97 0D 12 2E B8 7E ..<............~
03F0: 3D 13 12 AF 13 12 3E 24 13 12 2E D3 77 2E E6 36 =.....>$....w..6
0400: 63 74 24 50 65 72 6D 2E 24 00 00 01 EF 03 CD CF ct$Perm.$.......
0410: 03 01 FC 03 C3 20 04 01 EF 03 CD CF 03 01 03 04 ..... ..........
0420: CD CF 03 F3 76 7B 95 5F 7A 9C 57 D0 05 C9 7B 85 ....v{._z.W...{.
0430: 5F 7A 8C 57 D0 04 C9 0C 0D C8 29 8F C3 38 04 1A _z.W......)..8..
#G

01 PASS 9331
 C-ME- A=00 B=0400 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 1A 00 00 04                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0034 D=A5E5 H=0480 S=6FE6 P=9341 RZ
*7767
#D0400
0400: 01 23 AF 77 2E CF 36 01 23 77 2E A1 36 31 2E B4 .#.w..6.#w..61..
0410: 7E E6 20 0E 0D E5 C4 05 00 E1 2E B3 7E E6 02 E5 ~. .........~...
0420: CC 00 02 E1 7E E6 FD 77 E6 40 E5 2E B0 01 70 0D ....~..w.@....p.
0430: 54 1E E0 1A 02 7E C2 BA 04 02 12 03 1E DA 1A C2 T....~..........
0440: C4 04 3E FF 02 2B 03 7E 02 12 2E EC 03 7E 02 E1 ..>..+.~.....~..
0450: 7E E6 80 CA E7 04 21 80 00 11 F5 0D 0E 7F 79 12 ~.....!.......y.
0460: 13 CD AE 0B C3 8B 05 2E B5 7E E6 02 C2 06 05 7E .........~.....~
0470: F6 02 77 32 67 0D 21 FC 04 C3 D9 04 50 52 4F 46 ..w2g.!.....PROF
0480: 09 0E 11 CD 49 04 2A AA 09 7C 21 BD 09 36 FF B7 ....I.*..|!..6..
0490: CA 95 04 36 00 37 C9 CD 18 0B AF 2A 90 09 77 23 ...6.7.....*..w#
04A0: 77 2A 92 09 77 23 77 23 77 C9 21 C3 09 5E 23 56 w*..w#w#w.!..^#V
04B0: 23 46 C9 CD AA 04 CD 27 0B B7 C8 4F FE 03 DA 17 #F.....'
#G

01 PASS 9331
 C-ME- A=00 B=0480 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 04 00 80 04                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0008 D=9A1F H=0500 S=6FE6 P=9341 RZ
*7767
#D0480
0480: 49 4C 45 2E 53 00 CD E4 0B CD 09 0C 21 2B 0F F9 ILE.S.......!+..
0490: AF 32 99 0D 21 0C 05 E5 CD E4 0B 2B 7E E6 01 CA .2..!......+~...
04A0: 64 05 11 F5 0D CD 7B 09 0E 0F CD F0 09 0E 0B CC d.....{.........
04B0: F0 09 C2 4F 05 21 96 0D 77 2B 77 2B E5 3A 82 0D ...O.!..w+w+.:..
04C0: 3D 77 0E 21 F4 F0 09 E1 35 0E 13 FC F0 09 B7 F5 =w.!....5.......
04D0: 0E 63 CD F0 09 F1 CA 8B 05 01 01 B3 CD F1 0B 0E .c..............
04E0: 13 CD F0 09 3A 70 0D B7 C4 13 0C CD 6D 06 3E 3E ....:p......m.>>
04F0: CD 16 09 11 BA B1 CD A7 0B B7 F5 01 80 B4 C4 F1 ................
0500: E1 E3 2B E3 C3 F0 04 2A A5 09 CD 2E 04 E1 7D 93 ..+....*......}.
0510: 7C 9A 79 98 DA 1E 05 E3 23 E3 E5 C3 07 05 E3 E5 |.y.....#.......
0520: 2A A5 09 CD 25 04 E1 D5 C5 E5 EB 2A B2 09 19 44 *...%......*...D
0530: 4D 22 CE 09 CD 1E 0B D1 2A 90 09 73 23 72 C1 D1 M"......*..s#r..
#G

01 PASS 9331
 C-ME- A=00 B=0500 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 0C 00 00 05                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0018 D=9E67 H=0580 S=6FE6 P=9341 RZ
*7767
#D0500
0500: 0B CD 4E 09 CD EE 0B F1 C4 A8 0A CD DA 0B C2 96 ..N.............
0510: 05 2E C9 7E 2B 77 2E C8 7E 32 9A 0D CD F6 09 C8 ...~+w..~2......
0520: 11 AC 0D CD 39 0B 3A B6 0D FE 20 C2 04 06 21 AC ....9.:... ...!.
0530: 0D 7E 23 B6 23 7E C2 0A 06 21 37 06 11 AE 0D 3A .~#.#~...!7....:
0540: B0 0D FE 21 D4 BF 0C C2 E8 05 3A A1 0D B7 78 2A ...!......:...x*
0550: 6C 0D 22 9D 0D 21 5A 06 CA 58 08 FE 04 DA 86 07 l."..!Z..X......
0560: 21 B1 0D C2 E8 05 36 20 01 18 B4 CD DD 0B CA 04 !.....6 ........
0570: 06 06 08 90 CA F9 05 06 00 C5 CD 7A 08 CD E4 07 ...........z....
0580: 3E 08 96 4F 3A C0 09 0D CA 90 05 B7 17 C3 87 05 >..O:...........
0590: 80 C9 2A DF 09 11 10 00 19 C9 CD 92 05 09 3A BD ..*...........:.
05A0: 09 B7 CA A8 05 6E 60 C9 09 7E 23 66 6F C9 CD 72 .....n`..~#fo..r
05B0: 05 32 BB 09 4F 06 00 CD 9A 05 22 C3 09 7D B4 C9 .2..O....."..}..
#G

01 PASS 9331
 C-ME- A=00 B=0580 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 14 00 80 05                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0028 D=A2AF H=0600 S=6FE6 P=9341 RZ
*7767
#D0580
0580: F1 CD 7A 08 CD E4 07 C3 3A 0C FE 20 C2 E8 05 CD ..z.....:.. ....
0590: 36 0C 3A AC 0D D6 01 DA 25 06 32 70 0D 06 B0 CD 6.:.....%.2p....
05A0: F9 0B CD 86 09 3A AD 0D 3D F8 F5 CD 80 09 F1 32 .....:..=......2
05B0: 72 0D 06 AF C3 F9 0B 44 49 52 20 54 59 50 45 20 r......DIR TYPE
05C0: 45 52 41 53 45 20 52 45 4E 41 4D 45 20 44 49 52 ERASE RENAME DIR
05D0: 53 59 53 20 55 53 45 52 20 00 75 06 F4 06 22 07 SYS USER .u...".
05E0: 51 07 7D 06 15 07 3A 5C 00 3D F2 70 06 3A 72 0D Q.}...:\.=.p.:r.
05F0: C6 41 C3 A6 0C 0E 00 11 52 0D C3 82 06 0E 80 11 .A......R.......
0600: F6 05 7E 32 C1 09 EB 7E 32 BF 09 CD E6 05 3A A9 ..~2...~2.....:.
0610: 09 A6 32 C0 09 C9 CD F6 05 0E 01 3A C1 09 81 77 ..2........:...w
0620: EB 3A BF 09 77 C9 0C 0D C8 7C B7 1F 67 7D 1F 6F .:..w....|..g}.o
0630: C3 27 06 0C 0D C8 29 C3 34 06 3A DE 09 C5 4F 21 .'....).4.:...O!
#G

01 PASS 9331
 C-ME- A=00 B=0600 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 1C 00 00 06                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0038 D=A6F7 H=0680 S=6FE6 P=9341 RZ
*7767
#D0600
0600: 4E 0D D5 CD 99 06 D1 CA B8 07 7D B8 D4 09 0C 21 N.........}....!
0610: 4D 0D 35 34 C8 35 C3 05 0C C5 CD 78 09 CD D8 0A M.54.5.....x....
0620: 11 5D 00 1A FE 20 06 0B CC B5 0C CD 36 0C CD C3 .]... ......6...
0630: 09 C1 C8 3A 97 0D 6F 47 04 E5 21 0A 00 19 7E E1 ...:..oG..!...~.
0640: E6 80 B9 CA CE 06 3E 01 32 4D 0D C3 E5 06 05 CC ......>.2M......
0650: 08 0C 78 BD CC 66 06 3E 3A CD A6 0C CD A4 0C CD ..x..f.>:.......
0660: 8D 0C CD A4 0C C5 E5 CD 66 09 CD C8 09 E1 C1 C2 ........f.......
0670: B9 06 3C C9 21 06 05 E5 CD D8 0A 3E 7F 32 9F 0D ..<.!......>.2..
0680: 3A B5 09 B7 CA 8F 06 3E 03 CD E8 09 C3 9B 06 CD :......>........
0690: A1 06 22 8C 09 CD DA 04 CD B3 04 2A DC 09 C3 A7 .."........*....
06A0: 06 2A 9E 09 CD 72 06 22 8A 09 C9 21 E3 09 7E 23 .*...r."...!..~#
06B0: BE C0 3C C9 21 FF FF 22 E3 09 C9 2A AC 09 EB 2A ..<.!.."...*...*
#G

01 PASS 9331
 C-ME- A=00 B=0680 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 06 00 80 06                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=000C D=9B31 H=0700 S=6FE6 P=9341 RZ
*7767
#D0680
0680: 0E 0F CD 6C 07 CD 66 09 CD C4 0B C0 FE 1A C8 CD ...l..f.........
0690: 16 09 C3 05 07 11 F3 0C CD AB 07 CD 52 0C C8 C3 ............R...
06A0: 1A 06 CD D8 0A CA 4C 07 CD 9E 07 C2 4C 07 11 14 ......L.....L...
06B0: 0D CD 49 09 2A 9B 0D 0E 20 CD 2A 0C 11 1B 0D CD ..I.*... .*.....
06C0: 41 09 CD 09 0C 7D E6 5F FE 59 C0 B7 0E 13 C3 6C A....}._.Y.....l
06D0: 07 CD D8 0A F5 21 10 00 19 EB D5 E5 0E 10 CD AE .....!..........
06E0: 0B CD D8 0A E1 D1 CD 92 07 0E 17 F1 F5 C4 36 0C ..............6.
....%...
0700: 05 BE C2 09 07 0D C2 FF 06 79 32 BB 09 3A BD 09 .........y2..:..
0710: B7 78 C2 16 07 1F C5 E5 6F 26 00 3A A7 09 57 3E .x......o&.:..W>
0720: 07 92 4F CD 26 06 45 3A A9 09 B8 E1 DA FC 06 CD ..O.&.E:........
0730: E6 05 4E 2F E6 1F A1 B0 C1 C9 2A DF 09 22 E5 09 ..N/......*.."..
#G

01 PASS 9331
 C-ME- A=00 B=0700 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 0E 00 00 07                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=001C D=9F79 H=0780 S=6FE6 P=9341 RZ
*7767
#D0700
0700: 2A 9D 0D 22 6C 0D CD E4 07 CD 8D 0C 11 0A 0D C3 *.."l...........
0710: BB 07 1A BE C8 B7 C8 34 35 C2 3A 0C 77 C9 06 0B .......45.:.w...
0720: 13 1A FE 3F C8 05 C2 A0 07 05 C9 CD 41 0A C0 CD ...?........A...
0730: 49 09 CD 4E 09 C3 F6 09 11 02 0D CD 05 0C C3 0C I..N............
0740: 05 00 53 55 42 4D 49 54 20 20 43 4F 4D 1A 06 AB ..SUBMIT  COM...
0750: CD F9 0B 21 C1 07 0E 0C CD AE 0B 21 F5 0D 36 20 ...!.......!..6
0760: 23 22 6C 0D 11 B6 0D 21 63 08 CD BF 0C C0 11 AC #"l....!c.......
0770: 0D 1A B7 C0 13 1A 4F C5 0E 00 B7 C2 21 08 01 04 ......O.....!...
0780: 8D 07 1A C5 4E CD E3 06 C1 B7 C2 4A 07 13 23 04 ....N......J..#.
0790: 0D C3 68 07 AF 32 09 04 47 04 C9 3E FF 47 04 C3 ..h..2..G..>.G..
07A0: E5 03 0E 0F CD 3A 07 C8 CD E6 05 7E F5 CD 58 06 .....:.....~..X.
07B0: EB 2A DF 09 0E 20 CD 49 04 CD F4 06 4F F1 77 06 .*... .I....O.w.
#G

01 PASS 9331
 C-ME- A=00 B=0780 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 16 00 80 07                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=002C D=A3C1 H=0800 S=6FE6 P=9341 RZ
*7767
#D0780
0780: E7 3A 72 0D 3C 67 2E 01 04 0D 79 E5 F4 FF 0B E1 .:r.:......
07C0: 0C D1 D5 21 08 00 19 7E E6 80 11 42 0D C4 49 09 ...!...~...B..I.
07D0: CD 09 0C D1 F1 21 70 08 87 CD B0 0C D5 5E 23 56 .....!p......^#V
07E0: EB D1 E9 43 4F 4D 20 53 55 42 20 50 52 4C 20 00 ...COM SUB PRL .
07F0: 89 08 CD 07 89 08 C1 79 12 C9 0F 21 63 08 CD B0 .......y...!c...
0800: E6 05 7E 4F 0C CD E3 06 CA 21 08 3E 1F A1 77 0E ..~O.....!.>..w.
0810: 0F CD 3A 07 CD A8 07 CD FF 05 AF 32 C1 09 C3 E5 ..:........2....
0820: 03 34 CD F4 06 4F BE D2 2E 08 35 C3 E9 03 CD EC .4...O....5.....
0830: 07 CD BF 07 C3 17 08 CD FF 05 3A C1 09 21 BF 09 ..........:..!..
#G

01 PASS 9331
 C-ME- A=00 B=0800 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 1E 00 00 08                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=003C D=A809 H=0880 S=6FE6 P=9341 RZ
*7767
#D0800
0800: 0C 11 B6 0D 0E 03 C3 AE 0B 21 00 01 22 CE 0D 2A .........!.."..*
0810: 9F 0D 25 2E C0 E5 1A 32 50 00 EB 0E 23 CD AE 0B ..%....2P...#...
0820: 21 67 0D 34 2A 6C 0D 2B 11 81 00 EB 22 6C 0D CD !g.4*l.+...."l..
0830: B7 0B 32 80 00 CD D8 0A 22 51 00 78 32 53 00 11 ..2....."Q.x2S..
0840: 6C 00 CD DB 0A 22 54 00 78 32 56 00 21 71 0D 7E l...."T.x2V.!q.~
0850: B7 F4 80 09 3A 70 0D CD 86 09 87 87 87 87 2E DA ....:p..........
0860: B6 32 04 00 D1 2A 9F 0D AF 6F F9 67 E5 24 E5 32 .2...*...o.g.$.2
0870: 7C 00 06 CF CD F9 0B 2E 90 77 23 77 23 77 23 77 |........w#w#w#w
0880: 09 CD 4D 06 5F D5 CD 53 04 E1 D2 0B 04 2D C8 2A ..M._..S.....-.*
0890: 88 09 4D 44 CD 3A 06 22 88 09 C9 3A BA 09 32 DE ..MD.:."...:..2.
08A0: 09 C9 AF 32 C8 09 C3 D2 08 3E 80 47 3D 4F 2A DF ...2.....>.G=O*.
08B0: 09 11 07 00 EB 19 7E A0 7E A1 77 23 7E A0 32 C8 ......~.~.w#~.2.
#G

01 PASS 9331
 C-ME- A=00 B=0880 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 01 00 80 08                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0022 D=A114 H=0900 S=6FE6 P=9341 RZ
*7767
#D0880
0880: 2E B3 7E E6 80 C2 0D 09 2E AC 77 23 77 7E E6 3F ..~.......w#w~.?
0890: 77 0E 3B C3 05 00 FE 0A C2 3B 09 21 98 0D 7E 23 w.;......;.!..~#
08A0: 34 96 C2 39 09 77 23 7E B7 11 24 0D CC 41 09 FE 4..9.w#~..$..A..
08B0: 03 CA 06 05 1E 0D CD 3C 09 3E 0A 5F 0E 02 C3 05 .......<.>._....
08C0: 00 CD 49 09 0E 01 C3 05 00 0E 09 C3 05 00 21 F4 ..I...........!.
08D0: 0D 36 E7 EB 0E 0A CD 05 00 21 F5 0D 7E 23 CD B0 .6.......!..~#..
08E0: 0C 36 00 C3 09 0C CD 6D 09 C8 C3 06 05 0E 0B CD .6.....m........
08F0: EB 09 C8 0E 01 C3 EB 09 11 80 00 0E 1A C3 05 00 ................
0900: 21 00 00 22 88 09 AF 32 DE 09 3D 32 C2 09 21 80 !.."...2..=2..!.
0910: 00 22 DC 09 C3 9B 06 CD 9B 08 C3 6F 08 CD A2 08 .".........o....
0920: CD A2 07 CD 27 09 C9 CD AB 06 C8 CD F6 05 7E 3C ....'.........~<
0930: C2 37 09 1B 1B 1A 77 E1 0E 40 C9 CD A9 08 C3 37 .7....w..@.....7
#G

01 PASS 9331
 C-ME- A=00 B=0900 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 09 00 00 09                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0032 D=A55C H=0980 S=6FE6 P=9341 RZ
*7767
#D0900
0900: 5F 0E 0E C3 05 00 06 E0 C3 F9 0B 01 0F 00 11 AD _...............
0910: 0D 21 20 00 19 36 00 C5 D5 1A A0 3D F4 80 09 11 .! ..6.....=....
0920: A2 0D CD 7B 09 D1 C1 D5 2A 8D 03 2E E7 70 E5 CD ...{....*....p..
0930: 05 00 D1 AF 12 3A 72 0D 1E DA 12 E5 CD 78 09 E1 .....:r......x..
0940: 2C D1 C9 0E 11 C3 CA 09 0E 12 11 5C 00 CD 05 00 ,..........\....
0950: 3C C8 3D 87 87 87 87 87 21 80 00 CD B0 0C EB AF <.=.....!.......
0960: 3D C9 AF 32 9F 0D 0E 14 11 5C 00 CD 05 00 B7 C9 =..2.....\......
0970: 11 73 0D C3 EB 09 CD EE 0B EB AF 32 A1 0D 21 F6 .s.........2..!.
0980: 03 F9 2A 09 04 7D 44 C9 01 00 00 6F 61 12 00 00 ..*..}D....oa...
0990: 8D 11 8F 11 00 00 00 00 ED 11 F4 12 E1 12 FE 11 ................
09A0: FF FF FF FF 00 20 00 04 0F 00 95 00 3F 00 C0 00 ..... ......?...
09B0: 10 00 02 00 00 00 07 00 0E 12 FF 07 00 FF 00 78 ...............x
#G

01 PASS 9331
 C-ME- A=00 B=0980 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 11 00 80 09                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0002 D=9884 H=0A00 S=6FE6 P=9341 RZ
*7767
#D0980
0980: 0D CD 44 0A EB FE 3B C8 FE 21 CA 1C 0A FE 3A C2 ..D...;..!....:.
0990: 1D 0A 2E AC 34 34 CA 1C 0A 23 34 C8 13 EB 22 6C ....44...#4..."l
09A0: 0D 7E FE 5B C2 2A 0A 32 A1 0D FE 61 DA 37 0A FE .~.[.*.2...a.7..
09B0: 7B D2 37 0A D6 20 77 FE 21 CC 59 0A 23 B7 C2 21 {.7.. w.!.Y.#..!
09C0: 0A 2A 6C 0D 22 6C 0D 22 9B 0D 7E B7 C8 FE 20 CA .*l."l."..~... .
09D0: 55 0A FE 09 C0 23 C3 44 0A 5D 54 13 1A FE 21 F5 U....#.D.]T...!.
09E0: E5 CC B7 0B E1 F1 C8 36 00 EB 2A 06 00 25 2E 18 .......6..*..%..
09F0: 77 E5 23 13 1A 77 FE 21 C2 7D 0A 36 0D B7 C2 72 w.#..w.!.}.6...r
0A00: C3 09 22 CC 09 CD 72 06 22 8A 09 CD 5B 0A F1 F5 .."...r."...[...
0A10: FE 04 D2 1C 0A CD 3F 04 CA 2C 0A AF CD 64 0A 3E ......?..,...d.>
0A20: 02 CD 6C 0A CD 5B 0A CD 49 04 36 00 3A CB 09 3C ..l..[..I.6.:..<
0A30: 11 80 00 21 80 FF 19 3D C2 36 0A EB 2A 8A 09 19 ...!...=.6..*...
#G

01 PASS 9331
 C-ME- A=00 B=0A00 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 19 00 00 0A                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0012 D=9CCC H=0A80 S=6FE6 P=9341 RZ
*7767
#D0A00
0A00: 0A 36 0D 23 77 2E 06 36 C3 23 36 09 23 74 23 36 .6.#w..6.#6.#t#6
0A10: C3 2E 0E 77 6F EB CD D0 01 2A 8D 03 2E B1 D1 13 ...wo....*......
0A20: 73 23 72 2E AE 72 AF C9 11 B1 BA CD A7 0B B7 11 s#r..r..........
0A30: B1 BC CC A7 0B E5 CD 6D 09 E1 2E B1 C2 CB 0A 5E .......m.......^
0A40: 23 56 34 35 2B CA CB 0A 1A B7 C0 AF 77 23 77 2E #V45+.......w#w.
0A50: AE 66 2E 0E 35 C3 00 02 11 5C 00 CD 41 0A F5 CD .f..5....\..A...
0A60: E4 0A F1 C9 22 6C 0D 22 9B 0D D5 11 6C 0D 0E 98 ...."l."....l...
0A70: CD 05 00 D1 7C B5 46 23 C2 FE 0A 21 28 0B 7C B5 ....|.F#...!(.|.
0A80: 49 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 I...............
0A90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G

01 PASS 9331
 C-ME- A=00 B=0A80 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 03 00 80 0A                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0026 D=A226 H=0B00 S=6FE6 P=9341 RZ
*7767
#D0A80
0A80: C2 09 0B 21 28 0B CD 3A 0C 78 FE 2E C2 10 0B 2B ...!(..:.x.....+
0A90: 22 6C 0D 0E 10 21 D0 0D D5 CD AE 0B 11 A2 0D 0E "l...!..........
0AA0: 0A CD AE 0B D1 7E 21 00 00 B7 47 CA 38 0B 2A 9B .....~!...G.8.*.
0AB0: 0D 7E FE 3B 23 C2 31 0B C9 D5 AF 12 13 12 13 CD .~.;#.1.........
0AC0: 41 0A 2A 6C 0D D1 D5 06 04 7E FE 3A CA 67 0B B7 A.*l.....~.:.g..
0AD0: CA 58 0B 05 23 C2 49 0B D1 AF 12 2A 6C 0D 13 1A .X..#.I....*l...
0AE0: F5 CD E4 0A F1 12 C9 2A 6C 0D 7E FE 30 DA 85 0B .......*l.~.0...
0AF0: FE 3A D2 85 0B CD 71 0C D1 D5 1A B7 C2 58 0B 78 .:....q......X.x
0B00: C3 61 0B C3 B9 0B C3 A3 0C C3 8A 0C C3 9D 0C C3 .a..............
0B10: C7 0C C3 B5 0C C3 AF 0C C3 D5 0D C3 C2 0D C3 DA ................
0B20: 0D C3 DF 0D C3 E5 0D C3 F2 0D C3 05 0E C3 CD 0C ................
0B30: C3 EB 0D C3 A9 0C C3 BB 0C C3 C1 0C C3 74 0C C3 .............t..
#G

01 PASS 9331
 C-ME- A=00 B=0B00 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 0B 00 00 0B                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0036 D=A66E H=0B80 S=6FE6 P=9341 RZ
*7767
#D0B00
0B00: 3C 12 C3 9C 0B FE 41 DA 58 0B FE 51 D2 58 0B D1 <.....A.X..Q.X..
0B10: D5 13 1A B7 C2 58 0B 7E D6 40 12 23 7E FE 3A C2 .....X.~.@.#~.:.
0B20: 6B 0B 23 D1 C3 5E 0B 2A 8D 03 6A 54 0E 02 7E 12 k.#..^.*..jT..~.
0B30: 23 13 0D C2 AE 0B C9 0E 00 1A 77 B7 79 C8 23 13 #.........w.y.#.
0B40: 03 C3 B9 0B AF 21 9F 0D 34 FC E2 09 B7 C0 3A 9F .....!..4.....:.
0B50: 0D 21 80 00 CD B0 0C AF 7E C9 01 40 B4 2A 8D 03 .!......~..@.*..
0B60: 68 7E A1 C9 01 A0 B4 CD DD 0B 79 B6 77 C9 01 A0 h~........y.w...
0B70: B4 CD DD 0B 79 2F A6 77 C9 2A 8D 03 68 77 C9 2A ....y/.w.*..hw.*
0B80: 03 D3 10 D3 12 3E 11 D3 10 D3 12 C9 CD 91 0F 0D .....>..........
0B90: 0A 43 50 2F 4D 20 33 20 42 49 4F 53 20 76 31 2E .CP/M 3 BIOS v1.
0BA0: 30 20 66 6F 72 20 41 6C 74 61 69 72 20 38 22 20 0 for Altair 8"
0BB0: 46 6C 6F 70 70 79 0D 0A 00 31 00 01 3E C3 32 00 Floppy...1..>.2.
#G

01 PASS 9331
 C-ME- A=00 B=0B80 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 13 00 80 0B                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0006 D=9996 H=0C00 S=6FE6 P=9341 RZ
*7767
#D0B80
0B80: 8D 03 68 7E C9 CD 49 09 45 3E 0D CD A6 0C 3E 0A ..h~..I.E>....>.
0B90: C3 A6 0C D6 0A DA 25 0C 1E 30 1C D6 0A D2 1A 0C ......%..0......
0BA0: F5 CD 3C 09 F1 C6 3A C3 16 09 7E B7 C8 B9 C8 CD ..<...:...~.....
0BB0: A6 0C 23 C3 2A 0C CD 41 0A C8 21 67 0D 7E B7 36 ..#.*..A..!g.~.6
0BC0: 00 C0 2A 9B 0D 0E 20 CD 2A 0C 3E 3F CD 16 09 C3 ..*... .*.>?....
0BD0: 06 05 CD 41 0A 2A 6C 0D 22 9B 0D C8 7E FE 30 DA ...A.*l."...~.0.
0BE0: 3A 0C FE 3A D2 3A 0C CD 71 0C 22 6C 0D F6 01 78 :..:.:..q."l...x
0BF0: C9 06 00 7E D6 30 D8 FE 0A D0 F5 78 87 87 80 87 ...~.0.....x....
0C00: 26 0C C3 00 01 CD 91 0F 0D 0A 42 49 4F 53 20 63 &.........BIOS c
0C10: 61 6E 27 74 20 6F 70 65 6E 20 43 43 50 2E 43 4F an't open CCP.CO
0C20: 4D 20 00 C3 4B 0C CD 91 0F 0D 0A 42 49 4F 53 20 M ..K......BIOS
0C30: 68 61 73 20 62 61 64 20 73 65 63 74 6F 72 20 69 has bad sector i
#G

01 PASS 9331
 C-ME- A=00 B=0C00 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 1B 00 00 0C                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=0016 D=9DDE H=0C80 S=6FE6 P=9341 RZ
*7767
#D0C00
0C00: 47 F1 23 80 47 FE 10 DA 73 0C C3 3A 0C 13 26 08 G.#.G...s..:..&.
0C10: CD 98 0C CD A4 0C 26 03 1A E6 7F CD A6 0C 13 25 ......&........%
0C20: C2 98 0C C9 3E 20 C5 D5 E5 CD 16 09 E1 D1 C1 C9 ....> ..........
0C30: 85 6F D0 24 C9 3E 3F 12 13 05 C2 B7 0C B7 C9 01 .o.$.>?.........
0C40: FF 00 D5 E5 1A E6 7F FE 21 DA D0 0C BE C2 E0 0C ........!.......
0C50: 13 0C 3E 20 BE 23 C2 C4 0C E1 D1 CD AE 0B 78 C9 ..> .#........x.
0C60: 3E 20 BE 23 C2 E2 0C D1 D1 04 0E FF 7E D6 01 D2 > .#........~...
0C70: C2 0C C9 45 6E 74 65 72 20 55 73 65 72 20 23 3A ...Enter User #:
0C80: 0B 78 B1 C2 7C 0C C9 AF C9 C9 3E FF 32 57 12 CD .x..|.....>.2W..
0C90: 07 0F FB 3E 08 D3 09 2A 8D 24 C3 D3 0C 2A 8F 24 ...>...*.$...*.$
0CA0: C3 12 0D 2A 8D 24 C3 F6 0C 2A 8F 24 C3 34 0D 2A ...*.$...*.$.4.*
0CB0: 91 24 C3 D3 0C 2A 93 24 C3 12 0D 2A 91 24 C3 F6 .$...*.$...*.$..
#G

01 PASS 9331
 C-ME- A=00 B=0C80 D=92B2 H=9331 S=6FE6 P=9331 CALL 944E
*944E
#DA983,A988
A983: 33 00 05 00 80 0C                               3.....
#G

01 PASS 9341
 -Z-EI A=00 B=002A D=A338 H=0D00 S=6FE6 P=9341 RZ
*7767
#D0C80
0C80: 20 24 4E 6F 20 46 69 6C 65 24 20 72 65 71 75 69  $No File$ requi
0C90: 72 65 64 24 45 52 41 53 45 20 24 20 28 59 2F 4E red$ERASE $ (Y/N
0CA0: 29 3F 20 24 0D 0A 0D 0A 50 72 65 73 73 20 52 45 )? $....Press RE
0CB0: 54 55 52 4E 20 74 6F 20 43 6F 6E 74 69 6E 75 65 TURN to Continue
0CC0: 20 24 20 20 28 55 73 65 72 20 30 29 24 00 4E 4F  $  (User 0)$.NO
0CD0: 4E 2D 53 59 53 54 45 4D 20 46 49 4C 45 28 53 29 N-SYSTEM FILE(S)
0CE0: 20 45 58 49 53 54 24 00 00 00 3A 00 00 00 D0 0D  EXIST$...:.....
0CF0: 00 00 00 01 24 24 24 20 20 20 20 20 53 55 42 00 ....$$$     SUB.
0D00: 04 7C B5 C2 F8 0C C9 CD 52 0D 62 0D 6A 0D 72 0D .|......R.b.j.r.
0D10: 7C 0D 06 00 29 D2 22 0D CD 47 0D B7 CA 18 0D CD |...)."..G......
0D20: 29 0D 04 7C B5 C2 14 0D C9 CD 52 0D B6 0D B9 0D )..|......R.....
0D30: BC 0D BF 0D 06 00 29 3E FF DC 47 0D B7 C8 04 7C ......)>..G....|
#G

*2044
#X
 ----- A=C3 B=F312 D=050C H=0464 S=0ED5 P=2044 RST  07

=======================================================================

=== It appears to have loaded the CCP.COM file at location 0100 but ===
=== then jumped to location 2044, which halts the system.           ===

Let's backup to boot and wboot and see what happens after the open attempt in ldccp:


=======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#G8E00,A893

*A893
#T
 -Z-EI A=42 B=0001 D=6F00 H=005E S=027F P=A893 LXI  SP,8ECD
 -Z-EI A=42 B=0001 D=6F00 H=005E S=8ECD P=A896 MVI  C,0F
 -Z-EI A=42 B=000F D=6F00 H=005E S=8ECD P=A898 PUSH B
 -Z-EI A=42 B=000F D=6F00 H=005E S=8ECB P=A899 CALL 9104
 ---EI A=0F B=0F0F D=9127 H=9243 S=8ECB P=A89C POP  B
 ---EI A=0F B=000F D=9127 H=9243 S=8ECD P=A89D DCR  C
 ----I A=0F B=000E D=9127 H=9243 S=8ECD P=A89E JP   A898
 ----I A=0F B=000E D=9127 H=9243 S=8ECD P=A898 PUSH B
 ----I A=0F B=000E D=9127 H=9243 S=8ECB P=A899 CALL 9104
 ----I A=0E B=0E0E D=9125 H=9243 S=8ECB P=A89C POP  B
 ----I A=0E B=000E D=9125 H=9243 S=8ECD P=A89D DCR  C
 ----I A=0E B=000D D=9125 H=9243 S=8ECD P=A89E JP   A898
 ----I A=0E B=000D D=9125 H=9243 S=8ECD P=A898 PUSH B
 ----I A=0E B=000D D=9125 H=9243 S=8ECB P=A899 CALL 9104
 ----I A=0D B=0D0D D=9123 H=9243 S=8ECB P=A89C POP  B
 ----I A=0D B=000D D=9123 H=9243 S=8ECD P=A89D DCR  C
 ---EI A=0D B=000C D=9123 H=9243 S=8ECD P=A89E JP   A898
 ---EI A=0D B=000C D=9123 H=9243 S=8ECD P=A898 PUSH B
 ---EI A=0D B=000C D=9123 H=9243 S=8ECB P=A899 CALL 9104
 ---EI A=0C B=0C0C D=9121 H=9243 S=8ECB P=A89C POP  B
 ---EI A=0C B=000C D=9121 H=9243 S=8ECD P=A89D DCR  C
 ----I A=0C B=000B D=9121 H=9243 S=8ECD P=A89E JP   A898
 ----I A=0C B=000B D=9121 H=9243 S=8ECD P=A898 PUSH B
 ----I A=0C B=000B D=9121 H=9243 S=8ECB P=A899 CALL 9104
 ----I A=0B B=0B0B D=911F H=9243 S=8ECB P=A89C POP  B
 ----I A=0B B=000B D=911F H=9243 S=8ECD P=A89D DCR  C
 ---EI A=0B B=000A D=911F H=9243 S=8ECD P=A89E JP   A898
 ---EI A=0B B=000A D=911F H=9243 S=8ECD P=A898 PUSH B
 ---EI A=0B B=000A D=911F H=9243 S=8ECB P=A899 CALL 9104
 ---EI A=0A B=0A0A D=911D H=9243 S=8ECB P=A89C POP  B
 ---EI A=0A B=000A D=911D H=9243 S=8ECD P=A89D DCR  C
 ---EI A=0A B=0009 D=911D H=9243 S=8ECD P=A89E JP   A898
 ---EI A=0A B=0009 D=911D H=9243 S=8ECD P=A898 PUSH B
 ---EI A=0A B=0009 D=911D H=9243 S=8ECB P=A899 CALL 9104
 ---EI A=09 B=0909 D=911B H=9243 S=8ECB P=A89C POP  B
 ---EI A=09 B=0009 D=911B H=9243 S=8ECD P=A89D DCR  C
 ----I A=09 B=0008 D=911B H=9243 S=8ECD P=A89E JP   A898
 ----I A=09 B=0008 D=911B H=9243 S=8ECD P=A898 PUSH B
 ----I A=09 B=0008 D=911B H=9243 S=8ECB P=A899 CALL 9104
 ----I A=08 B=0808 D=9119 H=9243 S=8ECB P=A89C POP  B
 ----I A=08 B=0008 D=9119 H=9243 S=8ECD P=A89D DCR  C
 ----I A=08 B=0007 D=9119 H=9243 S=8ECD P=A89E JP   A898
 ----I A=08 B=0007 D=9119 H=9243 S=8ECD P=A898 PUSH B
 ----I A=08 B=0007 D=9119 H=9243 S=8ECB P=A899 CALL 9104
 ----- A=07 B=0707 D=9117 H=9243 S=8ECB P=A89C POP  B
 ----- A=07 B=0007 D=9117 H=9243 S=8ECD P=A89D DCR  C
 ---EI A=07 B=0006 D=9117 H=9243 S=8ECD P=A89E JP   A898
 ---EI A=07 B=0006 D=9117 H=9243 S=8ECD P=A898 PUSH B
 ---EI A=07 B=0006 D=9117 H=9243 S=8ECB P=A899 CALL 9104
 ---E- A=06 B=0606 D=9115 H=9243 S=8ECB P=A89C POP  B
 ---E- A=06 B=0006 D=9115 H=9243 S=8ECD P=A89D DCR  C
 ---EI A=06 B=0005 D=9115 H=9243 S=8ECD P=A89E JP   A898
 ---EI A=06 B=0005 D=9115 H=9243 S=8ECD P=A898 PUSH B
 ---EI A=06 B=0005 D=9115 H=9243 S=8ECB P=A899 CALL 9104
 ---E- A=05 B=0505 D=9113 H=9243 S=8ECB P=A89C POP  B
 ---E- A=05 B=0005 D=9113 H=9243 S=8ECD P=A89D DCR  C
 ----I A=05 B=0004 D=9113 H=9243 S=8ECD P=A89E JP   A898
 ----I A=05 B=0004 D=9113 H=9243 S=8ECD P=A898 PUSH B
 ----I A=05 B=0004 D=9113 H=9243 S=8ECB P=A899 CALL 9104
 ----- A=04 B=0404 D=9111 H=9243 S=8ECB P=A89C POP  B
 ----- A=04 B=0004 D=9111 H=9243 S=8ECD P=A89D DCR  C
 ---EI A=04 B=0003 D=9111 H=9243 S=8ECD P=A89E JP   A898
 ---EI A=04 B=0003 D=9111 H=9243 S=8ECD P=A898 PUSH B
 ---EI A=04 B=0003 D=9111 H=9243 S=8ECB P=A899 CALL 9104
 ---E- A=03 B=0303 D=910F H=91DD S=8ECB P=A89C POP  B
 ---E- A=03 B=0003 D=910F H=91DD S=8ECD P=A89D DCR  C
 ----I A=03 B=0002 D=910F H=91DD S=8ECD P=A89E JP   A898
 ----I A=03 B=0002 D=910F H=91DD S=8ECD P=A898 PUSH B
 ----I A=03 B=0002 D=910F H=91DD S=8ECB P=A899 CALL 9104
 ----- A=02 B=0202 D=910D H=91DD S=8ECB P=A89C POP  B
 ----- A=02 B=0002 D=910D H=91DD S=8ECD P=A89D DCR  C
 ----I A=02 B=0001 D=910D H=91DD S=8ECD P=A89E JP   A898
 ----I A=02 B=0001 D=910D H=91DD S=8ECD P=A898 PUSH B
 ----I A=02 B=0001 D=910D H=91DD S=8ECB P=A899 CALL 9104
 ----- A=01 B=0101 D=910B H=91DD S=8ECB P=A89C POP  B
 ----- A=01 B=0001 D=910B H=91DD S=8ECD P=A89D DCR  C
 -Z-EI A=01 B=0000 D=910B H=91DD S=8ECD P=A89E JP   A898
 -Z-EI A=01 B=0000 D=910B H=91DD S=8ECD P=A898 PUSH B
 -Z-EI A=01 B=0000 D=910B H=91DD S=8ECB P=A899 CALL 9104
 -Z-E- A=11 B=0000 D=9109 H=91D1 S=8ECB P=A89C POP  B
 -Z-E- A=11 B=0000 D=9109 H=91D1 S=8ECD P=A89D DCR  C
 --ME- A=11 B=00FF D=9109 H=91D1 S=8ECD P=A89E JP   A898
 --ME- A=11 B=00FF D=9109 H=91D1 S=8ECD P=A8A1 CALL 9037

CP/M Plus v3.0hd


*A8A4
#

=======================================================================

Let's list the code here to find boot$1, and ultimately ldccp


=======================================================================

#L
  A8A4  LXI  B,1000
  A8A7  LXI  H,9288
  A8AA  PUSH B
  A8AB  MOV  E,M
  A8AC  INX  H
  A8AD  MOV  D,M
  A8AE  INX  H
  A8AF  MOV  A,E
  A8B0  ORA  D
  A8B1  JZ   A8C9
  A8B4  PUSH H
  A8B5  XCHG
  A8B6  DCX  H
  A8B7  DCX  H
  A8B8  MOV  A,M
  A8B9  STA  A982
  A8BC  MOV  A,C
  A8BD  STA  A981
  A8C0  DCX  H
  A8C1  MOV  D,M
  A8C2  DCX  H
  A8C3  MOV  E,M
  A8C4  XCHG
  A8C5  CALL 8FB1
  A8C8  POP  H
  A8C9  POP  B
  A8CA  INR  C
  A8CB  DCR  B
  A8CC  JNZ  A8AA
  A8CF  JMP  8E63            (jmp boot$1)
  A8D2  MOV  A,C
  A8D3  STA  A981
  A8D6  MOV  L,C
#L8E63
  8E63  CALL 8E78
  8E66  CALL 9060            (call ?ldccp)
  8E69  JMP  0100
  8E6C  LXI  SP,8ECD
  8E6F  CALL 8E78
  8E72  CALL 9091
  8E75  JMP  0100
  8E78  MVI  A,C3
  8E7A  STA  0000
  8E7D  STA  0005
  8E80  LXI  H,8E03
#

=======================================================================

Now let's put a passpoint at ldccp.


=======================================================================

#P9060
#G

01 PASS 9060                 (?ldccp)
 -Z-EI A=C3 B=0010 D=0000 H=6F06 S=8ECB P=9060 XRA  A
 -Z-E- A=00 B=0010 D=0000 H=6F06 S=8ECB P=9061 STA  90D9
 -Z-E- A=00 B=0010 D=0000 H=6F06 S=8ECB P=9064 LXI  H,0000
 -Z-E- A=00 B=0010 D=0000 H=0000 S=8ECB P=9067 SHLD 90EA
 -Z-E- A=00 B=0010 D=0000 H=0000 S=8ECB P=906A LXI  D,90CA
 -Z-E- A=00 B=0010 D=90CA H=0000 S=8ECB P=906D CALL 9095
 ----- A=00 B=0000 D=0008 H=0000 S=8ECB P=9070 INR  A
 ----- A=01 B=0000 D=0008 H=0000 S=8ECB P=9071 ??=  20
*9072
#

=======================================================================

So what happened here? Location 9071 has JRNZ CCP$FOUND. Need to modify
BOOT3.ASM to change that instruction to an 8080-compatible JNZ instruction.

Only Z80 has those relative jump instructions.

Changed JRNZ to JNZ and it booted right up!

But when typing "DIR", I see this:


=======================================================================

A>dir
A:
    BIOS3      : S3    SP R   : PA
$$$$ $$$ : $$$$$$$$ $$$ :
                           BIOS3
A: S3    SP R   : PA
$$$$ $$$ : $$$$$$$$ $$$ :
                           BIOS3      : S3    SP R
A: PA
$$$$ $$$ : $$$$$$$$ $$$ :
                           BIOS3      : PA
$$$$ $$$ : $$$$$$$$ $$$
A: S3    SP R   : PA
$$$$ $$$ : $$$$$$$$ $$$ :
                           BIOS3      : S3    SP R
A: PA
$$$$ $$$ : $$$$$$$$ $$$ :
                           BIOS3      : S3    SP R   : PA
$$$$ $$$
A: $$$$$$$$ $$$ :
                   BIOS3      : S3    SP R   : PA
$$$$ $$$ : $$$$$$$$ $$$

Press RETURN to Continue
A>

=======================================================================

The system boots just fine, but the directory listing is strange.

So I'll monitor what track and sector are being requested and also what is being read into memory AFTER the boot process is completed. I'll do a "DIR" command and watch what is being read. And I'll compare it with a known-good version of Mike Douglas's BIOS.

First, let's find out where everything is. Placing passpoints at setsec, settrk and setdma will illuminate where @SECT, @TRK and @DMA are in memory. And then we'll set a passpoint at the end of the read function and monitor what happens there.


=======================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1C00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#L8E00
  8E00  JMP  A894       (boot)
  8E03  JMP  8E6C       (wboot)
  8E06  JMP  8F72       (const)
  8E09  JMP  8F8D       (conin)
  8E0C  JMP  8ED5       (conout)
  8E0F  JMP  8EE1       (list)
  8E12  JMP  8EDB       (auxout)
  8E15  JMP  8F93       (auxin)
  8E18  JMP  A902       (home)
  8E1B  JMP  A8D3       (seldsk)
  8E1E  JMP  A905       (settrk)
  8E21  JMP  A90B       (setsec)
  8E24  JMP  A912       (setdma)
  8E27  JMP  A929       (read)
  8E2A  JMP  A93F       (write)
  8E2D  JMP  8F0D       (listst)
  8E30  JMP  A91E       (sectrn)
  8E33  JMP  8F01       (conost)
  8E36  JMP  8F78       (auxist)
  8E39  JMP  8F07       (auxost)
  8E3C  JMP  8ECD       (devtbl)
  8E3F  JMP  9105       (devini)
  8E42  JMP  8ED1       (drvtbl)
  8E45  JMP  A960       (multio)
  8E48  JMP  A964       (flush)
  8E4B  JMP  9283       (move)
  8E4E  JMP  9095       (time)
  8E51  JMP  9020       (selmem)
  8E54  JMP  A91A       (setbnk)
  8E57  JMP  9282       (xmove)
  8E5A  JMP  0000       (userf)
  8E5D  JMP  0000       (reserv1)
  8E60  JMP  0000       (reserv2)

=======================================================================

Setting passpoints at setsec, settrk and setdma to find out where the memory locations of interest are located.


=======================================================================

#PA905       (settrk)
#PA90B       (setsec)
#PA912       (setdma)
#G8E00


CP/M Plus v3.0hd


01 PASS A905       (settrk)
 -Z-E- A=00 B=0000 D=00C0 H=972F S=6FE0 P=A905 MOV  L,C
 -Z-E- A=00 B=0000 D=00C0 H=9700 S=6FE0 P=A906 MOV  H,B
 -Z-E- A=00 B=0000 D=00C0 H=0000 S=6FE0 P=A907 SHLD A984
 -Z-E- A=00 B=0000 D=00C0 H=0000 S=6FE0 P=A90A RET
*774F

=======================================================================

@TRK is at location A984. Notice the first time, it stored 00 there.


=======================================================================

#G

01 PASS A905       (settrk again)
 -Z-EI A=00 B=0002 D=0000 H=0002 S=6FC8 P=A905 MOV  L,C
*A906
#G                 (so skip it, keep runnin')

01 PASS A90B       (setsec)
 --ME- A=93 B=0001 D=0000 H=0001 S=6FD0 P=A90B MOV  L,C
 --ME- A=93 B=0001 D=0000 H=0001 S=6FD0 P=A90C MOV  H,B
 --ME- A=93 B=0001 D=0000 H=0001 S=6FD0 P=A90D DCX  H
 --ME- A=93 B=0001 D=0000 H=0000 S=6FD0 P=A90E SHLD A986
 --ME- A=93 B=0001 D=0000 H=0000 S=6FD0 P=A911 RET
*7853

=======================================================================

@SECT is at location A986.


=======================================================================

#G

01 PASS A912       (setdma)
 --ME- A=93 B=96AE D=0000 H=96AE S=6FD2 P=A912 MOV  L,C
 --ME- A=93 B=96AE D=0000 H=96AE S=6FD2 P=A913 MOV  H,B
 --ME- A=93 B=96AE D=0000 H=96AE S=6FD2 P=A914 SHLD A988
 --ME- A=93 B=96AE D=0000 H=96AE S=6FD2 P=A917 LDA  9036
 --ME- A=00 B=96AE D=0000 H=96AE S=6FD2 P=A91A STA  A98B
 --ME- A=00 B=96AE D=0000 H=96AE S=6FD2 P=A91D RET
*8CE6

=======================================================================

@DMA is at location A988. The 9036 (@CBNK) and A98B (@DBNK) locations are only used in systems with bank-memory.

Now let's find out where the fdRead function returns - the actual hardware layer code called by the "read" function in the jump table above - so we can place a passpoint there for monitoring. Before modifying the code to replace the JRNZ with a JNZ, the RZ (return on success) was at 9341 and the RET (return on failure) was at 9343. So I expect them to be very close to those locations after the code change, because the new code is only one byte longer than the old code. We'll list about ten bytes ahead of the end of the read function and simply look to find the RZ and RET with the INR A between them. That is the end of the read code function.


=======================================================================

#L9330
  9330  RET
  9331  RET
  9332  CALL 944F
  9335  EI
  9336  CALL 93E8
  9339  EI
  933A  JNZ  9340
  933D  CALL 9353
  9340  MVI  A,00
  9342  RZ
  9343  INR  A
  9344  RET
  9345  CALL 944F
  9348  EI
  9349  CALL 93E8
  934C  EI
  934D  JNZ  9340
  9350  JMP  937A
  9353  CALL 93D8
  9356  CALL 95A2
  9359  MOV  A,M
  935A  ORA  A
#

=======================================================================

The returns I'm interested in appear to be at locations 9342 and 9344.

And now that I know where @TRK, @SECT and @DMA are stored in memory,
I'm not interested in stopping in the setsec, settrk or setdma functions anymore.
So I'll remove those passpoints too.


=======================================================================

#P9342
#P9344
#-PA905      (settrk)
#-PA90B      (setsec)
#-PA912      (setdma)

#G
01 PASS 9342
 -Z-EI A=00 B=0000 D=97F8 H=972E S=6FD2 P=9342 RZ
*7767
#G

01 PASS 9342
 -Z-EI A=00 B=0010 D=9C40 H=972E S=6FD2 P=9342 RZ
*7767
#G

01 PASS 9342
 -Z-EI A=00 B=0020 D=A088 H=972E S=6FD2 P=9342 RZ
*7767
#G

01 PASS 9342
 -Z-EI A=00 B=0030 D=A4D0 H=972E S=6FD2 P=9342 RZ
*7767

=========================================================================================

... and just keep doing this 'til we get to the "A>" prompt.

That's what I'm interested in right now. It reads a few dozen sectors
before it is done loading CCP.COM.


=========================================================================================

#G

01 PASS 9342
 -Z-EI A=00 B=0024 D=A19A H=972E S=6FD4 P=9342 RZ
*7767
#G

01 PASS 9342
 -Z-EI A=00 B=0034 D=A5E2 H=972E S=6FD4 P=9342 RZ
*7767
#G

01 PASS 9342
 -Z-EI A=00 B=0008 D=9A1C H=972E S=6FD4 P=9342 RZ
*7767
#G
A>

=======================================================================

Now we're booted. Type "DIR" and monitor @TRK, @SECT and @DMA at the end of each sector read.


=======================================================================

A>DIR

01 PASS 9342
 -Z-EI A=00 B=0000 D=97F8 H=972E S=6FD6 P=9342 RZ
*7767
#DA984,A989
A984: 02 00 00 00 AE 96                               ......
#D96AE
96AE: 00 4C 38 30 20 20 20 20 20 43 4F 4D 00 00 00 54 .L80     COM...T
96BE: 02 03 04 05 06 07 00 00 00 00 00 00 00 00 00 00 ................
96CE: 00 50 43 32 46 4C 4F 50 20 43 4F 4D 00 00 00 11 .PC2FLOP COM....
96DE: 08 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96EE: 00 46 4C 4F 50 32 50 43 20 43 4F 4D 00 00 00 13 .FLOP2PC COM....
96FE: 0A 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
970E: 00 41 53 4D 20 20 20 20 20 43 4F 4D 00 00 00 40 .ASM     COM...@
971E: 0C 0D 0E 0F 00 00 00 00 00 00 00 00 00 00 00 00 ................
972E: FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 00 ................
973E: 00 00 00 7E 65 11 1E 16 CE D5 01 0B 00 00 00 00 ...~e...........
974E: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#G
A:
    BIOS3      : S3    SP R   : PA
$$$$ $$$ : $$$$$$$$ $$$
01 PASS 9342
 -Z-EI A=00 B=0010 D=9C40 H=972E S=6FD6 P=9342 RZ
*7767

=======================================================================

OK, that's interesting.

The contents of @TRK, @SECT and @DMA are exactly the same as what they were during the boot sequence after the first sector read. I'll keep looking.

This time, I did all the same stuff to load boot, loading CCP.COM and displaying the "A>" prompt. But when I typed "DIR," I examined locations 0080 in addition to 96AE. I read that CCP expects uses the contents of memory at 0080.

This is what is there:


=======================================================================

#D96AE
96AE: 00 4C 38 30 20 20 20 20 20 43 4F 4D 00 00 00 54 .L80     COM...T
96BE: 02 03 04 05 06 07 00 00 00 00 00 00 00 00 00 00 ................
96CE: 00 50 43 32 46 4C 4F 50 20 43 4F 4D 00 00 00 11 .PC2FLOP COM....
96DE: 08 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
96EE: 00 46 4C 4F 50 32 50 43 20 43 4F 4D 00 00 00 13 .FLOP2PC COM....
96FE: 0A 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
970E: 00 41 53 4D 20 20 20 20 20 43 4F 4D 00 00 00 40 .ASM     COM...@
971E: 0C 0D 0E 0F 00 00 00 00 00 00 00 00 00 00 00 00 ................
972E: FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 00 ................
973E: 00 00 00 7E 65 11 1E 16 CE D5 01 0B 00 00 00 00 ...~e...........
974E: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#D0080
0080: 0D 0A 20 42 49 4F 53 33 20 20 20 20 53 50 52 20 .. BIOS3    SPR
0090: 20 38 45 30 30 20 20 31 43 30 30 0D 0A 20 42 44  8E00  1C00.. BD
00A0: 4F 53 33 20 20 20 20 53 50 52 20 20 36 46 30 30 OS3    SPR  6F00
00B0: 20 20 31 46 30 30 0D 0A 20 0A 0D 20 32 37 4B 20   1F00.. .. 27K
00C0: 54 50 41 0A 0D 24 24 24 24 24 24 24 24 24 24 24 TPA..$$$$$$$$$$$
00D0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 $$$$$$$$$$$$$$$$
00E0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 $$$$$$$$$$$$$$$$
00F0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 $$$$$$$$$$$$$$$$
0100: C3 1A 04 00 00 00 C3 1B 01 C3 06 00 07 00 00 00 ................
0110: 4C 4F 41 44 45 52 20 20 FF 00 00 79 FE 3B C2 09 LOADER  ...y.;..
0120: 01 C1 C5 21 00 00 39 31 BE 03 22 9A 03 C5 EB 22 ...!..91.."...."
0130: 98 03 7C B5 F5 CC 00 02 F1 C4 30 02 D1 21 00 01 ..|.......0..!..

=======================================================================

Now to do the same thing using the Douglas BIOS. Setting passpoint to 9139, the end of the read function. DMA is set to 9561 during bootup.


=======================================================================

#D9561
9561: 00 4C 38 30 20 20 20 20 20 43 4F 4D 00 00 00 54 .L80     COM...T
9571: 02 03 04 05 06 07 00 00 00 00 00 00 00 00 00 00 ................
9581: 00 50 43 32 46 4C 4F 50 20 43 4F 4D 00 00 00 11 .PC2FLOP COM....
9591: 08 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95A1: 00 46 4C 4F 50 32 50 43 20 43 4F 4D 00 00 00 13 .FLOP2PC COM....
95B1: 0A 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
95C1: 00 41 53 4D 20 20 20 20 20 43 4F 4D 00 00 00 40 .ASM     COM...@
95D1: 0C 0D 0E 0F 00 00 00 00 00 00 00 00 00 00 00 00 ................
95E1: FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 00 ................
95F1: 00 00 00 7E 65 11 1E 16 CE D5 05 0B 00 00 00 00 ...~e...........
9601: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
9611: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
#D0080
0080: 0D 0A 20 42 49 4F 53 33 20 20 20 20 53 50 52 20 .. BIOS3    SPR
0090: 20 38 45 30 30 20 20 31 41 30 30 0D 0A 20 42 44  8E00  1A00.. BD
00A0: 4F 53 33 20 20 20 20 53 50 52 20 20 36 46 30 30 OS3    SPR  6F00
00B0: 20 20 31 46 30 30 0D 0A 20 0A 0D 20 32 37 4B 20   1F00.. .. 27K
00C0: 54 50 41 0A 0D 24 24 24 24 24 24 24 24 24 24 24 TPA..$$$$$$$$$$$
00D0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 $$$$$$$$$$$$$$$$
00E0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 $$$$$$$$$$$$$$$$
00F0: 24 24 24 24 24 24 24 24 24 24 24 24 24 24 FD 8E $$$$$$$$$$$$$$..
0100: C3 1A 04 00 00 00 C3 1B 01 C3 06 00 07 00 00 00 ................
0110: 4C 4F 41 44 45 52 20 20 FF 00 00 79 FE 3B C2 09 LOADER  ...y.;..
0120: 01 C1 C5 21 00 00 39 31 BE 03 22 9A 03 C5 EB 22 ...!..91.."...."
0130: 98 03 7C B5 F5 CC 00 02 F1 C4 30 02 D1 21 00 01 ..|.......0..!..

=======================================================================

I see the same behavior here in both versions of code. So I don't think there's a problem in the read function.

I'll check the seldsk and setdma function calls. Passpoint at each function, watching for it right after a "DIR" request.

First, the Douglas BIOS:


=======================================================================

A>DIR

01 PASS 90E5
 -Z-EI A=00 B=9561 D=0000 H=9561 S=6FD6 P=90E5 MOV  H,B
*90E6
#G
A: L80      COM : PC2FLOP  COM : FLOP2PC  COM : ASM      COM
01 PASS 90E5
 ----I A=08 B=9561 D=0000 H=9561 S=6FD6 P=90E5 MOV  H,B
*90E6
#G
: DUMP     COM
A: XSUB     COM : FORMAT   COM : LS       COM
01 PASS 90E5
 ----I A=10 B=9561 D=0000 H=9561 S=6FD6 P=90E5 MOV  H,B
*90E6
#G
: SUBMIT   COM : LOAD     COM
A: SURVEY   COM : VIEW     COM
01 PASS 90E5
 ---EI A=18 B=9561 D=0000 H=9561 S=6FD6 P=90E5 MOV  H,B
*90E6
#G
: M80      COM : MAC      COM : MBASIC   COM
01 PASS 90E5
 ----I A=02 B=9561 D=0000 H=9561 S=6FD6 P=90E5 MOV  H,B
*90E6
#G

A: PIP      COM : STAT     COM : DDT      COM
01 PASS 90E5
 ---EI A=0A B=9561 D=0000 H=9561 S=6FD6 P=90E5 MOV  H,B
*90E6
#G
: PCPUT    COM : NSWP     COM
A: SYSGEN   COM : PCGET    COM
01 PASS 90E5
 ---EI A=12 B=9561 D=0000 H=9561 S=6FD6 P=90E5 MOV  H,B
*90E6
#G
: CRC      COM : MOVCPM   COM : SID      COM
A: CPMLDR   COM
01 PASS 90E5
 ----I A=1A B=9561 D=0000 H=9561 S=6FD6 P=90E5 MOV  H,B
*90E6
#G
: CPM3     SYS : CCP      COM : CPM3MOD  SYS : CPM3DUG  SYS
01 PASS 90E5
 ----I A=04 B=9561 D=0000 H=9561 S=6FD6 P=90E5 MOV  H,B
*90E6
#G

A>

=======================================================================

The only seldsk call happened during bootup. The setdma calls happened before every sector read. But they were all at the same familiar address as happened during the bootup directory read.

Now to do the same thing using the modular code:


=======================================================================

A>DIR

01 PASS A912
 --ME- A=93 B=96AE D=0000 H=96AE S=6FD6 P=A912 MOV  L,C
*A913
#G
A:
    BIOS3      : S3    SP R   : PA
$$$$ $$$ : $$$$$$$$ $$$
01 PASS A912
 --ME- A=93 B=96AE D=0001 H=96AE S=6FD6 P=A912 MOV  L,C
*A913
#G
:
   BIOS3
A: S3    SP R   : PA
$$$$ $$$ : $$$$$$$$ $$$
01 PASS A912
 --ME- A=93 B=96AE D=0002 H=96AE S=6FD6 P=A912 MOV  L,C
*A913
#G
:
   BIOS3      : S3    SP R
A: PA
$$$$ $$$ : $$$$$$$$ $$$
01 PASS A912
 --ME- A=93 B=96AE D=0003 H=96AE S=6FD6 P=A912 MOV  L,C
*A913
#G
:
   BIOS3      : PA
$$$$ $$$ : $$$$$$$$ $$$
01 PASS A912
 --ME- A=93 B=96AE D=0004 H=96AE S=6FD6 P=A912 MOV  L,C
*A913
#G

A: S3    SP R   : PA
$$$$ $$$ : $$$$$$$$ $$$
01 PASS A912
 --ME- A=93 B=96AE D=0005 H=96AE S=6FD6 P=A912 MOV  L,C
*A913
#G
:
   BIOS3      : S3    SP R
A: PA
$$$$ $$$ : $$$$$$$$ $$$
01 PASS A912
 --ME- A=93 B=96AE D=0006 H=96AE S=6FD6 P=A912 MOV  L,C
*A913
#G
:
   BIOS3      : S3    SP R   : PA
$$$$ $$$
A: $$$$$$$$ $$$
01 PASS A912
 --ME- A=93 B=96AE D=0007 H=96AE S=6FD6 P=A912 MOV  L,C
*A913
#G
:
   BIOS3      : S3    SP R   : PA
$$$$ $$$ : $$$$$$$$ $$$
01 PASS A912
 --ME- A=93 B=96AE D=0008 H=96AE S=6FD6 P=A912 MOV  L,C
*A913
#G


Press RETURN to Continue
A>

=======================================================================

Two differences I see. One is the state of the accumulator and the other is [DE]. These are setdma function entry values. Of course, setdma only cares about [BC], so it's not significant to that particular function. But it may be relevant to subsequent code flow. It doesn't appear to be though - I stepped through the code - but I'm making a note of it anyway, just in case. Still, I think it's just a side-effect of different code being used, and each leaving different left-over data in those registers.

So while I realize that BDOS and CCP are both known good programs, I think it might be useful to trace into them. Might help me learn what is happening to cause the modular BIOS "DIR" command to behave as it does. So I started SID CPMLDR.COM, set a passpoint at the end of the read function and ran it up to the point where CP/M was booted and CCP was in memory. When it displayed the "A>" prompt, I did a "DIR" and the passpoint caught right after the read function. There, I listed location 100 to see where CCP was placed in memory:


=======================================================================

A>dir

01 PASS 9342
 -Z-EI A=00 B=0000 D=97F8 H=972E S=6FD6 P=9342 RZ
*7767
#L0100
  0100  JMP  041A            <==
#L041A
  041A  LXI  SP,0F2D         (beginning of CCP)
  041D  LXI  H,050C
  0420  PUSH H
  0421  LXI  D,0D6A
  0424  MVI  C,31
  0426  CALL 0005
  0429  SHLD 038D
  042C  MVI  L,FA
  042E  MOV  A,M
  042F  STA  038F
  0432  MVI  L,99

...

  04D9  LXI  D,0DF5          (chain)
  04DC  MVI  C,7F
  04DE  MOV  A,C
  04DF  STAX D
  04E0  INX  D
  04E1  CALL 0BAE
  04E4  JMP  058B
  04E7  MVI  L,B5
  04E9  MOV  A,M
  04EA  ANI  02

...

  0506  CALL 0BE4            (ccpcr)
  0509  CALL 0C09
  050C  LXI  H,0F2B
  050F  SPHL
  0510  XRA  A
  0511  STA  0D99
  0514  LXI  H,050C
  0517  PUSH H
  0518  CALL 0BE4
  051B  DCX  H
  051C  MOV  A,M
  051D  ANI  01
  051F  JZ   0564            (jz prompt)
  0522  LXI  D,0DF5
  0525  CALL 097B            (call setbuf, which uses D as argument)
  0528  MVI  C,0F
  052A  CALL 09F0

...

  0564  LDA  0D70            (prompt)
  0567  ORA  A
  0568  CNZ  0C13
  056B  CALL 066D            (call dirdrv1)
  056E  MVI  A,3E            ('>' prompt character)
  0570  CALL 0916            (call putc)
  0573  LXI  D,B1BA
  0576  CALL 0BA7
  0579  ORA  A
  057A  PUSH PSW
  057B  LXI  B,B480
  057E  CNZ  0BF1
  0581  CALL 094E
  0584  CALL 0BEE
  0587  POP  PSW
  0588  CNZ  0AA8

...

  058B  CALL 0BDA            (ccparse)
  058E  JNZ  0596
  0591  MVI  L,C9
  0593  MOV  A,M
  0594  DCX  H
  0595  MOV  M,A
  0596  MVI  L,C8
  0598  MOV  A,M
  0599  STA  0D9A
  059C  CALL 09F6            (call uc)
  059F  RZ
  05A0  LXI  D,0DAC
  05A3  CALL 0B39            (call gcmd)
  05A6  LDA  0DB6
  05A9  CPI  20
  05AB  JNZ  0604            (jnz ccpdisk2, execute external command from disk file)
  05AE  LXI  H,0DAC
  05B1  MOV  A,M
  05B2  INX  H
  05B3  ORA  M
  05B4  INX  H
  05B5  MOV  A,M
  05B6  JNZ  060A            (jnz ccpdisk3 - if command preceeded by drive letter)
  05B9  LXI  H,0637          (ccpbuiltin: begin processing built-in command)
  05BC  LXI  D,0DAE
  05BF  LDA  0DB0
  05C2  CPI  21              (is command shorter than 3 characters?)
  05C4  CNC  0CBF            (cnc tbls - is command in the built-in cmd table?)
  05C7  JNZ  05E8            (jnz ccpdisk0 - if not in table, so external)
  05CA  LDA  0DA1            (lda option - looking for '[' in command line)
  05CD  ORA  A
  05CE  MOV  A,B
  05CF  LHLD 0D6C
  05D2  SHLD 0D9D
  05D5  LXI  H,065A
  05D8  JZ   0858            (jz tblj)
  05DB  CPI  04
  05DD  JC   0786            (jc trycom)
  05E0  LXI  H,0DB1
  05E3  JNZ  05E8
  05E6  MVI  M,20
  05E8  LXI  B,B418          (ccpdisk0:  lxi b,order)
  05EB  CALL 0BDD            (call getflg; 0=COM   8=COM,SUB  16=SUB,COM)
  05EE  JZ   0604            (jz ccpdisk2)
  05F1  MVI  B,08
  05F3  SUB  B
  05F4  JZ   05F9            (jz ccpdisk1; search for COM first, then SUB)
  05F7  MVI  B,00
  05F9  PUSH B               (ccpdisk1:)
  05FA  CALL 087A            (call settype)
  05FD  CALL 07E4            (call exec)
  0600  POP  PSW             (exec returns only if call was unsuccessful, so reset flags and A)
  0601  CALL 087A            (call settype)
  0604  CALL 07E4            (ccpdisk2: call exec)
  0607  JMP  0C3A            (jmp perror)
  060A  CPI  20              (ccpdisk3:)
  060C  JNZ  05E8            (jnz ccpdisk0)
  060F  CALL 0C36            (call eoc - error if not end of command)
  0612  LDA  0DAC
  0615  SUI  01
  0617  JC   0625            (jc ccpdrive)
  061A  STA  0D70            (ccpuser:)
  061D  MVI  B,B0
  061F  CALL 0BF9            (call setbyte)
  0622  CALL 0986            (call setuser)
  0625  LDA  0DAD            (ccpdrive:)
  0628  DCR  A
  0629  RM
  062A  PUSH PSW
  062B  CALL 0980            (call select)
  062E  POP  PSW
  062F  STA  0D72
  0632  MVI  B,AF
  0634  JMP  0BF9            (jmp setbyte)

...

  0666  LDA  005C            (dirdrv:)
  0669  DCR  A
  066A  JP   0670            (jp dirdrv2)
  066D  LDA  0D72            (dirdrv1:)
  0670  ADI  41
  0672  JMP  0CA6            (jmp pfc - print drive letter)
  0675  MVI  C,00            (dir:)
  0677  LXI  D,0D52
  067A  JMP  0682            (jmp dirs1)
  067D  MVI  C,80            (dirs:)
  067F  LXI  D,0D4E
  0682  PUSH D               (dirs1:)
  0683  CALL 0699            (call direct)
  0686  POP  D
  0687  JZ   07B8            (jz nofile)
  068A  MOV  A,L
  068B  CMP  B
  068C  CNC  0C09
  068F  LXI  H,0D4D
  0692  DCR  M
  0693  INR  M
  0694  RZ                   (return if no files)
  0695  DCR  M
  0696  JMP  0C05            (jmp pmsgnl)
  0699  PUSH B               (direct:)
  069A  CALL 0978            (call sbuf80 - set DMA=0080)
  069D  CALL 0AD8            (call gfn - parse file name)
  06A0  LXI  D,005D
  06A3  LDAX D
  06A4  CPI  20
  06A6  MVI  B,0B
  06A8  CZ   0CB5            (cz setmatch - use "????????.???" if none)
  06AB  CALL 0C36            (call eoc - make sure there's nothing else)
  06AE  CALL 09C3            (call srchf - search for first directory entry)
  06B1  POP  B
  06B2  RZ                   (return if no files found)
  06B3  LDA  0D97            (dir0:)
  06B6  MOV  L,A
  06B7  MOV  B,A
  06B8  INR  B
  06B9  PUSH H               (dir1:)
  06BA  LXI  H,000A
  06BD  DAD  D
  06BE  MOV  A,M
  06BF  POP  H
  06C0  ANI  80
  06C2  CMP  C
  06C3  JZ   06CE            (jz dir2 - display, if modes agree)
  06C6  MVI  A,01
  06C8  STA  0D4D
  06CB  JMP  06E5            (jmp dir3 - don't print anything)
  06CE  DCR  B               (dir2: print the filename)
  06CF  CZ   0C08            (cz dirln)
  06D2  MOV  A,B
  06D3  CMP  L
  06D4  CZ   0666            (cz dirdrv - print drive letter)
  06D7  MVI  A,3A            (':' character)
  06D9  CALL 0CA6            (call pfc - print colon)
  06DC  CALL 0CA4            (call space - print space)
  06DF  CALL 0C8D            (call pfn - print filename)
  06E2  CALL 0CA4            (call space)
  06E5  PUSH B               (dir3:)
  06E6  PUSH H
  06E7  CALL 0966            (call break - watch for keystroke)
  06EA  CALL 09C8            (call srchn - search for another match)
  06ED  POP  H
  06EE  POP  B
  06EF  JNZ  06B9            (jnz dir1)
  06F2  INR  A               (direx:)
  06F3  RET

...

  0C8D  INX  D               (pfn: print filename)
  0C8E  MVI  H,08
  0C90  CALL 0C98            (call pfn1)
  0C93  CALL 0CA4            (call space)
  0C96  MVI  H,03
  0C98  LDAX D               (pfn1:)
  0C99  ANI  7F
  0C9B  CALL 0CA6            (call pfc)
  0C9E  INX  D
  0C9F  DCR  H
  0CA0  JNZ  0C98            (jnz pfn1 - iterate through filename)
  0CA3  RET
  0CA4  MVI  A,20            (space:)
  0CA6  PUSH B               (pfc:)
  0CA7  PUSH D
  0CA8  PUSH H
  0CA9  CALL 0916            (call putc)
  0CAC  POP  H
  0CAD  POP  D
  0CAE  POP  B
  0CAF  RET

=========================================================================================

The code trace above was the modular code. The data is read from the diskette properly. But it isn't being transferred properly. So I'll scan the MOVE3 module, because that contains memory copy functions used by BIOS and BDOS.

Sure enough, it contains an LDIR instruction. I've run into that before, during the course of this effort. Some of the modules I'm woking on are based on existing code, and apparently much of it was written to run on a Z80 microprocessor.

That was the case here. Replaced the LDIR with DCR B ! JNZ and the directory function works just perfectly. This version of BIOS is now 100% functional with diskettes.

Now it's time to bring in the IDE interface code. Linking the IDE3 module and making a new build:


=========================================================================================

B>gencpm


CP/M 3.0 System Generation
Copyright (C) 1982, Digital Research

Default entries are shown in (parens).
Default base is Hex, precede entry with # for decimal

Use GENCPM.DAT for defaults (Y) ?

Create a new GENCPM.DAT file (N) ?

Display Load Map at Cold Boot (N) ?

Number of console columns (#80) ?
Number of lines in console page (#24) ?
Backspace echoes erased character (N) ?
Rubout echoes erased character (Y) ?

Initial default drive (A:) ?

Top page of memory (FE) ? B1
Bank switched memory (N) ?

Double allocation vectors (N) ?

Accept new system definition (Y) ?

Setting up Allocation vector for drive C:
Setting up Allocation vector for drive D:

Setting up directory hash tables:
 Enable hashing for drive C: (N) ?
 Enable hashing for drive D: (N) ?

Setting up Blocking/Deblocking buffers:

The physical record size is 0200H:

     Available space in 256 byte pages:
     TPA = 0071H

     *** Directory buffer required  ***
     *** and allocated for drive C: ***

     Available space in 256 byte pages:
     TPA = 006EH

               Overlay Data buffer for drive C: (Y) ?

     Available space in 256 byte pages:
     TPA = 006EH

               Overlay Directory buffer for drive D: (Y) ?
               Share buffer(s) with which drive (C:) ?

     Available space in 256 byte pages:
     TPA = 006EH

               Overlay Data buffer for drive D: (Y) ?
               Share buffer(s) with which drive (C:) ?

     Available space in 256 byte pages:
     TPA = 006EH


Accept new buffer definitions (Y) ?

 BIOS3    SPR  8E00H  1E00H
 BDOS3    SPR  6F00H  1F00H

*** CP/M 3.0 SYSTEM GENERATION DONE ***
B>
B>a:pip a:=b:cpm3.sys
B>a:
A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1E00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#L8E00
  8E00  JMP  AAA2       (boot)
  8E03  JMP  8E6C       (wboot)
  8E06  JMP  8F72       (const)
  8E09  JMP  8F8D       (conin)
  8E0C  JMP  8ED5       (conout)
  8E0F  JMP  8EE1       (list)
  8E12  JMP  8EDB       (auxout)
  8E15  JMP  8F93       (auxin)
  8E18  JMP  AB10       (home)
  8E1B  JMP  AAE1       (seldsk)
  8E1E  JMP  AB13       (settrk)
  8E21  JMP  AB19       (setsec)
  8E24  JMP  AB1F       (setdma)
  8E27  JMP  AB36       (read)
  8E2A  JMP  AB4C       (write)
  8E2D  JMP  8F0D       (listst)
  8E30  JMP  AB2B       (sectrn)
  8E33  JMP  8F01       (conost)
  8E36  JMP  8F78       (auxist)
  8E39  JMP  8F07       (auxost)
  8E3C  JMP  8ECD       (devtbl)
  8E3F  JMP  9105       (devini)
  8E42  JMP  8ED1       (drvtbl)
  8E45  JMP  AB6D       (multio)
  8E48  JMP  AB71       (flush)
  8E4B  JMP  9296       (move)
  8E4E  JMP  9095       (time)
  8E51  JMP  9020       (selmem)
  8E54  JMP  AB27       (setbnk)
  8E57  JMP  9295       (xmove)
  8E5A  JMP  0000       (userf)
  8E5D  JMP  0000       (reserv1)
  8E60  JMP  0000       (reserv2)

=======================================================================

When trying to select the C: drive, the system hangs. So I set a breakpoint at seldsk, which leads me to the login function:


=======================================================================

#PAAE1             (seldsk)
#G8E00


CP/M Plus v3.0hd


01 PASS AAE1
 -Z-E- A=00 B=0002 D=0200 H=0000 S=6FE0 P=AAE1 MOV  A,C
 -Z-E- A=02 B=0002 D=0200 H=0000 S=6FE0 P=AAE2 STA  AB8F
 -Z-E- A=02 B=0002 D=0200 H=0000 S=6FE0 P=AAE5 MOV  L,C
 -Z-E- A=02 B=0002 D=0200 H=0002 S=6FE0 P=AAE6 MVI  H,00
 -Z-E- A=02 B=0002 D=0200 H=0002 S=6FE0 P=AAE8 DAD  H
 -Z-E- A=02 B=0002 D=0200 H=0004 S=6FE0 P=AAE9 LXI  B,929A
 -Z-E- A=02 B=929A D=0200 H=0004 S=6FE0 P=AAEC DAD  B
 -Z-E- A=02 B=929A D=0200 H=929E S=6FE0 P=AAED MOV  A,M
 -Z-E- A=B5 B=929A D=0200 H=929E S=6FE0 P=AAEE INX  H
 -Z-E- A=B5 B=929A D=0200 H=929F S=6FE0 P=AAEF MOV  H,M
 -Z-E- A=B5 B=929A D=0200 H=A89F S=6FE0 P=AAF0 MOV  L,A
 -Z-E- A=B5 B=929A D=0200 H=A8B5 S=6FE0 P=AAF1 ORA  H
 --ME- A=BD B=929A D=0200 H=A8B5 S=6FE0 P=AAF2 RZ
 --ME- A=BD B=929A D=0200 H=A8B5 S=6FE0 P=AAF3 MOV  A,E
 --ME- A=00 B=929A D=0200 H=A8B5 S=6FE0 P=AAF4 ANI  01
 -Z-E- A=00 B=929A D=0200 H=A8B5 S=6FE0 P=AAF6 JNZ  AB0F
 -Z-E- A=00 B=929A D=0200 H=A8B5 S=6FE0 P=AAF9 PUSH H
 -Z-E- A=00 B=929A D=0200 H=A8B5 S=6FDE P=AAFA XCHG
 -Z-E- A=00 B=929A D=A8B5 H=0200 S=6FDE P=AAFB LXI  H,FFFE
 -Z-E- A=00 B=929A D=A8B5 H=FFFE S=6FDE P=AAFE DAD  D
 CZ-E- A=00 B=929A D=A8B5 H=A8B3 S=6FDE P=AAFF MOV  A,M
 CZ-E- A=00 B=929A D=A8B5 H=A8B3 S=6FDE P=AB00 STA  AB90
 CZ-E- A=00 B=929A D=A8B5 H=A8B3 S=6FDE P=AB03 LXI  H,FFFA
 CZ-E- A=00 B=929A D=A8B5 H=FFFA S=6FDE P=AB06 DAD  D
 CZ-E- A=00 B=929A D=A8B5 H=A8AF S=6FDE P=AB07 MOV  A,M
 CZ-E- A=03 B=929A D=A8B5 H=A8AF S=6FDE P=AB08 INX  H
 CZ-E- A=03 B=929A D=A8B5 H=A8B0 S=6FDE P=AB09 MOV  H,M
 CZ-E- A=03 B=929A D=A8B5 H=A9B0 S=6FDE P=AB0A MOV  L,A
 CZ-E- A=03 B=929A D=A8B5 H=A903 S=6FDE P=AB0B CALL 8FB1   (vector to login)
*8FB1

#P8FB1   (set passpoint at 8FB1)
#G

01 PASS 8FB1
 --M-- A=00 B=1000 D=92C0 H=9341 S=8EC7 P=8FB1 PCHL
*9341
#G

01 PASS 8FB1
 --M-- A=01 B=0F01 D=92E3 H=9341 S=8EC7 P=8FB1 PCHL
*9341
#G

01 PASS 8FB1
 --ME- A=02 B=0E02 D=A8B1 H=A902 S=8EC7 P=8FB1 PCHL
*A902
#G

01 PASS 8FB1
 --M-- A=03 B=0D03 D=A8D4 H=A902 S=8EC7 P=8FB1 PCHL
*A902
#G

01 PASS 8FB1
 CZ-E- A=42 B=929A D=92C4 H=9342 S=6FDA P=8FB1 PCHL
*9342
#G
A>C:

01 PASS 8FB1
 CZ-E- A=03 B=929A D=A8B5 H=A903 S=6FDC P=8FB1 PCHL
*A903
#T
 CZ-E- A=03 B=929A D=A8B5 H=A903 S=6FDC P=A903 MVI  A,92
 CZ-E- A=92 B=929A D=A8B5 H=A903 S=6FDC P=A905 OUT  33
 CZ-E- A=92 B=929A D=A8B5 H=A903 S=6FDC P=A907 MVI  A,80
 CZ-E- A=80 B=929A D=A8B5 H=A903 S=6FDC P=A909 OUT  32
 CZ-E- A=80 B=929A D=A8B5 H=A903 S=6FDC P=A90B MVI  B,20
 CZ-E- A=80 B=209A D=A8B5 H=A903 S=6FDC P=A90D DCR  B
 C---- A=80 B=1F9A D=A8B5 H=A903 S=6FDC P=A90E JNZ  A90D
 C---- A=80 B=1F9A D=A8B5 H=A903 S=6FDC P=A90D DCR  B
...
 C---I A=80 B=019A D=A8B5 H=A903 S=6FDC P=A90E JNZ  A90D
 C---I A=80 B=019A D=A8B5 H=A903 S=6FDC P=A90D DCR  B
 CZ-EI A=80 B=009A D=A8B5 H=A903 S=6FDC P=A90E JNZ  A90D
 CZ-EI A=80 B=009A D=A8B5 H=A903 S=6FDC P=A911 XRA  A
 -Z-E- A=00 B=009A D=A8B5 H=A903 S=6FDC P=A912 OUT  32
       A=00 B=009A D=A8B5 H=A903 S=6FDC P=A914 CALL AA47
 -Z-E- A=00 B=009A D=A8B5 H=A903 S=6FDA P=AA47 MVI  A,28
 -Z-E- A=28 B=009A D=A8B5 H=A903 S=6FDA P=AA49 MVI  B,00
 -Z-E- A=28 B=009A D=A8B5 H=A903 S=6FDA P=AA4B ??=  10     <== DJNZ
 -Z-E- A=28 B=009A D=A8B5 H=A903 S=6FDA P=AA4C CPI  3D
 C-ME- A=28 B=009A D=A8B5 H=A903 S=6FDA P=AA4E JNZ  AA49
 C-ME- A=28 B=009A D=A8B5 H=A903 S=6FDA P=AA49 MVI  B,00
 C-ME- A=28 B=009A D=A8B5 H=A903 S=6FDA P=AA4B ??=  10
 C-ME- A=28 B=009A D=A8B5 H=A903 S=6FDA P=AA4C CPI  3D
 C-ME- A=28 B=009A D=A8B5 H=A903 S=6FDA P=AA4E JNZ  AA49
...

============================================================

Another Z80 instruction! I had let some of the DJNZ instructions slip back into the code. Actually, I had removed them from IDEutil.asm, but I never removed them from IDE3.asm. It also has BIT instructions, which also aren't supported. So I fixed those to make the code compatible with the 8080, much like I had done in IDEutil.

The IDE3.asm module is a blend of Monahan's code and my own. It has a version of wrlba that matches the one in IDEutil, for example. My version removes gaps in the data by making sure no sectors are skipped in translation. It is also rewritten to use only 8080-compatible code.

IDE3.ASM repaired - Replaced DJNZ instructions with DCR B and JNZ and replaced BIT with ANI.


=========================================================================================

B>gencpm


CP/M 3.0 System Generation
Copyright (C) 1982, Digital Research

Default entries are shown in (parens).
Default base is Hex, precede entry with # for decimal

Use GENCPM.DAT for defaults (Y) ?

Create a new GENCPM.DAT file (N) ?

Display Load Map at Cold Boot (N) ?

Number of console columns (#80) ?
Number of lines in console page (#24) ?
Backspace echoes erased character (N) ?
Rubout echoes erased character (Y) ?

Initial default drive (A:) ?

Top page of memory (FE) ? B1
Bank switched memory (N) ?

Double allocation vectors (N) ?

Accept new system definition (Y) ?

Setting up Allocation vector for drive C:
Setting up Allocation vector for drive D:

Setting up directory hash tables:
 Enable hashing for drive C: (N) ?
 Enable hashing for drive D: (N) ?

Setting up Blocking/Deblocking buffers:

The physical record size is 0200H:

     Available space in 256 byte pages:
     TPA = 0071H

     *** Directory buffer required  ***
     *** and allocated for drive C: ***

     Available space in 256 byte pages:
     TPA = 006EH

               Overlay Data buffer for drive C: (Y) ?

     Available space in 256 byte pages:
     TPA = 006EH

               Overlay Directory buffer for drive D: (Y) ?
               Share buffer(s) with which drive (C:) ?

     Available space in 256 byte pages:
     TPA = 006EH

               Overlay Data buffer for drive D: (Y) ?
               Share buffer(s) with which drive (C:) ?

     Available space in 256 byte pages:
     TPA = 006EH


Accept new buffer definitions (Y) ?

 BIOS3    SPR  8E00H  1E00H
 BDOS3    SPR  6F00H  1F00H

*** CP/M 3.0 SYSTEM GENERATION DONE ***
B>
B>a:pip a:=b:cpm3.sys
B>a:
A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1E00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#L8E00
  8E00  JMP  AAAD       (boot)
  8E03  JMP  8E6C       (wboot)
  8E06  JMP  8F72       (const)
  8E09  JMP  8F8D       (conin)
  8E0C  JMP  8ED5       (conout)
  8E0F  JMP  8EE1       (list)
  8E12  JMP  8EDB       (auxout)
  8E15  JMP  8F93       (auxin)
  8E18  JMP  AB1B       (home)
  8E1B  JMP  AAEC       (seldsk)
  8E1E  JMP  AB1E       (settrk)
  8E21  JMP  AB24       (setsec)
  8E24  JMP  AB2A       (setdma)
  8E27  JMP  AB41       (read)
  8E2A  JMP  AB57       (write)
  8E2D  JMP  8F0D       (listst)
  8E30  JMP  AB36       (sectrn)
  8E33  JMP  8F01       (conost)
  8E36  JMP  8F78       (auxist)
  8E39  JMP  8F07       (auxost)
  8E3C  JMP  8ECD       (devtbl)
  8E3F  JMP  9106       (devini)
  8E42  JMP  8ED1       (drvtbl)
  8E45  JMP  AB78       (multio)
  8E48  JMP  AB7C       (flush)
  8E4B  JMP  9297       (move)
  8E4E  JMP  9095       (time)
  8E51  JMP  9020       (selmem)
  8E54  JMP  AB32       (setbnk)
  8E57  JMP  9296       (xmove)
  8E5A  JMP  0000       (userf)
  8E5D  JMP  0000       (reserv1)
  8E60  JMP  0000       (reserv2)

#L8FB1
  8FB1  PCHL                 <=== vector is in the same location, so use it
  8FB2  PUSH B
  8FB3  PUSH D
  8FB4  MOV  A,M
  8FB5  ORA  A
  8FB6  JZ   8FC3
  8FB9  MOV  C,A
  8FBA  PUSH H
  8FBB  CALL 8E0C
  8FBE  POP  H
  8FBF  INX  H
#P8FB1                       (set passpoint at login vector)
#G8E00


CP/M Plus v3.0hd



01 PASS 8FB1
 --ME- A=00 B=1000 D=92C1 H=9342 S=8EC7 P=8FB1 PCHL
*9342
#G

01 PASS 8FB1
 --ME- A=01 B=0F01 D=92E4 H=9342 S=8EC7 P=8FB1 PCHL
*9342
#G

01 PASS 8FB1
 --ME- A=02 B=0E02 D=A8B2 H=A903 S=8EC7 P=8FB1 PCHL
*A903
#G

01 PASS 8FB1
 --ME- A=03 B=0D03 D=A8D5 H=A903 S=8EC7 P=8FB1 PCHL
*A903
#G

01 PASS 8FB1
 CZ-E- A=43 B=929B D=92C5 H=9343 S=6FDA P=8FB1 PCHL
*9343
#G
A>C:

01 PASS 8FB1
 CZ-E- A=04 B=929B D=A8B6 H=A904 S=6FDC P=8FB1 PCHL
*A904
#T
 CZ-E- A=04 B=929B D=A8B6 H=A904 S=6FDC P=A904 MVI  A,92
 CZ-E- A=92 B=929B D=A8B6 H=A904 S=6FDC P=A906 OUT  33
 CZ-E- A=92 B=929B D=A8B6 H=A904 S=6FDC P=A908 MVI  A,80
 CZ-E- A=80 B=929B D=A8B6 H=A904 S=6FDC P=A90A OUT  32
 CZ-E- A=80 B=929B D=A8B6 H=A904 S=6FDC P=A90C MVI  B,20
 CZ-E- A=80 B=209B D=A8B6 H=A904 S=6FDC P=A90E DCR  B
 C---- A=80 B=1F9B D=A8B6 H=A904 S=6FDC P=A90F JNZ  A90E   (jnz ResetDelay)
 C---- A=80 B=1F9B D=A8B6 H=A904 S=6FDC P=A90E DCR  B
 C--EI A=80 B=1E9B D=A8B6 H=A904 S=6FDC P=A90F JNZ  A90E
...
 C---I A=80 B=019B D=A8B6 H=A904 S=6FDC P=A90E DCR  B
 CZ-EI A=80 B=009B D=A8B6 H=A904 S=6FDC P=A90F JNZ  A90E
 CZ-EI A=80 B=009B D=A8B6 H=A904 S=6FDC P=A912 XRA  A
 -Z-E- A=00 B=009B D=A8B6 H=A904 S=6FDC P=A913 OUT  32
 -Z-E- A=00 B=009B D=A8B6 H=A904 S=6FDC P=A915 CALL AA50   (call Delay$32)
 -Z-E- A=00 B=009B D=A8B6 H=A904 S=6FDA P=AA50 MVI  A,28
 -Z-E- A=28 B=009B D=A8B6 H=A904 S=6FDA P=AA52 MVI  B,00
 -Z-E- A=28 B=009B D=A8B6 H=A904 S=6FDA P=AA54 DCR  B
 --ME- A=28 B=FF9B D=A8B6 H=A904 S=6FDA P=AA55 JNZ  AA54   (jnz M0)
 --ME- A=28 B=FF9B D=A8B6 H=A904 S=6FDA P=AA54 DCR  B
 --M-I A=28 B=FE9B D=A8B6 H=A904 S=6FDA P=AA55 JNZ  AA54
...
 ----I A=28 B=019B D=A8B6 H=A904 S=6FDA P=AA54 DCR  B
 -Z-EI A=28 B=009B D=A8B6 H=A904 S=6FDA P=AA55 JNZ  AA54
 -Z-EI A=28 B=009B D=A8B6 H=A904 S=6FDA P=AA58 DCR  A
 ---EI A=27 B=009B D=A8B6 H=A904 S=6FDA P=AA59 JNZ  AA52   (jnz Delay3)
 ---EI A=27 B=009B D=A8B6 H=A904 S=6FDA P=AA52 MVI  B,00
 ---EI A=27 B=009B D=A8B6 H=A904 S=6FDA P=AA54 DCR  B
 --ME- A=27 B=FF9B D=A8B6 H=A904 S=6FDA P=AA55 JNZ  AA54
 --ME- A=27 B=FF9B D=A8B6 H=A904 S=6FDA P=AA54 DCR  B
 --M-I A=27 B=FE9B D=A8B6 H=A904 S=6FDA P=AA55 JNZ  AA54
...
 ----I A=27 B=019B D=A8B6 H=A904 S=6FDA P=AA54 DCR  B
 -Z-EI A=27 B=009B D=A8B6 H=A904 S=6FDA P=AA55 JNZ  AA54
 -Z-EI A=27 B=009B D=A8B6 H=A904 S=6FDA P=AA58 DCR  A
 ----I A=26 B=009B D=A8B6 H=A904 S=6FDA P=AA59 JNZ  AA52
 ----I A=26 B=009B D=A8B6 H=A904 S=6FDA P=AA52 MVI  B,00
 ----I A=26 B=009B D=A8B6 H=A904 S=6FDA P=AA54 DCR  B
 --ME- A=26 B=FF9B D=A8B6 H=A904 S=6FDA P=AA55 JNZ  AA54
 --ME- A=26 B=FF9B D=A8B6 H=A904 S=6FDA P=AA54 DCR  B
 --M-I A=26 B=FE9B D=A8B6 H=A904 S=6FDA P=AA55 JNZ  AA54
...
 ----I A=01 B=019B D=A8B6 H=A904 S=6FDA P=AA55 JNZ  AA54
 ----I A=01 B=019B D=A8B6 H=A904 S=6FDA P=AA54 DCR  B
 -Z-EI A=01 B=009B D=A8B6 H=A904 S=6FDA P=AA55 JNZ  AA54
 -Z-EI A=01 B=009B D=A8B6 H=A904 S=6FDA P=AA58 DCR  A
 -Z-EI A=00 B=009B D=A8B6 H=A904 S=6FDA P=AA59 JNZ  AA52
 -Z-EI A=00 B=009B D=A8B6 H=A904 S=6FDA P=AA5C RET
 -Z-EI A=00 B=009B D=A8B6 H=A904 S=6FDC P=A918 MVI  D,E0
 -Z-EI A=00 B=009B D=E0B6 H=A904 S=6FDC P=A91A MVI  E,0E
 -Z-EI A=00 B=009B D=E00E H=A904 S=6FDC P=A91C CALL AA6E
 -Z-EI A=00 B=009B D=E00E H=A904 S=6FDA P=AA6E MVI  A,80
 -Z-EI A=80 B=009B D=E00E H=A904 S=6FDA P=AA70 OUT  33
 -Z-EI A=80 B=009B D=E00E H=A904 S=6FDA P=AA72 MOV  A,D
 -Z-EI A=E0 B=009B D=E00E H=A904 S=6FDA P=AA73 OUT  30
 -Z-EI A=E0 B=009B D=E00E H=A904 S=6FDA P=AA75 MOV  A,E
 -Z-EI A=0E B=009B D=E00E H=A904 S=6FDA P=AA76 OUT  32
 -Z-EI A=0E B=009B D=E00E H=A904 S=6FDA P=AA78 ORI  20
 ---E- A=2E B=009B D=E00E H=A904 S=6FDA P=AA7A OUT  32
 ---E- A=2E B=009B D=E00E H=A904 S=6FDA P=AA7C MOV  A,E
 ---E- A=0E B=009B D=E00E H=A904 S=6FDA P=AA7D OUT  32
 ---E- A=0E B=009B D=E00E H=A904 S=6FDA P=AA7F XRA  A
 -Z-E- A=00 B=009B D=E00E H=A904 S=6FDA P=AA80 OUT  32
 -Z-E- A=00 B=009B D=E00E H=A904 S=6FDA P=AA82 MVI  A,92
 -Z-E- A=92 B=009B D=E00E H=A904 S=6FDA P=AA84 OUT  33
 -Z-E- A=92 B=009B D=E00E H=A904 S=6FDA P=AA86 RET
 -Z-E- A=92 B=009B D=E00E H=A904 S=6FDC P=A91F MVI  B,FF
 -Z-E- A=92 B=FF9B D=E00E H=A904 S=6FDC P=A921 MVI  E,0F
 -Z-E- A=92 B=FF9B D=E00F H=A904 S=6FDC P=A923 CALL AA5D
 -Z-E- A=92 B=FF9B D=E00F H=A904 S=6FDA P=AA5D MOV  A,E
 -Z-E- A=0F B=FF9B D=E00F H=A904 S=6FDA P=AA5E OUT  32
 -Z-E- A=0F B=FF9B D=E00F H=A904 S=6FDA P=AA60 ORI  40
 ----- A=4F B=FF9B D=E00F H=A904 S=6FDA P=AA62 OUT  32
 ----- A=4F B=FF9B D=E00F H=A904 S=6FDA P=AA64 IN   30
 ----- A=50 B=FF9B D=E00F H=A904 S=6FDA P=AA66 MOV  D,A
 ----- A=50 B=FF9B D=500F H=A904 S=6FDA P=AA67 MOV  A,E
 ----- A=0F B=FF9B D=500F H=A904 S=6FDA P=AA68 OUT  32
 ----- A=0F B=FF9B D=500F H=A904 S=6FDA P=AA6A XRA  A
 -Z-E- A=00 B=FF9B D=500F H=A904 S=6FDA P=AA6B OUT  32
 -Z-E- A=00 B=FF9B D=500F H=A904 S=6FDA P=AA6D RET
 -Z-E- A=00 B=FF9B D=500F H=A904 S=6FDC P=A926 ??=  CB
*A926
#

=========================================================================================

I found it! After looping through all that, the code returned to a BIT instruction, which was used to test for IDE interface ready. I replaced that with an ANI and the IDE worked right away!


=========================================================================================

A>b:
B>gencpm


CP/M 3.0 System Generation
Copyright (C) 1982, Digital Research

Default entries are shown in (parens).
Default base is Hex, precede entry with # for decimal

Use GENCPM.DAT for defaults (Y) ?

Create a new GENCPM.DAT file (N) ?

Display Load Map at Cold Boot (N) ?

Number of console columns (#80) ?
Number of lines in console page (#24) ?
Backspace echoes erased character (N) ?
Rubout echoes erased character (Y) ?

Initial default drive (A:) ?

Top page of memory (FE) ? B1
Bank switched memory (N) ?

Double allocation vectors (N) ?

Accept new system definition (Y) ?

Setting up Allocation vector for drive C:
Setting up Allocation vector for drive D:

Setting up directory hash tables:
 Enable hashing for drive C: (N) ?
 Enable hashing for drive D: (N) ?

Setting up Blocking/Deblocking buffers:

The physical record size is 0200H:

     Available space in 256 byte pages:
     TPA = 0071H

     *** Directory buffer required  ***
     *** and allocated for drive C: ***

     Available space in 256 byte pages:
     TPA = 006EH

               Overlay Data buffer for drive C: (Y) ?

     Available space in 256 byte pages:
     TPA = 006EH

               Overlay Directory buffer for drive D: (Y) ?
               Share buffer(s) with which drive (C:) ?

     Available space in 256 byte pages:
     TPA = 006EH

               Overlay Data buffer for drive D: (Y) ?
               Share buffer(s) with which drive (C:) ?

     Available space in 256 byte pages:
     TPA = 006EH


Accept new buffer definitions (Y) ?

 BIOS3    SPR  8E00  1E00
 BDOS3    SPR  6F00  1F00

*** CP/M 3.0 SYSTEM GENERATION DONE ***
B>a:pip cpm3ide.sys=cpm3.sys

B>a:
A>dir *.sys
A: CPM3     SYS : CPM3IDE  SYS : CPM3DUG  SYS
A>era cpm3.sys
A>era cpm3ide.sys
A>pip cpm3.sys=b:cpm3.sys

A>pip cpm3ide.sys=cpm3.sys

A>cpmldr

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 27K TPA


CP/M Plus v3.0hd


A>dir
A: L80      COM : PC2FLOP  COM : FLOP2PC  COM : ASM      COM : DUMP     COM
A: XSUB     COM : FORMAT   COM : LS       COM : SUBMIT   COM : LOAD     COM
A: SURVEY   COM : VIEW     COM : M80      COM : MAC      COM : MBASIC   COM
A: PIP      COM : STAT     COM : DDT      COM : PCPUT    COM : NSWP     COM
A: SYSGEN   COM : PCGET    COM : CRC      COM : MOVCPM   COM : SID      COM
A: CPMLDR   COM : CPM3     SYS : CCP      COM : CPM3IDE  SYS : CPM3DUG  SYS
A: CLIFE    COM
A>c:
C>dir
No File
C>a:pip clife.com=a:clife.com

C>dir
C: CLIFE    COM
C>clife

                                      Life

This  is a cellular automaton devised by the British mathematician John  Conway
in  1970.   Its  evolution  is determined by its initial  state,  requiring  no
further input.  You will only be asked for initial population density, which is
then used to create a random distribution of cells.

This  simulation  is  Turing complete and can produce and contain  a  universal
constructor or any other Turing machine.

The universe is a two-dimensional orthogonal grid, with each position in one of
two possible states, live or dead, or populated and unpopulated,  respectively.

Every  cell interacts with its eight neighbours,  which are the cells that  are
horizontally,  vertically, or diagonally adjacent.   The following  transitions
occur at each iteration, definining a generation:

- A live cell with fewer than two live neighbours dies from underpopulation.
- A live cell with two or three live neighbours lives to the next generation.
- A live cell with more than three live neighbours dies from overpopulation.
- A space surrounded by three cells becomes a live cell from reproduction.

Starting population density as a percentage? 22

Number of generations (0 to loop forever) ? 0
Wait a few seconds, and type a CR:

  o   o        o  o oo        oo  o o      o  o  o    o           o o   o o
       o     ooo             oooo     o o       o o         o oo      o o
  oo   o o         o   o o  o   o      o     oo o                oo   o   o o
        o  o   o        o    o  o   o   o         o        o o o o
    o           o   ooo     o  oo             o       o   o     o    o     o
       oo  o       o    o   o        o      oo   o   o        o  o   oo o      o
  o          o      o   o         o  ooo o    o         oooo  o          o  oo o
   o        o           o o           o o       o oo           o o        o oo o
o     o   o          o   o     o  oo      o      oo o   o             oo o
  o  oo    o  o   o   o  o            o oo o oo                 o  o o  o
      o       o o  o   o   o  o o o   ooo o     ooo       o    oo   o o    o  o
o               o       o o  o    o   o    o   o         o       oo    o    o
  o                  o  oo      oo  oo  oo        o o    o o     oo ooooo   ooo
           ooo o                 o       o    o   o   o      ooo        o
o  o o  o   o      o o o  o    o   oo   o    o     o   ooo oo      ooo     o o
  o o o o   o o        oooo       o  o   o  o     o   o o    o o           o
    o   o                        o o         oo     oo oo                oo  o
  oo       oo    o     o     oo      o o oo   oo   o                   oo   oo
  ooo         o ooo         oo oo o  o      o    o         oo oo   o o      o
     o o  o   oo              o     o    o o    o    o o     o o ooo     o   o o
           o              o  o             o  o  oo  o          o         o
 o    oo               o         o      o    oo   o      o          oo      o
                              Generation 1

^C

C>dir
C: CLIFE    COM
C>D:
D>B:
B>A:
A>stat
A: R/W, Space: 60k
B: R/W, Space: 56k
C: R/W, Space: 8120k
D: R/W, Space: 8120k


A>

=========================================================================================

Sweet! But I still have a few things to verify and/or fix:

1. Need to check the wrlba function in IDE3.asm. At the same time, I need to determine whether I should decrement the sector to make it zero-indexed, like the FDC3 module does.

2. Need to play around with the gencpm overlay settings for drive C and drive D. I want to maximize TPA, but I'm not sure what buffers can be shared and what buffers shouldn't be.

3. Need to study Mike Douglas's ckFlush flow. Right now, if I boot the system and don't touch anything, the A-drive will stay enabled and running. If I press any key, it will stop. This is because I put a call to ckFlush in the cin function, parroting what Mike did in his BIOS. But I need to understand what needs to be done to ensure a drive is disabled automatically when the system is quiescent.

Latest changes:
1. Re-wrote init and login functions in IDE3.
2. Moved ckFlush call to CIST from CI.
3. Re-genned as shown below:

Let's watch the setsec and read flow to see what the new code does with @SECT.

Latest build:


=========================================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 BIOS3    SPR  8E00  1E00
 BDOS3    SPR  6F00  1F00

 27K TPA

*01A9
#L8E00
  8E00  JMP  AAC7       (boot)
  8E03  JMP  8E6C       (wboot)
  8E06  JMP  8F72       (const)
  8E09  JMP  8F8D       (conin)
  8E0C  JMP  8ED5       (conout)
  8E0F  JMP  8EE1       (list)
  8E12  JMP  8EDB       (auxout)
  8E15  JMP  8F93       (auxin)
  8E18  JMP  AB35       (home)
  8E1B  JMP  AB06       (seldsk)
  8E1E  JMP  AB38       (settrk)
  8E21  JMP  AB3E       (setsec)
  8E24  JMP  AB44       (setdma)
  8E27  JMP  AB5B       (read)
  8E2A  JMP  AB71       (write)
  8E2D  JMP  8F0D       (listst)
  8E30  JMP  AB50       (sectrn)
  8E33  JMP  8F01       (conost)
  8E36  JMP  8F78       (auxist)
  8E39  JMP  8F07       (auxost)
  8E3C  JMP  8ECD       (devtbl)
  8E3F  JMP  9106       (devini)
  8E42  JMP  8ED1       (drvtbl)
  8E45  JMP  AB92       (multio)
  8E48  JMP  AB96       (flush)
  8E4B  JMP  9297       (move)
  8E4E  JMP  9095       (time)
  8E51  JMP  9020       (selmem)
  8E54  JMP  AB4C       (setbnk)
  8E57  JMP  9296       (xmove)
  8E5A  JMP  0000       (userf)
  8E5D  JMP  0000       (reserv1)
  8E60  JMP  0000       (reserv2)


#PAB3E                  (passpoint at setsec)
#PAB5B                  (passpoint at read)
#G8E00


CP/M Plus v3.0hd



01 PASS AB3E
 --M-- A=B3 B=0001 D=0000 H=0001 S=6FD0 P=AB3E MOV  L,C
*AB3F
#G

01 PASS AB5B
 ----I A=01 B=9601 D=0000 H=96C6 S=6FD2 P=AB5B LHLD ABB4
*AB5E
#L
  AB5E  MVI  H,00
  AB60  DAD  H
  AB61  LXI  D,929B
  AB64  DAD  D
  AB65  MOV  A,M
  AB66  INX  H
  AB67  MOV  H,M
  AB68  MOV  L,A
  AB69  PUSH H
  AB6A  LXI  D,FFF8
  AB6D  DAD  D
  AB6E  JMP  AB84
  AB71  LHLD ABB4
  AB74  MVI  H,00
  AB76  DAD  H
  AB77  LXI  D,929B
  AB7A  DAD  D
  AB7B  MOV  A,M
  AB7C  INX  H
  AB7D  MOV  H,M
  AB7E  MOV  L,A
  AB7F  PUSH H
  AB80  LXI  D,FFF6
  AB83  DAD  D
  AB84  MOV  A,M
  AB85  INX  H
  AB86  MOV  H,M
  AB87  MOV  L,A
  AB88  POP  D
  AB89  DCX  D
  AB8A  DCX  D
  AB8B  LDAX D
  AB8C  STA  ABB5
  AB8F  INX  D
  AB90  INX  D
  AB91  PCHL            (jump to read)
  AB92  STA  ABBC
  AB95  RET
  AB96  XRA  A
  AB97  RET
  AB98  DCR  C
  AB99  LDAX B
  AB9A  RLC
  AB9B  MOV  B,D
#G,AB91

*AB91
#X
 C---I A=00 B=9601 D=92C5 H=9344 S=6FD2 P=AB91 PCHL        (read function for floppy is at 9344)
#PAB91
#G

01 PASS AB3E
 --M-- A=B3 B=0009 D=0001 H=0009 S=6FD0 P=AB3E MOV  L,C
 --M-- A=B3 B=0009 D=0001 H=0009 S=6FD0 P=AB3F MOV  H,B
 --M-- A=B3 B=0009 D=0001 H=0009 S=6FD0 P=AB40 SHLD ABB8   (ABB8 = @SECT)
 --M-- A=B3 B=0009 D=0001 H=0009 S=6FD0 P=AB43 RET
*7853
#G

=========================================================================================

Completed boot, go to prompt:


=========================================================================================

A>C:

01 PASS AB3E
 -Z-E- A=00 B=0000 D=0000 H=0000 S=6FD2 P=AB3E MOV  L,C
 -Z-E- A=00 B=0000 D=0000 H=0000 S=6FD2 P=AB3F MOV  H,B
 -Z-E- A=00 B=0000 D=0000 H=0000 S=6FD2 P=AB40 SHLD ABB8   (sector 00 this time)
 -Z-E- A=00 B=0000 D=0000 H=0000 S=6FD2 P=AB43 RET
*7853
#G

01 PASS AB91
 C---I A=00 B=AB01 D=A8B6 H=A9B6 S=6FD4 P=AB91 PCHL        (A9B6 is IDE read function)
*A9B6
#T
 C---I A=00 B=AB01 D=A8B6 H=A9B6 S=6FD4 P=A9B6 CALL 93E8
 C---I A=00 B=AB01 D=A8B6 H=A9B6 S=6FD2 P=93E8 LDA  ABB8
 C---I A=00 B=AB01 D=A8B6 H=A9B6 S=6FD2 P=93EB DCR  A
 C-ME- A=FF B=AB01 D=A8B6 H=A9B6 S=6FD2 P=93EC STA  ABB8
 C-ME- A=FF B=AB01 D=A8B6 H=A9B6 S=6FD2 P=93EF RET
*A9B9

=========================================================================================

We can clearly see here that we don't want the sector decrement function used on the hard drives. It rolled back to FF, so the "00" sector would actually be "3F" since we only use the bottom six bits in the translation scheme in wrlba. The whole system is written to emulate physical 00-3F sectors and 00-FF tracks. Anyway, we don't want to decrement the sector presented to BIOS from BDOS in the hard disk subsystem.

Next and final issue to resolve is the hard disk directory confusion. I assumed that the directory and data buffers would be sorted out by GENCPM, but that doesn't appear to be the case. I've tried configuring both C and D drives to have their own directory and data buffers, having C and D share data buffers only and having C and D share both data and directory buffers. None prevented directory confusion.

Right now, if I select the C drive and read the directory, I see it fine. Then select D, and I can see its directory fine too. But when I come back to C, I see the directory from the D drive. I have to do a ctrl-C to update the directory.

What always works is to enter ctrl-C after selecting a drive. If I do that, the directory is accurate.

So now to find out how to do this automagically as part of the BIOS.


=========================================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 27K TPA

*01A9
#L8E00
  8E00  JMP  AAC0       (boot)
  8E03  JMP  8E6C       (wboot)
  8E06  JMP  8F72       (const)
  8E09  JMP  8F8D       (conin)
  8E0C  JMP  8ED5       (conout)
  8E0F  JMP  8EE1       (list)
  8E12  JMP  8EDB       (auxout)
  8E15  JMP  8F93       (auxin)
  8E18  JMP  AB2E       (home)
  8E1B  JMP  AAFF       (seldsk)
  8E1E  JMP  AB31       (settrk)
  8E21  JMP  AB37       (setsec)
  8E24  JMP  AB3D       (setdma)
  8E27  JMP  AB54       (read)
  8E2A  JMP  AB6A       (write)
  8E2D  JMP  8F0D       (listst)
  8E30  JMP  AB49       (sectrn)
  8E33  JMP  8F01       (conost)
  8E36  JMP  8F78       (auxist)
  8E39  JMP  8F07       (auxost)
  8E3C  JMP  8ECD       (devtbl)
  8E3F  JMP  9106       (devini)
  8E42  JMP  8ED1       (drvtbl)
  8E45  JMP  AB8B       (multio)
  8E48  JMP  AB8F       (flush)
  8E4B  JMP  9297       (move)
  8E4E  JMP  9095       (time)
  8E51  JMP  9020       (selmem)
  8E54  JMP  AB45       (setbnk)
  8E57  JMP  9296       (xmove)
  8E5A  JMP  0000       (userf)
  8E5D  JMP  0000       (reserv1)
  8E60  JMP  0000       (reserv2)

#P8F8D                  (passpoint at conin)
#G8E00


CP/M Plus v3.0hd


A>
01 PASS 8F8D
 -Z-E- A=00 B=00E7 D=0DF4 H=7617 S=6FE2 P=8F8D LHLD 8DBE
*8F90
#G
C                                            (entered C)
01 PASS 8F8D
 -Z-E- A=00 B=01E7 D=9151 H=7617 S=6FE2 P=8F8D LHLD 8DBE
*8F90
#G
:                                            (entered :)
01 PASS 8F8D
 -Z-E- A=00 B=02E7 D=9151 H=7617 S=6FE2 P=8F8D LHLD 8DBE
*8F90
#G
                                             (entered )
C>
01 PASS 8F8D
 -Z-E- A=00 B=00E7 D=0DF4 H=7617 S=6FE2 P=8F8D LHLD 8DBE
*8F90
#G
^C                                           (entered ctrl-C)
C>      <====  Looks like it acted upon the ctrl-C before the passpoint
01 PASS 8F8D
 -Z-E- A=00 B=00E7 D=0DF4 H=7617 S=6FE2 P=8F8D LHLD 8DBE
*8F90
#-P8F8D                  So shutting off that passpoint, and
#P8E6C                   creating on at wboot
#G

C>
C>
C>^C
01 PASS 8E6C             Sure enough, it hits.  Step through.
 -Z-EI A=01 B=01E7 D=9151 H=FFFE S=6FE8 P=8E6C LXI  SP,8ECD
 -Z-EI A=01 B=01E7 D=9151 H=FFFE S=8ECD P=8E6F CALL 8E78
 -Z-EI A=01 B=01E7 D=9151 H=FFFE S=8ECB P=8E78 MVI  A,C3
 -Z-EI A=C3 B=01E7 D=9151 H=FFFE S=8ECB P=8E7A STA  0000
 -Z-EI A=C3 B=01E7 D=9151 H=FFFE S=8ECB P=8E7D STA  0005
 -Z-EI A=C3 B=01E7 D=9151 H=FFFE S=8ECB P=8E80 LXI  H,8E03
 -Z-EI A=C3 B=01E7 D=9151 H=8E03 S=8ECB P=8E83 SHLD 0001
 -Z-EI A=C3 B=01E7 D=9151 H=8E03 S=8ECB P=8E86 LHLD 8DFE
 -Z-EI A=C3 B=01E7 D=9151 H=6C06 S=8ECB P=8E89 SHLD 0006
 -Z-EI A=C3 B=01E7 D=9151 H=6C06 S=8ECB P=8E8C RET
 -Z-EI A=C3 B=01E7 D=9151 H=6C06 S=8ECD P=8E72 CALL 9092
 -Z-EI A=C3 B=01E7 D=9151 H=6C06 S=8ECB P=9092 JMP  9060
*9060
#L9060
  9060  XRA  A
  9061  STA  90DA
  9064  LXI  H,0000
  9067  SHLD 90EB
  906A  LXI  D,90CB
  906D  CALL 9096
  9070  INR  A
  9071  JNZ  907F
  9074  LXI  H,90AA
  9077  CALL 8FB2
  907A  CALL 8E09
  907D  ??=  18                <== Ooops.  Another Z80 instruction (ZR), replacing with JMP
  907E  POP  H
  907F  LXI  D,0100
  9082  CALL 909B
  9085  LXI  D,0080
  9088  CALL 90A0
  908B  LXI  D,90CB
  908E  CALL 90A5
  9091  RET
  9092  JMP  9060
  9095  RET
#G,9091

*9091
#T
 C-MEI A=01 B=1912 D=8EC9 H=1901 S=8ECB P=9091 RET
 C-MEI A=01 B=1912 D=8EC9 H=1901 S=8ECD P=8E75 JMP  0100
*0100
#G

C>dir
C: COPYSYS  COM : PCGET    COM : DIR      COM : GENCPM   SUB : GENCPM   DAT
C: PCPUT    COM : FORMAT   COM : CCP      COM : PIP      COM : BIOS3    SPR
C: IDEUTIL  COM : CPM3     SYS : GENCPM   COM : SHOW     COM : SID      COM
C: SUBMIT   COM : LINK     COM : RMAC     COM : TYPE     COM : PATCH    COM
C: PUT      COM : BDOS3    SPR : CLIFE    COM : CPMLDR   COM : README   TXT
C>d:
D>dir
No File
D>c:
C>dir
No File
C>^C
01 PASS 8E6C
 -Z-EI A=01 B=01E7 D=9151 H=FFFE S=6FE8 P=8E6C LXI  SP,8ECD
*8E6F
#PAAFF                       (Setting passpoint at seldsk)
#G

01 PASS AAFF
 -Z-E- A=00 B=0000 D=0000 H=0004 S=6FDE P=AAFF MOV  A,C
*AB00
#T
 -Z-E- A=00 B=0000 D=0000 H=0004 S=6FDE P=AB00 STA  ABAD
 -Z-E- A=00 B=0000 D=0000 H=0004 S=6FDE P=AB03 MOV  L,C
 -Z-E- A=00 B=0000 D=0000 H=0000 S=6FDE P=AB04 MVI  H,00
 -Z-E- A=00 B=0000 D=0000 H=0000 S=6FDE P=AB06 DAD  H
 -Z-E- A=00 B=0000 D=0000 H=0000 S=6FDE P=AB07 LXI  B,929B
 -Z-E- A=00 B=929B D=0000 H=0000 S=6FDE P=AB0A DAD  B
 -Z-E- A=00 B=929B D=0000 H=929B S=6FDE P=AB0B MOV  A,M
 -Z-E- A=C5 B=929B D=0000 H=929B S=6FDE P=AB0C INX  H
 -Z-E- A=C5 B=929B D=0000 H=929C S=6FDE P=AB0D MOV  H,M
 -Z-E- A=C5 B=929B D=0000 H=929C S=6FDE P=AB0E MOV  L,A
 -Z-E- A=C5 B=929B D=0000 H=92C5 S=6FDE P=AB0F ORA  H
 --ME- A=D7 B=929B D=0000 H=92C5 S=6FDE P=AB10 RZ
 --ME- A=D7 B=929B D=0000 H=92C5 S=6FDE P=AB11 MOV  A,E
 --ME- A=00 B=929B D=0000 H=92C5 S=6FDE P=AB12 ANI  01
 -Z-E- A=00 B=929B D=0000 H=92C5 S=6FDE P=AB14 JNZ  AB2D
 -Z-E- A=00 B=929B D=0000 H=92C5 S=6FDE P=AB17 PUSH H
 -Z-E- A=00 B=929B D=0000 H=92C5 S=6FDC P=AB18 XCHG
 -Z-E- A=00 B=929B D=92C5 H=0000 S=6FDC P=AB19 LXI  H,FFFE
 -Z-E- A=00 B=929B D=92C5 H=FFFE S=6FDC P=AB1C DAD  D
 CZ-E- A=00 B=929B D=92C5 H=92C3 S=6FDC P=AB1D MOV  A,M
 CZ-E- A=00 B=929B D=92C5 H=92C3 S=6FDC P=AB1E STA  ABAE
 CZ-E- A=00 B=929B D=92C5 H=92C3 S=6FDC P=AB21 LXI  H,FFFA
 CZ-E- A=00 B=929B D=92C5 H=FFFA S=6FDC P=AB24 DAD  D
 CZ-E- A=00 B=929B D=92C5 H=92BF S=6FDC P=AB25 MOV  A,M
 CZ-E- A=43 B=929B D=92C5 H=92BF S=6FDC P=AB26 INX  H
 CZ-E- A=43 B=929B D=92C5 H=92C0 S=6FDC P=AB27 MOV  H,M
 CZ-E- A=43 B=929B D=92C5 H=93C0 S=6FDC P=AB28 MOV  L,A
 CZ-E- A=43 B=929B D=92C5 H=9343 S=6FDC P=AB29 CALL 8FB1
 CZ-E- A=43 B=929B D=92C5 H=9343 S=6FDA P=8FB1 PCHL
*9343                        (Address of FDC login function)
#PAB29           <== setting passpoint just before calling LOGIN function
#-PAAFF              remove passpoint at seldsk
#G

C>B:

01 PASS AB29
 CZ-E- A=43 B=929B D=92E8 H=9343 S=6FDE P=AB29 CALL 8FB1
*8FB1
#T
 CZ-E- A=43 B=929B D=92E8 H=9343 S=6FDC P=8FB1 PCHL
 CZ-E- A=43 B=929B D=92E8 H=9343 S=6FDC P=9343 RET
 CZ-E- A=43 B=929B D=92E8 H=9343 S=6FDE P=AB2C POP  H
 CZ-E- A=43 B=929B D=92E8 H=92E8 S=6FE0 P=AB2D RET
 CZ-E- A=43 B=929B D=92E8 H=92E8 S=6FE2 P=7703 MOV  A,H
*7704
#G
B>C:
C>D:

01 PASS AB29
 CZ-E- A=07 B=929B D=A8D9 H=A907 S=6FDE P=AB29 CALL 8FB1
*8FB1
#T
 CZ-E- A=07 B=929B D=A8D9 H=A907 S=6FDC P=8FB1 PCHL
*A907                        (Address of IDE login function)
#

=========================================================================================

It appears that login only happens first time a drive is accessed.

So let's look at this a different way. Let's look closely at the flow after seldsk, watching what happens as the IDE drives are selected and deselected, switched back and forth. We'll follow the flow back through BDOS and possibly CCP, wherever it takes us.

First C: access:


=========================================================================================

A>sid cpmldr.com
CP/M 3 SID - Version 3.0
NEXT MSZE  PC  END
2500 2500 0100 CBFF
#I$B
#G

CP/M V3.0 Loader
Copyright (C) 1982, Digital Research

 27K TPA

*01A9
#PAAFD             (seldsk)
#G8E00


CP/M Plus v3.0hd



01 PASS AAFD
 -Z-E- A=00 B=0000 D=0000 H=0000 S=6FDE P=AAFD MOV  A,C
*AAFE
#G
A>C:

01 PASS AAFD
 -Z-E- A=00 B=0002 D=0200 H=0000 S=6FE0 P=AAFD MOV  A,C
 -Z-E- A=02 B=0002 D=0200 H=0000 S=6FE0 P=AAFE STA  ABAB
 -Z-E- A=02 B=0002 D=0200 H=0000 S=6FE0 P=AB01 MOV  L,C
 -Z-E- A=02 B=0002 D=0200 H=0002 S=6FE0 P=AB02 MVI  H,00
 -Z-E- A=02 B=0002 D=0200 H=0002 S=6FE0 P=AB04 DAD  H
 -Z-E- A=02 B=0002 D=0200 H=0004 S=6FE0 P=AB05 LXI  B,929B
 -Z-E- A=02 B=929B D=0200 H=0004 S=6FE0 P=AB08 DAD  B
 -Z-E- A=02 B=929B D=0200 H=929F S=6FE0 P=AB09 MOV  A,M
 -Z-E- A=B4 B=929B D=0200 H=929F S=6FE0 P=AB0A INX  H
 -Z-E- A=B4 B=929B D=0200 H=92A0 S=6FE0 P=AB0B MOV  H,M
 -Z-E- A=B4 B=929B D=0200 H=A8A0 S=6FE0 P=AB0C MOV  L,A
 -Z-E- A=B4 B=929B D=0200 H=A8B4 S=6FE0 P=AB0D ORA  H
 --M-- A=BC B=929B D=0200 H=A8B4 S=6FE0 P=AB0E RZ
 --M-- A=BC B=929B D=0200 H=A8B4 S=6FE0 P=AB0F MOV  A,E
 --M-- A=00 B=929B D=0200 H=A8B4 S=6FE0 P=AB10 ANI  01
 -Z-E- A=00 B=929B D=0200 H=A8B4 S=6FE0 P=AB12 JNZ  AB2B   (jnx not$first$select)
 -Z-E- A=00 B=929B D=0200 H=A8B4 S=6FE0 P=AB15 PUSH H
 -Z-E- A=00 B=929B D=0200 H=A8B4 S=6FDE P=AB16 XCHG
 -Z-E- A=00 B=929B D=A8B4 H=0200 S=6FDE P=AB17 LXI  H,FFFE
 -Z-E- A=00 B=929B D=A8B4 H=FFFE S=6FDE P=AB1A DAD  D
 CZ-E- A=00 B=929B D=A8B4 H=A8B2 S=6FDE P=AB1B MOV  A,M
 CZ-E- A=00 B=929B D=A8B4 H=A8B2 S=6FDE P=AB1C STA  ABAC
 CZ-E- A=00 B=929B D=A8B4 H=A8B2 S=6FDE P=AB1F LXI  H,FFFA
 CZ-E- A=00 B=929B D=A8B4 H=FFFA S=6FDE P=AB22 DAD  D
 CZ-E- A=00 B=929B D=A8B4 H=A8AE S=6FDE P=AB23 MOV  A,M
 CZ-E- A=01 B=929B D=A8B4 H=A8AE S=6FDE P=AB24 INX  H
 CZ-E- A=01 B=929B D=A8B4 H=A8AF S=6FDE P=AB25 MOV  H,M
 CZ-E- A=01 B=929B D=A8B4 H=A9AF S=6FDE P=AB26 MOV  L,A
 CZ-E- A=01 B=929B D=A8B4 H=A901 S=6FDE P=AB27 CALL 8FB1   (call ipchl - vectored HL call)
 CZ-E- A=01 B=929B D=A8B4 H=A901 S=6FDC P=8FB1 PCHL
 CZ-E- A=01 B=929B D=A8B4 H=A901 S=6FDC P=A901 XRA  A      (calling SELECT0 in IDE3)
 -Z-E- A=00 B=929B D=A8B4 H=A901 S=6FDC P=A902 JMP  A907
 -Z-E- A=00 B=929B D=A8B4 H=A901 S=6FDC P=A907 OUT  34
 -Z-E- A=00 B=929B D=A8B4 H=A901 S=6FDC P=A909 RET         (return to seldsk in BIOSKRN3)
 -Z-E- A=00 B=929B D=A8B4 H=A901 S=6FDE P=AB2A POP  H
 -Z-E- A=00 B=929B D=A8B4 H=A8B4 S=6FE0 P=AB2B RET         (return to selectdisk in BDOS)
 -Z-E- A=00 B=929B D=A8B4 H=A8B4 S=6FE2 P=7703 MOV  A,H
 -Z-E- A=A8 B=929B D=A8B4 H=A8B4 S=6FE2 P=7704 ORA  L
 --M-- A=BC B=929B D=A8B4 H=A8B4 S=6FE2 P=7705 RZ
 --M-- A=BC B=929B D=A8B4 H=A8B4 S=6FE2 P=7706 MOV  E,M
 --M-- A=BC B=929B D=A800 H=A8B4 S=6FE2 P=7707 INX  H
 --M-- A=BC B=929B D=A800 H=A8B5 S=6FE2 P=7708 MOV  D,M
 --M-- A=BC B=929B D=0000 H=A8B5 S=6FE2 P=7709 INX  H
 --M-- A=BC B=929B D=0000 H=A8B6 S=6FE2 P=770A SHLD 8B8E
 --M-- A=BC B=929B D=0000 H=A8B6 S=6FE2 P=770D INX  H
 --M-- A=BC B=929B D=0000 H=A8B7 S=6FE2 P=770E INX  H
 --M-- A=BC B=929B D=0000 H=A8B8 S=6FE2 P=770F SHLD 8B90
 --M-- A=BC B=929B D=0000 H=A8B8 S=6FE2 P=7712 INX  H
 --M-- A=BC B=929B D=0000 H=A8B9 S=6FE2 P=7713 INX  H
 --M-- A=BC B=929B D=0000 H=A8BA S=6FE2 P=7714 SHLD 8B92
 --M-- A=BC B=929B D=0000 H=A8BA S=6FE2 P=7717 INX  H
 --M-- A=BC B=929B D=0000 H=A8BB S=6FE2 P=7718 INX  H
 --M-- A=BC B=929B D=0000 H=A8BC S=6FE2 P=7719 INX  H
 --M-- A=BC B=929B D=0000 H=A8BD S=6FE2 P=771A SHLD 8B94
 --M-- A=BC B=929B D=0000 H=A8BD S=6FE2 P=771D INX  H
 --M-- A=BC B=929B D=0000 H=A8BE S=6FE2 P=771E SHLD 8B96
 --M-- A=BC B=929B D=0000 H=A8BE S=6FE2 P=7721 INX  H
 --M-- A=BC B=929B D=0000 H=A8BF S=6FE2 P=7722 INX  H
 --M-- A=BC B=929B D=0000 H=A8C0 S=6FE2 P=7723 XCHG
 --M-- A=BC B=929B D=A8C0 H=0000 S=6FE2 P=7724 SHLD 8BBF
 --M-- A=BC B=929B D=A8C0 H=0000 S=6FE2 P=7727 LXI  H,8B98
 --M-- A=BC B=929B D=A8C0 H=8B98 S=6FE2 P=772A MVI  C,0D
 --M-- A=BC B=920D D=A8C0 H=8B98 S=6FE2 P=772C CALL 76F5
... (used TW to enter and pass through the call)
 -Z-EI A=00 B=9200 D=A8CD H=8BA5 S=6FE2 P=772F LHLD 8B98
 -Z-EI A=00 B=9200 D=A8CD H=A8F0 S=6FE2 P=7732 XCHG
 -Z-EI A=00 B=9200 D=A8F0 H=A8CD S=6FE2 P=7733 LXI  H,8BA5
 -Z-EI A=00 B=9200 D=A8F0 H=8BA5 S=6FE2 P=7736 MVI  C,11
 -Z-EI A=00 B=9211 D=A8F0 H=8BA5 S=6FE2 P=7738 CALL 76F5
... (used TW to enter and pass through the call)
 -Z-EI A=03 B=9200 D=A901 H=8BB6 S=6FE2 P=773B LHLD 8BAA
 -Z-EI A=03 B=9200 D=A901 H=0FEF S=6FE2 P=773E MOV  A,H
 -Z-EI A=0F B=9200 D=A901 H=0FEF S=6FE2 P=773F LXI  H,8BC5
 -Z-EI A=0F B=9200 D=A901 H=8BC5 S=6FE2 P=7742 MVI  M,FF
 -Z-EI A=0F B=9200 D=A901 H=8BC5 S=6FE2 P=7744 ORA  A
 ---E- A=0F B=9200 D=A901 H=8BC5 S=6FE2 P=7745 JZ   774A
 ---E- A=0F B=9200 D=A901 H=8BC5 S=6FE2 P=7748 MVI  M,00
 ---E- A=0F B=9200 D=A901 H=8BC5 S=6FE2 P=774A STC
 C--E- A=0F B=9200 D=A901 H=8BC5 S=6FE2 P=774B RET         (return to disk$select1 in BDOS)
 C--E- A=0F B=9200 D=A901 H=8BC5 S=6FE4 P=8576 POP  H
 C--E- A=0F B=9200 D=A901 H=0200 S=6FE6 P=8577 JNC  7686
 C--E- A=0F B=9200 D=A901 H=0200 S=6FE6 P=857A DCR  L
 C-ME- A=0F B=9200 D=A901 H=02FF S=6FE6 P=857B RET
 C-ME- A=0F B=9200 D=A901 H=02FF S=6FE8 P=8590 RZ          (zero means previosly logged in)
 C-ME- A=0F B=9200 D=A901 H=02FF S=6FE8 P=8591 CALL 7C90   (call initialize, which reads the directory)
 C-ME- A=0F B=9200 D=A901 H=02FF S=6FE6 P=7C90 CALL 7ACA   (call test$media$flag)
 C-ME- A=0F B=9200 D=A901 H=02FF S=6FE4 P=7ACA LHLD 8B96
 C-ME- A=0F B=9200 D=A901 H=A8BE S=6FE4 P=7ACD INX  H
 C-ME- A=0F B=9200 D=A901 H=A8BF S=6FE4 P=7ACE MOV  A,M
 C-ME- A=00 B=9200 D=A901 H=A8BF S=6FE4 P=7ACF ORA  A
 -Z-E- A=00 B=9200 D=A901 H=A8BF S=6FE4 P=7AD0 RET         (return to initialize)
 -Z-E- A=00 B=9200 D=A901 H=A8BF S=6FE6 P=7C93 MVI  M,00   (reset media change flag)
 -Z-E- A=00 B=9200 D=A901 H=A8BF S=6FE6 P=7C95 CALL 7B10   (call discard$data)
 -Z-E- A=00 B=9200 D=A901 H=A8BF S=6FE4 P=7B10 LHLD 8BA0
 -Z-E- A=00 B=9200 D=A901 H=ABB5 S=6FE4 P=7B13 JMP  7B19   (jmp discard)
 -Z-E- A=00 B=9200 D=A901 H=ABB5 S=6FE4 P=7B19 MVI  C,01
 -Z-E- A=00 B=9201 D=A901 H=ABB5 S=6FE4 P=7B1B MOV  A,L
 -Z-E- A=B5 B=9201 D=A901 H=ABB5 S=6FE4 P=7B1C ANA  H
 --M-I A=A1 B=9201 D=A901 H=ABB5 S=6FE4 P=7B1D INR  A
 --M-- A=A2 B=9201 D=A901 H=ABB5 S=6FE4 P=7B1E RZ
 --M-- A=A2 B=9201 D=A901 H=ABB5 S=6FE4 P=7B1F PUSH H
 --M-- A=A2 B=9201 D=A901 H=ABB5 S=6FE2 P=7B20 LXI  D,8BCC (lxi d, adrive)
 --M-- A=A2 B=9201 D=8BCC H=ABB5 S=6FE2 P=7B23 CALL 76EB   (call compare)
 --M-- A=A2 B=9201 D=8BCC H=ABB5 S=6FE0 P=76EB LDAX D
 --M-- A=02 B=9201 D=8BCC H=ABB5 S=6FE0 P=76EC CMP  M=FF   (cmp lastdrive)
 C--E- A=02 B=9201 D=8BCC H=ABB5 S=6FE0 P=76ED RNZ         (return to discard)
 C--E- A=02 B=9201 D=8BCC H=ABB5 S=6FE2 P=7B26 POP  H
 C--E- A=02 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B27 RNZ         (return to initialize)
 C--E- A=02 B=9201 D=8BCC H=ABB5 S=6FE6 P=7C98 CALL 7B16   (call discard$dir)
 C--E- A=02 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B16 LHLD 8B9E
 C--E- A=02 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B19 MVI  C,01
 C--E- A=02 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B1B MOV  A,L
 C--E- A=B5 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B1C ANA  H
 --M-I A=A1 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B1D INR  A
 --M-- A=A2 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B1E RZ
 --M-- A=A2 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B1F PUSH H
 --M-- A=A2 B=9201 D=8BCC H=ABB5 S=6FE2 P=7B20 LXI  D,8BCC (lxi d, adrive)
 --M-- A=A2 B=9201 D=8BCC H=ABB5 S=6FE2 P=7B23 CALL 76EB   (call compare)
 --M-- A=A2 B=9201 D=8BCC H=ABB5 S=6FE0 P=76EB LDAX D
 --M-- A=02 B=9201 D=8BCC H=ABB5 S=6FE0 P=76EC CMP  M=FF   (cmp lastdrive)
 C--E- A=02 B=9201 D=8BCC H=ABB5 S=6FE0 P=76ED RNZ
 C--E- A=02 B=9201 D=8BCC H=ABB5 S=6FE2 P=7B26 POP  H
 C--E- A=02 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B27 RNZ         (return to initialize)
 C--E- A=02 B=9201 D=8BCC H=ABB5 S=6FE6 P=7C9B CALL 7C86   (call get$nalbs)
 C--E- A=02 B=9201 D=8BCC H=ABB5 S=6FE4 P=7C86 LHLD 8BAA   (lhld maxall)
 C--E- A=02 B=9201 D=8BCC H=0FEF S=6FE4 P=7C89 MVI  C,03
 C--E- A=02 B=9203 D=8BCC H=0FEF S=6FE4 P=7C8B CALL 7969   (call hlrotr)
 C--E- A=02 B=9203 D=8BCC H=0FEF S=6FE2 P=7969 INR  C
 C---- A=02 B=9204 D=8BCC H=0FEF S=6FE2 P=796A DCR  C
 C--EI A=02 B=9203 D=8BCC H=0FEF S=6FE2 P=796B RZ
 C--EI A=02 B=9203 D=8BCC H=0FEF S=6FE2 P=796C MOV  A,H
 C--EI A=0F B=9203 D=8BCC H=0FEF S=6FE2 P=796D ORA  A
 ---E- A=0F B=9203 D=8BCC H=0FEF S=6FE2 P=796E RAR
 C--E- A=07 B=9203 D=8BCC H=0FEF S=6FE2 P=796F MOV  H,A
 C--E- A=07 B=9203 D=8BCC H=07EF S=6FE2 P=7970 MOV  A,L
 C--E- A=EF B=9203 D=8BCC H=07EF S=6FE2 P=7971 RAR
 C--E- A=F7 B=9203 D=8BCC H=07EF S=6FE2 P=7972 MOV  L,A
 C--E- A=F7 B=9203 D=8BCC H=07F7 S=6FE2 P=7973 JMP  796A
 C--E- A=F7 B=9203 D=8BCC H=07F7 S=6FE2 P=796A DCR  C
 C---I A=F7 B=9202 D=8BCC H=07F7 S=6FE2 P=796B RZ
 C---I A=F7 B=9202 D=8BCC H=07F7 S=6FE2 P=796C MOV  A,H
 C---I A=07 B=9202 D=8BCC H=07F7 S=6FE2 P=796D ORA  A
 ----- A=07 B=9202 D=8BCC H=07F7 S=6FE2 P=796E RAR
 C---- A=03 B=9202 D=8BCC H=07F7 S=6FE2 P=796F MOV  H,A
 C---- A=03 B=9202 D=8BCC H=03F7 S=6FE2 P=7970 MOV  A,L
 C---- A=F7 B=9202 D=8BCC H=03F7 S=6FE2 P=7971 RAR
 C---- A=FB B=9202 D=8BCC H=03F7 S=6FE2 P=7972 MOV  L,A
 C---- A=FB B=9202 D=8BCC H=03FB S=6FE2 P=7973 JMP  796A
 C---- A=FB B=9202 D=8BCC H=03FB S=6FE2 P=796A DCR  C
 C---I A=FB B=9201 D=8BCC H=03FB S=6FE2 P=796B RZ
 C---I A=FB B=9201 D=8BCC H=03FB S=6FE2 P=796C MOV  A,H
 C---I A=03 B=9201 D=8BCC H=03FB S=6FE2 P=796D ORA  A
 ---E- A=03 B=9201 D=8BCC H=03FB S=6FE2 P=796E RAR
 C--E- A=01 B=9201 D=8BCC H=03FB S=6FE2 P=796F MOV  H,A
 C--E- A=01 B=9201 D=8BCC H=01FB S=6FE2 P=7970 MOV  A,L
 C--E- A=FB B=9201 D=8BCC H=01FB S=6FE2 P=7971 RAR
 C--E- A=FD B=9201 D=8BCC H=01FB S=6FE2 P=7972 MOV  L,A
 C--E- A=FD B=9201 D=8BCC H=01FD S=6FE2 P=7973 JMP  796A
 C--E- A=FD B=9201 D=8BCC H=01FD S=6FE2 P=796A DCR  C
 CZ-EI A=FD B=9200 D=8BCC H=01FD S=6FE2 P=796B RZ          (return to get$nalbs)
 CZ-EI A=FD B=9200 D=8BCC H=01FD S=6FE4 P=7C8E INX  H
 CZ-EI A=FD B=9200 D=8BCC H=01FE S=6FE4 P=7C8F RET         (return to initialize)
*7C9E
#G,7CAC                                                    (pass through initial iteration)
... (listed code and used G,7CAC to pass through iteration)
*7CAC
#T
 -Z-E- A=00 B=0000 D=8BCC H=AFBF S=6FE6 P=7CAC LHLD 8B94
 -Z-E- A=00 B=0000 D=8BCC H=A8BD S=6FE6 P=7CAF MOV  M,A
 -Z-E- A=00 B=0000 D=8BCC H=A8BD S=6FE6 P=7CB0 LHLD 8BAE
 -Z-E- A=00 B=0000 D=8BCC H=FFFF S=6FE6 P=7CB3 XCHG
 -Z-E- A=00 B=0000 D=FFFF H=8BCC S=6FE6 P=7CB4 LHLD 8B9C
 -Z-E- A=00 B=0000 D=FFFF H=ADC1 S=6FE6 P=7CB7 MOV  M,E
 -Z-E- A=00 B=0000 D=FFFF H=ADC1 S=6FE6 P=7CB8 INX  H
 -Z-E- A=00 B=0000 D=FFFF H=ADC2 S=6FE6 P=7CB9 MOV  M,D
 -Z-E- A=00 B=0000 D=FFFF H=ADC2 S=6FE6 P=7CBA CALL 774C   (call home)
... (used TW to enter and pass through the call)
 -Z-E- A=00 B=0000 D=FFFF H=A8BC S=6FE6 P=7CBD LHLD 8B8E
 -Z-E- A=00 B=0000 D=FFFF H=A8B6 S=6FE6 P=7CC0 MVI  M,04
 -Z-E- A=00 B=0000 D=FFFF H=A8B6 S=6FE6 P=7CC2 INX  H
 -Z-E- A=00 B=0000 D=FFFF H=A8B7 S=6FE6 P=7CC3 MVI  M,00
 -Z-E- A=00 B=0000 D=FFFF H=A8B7 S=6FE6 P=7CC5 CALL 7B9D   (call set$end$dir)
... (used TW to enter and pass through the call)
 -Z-E- A=00 B=0000 D=FFFF H=FFFF S=6FE6 P=7CC8 LHLD 8BA2
 -Z-E- A=00 B=0000 D=FFFF H=FFFF S=6FE6 P=7CCB SHLD 8BD3
 -Z-E- A=00 B=0000 D=FFFF H=FFFF S=6FE6 P=7CCE MVI  C,FF
 -Z-E- A=00 B=00FF D=FFFF H=FFFF S=6FE6 P=7CD0 CALL 7BA4   (call read$dir)
... (used TW to enter and pass through the call)
 -Z-E- A=00 B=00FF D=0000 H=0000 S=6FE6 P=7CD3 CALL 7B94   (call end$of$dir)
... (used TW to enter and pass through the call)

=========================================================================================

Now to select D and watch the flow:


=========================================================================================

#G
C>DIR
C: COPYSYS  COM : PCGET    COM : DIR      COM : GENCPM   SUB : GENCPM   DAT
C: PCPUT    COM : FORMAT   COM : CCP      COM : PIP      COM : BIOS3    SPR
C: IDEUTIL  COM : CPM3     SYS : GENCPM   COM : SHOW     COM : SID      COM
C: SUBMIT   COM : LINK     COM : RMAC     COM : TYPE     COM : PATCH    COM
C: PUT      COM : BDOS3    SPR : CLIFE    COM : CPMLDR   COM : README   TXT
C>
C>d:

01 PASS AAFD
 -Z-E- A=00 B=0003 D=0300 H=0000 S=6FE0 P=AAFD MOV  A,C
 -Z-E- A=03 B=0003 D=0300 H=0000 S=6FE0 P=AAFE STA  ABAB
 -Z-E- A=03 B=0003 D=0300 H=0000 S=6FE0 P=AB01 MOV  L,C
 -Z-E- A=03 B=0003 D=0300 H=0003 S=6FE0 P=AB02 MVI  H,00
 -Z-E- A=03 B=0003 D=0300 H=0003 S=6FE0 P=AB04 DAD  H
 -Z-E- A=03 B=0003 D=0300 H=0006 S=6FE0 P=AB05 LXI  B,929B
 -Z-E- A=03 B=929B D=0300 H=0006 S=6FE0 P=AB08 DAD  B
 -Z-E- A=03 B=929B D=0300 H=92A1 S=6FE0 P=AB09 MOV  A,M
 -Z-E- A=D7 B=929B D=0300 H=92A1 S=6FE0 P=AB0A INX  H
 -Z-E- A=D7 B=929B D=0300 H=92A2 S=6FE0 P=AB0B MOV  H,M
 -Z-E- A=D7 B=929B D=0300 H=A8A2 S=6FE0 P=AB0C MOV  L,A
 -Z-E- A=D7 B=929B D=0300 H=A8D7 S=6FE0 P=AB0D ORA  H
 --ME- A=FF B=929B D=0300 H=A8D7 S=6FE0 P=AB0E RZ
 --ME- A=FF B=929B D=0300 H=A8D7 S=6FE0 P=AB0F MOV  A,E
 --ME- A=00 B=929B D=0300 H=A8D7 S=6FE0 P=AB10 ANI  01
 -Z-E- A=00 B=929B D=0300 H=A8D7 S=6FE0 P=AB12 JNZ  AB2B
 -Z-E- A=00 B=929B D=0300 H=A8D7 S=6FE0 P=AB15 PUSH H
 -Z-E- A=00 B=929B D=0300 H=A8D7 S=6FDE P=AB16 XCHG
 -Z-E- A=00 B=929B D=A8D7 H=0300 S=6FDE P=AB17 LXI  H,FFFE
 -Z-E- A=00 B=929B D=A8D7 H=FFFE S=6FDE P=AB1A DAD  D
 CZ-E- A=00 B=929B D=A8D7 H=A8D5 S=6FDE P=AB1B MOV  A,M
 CZ-E- A=01 B=929B D=A8D7 H=A8D5 S=6FDE P=AB1C STA  ABAC
 CZ-E- A=01 B=929B D=A8D7 H=A8D5 S=6FDE P=AB1F LXI  H,FFFA
 CZ-E- A=01 B=929B D=A8D7 H=FFFA S=6FDE P=AB22 DAD  D
 CZ-E- A=01 B=929B D=A8D7 H=A8D1 S=6FDE P=AB23 MOV  A,M
 CZ-E- A=05 B=929B D=A8D7 H=A8D1 S=6FDE P=AB24 INX  H
 CZ-E- A=05 B=929B D=A8D7 H=A8D2 S=6FDE P=AB25 MOV  H,M
 CZ-E- A=05 B=929B D=A8D7 H=A9D2 S=6FDE P=AB26 MOV  L,A
 CZ-E- A=05 B=929B D=A8D7 H=A905 S=6FDE P=AB27 CALL 8FB1
 CZ-E- A=05 B=929B D=A8D7 H=A905 S=6FDC P=8FB1 PCHL
 CZ-E- A=05 B=929B D=A8D7 H=A905 S=6FDC P=A905 MVI  A,01
 CZ-E- A=01 B=929B D=A8D7 H=A905 S=6FDC P=A907 OUT  34
 CZ-E- A=01 B=929B D=A8D7 H=A905 S=6FDC P=A909 RET
 CZ-E- A=01 B=929B D=A8D7 H=A905 S=6FDE P=AB2A POP  H
 CZ-E- A=01 B=929B D=A8D7 H=A8D7 S=6FE0 P=AB2B RET
 CZ-E- A=01 B=929B D=A8D7 H=A8D7 S=6FE2 P=7703 MOV  A,H
 CZ-E- A=A8 B=929B D=A8D7 H=A8D7 S=6FE2 P=7704 ORA  L
 --ME- A=FF B=929B D=A8D7 H=A8D7 S=6FE2 P=7705 RZ
 --ME- A=FF B=929B D=A8D7 H=A8D7 S=6FE2 P=7706 MOV  E,M
 --ME- A=FF B=929B D=A800 H=A8D7 S=6FE2 P=7707 INX  H
 --ME- A=FF B=929B D=A800 H=A8D8 S=6FE2 P=7708 MOV  D,M
 --ME- A=FF B=929B D=0000 H=A8D8 S=6FE2 P=7709 INX  H
 --ME- A=FF B=929B D=0000 H=A8D9 S=6FE2 P=770A SHLD 8B8E
 --ME- A=FF B=929B D=0000 H=A8D9 S=6FE2 P=770D INX  H
 --ME- A=FF B=929B D=0000 H=A8DA S=6FE2 P=770E INX  H
 --ME- A=FF B=929B D=0000 H=A8DB S=6FE2 P=770F SHLD 8B90
 --ME- A=FF B=929B D=0000 H=A8DB S=6FE2 P=7712 INX  H
 --ME- A=FF B=929B D=0000 H=A8DC S=6FE2 P=7713 INX  H
 --ME- A=FF B=929B D=0000 H=A8DD S=6FE2 P=7714 SHLD 8B92
 --ME- A=FF B=929B D=0000 H=A8DD S=6FE2 P=7717 INX  H
 --ME- A=FF B=929B D=0000 H=A8DE S=6FE2 P=7718 INX  H
 --ME- A=FF B=929B D=0000 H=A8DF S=6FE2 P=7719 INX  H
 --ME- A=FF B=929B D=0000 H=A8E0 S=6FE2 P=771A SHLD 8B94
 --ME- A=FF B=929B D=0000 H=A8E0 S=6FE2 P=771D INX  H
 --ME- A=FF B=929B D=0000 H=A8E1 S=6FE2 P=771E SHLD 8B96
 --ME- A=FF B=929B D=0000 H=A8E1 S=6FE2 P=7721 INX  H
 --ME- A=FF B=929B D=0000 H=A8E2 S=6FE2 P=7722 INX  H
 --ME- A=FF B=929B D=0000 H=A8E3 S=6FE2 P=7723 XCHG
 --ME- A=FF B=929B D=A8E3 H=0000 S=6FE2 P=7724 SHLD 8BBF
 --ME- A=FF B=929B D=A8E3 H=0000 S=6FE2 P=7727 LXI  H,8B98
 --ME- A=FF B=929B D=A8E3 H=8B98 S=6FE2 P=772A MVI  C,0D
 --ME- A=FF B=920D D=A8E3 H=8B98 S=6FE2 P=772C CALL 76F5
 -Z-EI A=00 B=9200 D=A8F0 H=8BA5 S=6FE2 P=772F LHLD 8B98
 -Z-EI A=00 B=9200 D=A8F0 H=A8F0 S=6FE2 P=7732 XCHG
 -Z-EI A=00 B=9200 D=A8F0 H=A8F0 S=6FE2 P=7733 LXI  H,8BA5
 -Z-EI A=00 B=9200 D=A8F0 H=8BA5 S=6FE2 P=7736 MVI  C,11
 -Z-EI A=00 B=9211 D=A8F0 H=8BA5 S=6FE2 P=7738 CALL 76F5
 -Z-EI A=00 B=9211 D=A8F0 H=8BA5 S=6FE0 P=76F5 INR  C
*76F6
#G,773B
... (used G,773B to pass through iterative code)
*773B
#T
 -Z-EI A=03 B=9200 D=A901 H=8BB6 S=6FE2 P=773B LHLD 8BAA
 -Z-EI A=03 B=9200 D=A901 H=0FEF S=6FE2 P=773E MOV  A,H
 -Z-EI A=0F B=9200 D=A901 H=0FEF S=6FE2 P=773F LXI  H,8BC5
 -Z-EI A=0F B=9200 D=A901 H=8BC5 S=6FE2 P=7742 MVI  M,FF
 -Z-EI A=0F B=9200 D=A901 H=8BC5 S=6FE2 P=7744 ORA  A
 ---E- A=0F B=9200 D=A901 H=8BC5 S=6FE2 P=7745 JZ   774A
 ---E- A=0F B=9200 D=A901 H=8BC5 S=6FE2 P=7748 MVI  M,00
 ---E- A=0F B=9200 D=A901 H=8BC5 S=6FE2 P=774A STC
 C--E- A=0F B=9200 D=A901 H=8BC5 S=6FE2 P=774B RET
 C--E- A=0F B=9200 D=A901 H=8BC5 S=6FE4 P=8576 POP  H
 C--E- A=0F B=9200 D=A901 H=0300 S=6FE6 P=8577 JNC  7686
 C--E- A=0F B=9200 D=A901 H=0300 S=6FE6 P=857A DCR  L
 C-ME- A=0F B=9200 D=A901 H=03FF S=6FE6 P=857B RET
 C-ME- A=0F B=9200 D=A901 H=03FF S=6FE8 P=8590 RZ
 C-ME- A=0F B=9200 D=A901 H=03FF S=6FE8 P=8591 CALL 7C90
 C-ME- A=0F B=9200 D=A901 H=03FF S=6FE6 P=7C90 CALL 7ACA
 C-ME- A=0F B=9200 D=A901 H=03FF S=6FE4 P=7ACA LHLD 8B96
 C-ME- A=0F B=9200 D=A901 H=A8E1 S=6FE4 P=7ACD INX  H
 C-ME- A=0F B=9200 D=A901 H=A8E2 S=6FE4 P=7ACE MOV  A,M
 C-ME- A=00 B=9200 D=A901 H=A8E2 S=6FE4 P=7ACF ORA  A
 -Z-E- A=00 B=9200 D=A901 H=A8E2 S=6FE4 P=7AD0 RET
 -Z-E- A=00 B=9200 D=A901 H=A8E2 S=6FE6 P=7C93 MVI  M,00
 -Z-E- A=00 B=9200 D=A901 H=A8E2 S=6FE6 P=7C95 CALL 7B10
 -Z-E- A=00 B=9200 D=A901 H=A8E2 S=6FE4 P=7B10 LHLD 8BA0
 -Z-E- A=00 B=9200 D=A901 H=ABB5 S=6FE4 P=7B13 JMP  7B19
 -Z-E- A=00 B=9200 D=A901 H=ABB5 S=6FE4 P=7B19 MVI  C,01
 -Z-E- A=00 B=9201 D=A901 H=ABB5 S=6FE4 P=7B1B MOV  A,L
 -Z-E- A=B5 B=9201 D=A901 H=ABB5 S=6FE4 P=7B1C ANA  H
 --M-I A=A1 B=9201 D=A901 H=ABB5 S=6FE4 P=7B1D INR  A
 --M-- A=A2 B=9201 D=A901 H=ABB5 S=6FE4 P=7B1E RZ
 --M-- A=A2 B=9201 D=A901 H=ABB5 S=6FE4 P=7B1F PUSH H
 --M-- A=A2 B=9201 D=A901 H=ABB5 S=6FE2 P=7B20 LXI  D,8BCC
 --M-- A=A2 B=9201 D=8BCC H=ABB5 S=6FE2 P=7B23 CALL 76EB
 --M-- A=A2 B=9201 D=8BCC H=ABB5 S=6FE0 P=76EB LDAX D
 --M-- A=03 B=9201 D=8BCC H=ABB5 S=6FE0 P=76EC CMP  M=02
 ----I A=03 B=9201 D=8BCC H=ABB5 S=6FE0 P=76ED RNZ
 ----I A=03 B=9201 D=8BCC H=ABB5 S=6FE2 P=7B26 POP  H
 ----I A=03 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B27 RNZ
 ----I A=03 B=9201 D=8BCC H=ABB5 S=6FE6 P=7C98 CALL 7B16
 ----I A=03 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B16 LHLD 8B9E
 ----I A=03 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B19 MVI  C,01
 ----I A=03 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B1B MOV  A,L
 ----I A=B5 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B1C ANA  H
 --M-I A=A1 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B1D INR  A
 --M-- A=A2 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B1E RZ
 --M-- A=A2 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B1F PUSH H
 --M-- A=A2 B=9201 D=8BCC H=ABB5 S=6FE2 P=7B20 LXI  D,8BCC
 --M-- A=A2 B=9201 D=8BCC H=ABB5 S=6FE2 P=7B23 CALL 76EB
 --M-- A=A2 B=9201 D=8BCC H=ABB5 S=6FE0 P=76EB LDAX D
 --M-- A=03 B=9201 D=8BCC H=ABB5 S=6FE0 P=76EC CMP  M=02
 ----I A=03 B=9201 D=8BCC H=ABB5 S=6FE0 P=76ED RNZ
 ----I A=03 B=9201 D=8BCC H=ABB5 S=6FE2 P=7B26 POP  H
 ----I A=03 B=9201 D=8BCC H=ABB5 S=6FE4 P=7B27 RNZ
 ----I A=03 B=9201 D=8BCC H=ABB5 S=6FE6 P=7C9B CALL 7C86
 ----I A=03 B=9201 D=8BCC H=ABB5 S=6FE4 P=7C86 LHLD 8BAA
 ----I A=03 B=9201 D=8BCC H=0FEF S=6FE4 P=7C89 MVI  C,03
 ----I A=03 B=9203 D=8BCC H=0FEF S=6FE4 P=7C8B CALL 7969
 ----I A=03 B=9203 D=8BCC H=0FEF S=6FE2 P=7969 INR  C
 ----- A=03 B=9204 D=8BCC H=0FEF S=6FE2 P=796A DCR  C
 ---EI A=03 B=9203 D=8BCC H=0FEF S=6FE2 P=796B RZ
 ---EI A=03 B=9203 D=8BCC H=0FEF S=6FE2 P=796C MOV  A,H
 ---EI A=0F B=9203 D=8BCC H=0FEF S=6FE2 P=796D ORA  A
 ---E- A=0F B=9203 D=8BCC H=0FEF S=6FE2 P=796E RAR
 C--E- A=07 B=9203 D=8BCC H=0FEF S=6FE2 P=796F MOV  H,A
 C--E- A=07 B=9203 D=8BCC H=07EF S=6FE2 P=7970 MOV  A,L
 C--E- A=EF B=9203 D=8BCC H=07EF S=6FE2 P=7971 RAR
 C--E- A=F7 B=9203 D=8BCC H=07EF S=6FE2 P=7972 MOV  L,A
 C--E- A=F7 B=9203 D=8BCC H=07F7 S=6FE2 P=7973 JMP  796A
 C--E- A=F7 B=9203 D=8BCC H=07F7 S=6FE2 P=796A DCR  C
 C---I A=F7 B=9202 D=8BCC H=07F7 S=6FE2 P=796B RZ
 C---I A=F7 B=9202 D=8BCC H=07F7 S=6FE2 P=796C MOV  A,H
 C---I A=07 B=9202 D=8BCC H=07F7 S=6FE2 P=796D ORA  A
 ----- A=07 B=9202 D=8BCC H=07F7 S=6FE2 P=796E RAR
 C---- A=03 B=9202 D=8BCC H=07F7 S=6FE2 P=796F MOV  H,A
 C---- A=03 B=9202 D=8BCC H=03F7 S=6FE2 P=7970 MOV  A,L
 C---- A=F7 B=9202 D=8BCC H=03F7 S=6FE2 P=7971 RAR
 C---- A=FB B=9202 D=8BCC H=03F7 S=6FE2 P=7972 MOV  L,A
 C---- A=FB B=9202 D=8BCC H=03FB S=6FE2 P=7973 JMP  796A
 C---- A=FB B=9202 D=8BCC H=03FB S=6FE2 P=796A DCR  C
 C---I A=FB B=9201 D=8BCC H=03FB S=6FE2 P=796B RZ
 C---I A=FB B=9201 D=8BCC H=03FB S=6FE2 P=796C MOV  A,H
 C---I A=03 B=9201 D=8BCC H=03FB S=6FE2 P=796D ORA  A
 ---E- A=03 B=9201 D=8BCC H=03FB S=6FE2 P=796E RAR
 C--E- A=01 B=9201 D=8BCC H=03FB S=6FE2 P=796F MOV  H,A
 C--E- A=01 B=9201 D=8BCC H=01FB S=6FE2 P=7970 MOV  A,L
 C--E- A=FB B=9201 D=8BCC H=01FB S=6FE2 P=7971 RAR
 C--E- A=FD B=9201 D=8BCC H=01FB S=6FE2 P=7972 MOV  L,A
 C--E- A=FD B=9201 D=8BCC H=01FD S=6FE2 P=7973 JMP  796A
 C--E- A=FD B=9201 D=8BCC H=01FD S=6FE2 P=796A DCR  C
 CZ-EI A=FD B=9200 D=8BCC H=01FD S=6FE2 P=796B RZ
 CZ-EI A=FD B=9200 D=8BCC H=01FD S=6FE4 P=7C8E INX  H
 CZ-EI A=FD B=9200 D=8BCC H=01FE S=6FE4 P=7C8F RET
*7C9E
#G,7CAC
... (used G,7CAC to pass through iterative code)

*7CAC
#T
 -Z-E- A=00 B=0000 D=8BCC H=B1BD S=6FE6 P=7CAC LHLD 8B94
 -Z-E- A=00 B=0000 D=8BCC H=A8E0 S=6FE6 P=7CAF MOV  M,A
 -Z-E- A=00 B=0000 D=8BCC H=A8E0 S=6FE6 P=7CB0 LHLD 8BAE
 -Z-E- A=00 B=0000 D=8BCC H=FFFF S=6FE6 P=7CB3 XCHG
 -Z-E- A=00 B=0000 D=FFFF H=8BCC S=6FE6 P=7CB4 LHLD 8B9C
 -Z-E- A=00 B=0000 D=FFFF H=AFBF S=6FE6 P=7CB7 MOV  M,E
 -Z-E- A=00 B=0000 D=FFFF H=AFBF S=6FE6 P=7CB8 INX  H
 -Z-E- A=00 B=0000 D=FFFF H=AFC0 S=6FE6 P=7CB9 MOV  M,D
... (used TW to enter and pass through the call)
 -Z-E- A=00 B=0000 D=FFFF H=AFC0 S=6FE6 P=7CBA CALL 774C
 -Z-E- A=00 B=0000 D=FFFF H=A8DF S=6FE6 P=7CBD LHLD 8B8E
 -Z-E- A=00 B=0000 D=FFFF H=A8D9 S=6FE6 P=7CC0 MVI  M,04
 -Z-E- A=00 B=0000 D=FFFF H=A8D9 S=6FE6 P=7CC2 INX  H
 -Z-E- A=00 B=0000 D=FFFF H=A8DA S=6FE6 P=7CC3 MVI  M,00
... (used TW to enter and pass through the call)
 -Z-E- A=00 B=0000 D=FFFF H=A8DA S=6FE6 P=7CC5 CALL 7B9D
 -Z-E- A=00 B=0000 D=FFFF H=FFFF S=6FE6 P=7CC8 LHLD 8BA2
 -Z-E- A=00 B=0000 D=FFFF H=FFFF S=6FE6 P=7CCB SHLD 8BD3
 -Z-E- A=00 B=0000 D=FFFF H=FFFF S=6FE6 P=7CCE MVI  C,FF
... (used TW to enter and pass through the call)
 -Z-E- A=00 B=00FF D=FFFF H=FFFF S=6FE6 P=7CD0 CALL 7BA4
... (used TW to enter and pass through the call)
 -Z-E- A=00 B=00FF D=0000 H=0000 S=6FE6 P=7CD3 CALL 7B94
*7CD6

=========================================================================================

Same behavior. Now selecting C again...


=========================================================================================

#G
D>C:

01 PASS AAFD
 ----- A=01 B=0002 D=0201 H=0003 S=6FE0 P=AAFD MOV  A,C
 ----- A=02 B=0002 D=0201 H=0003 S=6FE0 P=AAFE STA  ABAB
 ----- A=02 B=0002 D=0201 H=0003 S=6FE0 P=AB01 MOV  L,C
 ----- A=02 B=0002 D=0201 H=0002 S=6FE0 P=AB02 MVI  H,00
 ----- A=02 B=0002 D=0201 H=0002 S=6FE0 P=AB04 DAD  H
 ----- A=02 B=0002 D=0201 H=0004 S=6FE0 P=AB05 LXI  B,929B
 ----- A=02 B=929B D=0201 H=0004 S=6FE0 P=AB08 DAD  B
 ----- A=02 B=929B D=0201 H=929F S=6FE0 P=AB09 MOV  A,M
 ----- A=B4 B=929B D=0201 H=929F S=6FE0 P=AB0A INX  H
 ----- A=B4 B=929B D=0201 H=92A0 S=6FE0 P=AB0B MOV  H,M
 ----- A=B4 B=929B D=0201 H=A8A0 S=6FE0 P=AB0C MOV  L,A
 ----- A=B4 B=929B D=0201 H=A8B4 S=6FE0 P=AB0D ORA  H
 --M-- A=BC B=929B D=0201 H=A8B4 S=6FE0 P=AB0E RZ
 --M-- A=BC B=929B D=0201 H=A8B4 S=6FE0 P=AB0F MOV  A,E
 --M-- A=01 B=929B D=0201 H=A8B4 S=6FE0 P=AB10 ANI  01
 ----- A=01 B=929B D=0201 H=A8B4 S=6FE0 P=AB12 JNZ  AB2B
 ----- A=01 B=929B D=0201 H=A8B4 S=6FE0 P=AB2B RET         (back to BDOS)
 ----- A=01 B=929B D=0201 H=A8B4 S=6FE2 P=7703 MOV  A,H
 ----- A=A8 B=929B D=0201 H=A8B4 S=6FE2 P=7704 ORA  L
*7705
#G
C>

=========================================================================================

Notice that [E] is 01 at seldsk entry. This is set within BDOS, which makes the code not even run the login function. So since I have the IDE drive selection login in the login function, the drive is never actually selected. But BDOS thinks it has been selected and changes drive letter. Totally wrong.

Now let's select the D drive again and watch the flow.


=========================================================================================

C>D:

01 PASS AAFD
 ----- A=01 B=0003 D=0301 H=0001 S=6FE0 P=AAFD MOV  A,C
*AAFE

=========================================================================================

See that [E] is 01 here too. However, since everything still points to the D drive, it's OK not to select the drive. It's already selected.

The (least significant) login bit in register [E] is set in BDOS and cannot be directly accessed in BIOS. Looking into BDOS, I see the "initialize" function clears data/dir buffers and the media change flag.

See the BDOS code snippet below to see why:


=========================================================================================

initialize:
	call test$media$flag! mvi m,0 ; Reset media change flag
	call discard$data
	call discard$dir

test$media$flag:
	lhld lsn$add! inx h! mov a,m! ora a! ret

discard$data:
	lhld dtabcba! jmp discard

discard$dir:
	lhld dirbcba

discard:
	mvi c,1
discard0:
	mov a,l! ana h! inr a! rz

disk$select:
	; Select disk info for subsequent input or output ops
	sta adrive
disk$select1: ; called by deblock
	mov m,a ; curdsk = seldsk or adrive
	mov d,a ; Save seldsk in register D for selectdisk call
	lhld dlog! call test$vector ; test$vector does not modify DE
	mov e,a! push d ; Send to seldsk, save for test below
	call selectdisk! pop h ; Recall dlog vector
	jnc sel$error ; returns with C flag set if select ok
	; Is the disk logged in?
	dcr l ; reg l = 1 if so
	ret

selectdisk:
	; Select the disk drive given by register D, and fill
	; the base addresses curtrka - alloca, then fill
	; the values of the disk parameter block
	mov c,d ; current disk# to c
	; lsb of e = 0 if not yet logged - in
	call seldskf ; hl filled by BIOS call
	; hl = 0000 if error, otherwise disk headers
	mov a,h! ora l! rz ; Return with C flag reset if select error
		; Disk header block address in hl
		mov e,m! inx h! mov d,m! inx h ; de=.tran
		shld cdrmaxa! inx h! inx h ; .cdrmax
		shld curtrka! inx h! inx h ; hl=.currec
		shld curreca! inx h! inx h ; hl=.buffa
		inx h! shld drvlbla! inx h
		shld lsn$add! inx h! inx h
		; de still contains .tran
		xchg! shld tranv ; .tran vector
		lxi h,dpbaddr ; de= source for move, hl=dest
		mvi c,addlist! call move ; addlist filled
		; Now fill the disk parameter block
		lhld dpbaddr! xchg ; de is source
		lxi h,sectpt ; hl is destination
		mvi c,dpblist! call move ; data filled
		; Now set single/double map mode
		lhld maxall ; largest allocation number
		mov a,h ; 00 indicates < 255
		lxi h,single! mvi m,true ; Assume a=00
		ora a! jz retselect
		; high order of maxall not zero, use double dm
		mvi m,false
	retselect:
		; C flag set indicates successful select
		stc! ret

=========================================================================================

This shows that the login function - called by selectdisk - is really more of a one-time initialization than it is a disk select function. It really shouldn't be used to select the drive. That should be done by examining @ADRV and/or @RDRV any time a drive is accessed, e.g. during the read and write functions.

So I'm moving the IDE "select" calls into the read and write functions. At the beginning of read and write, I'll examine @ADRV and write that to the drive-select port on the IDE interface. The login functions are just no-ops, straight back returns.

That solved the directory confusion. It wasn't actually "directory confusion" but rather was drive-select confusion. Once I moved the drive-selection logic into the beginning of the read and write functions, everything worked as it should.

Gencpm should be configured to overlay C and D directory and data buffers. CP/M keeps track of the buffers and keeps things straight.

The resulting version of CP/M supports two 330Kb diskette drives and two 8Mb IDE drives, which can be magnetic drives or compact flash (CF) solid state cards. The diskettes are A and B and the IDE drives are C and D.

Additionally, the translation layer for the IDE drives breaks them into 8Mb segments, which can be easily addressed individually using the most-significant byte of the two-byte track address. The tracks are addressed as 0000-FFFF and sectors as 0000-003F. The first 8Mb segment is tracks 0000-00FF, and that is the segment that is accessed by CP/M. The second segment is tracks 0100-01FF, third segment is 0200-02FF, and so on, up to track FFFF for 2Gb total storage.

This additional storage can be accessed using the IDEutil program, included in the distribution archive, below:


Resources:

  • Altair 8800 Archive - Collection of documentation, disk images, executable binaries and source code for the Altair 8800 and clones
  • BASIC programs for the Altair and other systems with Microsoft BASIC
  • C Applications Source - Source code for C applications
  • The Altair 8800: The Machine that Launched the PC Revolution, Article by PC Magazine
  • Altair 8800 Microcomputer, Collection item description by the Smithsonian Museum
  • MITS Altair 8800 Computer, Article by OldComputers.net
  • Altair Clone Kit by Mike Douglas at AltairClone.com
  • AltairDuino Kit by Chris Davis at Adwater & Stir
  • Arduino Altair 8800 Simulator Kit by David Hansel at Hackster.io
  • Altair 8800 Reproduction Boards and Parts from Mike Douglas at DeRamp.com
  • Altair 8800 Reproduction Boards and Parts from Gary Kaufman at The-Planet.org
  • Altair 8800 Reproduction Boards and Parts from Jerry Walker at JMprecision.co.uk
  • S100 Computer Parts and Circuit Board Boards from Todd Goodman at S100computers.com
  • Altair 8800 Re-Creation Kit by Grant Stockly at AltairKit.com

    Parham Data Products