At line 4 changed 6 lines |
;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
;³ DISASSEMBLED FILE - DONE WITH DISASM 1.0á ³ |
;³ Date: 1-06-2008 Time: 17:21 ³ |
;³ (c) 1996 Channex aka Lasse S. Tassing ³ |
;³ Email: ltassing.ite.dk ³ |
;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
;⁄-------------------------------------------\ |
;| DISASSEMBLED FILE - DONE WITH DISASM 1.0· | |
;| Date: 1-06-2008 Time: 17:21 | |
;| (c) 1996 Channex aka Lasse S. Tassing | |
;| Email: ltassing.ite.dk | |
;\-------------------------------------------/ |
At line 11 changed 3 lines |
; IN $2,$3 = index on off |
; IN $4,$5 = Transmit data on Txd sio buss |
; IN $6,$7 = Transmit data on Rxd sio Buss |
; IN $2,$3 = index pulse enable |
; IN $4,$5 = Transmit data on Txd sio buss output inverted |
; IN $6,$7 = Transmit data on Rxd sio Buss output inverted |
At line 20 changed 24 lines |
STAT1 = $1000 ;Read only. Clear latches |
;Bit0 = drive select switch 1 |
;Bit1 = drive select switch 2 |
;Bit2 = density select switch. set at boot up only |
;Bit3 = n/c |
;Bit4 = Track button |
;Bit5 = ID button |
;Bit6 = Error button |
;Bit7 = Write protect from floppy mech |
STAT1R = $1001 ;As above, doesn't clear latches |
STAT2 = $2000 ;Read only |
;Bit0 = Clock out on sio buss |
;Bit1 = Clock in on sio buss |
;Bit2 = Data out on sio buss |
;Bit3 = Data in on sio buss |
;Bit4 = +5V on sio buss |
;bit5 = command on sio buss |
;Bit6 = DRQ from FDC |
;Bit7 = IRQ from FDC |
CONTROL = $3000 ;First 4 bits. control for stepper motor |
LED1 = $4FFF ;Bits0-6 Led display |
;Bit7 = Busy Led |
LED2 = $5000 ;Bits0-6 Led display |
;Bit7 = ENPRE on FDC |
STAT1R = $1000 ;Read only. Clear latches |
;Bit0 = drive select switch 1 |
;Bit1 = drive select switch 2 |
;Bit2 = density select switch. set at boot up only |
;Bit3 = n/c |
;Bit4 = Track button |
;Bit5 = ID button |
;Bit6 = Error button |
;Bit7 = Write protect from floppy mech |
STAT1 = $1001 ;As above, doesn't clear latches |
STAT2 = $2000 ;Read only |
;Bit0 = Clock out on sio buss |
;Bit1 = Clock in on sio buss |
;Bit2 = Data out on sio buss |
;Bit3 = Data in on sio buss |
;Bit4 = +5V on sio buss |
;bit5 = command on sio buss |
;Bit6 = DRQ from FDC |
;Bit7 = IRQ from FDC |
CONTROL = $3000 ;First 4 bits. control for stepper motor. write only |
LED1 = $4FFF ;Bits0-6 Led display |
;Bit7 = Busy Led |
LED2 = $5000 ;Bits0-6 Led display |
;Bit7 = ENPRE on FDC |
At line 45 changed 9 lines |
STATUSFDC = $6000 ;Status register FDC read |
TRACKFDC = $6001 ;Track register FDC read/write |
SECTORFDC = $6002 ;Sector register FDC read/write |
DATAFDC = $6003 ;Data register FDC read/write |
;7000 7fff ram 7800-7fff used |
RINVEC = $7800 ;Ram interupt vector |
Lb93 = $7803 ;??????? |
Lb22 = $7806 ;external main wait loop tie in |
Lb30 = $7809 ;external command tie in |
STATUSFDC = $6000 ;Status register FDC read |
TRACKFDC = $6001 ;Track register FDC read/write |
SECTORFDC = $6002 ;Sector register FDC read/write |
DATAFDC = $6003 ;Data register FDC read/write |
;7000 7fff ram 7800-7fff used |
RINVEC = $7800 ;Ram interupt vector 3 bytes |
Lb93 = $7803 ;read sector 3 bytes |
Lb22 = $7806 ;external main wait loop tie in 3bytes |
Lb30 = $7809 ;external command tie in 3 bytes |
At line 62 added 3 lines |
LSPEEDF = $7814 ;= FF if high bit is set on command |
HSFLAG = $7815 ;= FF once lowspeed sio is complete then does highspeed sio |
FLAG?? = $7816 ;?? some thing to do with density flag |
At line 67 added 4 lines |
DCHNGFLG = $7819 ;disk change flag? |
WPMOFLG = $781A ;Motor on when disk inserted flag |
DENCST = $781B ;Check density of disk flag TRACK and ID buttons |
CPMLOD = $781C ;CP/M load flag. Buttons ERROR and ID |
At line 67 changed 3 lines |
SECTORN = $7823 ;Sector number required? |
?????? = $7826 ;FDC master status register? |
CDLOOP1 = $7827 ;Countdown loop for ??? |
CAUX12 = $7820 ;Store for command frame aux bytes 1 & 2 |
TRACKNUM = $7822 ;track number on disk to read/write |
SECTORN = $7823 ;Sector number to read on track |
SECTORBUF = $7824 ;Pointer to sector buffer 7842 2 bytes |
FDCMSR = $7826 ;FDC master status register? |
CDLOOP1 = $7827 ;Countdown loop 1 byte |
CDLOOP2 = $7828 ; Countdownloop 1 byte |
FMTstacksave = $7829 ;format stack save?? 2 bytes |
FMTSTR = $782B ; format store. 00= single, 7F= enhanced,FF=double |
SECTAB = $782C ;pointer to sector table. format time 2bytes |
BASECD = $782E ;base store for a count up timer. 2 bytes |
BASECDSCRATCH = $7830 ;Scratch used for 782E 2 bytes |
MSPINDEL = $7832 ;Counter for motor spin delay? 2 bytes |
At line 88 added one line |
LEDERROR = $7838 ;Error store for front leds 2 bytes |
At line 76 changed one line |
BUFFER = $7942 ;Buffer |
FREERAM = $7840 ;pointer to first byte of free ram |
SECTBUF = $7842 ;256 byte sector buffer 256 bytes |
BUFFER = $7942 ;General purpous Buffer 256 bytes |
At line 78 changed 4 lines |
STACK = $7A84 ;CPU stack for main program loop |
STACKI = $7B84 ; CPU stack for interupt (commands) |
Lb38 = $7F00 |
; Ä[CODE]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
STACK = $7A84 ;CPU stack for main program loop 16 bytes. counts down |
STACKI = $7B84 ;CPU stack for interupt (commands) 16 bytes |
Lb38 = $7F00 ;Where external commands are stored and run |
; ƒ[CODE]ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ |
At line 86 changed one line |
Lba: JP Lb1 ; 0004 C3A10C call routine number held in A |
Lba: JP Lb1 ; 0004 C3A10C legal vector |
At line 88 changed 9 lines |
Lb2: LD A,(HL) ; 0008 7E restart 08 |
RRCA ; 0009 0F . |
JR NC,Lb2 ; 000A 30FC 0. |
Lb3: LD A,(HL) ; 000C 7E ~ |
RRCA ; 000D 0F . |
JR C,Lb3 ; 000E 38FC 8. |
AND D ; 0010 A2 . |
RET ; 0011 C9 . |
|
;------------------------------------------------------------------------ |
; high speed recieve |
Lb2: LD A,(HL) ; 0008 7E 7 restart 08 |
RRCA ; 0009 0F 4 |
JR NC,Lb2 ; 000A 30FC 7/12 |
Lb3: LD A,(HL) ; 000C 7E 7 |
RRCA ; 000D 0F 4 . |
JR C,Lb3 ; 000E 38FC 7/12 |
AND D ; 0010 A2 4 . |
RET ; 0011 C9 10 50 t states with no branching |
;------------------------------------------------------------------------ |
;delay |
At line 125 added 10 lines |
;------------------------------------------------------------------------ |
; high speed send |
Lb5: LD A,(HL) ; 0018 7E 7 load |
AND E ; 0019 A3 4 mask out all but clock out |
JR NC,Lb5 ; 001A 30FC 7/12 |
Lb6: LD A,(HL) ; 001C 7E 7 get sio signals |
AND E ; 001D A3 4 mask out all but clock out |
JR C,Lb6 ; 001E 38FC 7/12 |
IN A,(C) ; 0020 ED78 12 |
RET ; 0022 C9 10 58 t states with no branching |
At line 103 removed 8 lines |
Lb5: LD A,(HL) ; 0018 7E ~ restart 18 |
AND E ; 0019 A3 . |
JR NC,Lb5 ; 001A 30FC 0. |
Lb6: LD A,(HL) ; 001C 7E ~ |
AND E ; 001D A3 . |
JR C,Lb6 ; 001E 38FC 8. |
IN A,(C) ; 0020 ED78 .x |
RET ; 0022 C9 . |
At line 157 added 6 lines |
; Commands for 1770 FDC |
DB $ff ; 0033 FF Restore?? wrong number |
DB $80 ; 0034 80 read sector, dis spin up seq . |
DB $A2 ; 0035 A2 write sector, dis write precomp |
DB $C0 ; 0036 C0 read address . |
DB $F2 ; 0037 f2 write track,dis write precomp |
At line 133 removed 6 lines |
RST 38H ; 0033 FF . |
ADD A,B ; 0034 80 . |
AND D ; 0035 A2 . |
RET NZ ; 0036 C0 . |
DB $F2 ; 0037 f2 |
|
At line 187 changed 2 lines |
|
Lb236: IM 1 ; 0084 ED56 ;init |
;Init |
Lb236: IM 1 ; 0084 ED56 interupt mode 1 |
At line 208 changed 2 lines |
LD A,(STAT1) ; 00B8 3A0010 :.. |
LD A,(STAT1R) ; 00BB 3A0110 :.. |
LD A,(STAT1R) ; 00B8 3A0010 :.. |
LD A,(STAT1) ; 00BB 3A0110 :.. |
At line 225 changed 2 lines |
LD ($781B),A ; 00E2 321B78 2.x |
LD ($781C),A ; 00E5 321C78 2.x |
LD (DENCST),A ; 00E2 321B78 2.x |
LD (CPMLOD),A ; 00E5 321C78 2.x |
At line 231 changed 2 lines |
LD HL,$86BF ; 00F0 21BF86 !.. |
LD ($7838),HL ; 00F3 223878 "8x |
LD HL,$86BF ; 00F0 21BF86 E- for front leds |
LD (LEDERROR),HL ; 00F3 223878 "8x |
At line 234 changed 2 lines |
LD ($7824),HL ; 00F9 222478 "$x pointer to buffer? |
LD HL,$FFC2 ; 00FC 21C2FF !.. |
LD (SECTORBUF),HL ; 00F9 222478 "$x pointer to buffer? |
LD HL,$FFC2 ; 00FC 21C2FF base counter for button read routine |
At line 238 changed one line |
LD ($7840),HL ; 0105 224078 "@x |
LD (FREERAM),HL ; 0105 224078 "@x |
At line 254 changed one line |
CALL Lb13 ; 012D CDCE0B ... drive number switch |
CALL DNUMSWITCH ; 012D CDCE0B ... drive number switch |
At line 261 changed 2 lines |
CALL Lb18 ; 0141 CD120C ... |
CALL Lb19 ; 0144 CD6D05 .m. |
CALL Lb18 ; 0141 CD120C Get FDC type. setup commands |
CALL Lb19 ; 0144 CD6D05 read sector 1, set density |
At line 293 added one line |
;------------------------------------------------------------------- main wait loop |
At line 269 changed 3 lines |
CALL Lb23 ; 0155 CD440B .D. |
CALL Lb24 ; 0158 CDE508 ... |
LD A,($781B) ; 015B 3A1B78 :.x |
CALL Lb23 ; 0155 CD440B buttons |
CALL Lb24 ; 0158 CDE508 step out to track 40? |
LD A,(DENCST) ; 015B 3A1B78 :.x |
At line 274 changed one line |
CALL Lb19 ; 0161 CD6D05 .m. |
CALL Lb19 ; 0161 CD6D05 go check density of disk |
At line 276 changed one line |
LD ($781B),A ; 0165 321B78 2.x |
LD (DENCST),A ; 0165 321B78 2.x |
At line 279 changed one line |
|
;---------------------------------------------------------------------------- |
At line 288 changed one line |
LD ($7820),DE ; 017B ED532078 de=command aux bytes.S x |
LD (CAUX12),DE ; 017B ED532078 de=command frame aux bytes |
At line 292 changed one line |
CALL Lb30 ; 0187 CD0978 call external command Eg syncro |
CALL Lb30 ; 0187 CD0978 call external command routine |
At line 319 changed one line |
CALL SSIOBYTE ; 01B4 CD230A go send |
CALL SSIOBYTE ; 01B4 CD230A go send byte sio |
At line 342 changed 2 lines |
|
Lb26: LD A,($781C) ; 01D4 3A1C78 :.x |
;---------------------------------- |
;CP/M LOAD button status check |
Lb26: LD A,(CPMLOD) ; 01D4 3A1C78 :.x |
At line 346 changed 3 lines |
|
CALL Lb36 ; 01D9 CD6005 .`. |
LD HL,($7824) ; 01DC 2A2478 *$x |
;load CP/M------------------------ |
CALL Lb36 ; 01D9 CD6005 check if disk changed and test |
LD HL,(SECTORBUF) ; 01DC 2A2478 save buffer |
At line 350 changed 5 lines |
LD HL,$7F00 ; 01E0 21007F !.. |
LD ($7824),HL ; 01E3 222478 "$x |
LD HL,$01 ; 01E6 210100 !.. |
LD ($7820),HL ; 01E9 222078 " x |
CALL Lb37 ; 01EC CD9504 ... |
LD HL,$7F00 ; 01E0 21007F place to put data |
LD (SECTORBUF),HL ; 01E3 222478 "$x |
LD HL,$01 ; 01E6 210100 sector to load |
LD (CAUX12),HL ; 01E9 222078 " x |
CALL Lb37 ; 01EC CD9504 go get sector 1 |
At line 356 changed one line |
LD ($7824),HL ; 01F0 222478 "$x |
LD (SECTORBUF),HL ; 01F0 222478 "$x |
At line 360 changed one line |
LD ($781C),A ; 01F9 321C78 2.x |
LD (CPMLOD),A ; 01F9 321C78 2.x |
At line 362 changed one line |
|
;---------------------------------------- |
; Command frame recieve, test and run |
At line 367 changed one line |
CALL Lb13 ; 0208 CDCE0B ... get drive number switch |
CALL DNUMSWITCH ; 0208 CDCE0B ... get drive number switch |
At line 385 changed one line |
CALL Lb42 ; 0225 CD0F0A ... status |
CALL Lb42 ; 0225 CD0F0A Send Ack |
At line 429 changed one line |
CALL Lb45 ; 0279 CD3C0C .<. |
CALL CHKSECTNUM ; 0279 CD3C0C Check sector will be on disk |
At line 431 changed 4 lines |
CALL Lb42 ; 027F CD0F0A ... |
CALL Lb36 ; 0282 CD6005 .`. |
CALL Lb37 ; 0285 CD9504 ... |
CALL Lb46 ; 0288 CDA109 ... |
CALL Lb42 ; 027F CD0F0A send Ack |
CALL Lb36 ; 0282 CD6005 . |
CALL Lb37 ; 0285 CD9504 go read sector. A=C or E |
CALL Lb46 ; 0288 CDA109 go send A then data + chksum |
At line 439 changed 2 lines |
RET NZ ; 0290 C0 . |
CALL SSIOBYTE ; 0291 CD230A |
RET NZ ; 0290 C0 Nak out |
CALL SSIOBYTE ; 0291 CD230A send byte sio |
At line 444 changed one line |
CALL Lb47 ; 0296 CDA504 ... |
CALL Lb47 ; 0296 CDA504 get data and write sector |
At line 446 changed 4 lines |
CP $45 ; 029A FE45 .E |
JR Z,Lb48 ; 029C 2835 (5 |
CALL Lb49 ; 029E CD890A ... |
CALL Lb50 ; 02A1 CDA60A ... |
CP $45 ; 029A FE45 did it error out? |
JR Z,Lb48 ; 029C 2835 yes |
CALL DATAINVERT ; 029E CD890A no. invert data in buffer |
CALL Lb50 ; 02A1 CDA60A check is sector is 4 or greater |
At line 454 changed one line |
LD HL,($7824) ; 02A9 2A2478 *$x |
LD HL,(SECTORBUF) ; 02A9 2A2478 *$x |
At line 457 changed one line |
CALL Lb37 ; 02B1 CD9504 ... |
CALL Lb37 ; 02B1 CD9504 go read sector |
At line 460 changed 2 lines |
CALL Lb50 ; 02B8 CDA60A ... |
LD HL,($7824) ; 02BB 2A2478 *$x |
CALL Lb50 ; 02B8 CDA60A check if sector is 4 or greater |
LD HL,(SECTORBUF) ; 02BB 2A2478 *$x |
At line 472 changed one line |
Lb48: CALL SSIOBYTE ; 02D3 CD230A .#. |
Lb48: CALL SSIOBYTE ; 02D3 CD230A send byte sio |
At line 480 changed one line |
JR Z,Lb53 ; 02E0 2817 got straight to external routine |
JR Z,Lb53 ; 02E0 2817 go straight to external routine |
At line 482 changed one line |
LD A,($7820) ; 02E5 3A2078 number of bytes to load Daux1 |
LD A,(CAUX12) ; 02E5 3A2078 number of bytes to load Daux1 |
At line 488 changed one line |
CALL SSIOBYTE ; 02F4 CD230A send C |
CALL SSIOBYTE ; 02F4 CD230A send byte sio |
At line 491 changed one line |
CALL C,SSIOBYTE ; 02FC DC230A send byte |
CALL C,SSIOBYTE ; 02FC DC230A send byte sio |
At line 496 changed one line |
CALL Lb42 ; 0301 CD0F0A ... command N |
CALL Lb42 ; 0301 CD0F0A send Ack |
At line 542 changed one line |
CALL Lb42 ; 034A CD0F0A ... command O get block |
CALL Lb42 ; 034A CD0F0A send Ack |
At line 561 changed one line |
CALL SSIOBYTE ; 0379 CD230A send complete |
CALL SSIOBYTE ; 0379 CD230A send byte sio |
At line 592 added one line |
;--------------------------------- |
At line 568 changed one line |
CALL SETDENFLG ; 0386 CDF20B ... |
CALL SETDENFLG ; 0386 CDF20B set den type for front leds |
At line 578 changed one line |
Lb61: CALL Lb42 ; 039A CD0F0A ... |
Lb61: CALL Lb42 ; 039A CD0F0A send Ack |
At line 586 changed one line |
CALL Lb15 ; 03AE CDBE08 ... |
CALL Lb15 ; 03AE CDBE08 turn motor on |
At line 588 changed 2 lines |
LD ($7820),HL ; 03B4 222078 " x |
CALL Lb58 ; 03B7 CDB40A ... |
LD (CAUX12),HL ; 03B4 222078 " x |
CALL Lb58 ; 03B7 CDB40A set B to bytes per sector |
At line 591 changed one line |
LD ($7822),A ; 03BB 322278 2"x |
LD (TRACKNUM),A ; 03BB 322278 2"x |
At line 594 changed one line |
Lb62: LD (HL),A ; 03C2 77 w |
Lb62: LD (HL),A ; 03C2 77 put FF in buffer |
At line 596 changed 6 lines |
DJNZ Lb62 ; 03C4 10FC .. |
Lb72: CALL Lb63 ; 03C6 CDF407 ... |
LD A,$05 ; 03C9 3E05 >. |
LD ($7828),A ; 03CB 322878 2(x |
Lb67: CALL Lb23 ; 03CE CD440B .D. |
CALL Lb64 ; 03D1 CD1306 ... |
DJNZ Lb62 ; 03C4 10FC fill buffer with FF |
Lb72: CALL Lb63 ; 03C6 CDF407 step to track |
LD A,$05 ; 03C9 3E05 times to try |
LD (CDLOOP2),A ; 03CB 322878 2(x |
Lb67: CALL Lb23 ; 03CE CD440B buttons |
CALL Lb64 ; 03D1 CD1306 format |
At line 609 changed one line |
LD HL,$7828 ; 03E1 212878 !(x |
LD HL,CDLOOP2 ; 03E1 212878 !(x |
At line 618 changed one line |
Lb65: LD HL,$7822 ; 03F6 212278 !"x |
|
Lb65: LD HL,TRACKNUM ; 03F6 212278 !"x |
At line 625 changed 2 lines |
Lb71: CALL Lb23 ; 0402 CD440B .D. |
CALL Lb73 ; 0405 CD1504 ... |
Lb71: CALL Lb23 ; 0402 CD440B buttons |
CALL Lb73 ; 0405 CD1504 go check format |
At line 628 changed one line |
LD A,$43 ; 040A 3E43 >C |
LD A,$43 ; 040A 3E43 Complete |
At line 630 changed one line |
Lb70: LD A,$45 ; 040E 3E45 >E |
Lb70: LD A,$45 ; 040E 3E45 Error |
At line 634 changed 2 lines |
|
Lb73: CALL Lb58 ; 0415 CDB40A ... |
;---------------------------------- |
Lb73: CALL Lb58 ; 0415 CDB40A load B with sector size |
At line 641 changed one line |
LD ($7822),A ; 0420 322278 2"x |
LD (TRACKNUM),A ; 0420 322278 2"x |
At line 643 changed 3 lines |
Lb86: CALL Lb63 ; 0427 CDF407 ... |
CALL Lb76 ; 042A CDB807 ... |
LD IX,$736 ; 042D DD213607 .!6. |
Lb86: CALL Lb63 ; 0427 CDF407 step to track 0 |
CALL Lb76 ; 042A CDB807 write track number to FDC |
LD IX,$736 ; 042D DD213607 sector order single/double |
At line 648 changed 2 lines |
JR NZ,Lb77 ; 0436 2004 . |
LD IX,$79D ; 0438 DD219D07 .!.. |
JR NZ,Lb77 ; 0436 2004 |
LD IX,$79D ; 0438 DD219D07 sector order enhanced |
;format track |
At line 653 changed 2 lines |
LD ($7828),A ; 0444 322878 2(x |
Lb83: LD HL,($7824) ; 0447 2A2478 *$x |
LD (CDLOOP2),A ; 0444 322878 2(x |
Lb83: LD HL,(SECTORBUF) ; 0447 2A2478 *$x |
At line 663 changed one line |
LD HL,$7828 ; 045D 212878 !(x |
LD HL,CDLOOP2 ; 045D 212878 !(x |
At line 680 changed one line |
LD HL,$7822 ; 0484 212278 !"x |
|
LD HL,TRACKNUM ; 0484 212278 !"x |
At line 718 added one line |
|
At line 691 changed 3 lines |
|
Lb37: CALL Lb87 ; 0495 CD570C .W. |
XOR A ; 0498 AF . |
;--------------------------------------------------------------------- |
;this routine loads sector num stored in 7820 and stores to pointer located in 7824 |
Lb37: CALL TRKSECT ; 0495 CD570C .W. |
XOR A ; 0498 AF zero A |
At line 702 changed 4 lines |
Lb47: CALL Lb45 ; 04A5 CD3C0C .<. |
JP NZ,Lb40 ; 04A8 C29A0A ... |
CALL Lb42 ; 04AB CD0F0A ... |
CALL Lb90 ; 04AE CD7309 .s. |
Lb47: CALL CHKSECTNUM ; 04A5 CD3C0C check sector will fit on disk |
JP NZ,Lb40 ; 04A8 C29A0A set status bit |
CALL Lb42 ; 04AB CD0F0A send Ack, set hs flag |
CALL Lb90 ; 04AE CD7309 get data from sio |
At line 707 changed 3 lines |
CALL Lb55 ; 04B4 CD1B0A ... |
Lb62a CALL Lb36 ; 04B7 CD6005 .`. |
CALL Lb87 ; 04BA CD570C .W. |
CALL Lb55 ; 04B4 CD1B0A send Ack |
Lb62a CALL Lb36 ; 04B7 CD6005 check den/disk spinning |
CALL TRKSECT ; 04BA CD570C get track and sector for write |
At line 711 changed one line |
CALL Lb88 ; 04BF CDDA04 |
CALL Lb88 ; 04BF CDDA04 setup and write sector |
At line 718 changed one line |
XCMD2: |
;read and write sector |
XCMD2: ;write sector |
At line 756 added one line |
|
At line 724 changed one line |
LD ($7822),A ; 04D2 322278 2"x |
LD (TRACKNUM),A ; 04D2 322278 2"x |
At line 726 changed one line |
LD ($7823),A ; 04D6 322378 2#x |
LD (SECTORN),A ; 04D6 322378 2#x |
At line 764 added one line |
|
At line 734 changed one line |
CALL Lb15 ; 04E5 CDBE08 ... |
CALL Lb15 ; 04E5 CDBE08 turn motor on |
At line 736 changed 2 lines |
LD (CDLOOP1),A ; 04EA 322778 2'x |
Lb103: CALL Lb63 ; 04ED CDF407 do this loop twice |
LD (CDLOOP1),A ; 04EA 322778 do this loop twice |
Lb103: CALL Lb63 ; 04ED CDF407 step to track NN |
At line 739 changed 3 lines |
LD ($7828),A ; 04F2 322878 2(x |
Lb102: CALL Lb76 ; 04F5 CDB807 ... |
LD A,($7823) ; 04F8 3A2378 :#x |
LD (CDLOOP2),A ; 04F2 322878 2(x |
Lb102: CALL Lb76 ; 04F5 CDB807 set FDC to track num |
LD A,(SECTORN) ; 04F8 3A2378 set FDC to Sectornum |
At line 743 changed one line |
LD HL,($7824) ; 04FE 2A2478 *$x |
LD HL,(SECTORBUF) ; 04FE 2A2478 *$x |
At line 747 changed 2 lines |
CALL Lb78 ; 0505 CDD505 ... |
CALL Lb49 ; 0508 CD890A ... |
CALL Lb78 ; 0505 CDD505 read sector data |
CALL DATAINVERT ; 0508 CD890A invert data in buffer |
At line 751 changed one line |
Lb95: CALL Lb49 ; 050F CD890A ... |
|
Lb95: CALL DATAINVERT ; 050F CD890A invert data in buffer |
At line 753 changed one line |
CALL Lb98 ; 0513 CDF405 ... |
CALL Lb98 ; 0513 CDF405 write sector data |
At line 756 changed one line |
Lb96: CALL Lb14 ; 0519 CD3509 .5. |
Lb96: CALL Lb14 ; 0519 CD3509 reset FDC? |
At line 759 changed one line |
Lb97: CALL Lb80 ; 0520 CD6809 .h. |
Lb97: CALL Lb80 ; 0520 CD6809 wait for FDC to be free? |
At line 761 changed one line |
AND $7C ; 0526 E67C .| |
AND $7C ; 0526 E67C fdc status |
At line 767 changed one line |
LD HL,$7828 ; 0530 212878 !(x |
LD HL,CDLOOP2 ; 0530 212878 !(x |
At line 780 changed one line |
Lb101: CALL Lb68 ; 0547 CDF60A ... |
Lb101: CALL Lb68 ; 0547 CDF60A get error led number |
At line 783 changed one line |
CALL Lb69 ; 054C CD050B ... |
CALL Lb69 ; 054C CD050B beep and display error |
At line 796 changed one line |
|
;---------------------------- |
;Check if disk changed |
At line 800 changed 2 lines |
|
CALL Lb19 ; 0565 CD6D05 .m. |
CALL Lb19 ; 0565 CD6D05 go set density |
At line 805 changed 3 lines |
|
Lb19: CALL Lb15 ; 056D CDBE08 ... |
CALL Lb16 ; 0570 CDC107 ... |
;--------------------------------------------------------------------- |
;go read sector 1 and set density |
Lb19: CALL Lb15 ; 056D CDBE08 turn on motor? |
CALL Lb16 ; 0570 CDC107 step to track zero |
At line 834 changed one line |
|
;---------------------------- |
At line 836 changed one line |
LD ($7828),A ; 05AC 322878 2(x |
LD (CDLOOP2),A ; 05AC 322878 2(x |
At line 838 changed one line |
CALL Lb108 ; 05B2 CDCD05 ... |
CALL Lb108 ; 05B2 CDCD05 read sector |
At line 846 changed one line |
LD HL,$7828 ; 05C1 212878 !(x |
LD HL,CDLOOP2 ; 05C1 212878 !(x |
At line 852 changed one line |
|
;---------------------------- |
; Read sector data from fdc and store in buffer |
At line 896 added one line |
|
At line 871 changed one line |
LD A,(DATAFDC) ; 05ED 3A0360 :.`read byte from sector |
LD A,(DATAFDC) ; 05ED 3A0360 :.`read byte data |
At line 916 added one line |
; write data to FDC data register from buffer |
At line 878 changed one line |
Lb115: LD BC,$6E73 ; 05FD 01736E .sn |
Lb115: LD BC,$6E73 ; 05FD 01736E load time out value |
At line 894 changed one line |
|
; |
;-------------------------------------------------------------------- |
;CP/M INIT Command enters here to Format track |
;-------------------------------------------------------------------- |
; |
At line 899 changed 2 lines |
IN A,($03) ; 061B DB03 ..ip on |
IN A,($0C) ; 061D DB0C ..ip enable |
IN A,($03) ; 061B DB03 ip enable |
IN A,($0C) ; 061D DB0C ip off |
At line 904 changed one line |
LD DE,$254 ; 0625 115402 .T. |
LD DE,$254 ; 0625 115402 single |
At line 957 added one line |
;-----------------------MFM |
At line 918 changed one line |
LD A,$FF ; 0646 3EFF >. |
LD A,$FF ; 0646 3EFF bytes per sector. |
At line 921 changed 3 lines |
LD A,$7F ; 064D 3E7F >. |
Lb118: LD ($782B),A ; 064F 322B78 0=single,ff=double 7f=enhanced |
Lb117: LD BC,$782C ; 0652 ED4B2C78 .K,x |
LD A,$7F ; 064D 3E7F bytes per sector |
Lb118: LD (FMTSTR),A ; 064F 322B78 ff=double 7f=enhanced/single |
|
Lb117: LD BC,$782C ; 0652 ED4B2C78 custom sector table |
At line 927 changed 2 lines |
LD L,C ; 065A 69 i |
LD H,B ; 065B 60 ` |
LD L,C ; 065A 69 load custom |
LD H,B ; 065B 60 sector order table pointer |
At line 937 changed 5 lines |
LD B,$4B ; 066E 064B .K |
Lb121: DJNZ Lb121 ; 0670 10FE .. |
IN A,($0D) ; 0672 DB0D ..ip pulse? |
Lb122: LD A,(STAT2) ; 0674 3A0020 :. fdc |
AND $C0 ; 0677 E6C0 .. wait for drq/irq to go low |
LD B,$4B ; 066E 064B |
IN A,($0D) ; 0672 DB0D ip pulse? |
Lb122: LD A,(STAT2) ; 0674 3A0020 fdc |
AND $C0 ; 0677 E6C0 wait for drq/irq to go low |
At line 990 added 7 lines |
;HL = 6003. FDC data register |
;DE = number of bytes to write after index pulse |
;C = byte to write |
;HL' = pointer to sector order |
;DE' = 2nd stack pointer after 1st sector after Index pulse |
;SP = routine to RET to or BC data |
|
At line 955 changed one line |
Lb125: PUSH BC ; 0691 C5 . |
;DE = 2000 (STAT2) for FDC IRQ/DRQ |
; other registers as above |
|
Lb125: PUSH BC ; 0691 C5 inc stack pointer |
At line 976 changed one line |
FMTRT5: |
FMTRT5: ;write sector number id field |
At line 978 changed one line |
LD A,(HL) ; 06B1 7E ~ |
LD A,(HL) ; 06B1 7E sector number |
At line 984 changed one line |
LD A,($782B) ; 06B8 3A2B78 :+x |
LD A,(FMTSTR) ; 06B8 3A2B78 :+x |
At line 1,075 added one line |
|
At line 1,019 changed one line |
WORD FMTRT2 ; 06EE 9B06 set de here |
WORD FMTRT2 ; 06EE 9B06 set de here FM |
At line 1,026 changed one line |
WORD FMTRT5 ; 06FC B006 ... |
WORD FMTRT5 ; 06FC B006 ...write sector number |
At line 1,045 changed 2 lines |
WORD FMTRT2 ; 0722 9B06 stack set to here |
WORD $0600 ; 0724 0006 ..?? jump to routine?? |
WORD FMTRT2 ; 0722 9B06 stack set to here FM |
WORD $0600 ; 0724 0006 .data and counter |
At line 1,063 changed one line |
WORD FMTRT2 ; 0749 9B06 de set to here |
WORD FMTRT2 ; 0749 9B06 de set to here MFM |
At line 1,072 changed one line |
WORD FMTRT5 ; 075B B006 ... |
WORD FMTRT5 ; 075B B006 ...write sector number |
At line 1,093 changed 2 lines |
WORD FMTRT2 ; 0785 9B06 stack set to here |
WORD $0C00 ; 0787 000C .. |
WORD FMTRT2 ; 0785 9B06 stack set to here MFM |
WORD $0C00 ; 0787 000C write 0 B times |
At line 1,096 changed one line |
WORD $03F6 ; 078B F603 .. |
WORD $03F6 ; 078B F603 write F6 3 times |
At line 1,098 changed one line |
WORD $01FC ; 078F FC01 .. |
WORD $01FC ; 078F FC01 write FC 1 times |
At line 1,100 changed one line |
WORD $134E ; 0793 4E13 N |
WORD $134E ; 0793 4E13 write 4E $13 times |
At line 1,102 changed 3 lines |
WORD $034E ; 0797 4E03 .N |
WORD FMTRT7 ; 0799 BF06 . |
WORD FMTRT8 ; 079B C606 .. |
WORD $034E ; 0797 4E03 write 4E 3 times |
WORD FMTRT7 ; 0799 BF06 load first sectornumber and write |
WORD FMTRT8 ; 079B C606 set stack 749 |
At line 1,115 changed 3 lines |
|
Lb76: LD A,($7822) ; 07B8 3A2278 :"x |
SRL A ; 07BB CB3F .? |
;---------------------------------------------------------------------------- |
Lb76: LD A,(TRACKNUM) ; 07B8 3A2278 :"x |
SRL A ; 07BB CB3F X 2 |
At line 1,120 changed one line |
TRK0 |
;---------------------------------------------------------------------------- |
TRK0: ;step to track zero |
At line 1,130 changed one line |
LD A,($7826) ; 07D9 3A2678 :&x7826 = track zero? |
LD A,($7826) ; 07D9 3A2678 :&x |
At line 1,138 changed one line |
LD (TLEDNUM1),HL ; 07E8 223A78 ":x783a-783b=led display track number |
LD (TLEDNUM1),HL ; 07E8 223A78 ":x |
At line 1,143 changed 2 lines |
LD ($7822),A ; 07F1 322278 2"x |
Lb63: LD A,($7822) ; 07F4 3A2278 :"x |
LD (TRACKNUM),A ; 07F1 322278 2"x |
|
; CP/M INIT command enters here for step to track |
Lb63: LD A,(TRACKNUM) ; 07F4 3A2278 :"x |
At line 1,162 changed 2 lines |
|
Lb137: LD A,($7822) ; 081C 3A2278 :"x |
;----------------------------------------------------------------------------------- |
Lb137: LD A,(TRACKNUM) ; 081C 3A2278 :"x |
At line 1,239 added one line |
|
At line 1,243 added one line |
;------------------------------------ |
At line 1,194 changed one line |
|
;------------------------------------ |
At line 1,196 changed one line |
CALL Lb23 ; 0856 CD440B .D. |
CALL Lb23 ; 0856 CD440B buttons |
At line 1,209 changed one line |
|
;----------------------------------- |
At line 1,228 changed one line |
|
;----------------------------------- |
At line 1,231 changed one line |
LD A,(RESTORE) ; 0890 3A0C78 :.x |
LD A,(RESTORE) ; 0890 3A0C78 restore = 0 |
At line 1,241 changed one line |
LD A,($A8) ; 08A1 3AA800 what????????? |
LD A,($00A8) ; 08A1 3AA800 what????????? 06 |
At line 1,244 changed 2 lines |
LD ($A8),A ; 08A7 32A800 what????????? |
LD A,($00F0) ; 08AA 3AF000 What??????????????? |
LD ($00A8),A ; 08A7 32A800 what????????? |
LD A,($00F0) ; 08AA 3AF000 What????????? |
At line 1,250 changed one line |
|
;----------------------------------- |
At line 1,255 changed one line |
MONOFF: ; motor on or off |
MONOFF: ; motor on or off------------------- |
At line 1,320 added one line |
;CP/M init enters here for motor on |
At line 1,274 changed one line |
|
;-------------------------------------------- |
At line 1,276 changed one line |
LD HL,($7832) ; 08E6 2A3278 *2x |
LD HL,($7832) ; 08E6 2A3278 *2x motor run delay? |
At line 1,288 changed one line |
LD A,($7826) ; 08FA 3A2678 :&x |
LD A,($7826) ; 08FA 3A2678 FDC status register shadow? |
At line 1,295 changed one line |
CALL Lb134 ; 090A CDC30A ... |
CALL Lb134 ; 090A CDC30A |
At line 1,301 changed one line |
LD HL,$00 ; 0917 210000 !.. |
LD HL,$0000 ; 0917 210000 !.. |
At line 1,316 changed one line |
; reset the fdc with d8 then d0 |
; reset the fdc with d8 then d0 ---------------- |
At line 1,339 changed one line |
|
;------------------------------------------------------------------------------------------ |
At line 1,345 changed 3 lines |
|
Lb90: CALL Lb50 ; 0973 CDA60A ... |
LD HL,($7824) ; 0976 2A2478 *$x |
;-------------------------------------------------------------------------------------------- |
Lb90: CALL Lb50 ; 0973 CDA60A check sector is 4 or greater |
LD HL,(SECTORBUF) ; 0976 2A2478 *$x |
At line 1,377 changed 4 lines |
Lb46: PUSH AF ; 09A1 F5 . |
CALL Lb50 ; 09A2 CDA60A ... |
POP AF ; 09A5 F1 . |
LD HL,($7824) ; 09A6 2A2478 |
|
Lb46: PUSH AF ; 09A1 F5 save A |
CALL Lb50 ; 09A2 CDA60A check sector is 4 or greater |
;B = LSB of sector size to send |
POP AF ; 09A5 F1 retrive A |
LD HL,(SECTORBUF) ; 09A6 2A2478 |
At line 1,450 added one line |
|
At line 1,386 changed 3 lines |
PUSH AF ; 09AE F5 . |
CALL caculate-chksum ; 09AF CD810A ... |
POP BC ; 09B2 C1 . |
PUSH AF ; 09AE F5 save AF |
CALL caculate-chksum ; 09AF CD810A go add up checksum |
POP BC ; 09B2 C1 get back was AF to now BC |
At line 1,390 changed one line |
LD A,B ; 09B4 78 x |
LD A,B ; 09B4 78 what was in A now back in A |
At line 1,393 changed one line |
CALL SSIOBYTE ; 09BA CD230A .#. |
CALL SSIOBYTE ; 09BA CD230A send byte sio (C for read) |
At line 1,398 changed 10 lines |
Lb161: PUSH BC ; 09C1 C5 . |
PUSH HL ; 09C2 E5 . |
LD A,(HL) ; 09C3 7E ~ |
CALL SSIOBYTE ; 09C4 CD230A .#. send byte |
POP HL ; 09C7 E1 . |
INC HL ; 09C8 23 # |
POP BC ; 09C9 C1 . |
DJNZ Lb161 ; 09CA 10F5 .. |
POP AF ; 09CC F1 get checksum |
CALL SSIOBYTE ; 09CD CD230A send checksum |
Lb161: PUSH BC ; 09C1 C5 11 . |
PUSH HL ; 09C2 E5 11 . |
LD A,(HL) ; 09C3 7E 7 load buffer to A |
CALL SSIOBYTE ; 09C4 CD230A 17 send byte sio |
POP HL ; 09C7 E1 10 . |
INC HL ; 09C8 23 6 # |
POP BC ; 09C9 C1 10 . |
DJNZ Lb161 ; 09CA 10F5 13/8 .. |
POP AF ; 09CC F1 10 get checksum |
CALL SSIOBYTE ; 09CD CD230A 17 send byte sio |
At line 1,476 added 2 lines |
;------------------------------------------------------------------------ |
;this section of code is send and recieve sio. high speed is included but doesn't work |
At line 1,415 changed one line |
AND $04 ; 09DC E604 ..start bit? |
AND $04 ; 09DC E604 wait for start bit |
At line 1,417 changed 2 lines |
LD B,$12 ; 09E0 0612 ..delay |
CALL CDOWNDELAY ; 09E2 CD9E0C ... |
LD B,$12 ; 09E0 0612 |
CALL CDOWNDELAY ; 09E2 CD9E0C 17 lets go delay 239 t states |
At line 1,420 changed 10 lines |
Lb164: LD A,(STAT2) ; 09E6 3A0020 recive data bit |
AND $04 ; 09E9 E604 get data bit |
ADD A,$FF ; 09EB C6FF move data bit to carry |
RR C ; 09ED CB19 rotate carry to c |
LD B,$09 ; 09EF 0609 .. |
CALL CDOWNDELAY ; 09F1 CD9E0C ...delay |
OR $00 ; 09F4 F600 .. |
NOP ; 09F6 00 . |
DEC E ; 09F7 1D . |
JR NZ,Lb164 ; 09F8 20EC . |
Lb164: LD A,(STAT2) ; 09E6 3A0020 13 recive data bit |
AND $04 ; 09E9 E604 7 get data bit |
ADD A,$FF ; 09EB C6FF 7 move data bit to carry |
RR C ; 09ED CB19 8 rotate carry to c |
LD B,$09 ; 09EF 0609 7 .. |
CALL CDOWNDELAY ; 09F1 CD9E0C 17 delay 122 t states |
OR $00 ; 09F4 F600 7 .. |
NOP ; 09F6 00 4 . |
DEC E ; 09F7 1D 4 . |
JR NZ,Lb164 ; 09F8 20EC 7/12 .208 t states per bit |
At line 1,431 changed one line |
|
;high speed sio----------------------------- |
At line 1,433 changed one line |
LD B,$08 ; 09FC 0608 .. |
LD B,$08 ; 09FC 0608 8 bits |
At line 1,435 changed 2 lines |
LD D,$02 ; 0A01 1602 .. |
Lb165: RST 08H ; 0A03 CF . restart??? |
LD D,$02 ; 0A01 1602 mask byte data in /2 |
Lb165: RST 08H ; 0A03 CF get start bit |
; |
At line 1,438 changed 4 lines |
Lb166: RST 08H ; 0A06 CF . |
ADD A,$FF ; 0A07 C6FF .. |
RR C ; 0A09 CB19 .. |
DJNZ Lb166 ; 0A0B 10F9 .. |
Lb166: RST 08H ; 0A06 CF 11 . |
ADD A,$FF ; 0A07 C6FF 7 .. |
RR C ; 0A09 CB19 8 .. |
DJNZ Lb166 ; 0A0B 10F9 8/13 39 t states 89 t states best |
At line 1,446 changed one line |
CALL SSIOBYTE ; 0A11 CD230A .#. |
CALL SSIOBYTE ; 0A11 CD230A send byte sio |
At line 1,455 changed 36 lines |
CPL ; 0A23 2F / |
LD C,A ; 0A24 4F O |
Lb167: LD A,(STAT2) ; 0A25 3A0020 :. |
AND $20 ; 0A28 E620 command |
JR Z,Lb167 ; 0A2A 28F9 wait for command to go high |
LD A,($7815) ; 0A2C 3A1578 :.x |
OR A ; 0A2F B7 . |
JR NZ,Lb168 ; 0A30 2035 5 |
IN A,($05) ; 0A32 DB05 ..txd low |
LD E,$08 ; 0A34 1E08 .. 8 bits |
CALL Lb169 ; 0A36 CDA00C ... call return |
LD A,($7820) ; 0A39 3A2078 : x |
NEG ; 0A3C ED44 .D |
Lb170: LD A,R ; 0A3E ED5F ._ |
LD B,$06 ; 0A40 0606 .. |
CALL CDOWNDELAY ; 0A42 CD9E0C ...delay |
LD B,C ; 0A45 41 A |
LD A,C ; 0A46 79 y |
AND $01 ; 0A47 E601 ..first bit |
OR $04 ; 0A49 F604 .. set txd |
LD C,A ; 0A4B 4F O high or low with 1 |
IN A,(C) ; 0A4C ED78 .x send bit |
LD C,B ; 0A4E 48 H |
SRL C ; 0A4F CB39 .9 shift right |
CALL Lb169 ; 0A51 CDA00C ... call return delay |
DEC E ; 0A54 1D . |
JR NZ,Lb170 ; 0A55 20E7 . send 8 bits |
LD B,$08 ; 0A57 0608 .. |
CALL CDOWNDELAY ; 0A59 CD9E0C ... |
LD B,$00 ; 0A5C 0600 .. |
LD B,$00 ; 0A5E 0600 .. |
IN A,($04) ; 0A60 DB04 ..txd high |
LD B,$0E ; 0A62 060E .. |
JP CDOWNDELAY ; 0A64 C39E0C ... |
|
Lb168: PUSH HL ; 0A67 E5 . |
CPL ; 0A23 2F 4 invert accumlator |
LD C,A ; 0A24 4F 4 save to C |
Lb167: LD A,(STAT2) ; 0A25 3A0020 13 |
AND $20 ; 0A28 E620 7 command |
JR Z,Lb167 ; 0A2A 28F9 12/7 wait for command to go high |
LD A,($7815) ; 0A2C 3A1578 13 :.x |
OR A ; 0A2F B7 4 . |
JR NZ,Lb168 ; 0A30 2035 12/7 go send highspeed |
IN A,($05) ; 0A32 DB05 11 start bit |
LD E,$08 ; 0A34 1E08 7 .. 8 bits |
CALL Lb169 ; 0A36 CDA00C 17 delay 10 t states |
LD A,(CAUX12) ; 0A39 3A2078 13 : x |
NEG ; 0A3C ED44 8 .D |
Lb170: LD A,R ; 0A3E ED5F 9 ._ |
LD B,$06 ; 0A40 0606 7 .. |
CALL CDOWNDELAY ; 0A42 CD9E0C 17 delay 83 t states |
LD B,C ; 0A45 41 4 |
LD A,C ; 0A46 79 4 |
AND $01 ; 0A47 E601 7 ..first bit |
OR $04 ; 0A49 F604 7 .. set txd |
LD C,A ; 0A4B 4F 4 high or low with 1 |
IN A,(C) ; 0A4C ED78 12 .x send bit |
LD C,B ; 0A4E 48 4 H |
SRL C ; 0A4F CB39 8 .9 shift right |
CALL Lb169 ; 0A51 CDA00C 17 call return delay 10 t states |
DEC E ; 0A54 1D 4 . |
JR NZ,Lb170 ; 0A55 20E7 7/12 send 8 bits 209 t states per bit |
LD B,$08 ; 0A57 0608 7 .. |
CALL CDOWNDELAY ; 0A59 CD9E0C 17 delay 109 t states |
LD B,$00 ; 0A5C 0600 7 .. |
LD B,$00 ; 0A5E 0600 7 .. |
IN A,($04) ; 0A60 DB04 11 send stop bit |
LD B,$0E ; 0A62 060E 7 |
JP CDOWNDELAY ; 0A64 C39E0C 10 wait 187 t states |
; send highspeed ------------------------ |
Lb168: PUSH HL ; 0A67 E5 save HL |
At line 1,493 changed 12 lines |
LD HL,STAT2 ; 0A6B 210020 !. |
LD E,$01 ; 0A6E 1E01 .. |
LD C,$05 ; 0A70 0E05 .. set txd low???? |
RST 18H ; 0A72 DF .restart???? |
Lb171: LD C,$02 ; 0A73 0E02 .. |
SRL D ; 0A75 CB3A Shift right, bit 0 to carry |
RL C ; 0A77 CB11 rotete left, carry to bit 0 |
RST 18H ; 0A79 DF . |
DJNZ Lb171 ; 0A7A 10F7 .. |
LD C,$04 ; 0A7C 0E04 .. set txd high? |
RST 18H ; 0A7E DF . |
POP HL ; 0A7F E1 . |
LD HL,STAT2 ; 0A6B 210020 load sio reg to HL |
LD E,$01 ; 0A6E 1E01 clock out mask |
LD C,$05 ; 0A70 0E05 send start bit |
RST 18H ; 0A72 DF get start bit |
Lb171: LD C,$02 ; 0A73 0E02 7 send data base byte /2 |
SRL D ; 0A75 CB3A 8 Shift right, bit 0 to carry |
RL C ; 0A77 CB11 8 rotate left, carry to bit 0 |
RST 18H ; 0A79 DF 11 send bit |
DJNZ Lb171 ; 0A7A 10F7 8/13 47 t states 105 t states best total |
; to send one BIT |
LD C,$04 ; 0A7C 0E04 7 .. set txd high? |
RST 18H ; 0A7E DF 11 send stop bit |
POP HL ; 0A7F E1 restore HL |
At line 1,506 changed one line |
caculate-chksum: |
caculate-chksum: ;---------------------------------- |
At line 1,513 changed one line |
|
DATAINVERT: ;invert data in buffer------------- |
At line 1,517 changed one line |
LD HL,($7824) ; 0A8E 2A2478 *$x |
LD HL,(SECTORBUF) ; 0A8E 2A2478 *$x |
At line 1,526 changed one line |
|
;---------------------------------- |
At line 1,530 changed one line |
|
;---------------------------------- |
At line 1,534 changed one line |
|
; check if sector is 4 or greater------------------------------------------ |
At line 1,536 changed 2 lines |
LD A,($7820) ; 0AA8 3A2078 : x |
CP $04 ; 0AAB FE04 .. |
LD A,(CAUX12) ; 0AA8 3A2078 : x |
CP $04 ; 0AAB FE04 check if sector 4 |
At line 1,539 changed one line |
LD A,($7821) ; 0AAF 3A2178 :!x |
LD A,($7821) ; 0AAF 3A2178 2nd byte of CAUX12 |
At line 1,549 changed one line |
LEDNUM: |
LEDNUM: ;----------------------------------- |
At line 1,553 changed one line |
|
;----------------------------------- |
At line 1,583 changed one line |
GETLEDNUM: |
GETLEDNUM: ;------------------------------------- |
At line 1,590 changed one line |
|
;-------------------------------------- |
At line 1,668 added one line |
|
At line 1,600 changed 2 lines |
|
Lb69: LD ($7838),HL ; 0B05 223878 "8x |
;-------------------------------------- |
Lb69: LD (LEDERROR),HL ; 0B05 223878 "8x |
At line 1,679 added one line |
;-------------------------------------- |
At line 1,609 changed one line |
LD HL,($7838) ; 0B15 2A3878 *8x |
LD HL,(LEDERROR) ; 0B15 2A3878 *8x |
At line 1,709 added one line |
;CP/M INIT command enters here for buttons |
At line 1,637 changed one line |
LD A,(STAT1S) ; 0B45 3A3678 :6x |
LD A,(STAT1S) ; 0B45 3A3678 buttons status ram |
At line 1,639 changed one line |
LD A,(STAT1R) ; 0B49 3A0110 :.. |
LD A,(STAT1) ; 0B49 3A0110 :.. |
At line 1,647 changed 2 lines |
AND $70 ; 0B5A E670 .p buttons |
LD (STAT1S),A ; 0B5C 323678 26x |
AND $70 ; 0B5A E670 mask out all but buttons |
LD (STAT1S),A ; 0B5C 323678 save to ram |
At line 1,650 changed one line |
LD A,(STAT1) ; 0B60 3A0010 :.. |
LD A,(STAT1R) ; 0B60 3A0010 :.. |
At line 1,656 changed one line |
BIT 5,A ; 0B6A CB6F .o |
BIT 5,A ; 0B6A CB6F test ID button pressed |
At line 1,659 changed one line |
BIT 6,A ; 0B70 CB77 .w |
BIT 6,A ; 0B70 CB77 test ERROR button being pressed |
At line 1,661 changed one line |
BIT 6,C ; 0B74 CB71 .q |
BIT 6,C ; 0B74 CB71 test error button held |
At line 1,663 changed 2 lines |
LD HL,$86BF ; 0B78 21BF86 !.. |
LD ($7838),HL ; 0B7B 223878 "8x |
LD HL,$86BF ; 0B78 21BF86 E- front leds |
LD (LEDERROR),HL ; 0B7B 223878 set error for front leds |
At line 1,666 changed 4 lines |
Lb183: BIT 5,C ; 0B80 CB69 .i |
JR Z,Lb186 ; 0B82 282F (/ |
LD A,$FF ; 0B84 3EFF >. |
LD ($781C),A ; 0B86 321C78 2.x |
Lb183: BIT 5,C ; 0B80 CB69 test ID button held |
JR Z,Lb186 ; 0B82 282F get out if not |
LD A,$FF ; 0B84 3EFF yes. set load |
LD (CPMLOD),A ; 0B86 321C78 cpm flag. hold id, press error |
At line 1,671 changed 6 lines |
Lb182: BIT 4,C ; 0B8B CB61 .a |
JR Z,Lb186 ; 0B8D 2824 ($ |
LD A,$FF ; 0B8F 3EFF >. |
LD ($781B),A ; 0B91 321B78 2.x |
JR Lb186 ; 0B94 181D .. |
Lb184: BIT 5,C ; 0B96 CB69 .i |
Lb182: BIT 4,C ; 0B8B CB61 test TRACK button held |
JR Z,Lb186 ; 0B8D 2824 button pressed? |
LD A,$FF ; 0B8F 3EFF yes. hold track,press id |
LD (DENCST),A ; 0B91 321B78 Track and ID button status |
JR Lb186 ; 0B94 181D density change status |
Lb184: BIT 5,C ; 0B96 CB69 test ID button being held |
At line 1,678 changed 3 lines |
XOR A ; 0B9A AF . |
LD ($7819),A ; 0B9B 321978 2.x |
LD HL,DENFLG ; 0B9E 211778 !.x |
XOR A ; 0B9A AF hold id, press track |
LD ($7819),A ; 0B9B 321978 |
LD HL,DENFLG ; 0B9E 211778 change density |
At line 1,692 changed one line |
LD ($7837),A ; 0BB4 323778 27x |
LD ($7837),A ; 0BB4 323778 1=chck disk density.2=drive type? |
At line 1,694 changed 2 lines |
CALL beep ; 0BB8 CDDF0B ... |
Lb181: CALL Lb13 ; 0BBB CDCE0B ... |
CALL beep ; 0BB8 CDDF0B send beep |
Lb181: CALL DNUMSWITCH ; 0BBB CDCE0B get drive number switch |
At line 1,699 changed one line |
CALL NZ,Lb15 ; 0BC3 C4BE08 ... |
CALL NZ,Lb15 ; 0BC3 C4BE08 motor on |
At line 1,704 changed 2 lines |
|
Lb13: LD A,(STAT1R) ; 0BCE 3A0110 :.. |
;Gets drive number from dip switches |
DNUMSWITCH: |
LD A,(STAT1) ; 0BCE 3A0110 :.. |
At line 1,714 changed one line |
|
;--------------------------- |
;sends audio beep to consol |
At line 1,728 changed one line |
LD B,$88 ; 0BF2 0688 .. sets the DDen line |
LD B,$88 ; 0BF2 0688 A for front led |
At line 1,747 changed one line |
|
; this routine determins the FDC type and loads FDC commands to 780C,7810 |
At line 1,749 changed one line |
LD HL,$33 ; 0C15 213300 !3. |
LD HL,$0033 ; 0C15 213300 !3. |
At line 1,763 changed 8 lines |
;data..............................................FDC Commands |
DB $00 ; 0C37 00 Restore ? |
DB $88 ; 0C38 88 Read sector command |
DB $A8 ; 0C39 A8 Write sector command |
DB $C0 ; 0C3A C0 Read address cammand |
DB $F0 ; 0C3B F0 Write track command |
;........................................................ |
Lb45: LD HL,($7820) ; 0C3C 2A2078 * x |
;data..............................................FDC Commands 2797 |
DB $00 ; 0C37 00 Restore |
DB $88 ; 0C38 88 Read sector command, side = 0 |
DB $A8 ; 0C39 A8 Write sector command, side = 0 |
DB $C0 ; 0C3A C0 Read address command |
DB $F0 ; 0C3B F0 Write track command, side = 0 |
;................................................................................. |
; This routine makes sure sector required doesn't excede number of sectors on disk |
CHKSECTNUM: |
LD HL,(CAUX12) ; 0C3C 2A2078 * x |
At line 1,785 changed 4 lines |
|
Lb87: LD HL,($7820) ; 0C57 2A2078 * x |
DEC HL ; 0C5A 2B + |
LD BC,$1012 ; 0C5B 011210 ... |
; this routine get track and sector number of disk from total sector number |
; In command frame |
TRKSECT: |
Lb87: LD HL,(CAUX12) ; 0C57 2A2078 sector num from cmd frame |
DEC HL ; 0C5A 2B subtract 1 |
LD BC,$1012 ; 0C5B 011210 18 sectors per track in C |
At line 1,790 changed one line |
CP $02 ; 0C61 FE02 .. |
CP $02 ; 0C61 FE02 enhanced density? |
At line 1,792 changed one line |
LD C,$1A ; 0C65 0E1A .. 26 sectors per track? |
LD C,$1A ; 0C65 0E1A Yes. 26 sectors per track in C |
At line 1,794 changed 5 lines |
XOR A ; 0C69 AF . |
Lb198: SLA D ; 0C6A CB22 ." |
ADD HL,HL ; 0C6C 29 ) |
RLA ; 0C6D 17 . |
CP C ; 0C6E B9 . |
XOR A ; 0C69 AF zero A |
Lb198: SLA D ; 0C6A CB22 shift left to carry |
ADD HL,HL ; 0C6C 29 double sector number |
RLA ; 0C6D 17 rotate left accumlator |
CP C ; 0C6E B9 compare a with C |
At line 1,804 changed one line |
LD ($7823),A ; 0C76 322378 2#x |
LD (SECTORN),A ; 0C76 322378 2#x |
At line 1,807 changed one line |
LD ($7822),A ; 0C7B 322278 2"x |
LD (TRACKNUM),A ; 0C7B 322278 2"x |
At line 1,809 changed one line |
; read track to see if right sector will be read |
; read track register, multiply out and add sector register. 18/26 sectors allowed for |
At line 1,911 added one line |
;Countdown delay. load B with number and call here |
At line 1,832 changed 3 lines |
DJNZ CDOWNDELAY ; 0C9E 10FE .. |
Lb169: RET ; 0CA0 C9 . |
; calls to rouitines. routine number held in C |
DJNZ CDOWNDELAY ; 0C9E 10FE 8/13 |
Lb169: RET ; 0CA0 C9 10 . |
|
; calls to rouitines. routine number held in C. legal entry points for CPM etc |
At line 1,849 changed one line |
; pointers to routines |
;------------------------------------------------------------------------------ |
; pointers to routines. Used mostly for INDUS CP/M and DIAG program. |
; INDUS CP/M INIT disk jumps directly to routines in rom. |
;------------------------------------------------------------------------------ |
At line 1,853 changed 2 lines |
WORD XCMD1 ; 0CB8 CF04 3 $4CF No Idea . |
WORD XCMD2 ; 0CBA CB04 4 $4cb no idea |
WORD XCMD1 ; 0CB8 CF04 3 $4CF read sector |
WORD XCMD2 ; 0CBA CB04 4 $4cb write sector |
At line 1,856 changed one line |
WORD SSIOBYTE ; 0CBE 230A 6 $A23 Send sio byte |
WORD SSIOBYTE ; 0CBE 230A 6 $A23 Send sio byte |
At line 1,864 changed 2 lines |
WORD BC7824 ; 0CCE DC0C e $CDC BC=$7824. Status flag for ? |
WORD IX780C ; 0CD0 E00C f $CE0 IX=$780C. Status flag for ? |
WORD BC7824 ; 0CCE DC0C e $CDC Returns sector buffer pointer |
WORD IX780C ; 0CD0 E00C f $CE0 returns FDC Restore command |
At line 1,868 changed one line |
WORD LBCDE ; 0CD6 E50C 12 $CE5 BC =$780D,DE=$780E. flags for ? |
WORD LBCDE ; 0CD6 E50C 12 $CE5 returns FDC read/write sector commands |
At line 1,872 changed one line |
LD BC,$7824 ; 0CDC 012478 .$x |
LD BC,SECTORBUF ; 0CDC 012478 .$x |
At line 1,888 changed one line |
|
;---------------------------------------------------------------------------- |
;routines for startup test. |
At line 1,896 changed 2 lines |
Lb205: LD A,(STAT1) ; 0D04 3A0010 :.. front buttons |
LD A,(STAT1R) ; 0D07 3A0110 :.. |
Lb205: LD A,(STAT1R) ; 0D04 3A0010 :.. front buttons |
LD A,(STAT1) ; 0D07 3A0110 :.. |
At line 1,908 changed 2 lines |
Lb204: LD A,(STAT1) ; 0D1A 3A0010 :.. |
LD A,(STAT1R) ; 0D1D 3A0110 :.. |
Lb204: LD A,(STAT1R) ; 0D1A 3A0010 :.. |
LD A,(STAT1) ; 0D1D 3A0110 :.. |
At line 1,999 changed 2 lines |
LD A,(STAT1) ; 0DA6 3A0010 :.. |
LD A,(STAT1R) ; 0DA9 3A0110 :.. |
LD A,(STAT1R) ; 0DA6 3A0010 :.. |
LD A,(STAT1) ; 0DA9 3A0110 :.. |
At line 2,061 changed one line |
POP IY ; 0E20 FDE1 .. |
POP IY ; 0E20 FDE1 ..index register test |
At line 2,175 changed one line |
NOP ; 0F11 00 . |
NOP ; 0F11 00 .test interupt circuit |
At line 2,208 changed one line |
LDIR ; 0F4A EDB0 .. |
LDIR ; 0F4A EDB0 ..clear ram |
At line 2,268 changed 2 lines |
LD A,(STAT1) ; 0FB3 3A0010 :.. |
LD A,(STAT1R) ; 0FB6 3A0110 :.. |
LD A,(STAT1R) ; 0FB3 3A0010 :.. |
LD A,(STAT1) ; 0FB6 3A0110 :.. |
At line 2,319 changed 6 lines |
;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
;³ DISASSEMBLED FILE - DONE WITH DISASM 1.0á ³ |
;³ Date: 22-06-2008 Time: 16:41 ³ |
;³ (c) 1996 Channex aka Lasse S. Tassing ³ |
;³ Email: ltassing.ite.dk ³ |
;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
;⁄ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒø |
;≥ DISASSEMBLED FILE - DONE WITH DISASM 1.0· ≥ |
;≥ Date: 22-06-2008 Time: 16:41 ≥ |
;≥ (c) 1996 Channex aka Lasse S. Tassing ≥ |
;≥ Email: ltassing.ite.dk ≥ |
;¿ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒŸ |
At line 2,326 changed one line |
; Ä[CODE]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
; ƒ[CODE]ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ |
At line 2,390 changed 2 lines |
LD C,$08 ; 7BD9 0E08 .. |
LD A,($7817) ; 7BDB 3A1778 :.x |
|
LD C,$08 ; 7BD9 0E08 .. patched |
LD A,($DENFLG) ; 7BDB 3A1778 :.x |
At line 2,486 added 3 lines |
NOP ; 7BE8 00 . |
NOP ; 7BE9 00 . |
NOP ; 7BEA 00 . |
At line 2,400 changed one line |
NOP ; 7BEC 00 . |
NOP ; 7BEC 00 . end patched |
|
; LD A,($6000) ; 7BD9 3A0060 orignal version |
; AND $40 ; 7BDC E640 .@ |
; ADD A,$FF ; 7BDE C6FF .. |
; SBC A,A ; 7BE0 9F . |
; AND $08 ; 7BE1 E608 .. |
; LD C,A ; 7BE3 4F O |
; LD A,($7817) ; 7BE4 3A1778 :.x |
; ADD A,$FF ; 7BE7 C6FF .. |
; SBC A,A ; 7BE9 9F . |
; AND $20 ; 7BEA E620 . |
; LD B,A ; 7BEC 47 end orignal version |
|
At line 2,405 changed one line |
LD HL,$7942 ; 7BF4 214279 !By |
LD HL,BUFFER ; 7BF4 214279 !By |
At line 2,420 changed one line |
LD HL,$7942 ; 7C0F 214279 Buffer |
LD HL,BUFFER ; 7C0F 214279 Buffer |
At line 2,425 changed one line |
CALL Lb13 ; 7C1A CD3C0C .<. read |
CALL CHKSECTNUM ; 7C1A CD3C0C .<. read |
At line 2,444 changed one line |
CALL Lb49 ; 7C3D CD890A ... |
CALL DATAINVERT ; 7C3D CD890A ... |
At line 2,450 changed 2 lines |
LD HL,($7824) ; 7C48 2A2478 source sector buffer? |
LD DE,$7942 ; 7C4B 114279 dest general buffer |
LD HL,(SECTORBUF) ; 7C48 2A2478 source sector buffer |
LD DE,BUFFER ; 7C4B 114279 dest general buffer |
At line 2,457 changed 2 lines |
LD HL,($7824) ; 7C5A 2A2478 pointer to sector buffer? |
LD DE,$7942 ; 7C5D 114279 general buffer |
LD HL,(SECTORBUF) ; 7C5A 2A2478 pointer to sector buffer |
LD DE,BUFFER ; 7C5D 114279 general buffer |
At line 2,475 changed one line |
LD DE,$7942 ; 7C80 114279 to buffer |
LD DE,BUFFER ; 7C80 114279 to buffer |
At line 2,493 changed one line |
LD HL,$7942 ; 7C9F 214279 load buffer |
LD HL,BUFFER ; 7C9F 214279 load buffer |
At line 2,501 changed 2 lines |
LD HL,$7942 ; 7CAE 214279 !By |
CALL Lb25 ; 7CB1 CD437E .C~ |
LD HL,BUFFER ; 7CAE 214279 !By |
CALL Lb25a ; 7CB1 CD437E .C~ |
At line 2,510 changed one line |
Lb28a: LD ($7817),A ; 7CC4 321778 2.x |
Lb28a: LD ($DENFLG),A ; 7CC4 321778 2.x |
At line 2,515 removed 2 lines |
|
LD A,$4E ; 7CD2 3E4E Never gets here. wasted bytes |
At line 2,518 changed one line |
LD L,$00 ; 7CD4 2E00 .. format |
LD A,$4E ; 7CD2 3E4E format |
LD L,$00 ; 7CD4 2E00 .. |
At line 2,522 changed one line |
LD A,($7817) ; 7CDA 3A1778 :.x |
LD A,($DENFLG) ; 7CDA 3A1778 :.x |
At line 2,527 changed one line |
JR Lb29 ; 7CE4 1800 .. |
JR Lb29a ; 7CE4 1800 .. |
At line 2,530 changed one line |
LD HL,$7817 ; 7CEA 211778 !.x |
LD HL,$DENFLG ; 7CEA 211778 !.x |
At line 2,539 changed one line |
LD A,($7817) ; 7CFD 3A1778 :.x |
LD A,($DENFLG) ; 7CFD 3A1778 :.x |
At line 2,554 changed one line |
LD ($7817),A ; 7D15 321778 2.x |
LD ($DENFLG),A ; 7D15 321778 2.x |
At line 2,559 changed one line |
LD ($7820),HL ; 7D24 222078 " x |
LD (CAUX12),HL ; 7D24 222078 " x |
At line 2,562 changed one line |
LD ($7822),A ; 7D2B 322278 2"x |
LD (TRACKNUM),A ; 7D2B 322278 2"x |
At line 2,564 changed one line |
LD HL,$7942 ; 7D2F 214279 !By |
LD HL,BUFFER ; 7D2F 214279 !By |
At line 2,570 changed one line |
LD ($7828),A ; 7D3B 322878 2(x |
LD (CDLOOP2),A ; 7D3B 322878 2(x |
At line 2,580 changed one line |
LD HL,$7828 ; 7D51 212878 !(x |
LD HL,CDLOOP2 ; 7D51 212878 !(x |
At line 2,590 changed one line |
LD HL,$7822 ; 7D69 212278 !"x |
LD HL,TRACKNUM ; 7D69 212278 !"x |
At line 2,716 added one line |
|
At line 2,618 changed one line |
DB $0E,$12,$03 ; 7D9C 0E1203 .. |
DB $0E,$12,$03 ; 7D9C 0E1203 |
At line 2,620 changed one line |
DB $80 ; 7DA2 80 . |
|
DB $80 ; 7DA2 80 |
|
At line 2,626 changed one line |
DB $10,$0B,$06 ; 7DB2 100B06 |
DB $10,$0B,$06 ; 7DB2 100B06 |
|
At line 2,635 changed 2 lines |
LD ($7822),A ; 7DC1 322278 2"x |
LD IY,$7942 ; 7DC4 FD214279 .!By |
LD (TRACKNUM),A ; 7DC1 322278 2"x |
LD IY,BUFFER ; 7DC4 FD214279 .!By |
At line 2,643 changed 2 lines |
LD ($7828),A ; 7DDA 322878 2(x |
Lb55a: LD HL,($7824) ; 7DDD 2A2478 *$x |
LD (CDLOOP2),A ; 7DDA 322878 2(x |
Lb55a: LD HL,(SECTORBUF) ; 7DDD 2A2478 sector buf pointer |
At line 2,653 changed one line |
LD HL,$7828 ; 7DF3 212878 !(x |
LD HL,CDLOOP2 ; 7DF3 212878 !(x |
At line 2,670 changed one line |
LD HL,$7822 ; 7E1A 212278 !"x |
LD HL,TRACKNUM ; 7E1A 212278 !"x |
At line 2,678 changed one line |
Lb17a: CALL Lb45 ; 7E28 CD3C0C .<. |
Lb17a: CALL CHKSECTNUM ; 7E28 CD3C0C .<. |
At line 2,686 changed one line |
LD HL,($7824) ; 7E40 2A2478 *$x |
LD HL,(SECTORBUF) ; 7E40 2A2478 sector buf pointer |
;--------------------------------------------------------------------------------- |
; This section is for Highspeed Send/recieve. 58 t states used to send/recieve each bit |
; 68965.5 baud. Pokey divisor 6=68209-pal, 68730-ntsc/68965 |
At line 2,688 changed one line |
Lb25: PUSH BC ; 7E43 C5 number of bytes to get |
Lb25a: PUSH BC ; 7E43 C5 number of bytes to get |
At line 2,723 changed 8 lines |
Lb64a: CP (HL) ; 7E6F BE . |
CP (HL) ; 7E70 BE . |
NOP ; 7E71 00 . |
NOP ; 7E72 00 . |
LD I,A ; 7E73 ED47 .G |
CP (HL) ; 7E75 BE . |
RR C ; 7E76 CB19 rotate bit to carry to byte |
JR C,Lb64a ; 7E78 38F5 get next bit till bit 8 then get out of loop |
Lb64a: CP (HL) ; 7E6F BE 7 . |
CP (HL) ; 7E70 BE 7 . |
NOP ; 7E71 00 4 . |
NOP ; 7E72 00 4 . |
LD I,A ; 7E73 ED47 9 .58 t states for recieve loop one bit |
CP (HL) ; 7E75 BE 7 . |
RR C ; 7E76 CB19 8 rotate bit to carry to byte |
JR C,Lb64a ; 7E78 38F5 7/12 get next bit till bit 8 then get out of loop |
At line 2,745 changed one line |
LD HL,$7942 ; 7E8D 214279 !By |
LD HL,BUFFER ; 7E8D 214279 !By |
At line 2,751 changed one line |
LD HL,($7824) ; 7E97 2A2478 *$x |
LD HL,(SECTORBUF) ; 7E97 2A2478 sector buff pointer |
; |
;-------------------------------------------------------------------------- |
;following 5 instructions have been swapped around by ICD for timing issues with SDX. |
;orignal code follows |
;------------------------------------------------------------------------- |
; |
At line 2,753 changed 3 lines |
CALL SENDBYTEHS ; 7E9A CDCC7E ..~ |
LD C,B ; 7E9D 48 H |
LD B,$5A ; 7E9E 065A .Z |
CALL SENDBYTEHS ; 7E9A CDCC7E patched |
LD C,B ; 7E9D 48 save B |
LD B,$5A ; 7E9E 065A count 5A |
At line 2,757 changed one line |
LD B,C ; 7EA3 41 A |
LD B,C ; 7EA3 41 end patched |
|
;SIOHIGHSPEED |
; LD C,B ; 7E9A 48 orignal version |
; LD B,$5A ; 7E9B 065A .Z |
; CALL CDOWNDELAY ; 7E9D CD9E0C ... |
; LD B,C ; 7EA0 41 A |
; CALL SENDBYTEHS ; 7EA1 CDCC7E end orignal version |
|
At line 2,764 changed 4 lines |
Lb68a: LD A,(HL) ; 7EAC 7E load byte to send |
CALL SENDBYTEHS ; 7EAD CDCC7E send data |
INC HL ; 7EB0 23 point to next byte |
DJNZ Lb68a ; 7EB1 10F9 all data? |
Lb68a: LD A,(HL) ; 7EAC 7E 7 load byte to send |
CALL SENDBYTEHS ; 7EAD CDCC7E 17 send data |
INC HL ; 7EB0 23 11 point to next byte |
DJNZ Lb68a ; 7EB1 10F9 13/8 all data? |
At line 2,773 changed one line |
CALL SSIOBYTE ; 7EBA CD230A Send byte at 19200 |
CALL SSIOBYTE ; 7EBA CD230A Send byte at 19200 |
At line 2,782 changed 20 lines |
EXX ; 7ECC D9 . |
CPL ; 7ECD 2F invert data in A |
LD D,A ; 7ECE 57 store byte to send in D |
LD E,$02 ; 7ECF 1E02 base byte divided by 2 |
IN A,($05) ; 7ED1 DB05 start bit? |
LD B,$08 ; 7ED3 0608 Number of bits |
NEG ; 7ED5 ED44 zero a? |
Lb70a: RR D ; 7ED7 CB1A rotate bit to carry |
LD C,E ; 7ED9 4B load base byte |
RL C ; 7EDA CB11 rotate carry to base Byte.X base by 2 |
IN A,(C) ; 7EDC ED78 send bit to sio buss |
LD I,A ; 7EDE ED47 timing |
NOP ; 7EE0 00 instructions |
DJNZ Lb70a ; 7EE1 10F4 dec B and jump if not zero |
LD I,A ; 7EE3 ED47 timing |
LD I,A ; 7EE5 ED47 instructions |
NEG ; 7EE7 ED44 |
IN A,($04) ; 7EE9 DB04 send stop bit |
EXX ; 7EEB D9 . |
RET ; 7EEC C9 . |
EXX ; 7ECC D9 4 . |
CPL ; 7ECD 2F 4 invert data in A |
LD D,A ; 7ECE 57 4 store byte to send in D |
LD E,$02 ; 7ECF 1E02 7 base byte divided by 2 |
IN A,($05) ; 7ED1 DB05 11 send start bit |
LD B,$08 ; 7ED3 0608 7 Number of bits |
NEG ; 7ED5 ED44 8 delay |
Lb70a: RR D ; 7ED7 CB1A 8 rotate bit to carry |
LD C,E ; 7ED9 4B 4 load base byte |
RL C ; 7EDA CB11 8 rotate carry to base Byte.X base by 2 |
IN A,(C) ; 7EDC ED78 12 send bit to sio buss |
LD I,A ; 7EDE ED47 9 timing. 58 t states to send each bit |
NOP ; 7EE0 00 4 instructions |
DJNZ Lb70a ; 7EE1 10F4 8/13 dec B and jump if not zero |
LD I,A ; 7EE3 ED47 4 timing |
LD I,A ; 7EE5 ED47 4 instructions |
NEG ; 7EE7 ED44 8 |
IN A,($04) ; 7EE9 DB04 11 send stop bit |
EXX ; 7EEB D9 4 |
RET ; 7EEC C9 10 |
At line 2,805 changed 6 lines |
;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
;³ DISASSEMBLED FILE - DONE WITH DISASM 1.0á ³ |
;³ Date: 22-06-2008 Time: 15:16 ³ |
;³ (c) 1996 Channex aka Lasse S. Tassing ³ |
;³ Email: ltassing.ite.dk ³ |
;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
;⁄ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒø |
;≥ DISASSEMBLED FILE - DONE WITH DISASM 1.0· ≥ |
;≥ Date: 22-06-2008 Time: 15:16 ≥ |
;≥ (c) 1996 Channex aka Lasse S. Tassing ≥ |
;≥ Email: ltassing.ite.dk ≥ |
;¿ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒŸ |
At line 2,941 added 2 lines |
|
; add stuff in here |
At line 2,828 changed one line |
; Ä[CODE]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
; ƒ[CODE]ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ |
At line 2,886 changed 2 lines |
LD A,($1000) ; 7F62 3A0010 :.. |
LD A,($1001) ; 7F65 3A0110 :.. |
LD A,(STAT1R) ; 7F62 3A0010 :.. |
LD A,(STAT1) ; 7F65 3A0110 :.. |
At line 2,889 changed one line |
JR NZ,Lb3 ; 7F6A 2010 if track button held, dont load |
JR NZ,Lb3c ; 7F6A 2010 if track button held, dont load |
At line 3,060 added one line |
JR NZ,Lb10a ; 00B1 2018 . |
At line 2,946 changed one line |
SCF ; 7FCB 37 set carry flag |
Lb10a SCF ; 7FCB 37 set carry flag |
At line 2,956 changed 2 lines |
DB $ED,7E ; 7FD9 ED7E word end of syncro code +1. free ram start address |
DB $31,$FC,$D9 ; 7FDB 31FC word jump to ram |
DB $ED,$7E ; 7FD9 ED7E word end of syncro code +1. free ram start address |
DB $31,$FC ; 7FDB 31FC word jump to ram |
At line 2,966 changed 6 lines |
;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
;³ DISASSEMBLED FILE - DONE WITH DISASM 1.0á ³ |
;³ Date: 30-07-2008 Time: 18:20 ³ |
;³ (c) 1996 Channex aka Lasse S. Tassing ³ |
;³ Email: ltassing.ite.dk ³ |
;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
;⁄ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒø |
;≥ DISASSEMBLED FILE - DONE WITH DISASM 1.0· ≥ |
;≥ Date: 30-07-2008 Time: 18:20 ≥ |
;≥ (c) 1996 Channex aka Lasse S. Tassing ≥ |
;≥ Email: ltassing.ite.dk ≥ |
;¿ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒŸ |
At line 2,973 changed one line |
; Ä[CODE]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
; ƒ[CODE]ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ |
At line 2,980 changed one line |
LD A,($1001) ; FBDB 3A0110 :.. |
LD A,(STAT1) ; FBDB 3A0110 :.. |
At line 3,104 changed one line |
Lb19d: LD A,($7822) ; FCC1 3A2278 :"x |
Lb19d: LD A,(TRACKNUM) ; FCC1 3A2278 :"x |
At line 3,107 changed one line |
LD A,($7823) ; FCC7 3A2378 :#x |
LD A,(SECTORN) ; FCC7 3A2378 :#x |
At line 3,175 changed one line |
LD A,($7822) ; FD43 3A2278 :"x |
LD A,(TRACKNUM) ; FD43 3A2278 :"x |
At line 3,216 changed one line |
Lb34d: LD A,($7822) ; FD86 3A2278 :"x |
Lb34d: LD A,(TRACKNUM) ; FD86 3A2278 :"x |
At line 3,224 changed one line |
LD A,($7823) ; FD9C 3A2378 :#x |
LD A,(SECTORN) ; FD9C 3A2378 :#x |
At line 3,242 changed one line |
Lb38d: LD A,($7822) ; FDBD 3A2278 :"x |
Lb38d: LD A,(TRACKNUM) ; FDBD 3A2278 :"x |
At line 3,245 changed one line |
LD A,($7823) ; FDC3 3A2378 :#x |
LD A,(SECTORN) ; FDC3 3A2378 :#x |
At line 3,262 changed one line |
LD DE,($7824) ; FDE8 ED5B2478 .[$x |
LD DE,(SECTORBUF) ; FDE8 ED5B2478 .[$x |
At line 3,272 changed one line |
LD A,($7822) ; FDFC 3A2278 :"x |
LD A,(TRACKNUM) ; FDFC 3A2278 :"x |
At line 3,279 changed 2 lines |
Lb32d: CALL Lb15 ; FE06 CDBE08 ... |
CALL Lb63 ; FE09 CDF407 ... |
Lb32d: CALL Lb15 ; FE06 CDBE08 turn motor on |
CALL Lb63 ; FE09 CDF407 step to track |
At line 3,282 changed one line |
LD ($7828),A ; FE0E 322878 2(x |
LD (CDLOOP2),A ; FE0E 322878 2(x |
At line 3,285 changed one line |
CALL Lb111 ; FE17 CDD805 ... |
CALL Lb111 ; FE17 CDD805 read sector data |
At line 3,287 changed one line |
CALL Lb14 ; FE1C CD3509 .5. |
CALL Lb14 ; FE1C CD3509 reset FDC |
At line 3,289 changed one line |
Lb47d: CALL Lb80 ; FE21 CD6809 .h. |
Lb47d: CALL Lb80 ; FE21 CD6809 wait for FDC |
At line 3,292 changed one line |
LD HL,$7828 ; FE28 212878 !(x |
LD HL,CDLOOP2 ; FE28 212878 !(x |
At line 3,300 changed one line |
LD A,($7817) ; FE37 3A1778 :.x |
LD A,($DENFLG) ; FE37 3A1778 :.x |
At line 3,322 changed one line |
CALL Lb76 ; FE59 CDB807 ... |
CALL Lb76 ; FE59 CDB807 load track to FDC |
At line 3,337 changed one line |
LD ($7828),A ; FE79 322878 2(x |
LD (CDLOOP2),A ; FE79 322878 2(x |
At line 3,341 changed one line |
CALL Lb78 ; FE7F CDD505 ... |
CALL Lb78 ; FE7F CDD505 read sector |
At line 3,343 changed one line |
CALL Lb80 ; FE84 CD6809 .h. |
CALL Lb80 ; FE84 CD6809 wait for fdc |
At line 3,345 changed one line |
Lb59d: CALL Lb14 ; FE89 CD3509 .5. |
Lb59d: CALL Lb14 ; FE89 CD3509 reset FDC |
At line 3,349 changed one line |
LD HL,$7828 ; FE92 212878 !(x |
LD HL,CDLOOP2 ; FE92 212878 !(x |
At line 3,373 changed one line |
Lb35d: LD A,($7822) ; FEBA 3A2278 :"x |
Lb35d: LD A,(TRACKNUM) ; FEBA 3A2278 :"x |
At line 3,375 changed one line |
CALL Lb134 ; FEBF CDC30A ... |
CALL Lb134 ; FEBF CDC30A update track led display |
At line 3,384 removed one line |
|