Indus GT Firmware ROM Disassembly #

;⁄-------------------------------------------\
;| 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                    |
;\-------------------------------------------/
; IN $0,$1 = audio on 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
; IN $8,$9 = DDEN line on FDC High /Low
; IN $A,$B = Motor OFF/ON
; IN $C,$D = Generate Index pulse
; IN $E,$F = Enable/disable Ramcharger ram from $0000 to $7FFF
             Disable all hardware when ram is enabled

        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
        COMMANDFDC = $6000              ;Command register FDC write
        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
        RESTORE = $780C                 ;Restore command FDC
        READSECT = $780D                ;Read sector command FDC
        WRITESECT = $780E               ;Write sector command FDC
        READADDR = $780F                ;Read address command FDC
        WRITETRK = $7810                ;Write track command FDC
        INTENB = $7811              	;enable major interupt rountine
        UNUSED1 = $7812                 ;contains $FB. not used
        UNUSED2 = $7813                 ;Contains $FB. not used
        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
        DENFLG = $7817              	;density flag 0=Single,1=Double,2=enhanced
        MOTORF = $7818                  ;Motor on off flag
	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
        FMTTOT = $781D              	;Format time out value. used for status command only
        STATUS0 = $781E                 ;Byte zero of status returned to consol
        FDCSTA = $781F              	;FDC status register copy
        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
        STAT1S = $7836                  ;Store for stat1 current state
        LEDERROR = $7838                ;Error store for front leds 2 bytes
        TLEDNUM1 = $783A                ;Track led number store 1
        TLEDNUM2 = $783B                ;track leb number store 2
        DENLET = $783C              	;led display for density A,b,C
        DNMLED = $783D              	;Drive number led pattern store
        BUSYLD = $783F			;Busy led status
        FREERAM = $7840                 ;pointer to first byte of free ram
        SECTBUF = $7842                 ;256 byte sector buffer 256 bytes
        BUFFER = $7942              	;General purpous Buffer 256 bytes
        STACKSAVE = $7A42               ;Stack pointer Save word
        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]ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ
; LABEL INSTR.  PARAMETER(s)              ADR/OPCODE    ASCII
        ORG     0000H
        DI                              ; 0000 F3       reset vector
        JP      Lb0                     ; 0001 C33B0D   jump to test routine
Lba:    JP      Lb1                     ; 0004 C3A10C   legal vector
        NOP                             ; 0007 00       .
;------------------------------------------------------------------------
                                        ; 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           
Lb4:    DEC     BC                      ; 0012 0B       .
        LD      A,B                     ; 0013 78       x
        OR      C                       ; 0014 B1       .
        JR      NZ,Lb4                  ; 0015 20FB      .
        RET                             ; 0017 C9       .
;------------------------------------------------------------------------
                                        ; 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

LDTBL                                   ;Led display table bit patterns. inverted.
                                        ;Bit 0 = top bar, bit 1= top right
                                        ;bit 2 = bottom right. bit 3 = bottom
                                        ;bit 4 = bottom left. bit 5 = top left
                                        ;bit 6 = middle bar
        DB $C0                          ; 0023 C0       0
        DB $F9                          ; 0024 F9       1
        DB $A4                          ; 0025 A4       2
        DB $B0                          ; 0026 B0       3
        DB $99                          ; 0027 99       4
        DB $92                          ; 0028 92       5
        DB $82                          ; 0029 82       6
        DB $F8                          ; 002A F8       7
        DB $80                          ; 002B 80       8
        DB $98                          ; 002C 98       9
        DB $88                          ; 002D 88       A
        DB $83                          ; 002E 83       b
        DB $C6                          ; 002F C6       C
        DB $A1                          ; 0030 A1       d
        DB $86                          ; 0031 86       E
        DB $8E                          ; 0032 8E       F
                                        ; 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

;processor interupt starts here
        JP      RINVEC                  ; 0038 C30078   Jump to ram interupt vector
INTCONT PUSH    AF                      ; 003B F5       continues here. save A and F onto stack
        LD      A,(INTENB)              ; 003C 3A1178   ready to do interupt?
        OR      A                       ; 003F B7       set flags
        JR      NZ,Lb8                  ; 0040 203E     jump relative if not
        PUSH    BC                      ; 0042 C5       save registers
        PUSH    DE                      ; 0043 D5       onto stack
        PUSH    HL                      ; 0044 E5       .
        EX      AF,A'F'                 ; 0045 08       .
        PUSH    AF                      ; 0046 F5       .
        EXX                             ; 0047 D9       and 2ndery registers
        PUSH    BC                      ; 0048 C5       .
        PUSH    DE                      ; 0049 D5       .
        PUSH    HL                      ; 004A E5       .
        PUSH    IX                      ; 004B DDE5     ..
        PUSH    IY                      ; 004D FDE5     ..
        LD      HL,(STACKSAVE)          ; 004F 2A427A   temp stack pointer?
        LD      A,L                     ; 0052 7D       }
        OR      H                       ; 0053 B4       .
        JR      NZ,Lb9                  ; 0054 2004      .
        ADD     HL,SP                   ; 0056 39       9
        LD      (STACKSAVE),HL          ; 0057 22427A   save stack to 7a42
Lb9:    LD      SP,STACKI               ; 005A 31847B   set stack to 7b84
        EI                              ; 005D FB       .
        CALL    Lb10                    ; 005E CD6D01   get command frame and excaute
        XOR     A                       ; 0061 AF       .
        LD      (BUSYLD),A              ; 0062 323F78   2?x
        CALL    UPLED-1-2-B-E           ; 0065 CD120B   clear busy led?
        DI                              ; 0068 F3       .
        LD      HL,(STACKSAVE)          ; 0069 2A427A   recover stack pointer
        LD      SP,HL                   ; 006C F9       .put back in to SP
        LD      HL,$00                  ; 006D 210000   zero out
        LD      (STACKSAVE),HL          ; 0070 22427A   temp stack pointer
        POP     IY                      ; 0073 FDE1     ..
        POP     IX                      ; 0075 DDE1     ..
        POP     HL                      ; 0077 E1       .
        POP     DE                      ; 0078 D1       .
        POP     BC                      ; 0079 C1       .
        EXX                             ; 007A D9       .
        POP     AF                      ; 007B F1       .
        EX      AF,A'F'                 ; 007C 08       .
        POP     HL                      ; 007D E1       .
        POP     DE                      ; 007E D1       .
        POP     BC                      ; 007F C1       .
Lb8:    POP     AF                      ; 0080 F1       .
        EI                              ; 0081 FB       .
        RETI                            ; 0082 ED4D     .M
                                        ;Init 
Lb236:  IM      1                       ; 0084 ED56     interupt mode 1
        IN      A,($03)                 ; 0086 DB03     ..index
        IN      A,($04)                 ; 0088 DB04     ..TXD high
        IN      A,($06)                 ; 008A DB06     ..RXD high
        IN      A,($0A)                 ; 008C DB0A     ..motor off
        IN      A,($0C)                 ; 008E DB0C     ..ip 
        LD      SP,STACK                ; 0090 31847A   1.z stack pointer
        LD      A,$C3                   ; 0093 3EC3     >. set
        LD      (RINVEC),A              ; 0095 320078   2.x $7800
        LD      HL,INTCONT              ; 0098 213B00   !;. to
        LD      ($7801),HL              ; 009B 220178   ".x JP ($003B)
        LD      ($7803),A               ; 009E 320378   2.x set 7803 
        LD      HL,Lb169                ; 00A1 21A00C   !.. JP ($0CA0) RET
        LD      ($7804),HL              ; 00A4 220478   ".x set 7806
        LD      ($7806),A               ; 00A7 320678   2.x to JP($0CA0) RET
        LD      ($7807),HL              ; 00AA 220778   ".x set 7809
        LD      ($7809),A               ; 00AD 320978   2.x to JP($0CA0) RET
        LD      ($780A),HL              ; 00B0 220A78   ".x
        LD      A,$00                   ; 00B3 3E00     >.
        LD      ($7837),A               ; 00B5 323778   27x
        LD      A,(STAT1R)              ; 00B8 3A0010   :..
        LD      A,(STAT1)               ; 00BB 3A0110   :..
        LD      (STAT1S),A              ; 00BE 323678   26x
        AND     $04                     ; 00C1 E604     .. density switch
        ADD     A,$FF                   ; 00C3 C6FF     .. -1
        CCF                             ; 00C5 3F       complment carry flag
        SBC     A,A                     ; 00C6 9F       sub with carry. 
        AND     $01                     ; 00C7 E601     get low bit
        LD      ($7816),A               ; 00C9 321678   store in density byte
        XOR     A                       ; 00CC AF       . zero A
        LD      (STATUS0),A             ; 00CD 321E78   2.x
        LD      ($FDCSTA),A             ; 00D0 321F78   2.x
        LD      (CONTROL),A             ; 00D3 320030   2.0 steper motor
        LD      (BUSYLD),A              ; 00D6 323F78   2?x
        LD      (MOTORF),A              ; 00D9 321878   2.x
        LD      (DENFLG),A              ; 00DC 321778   2.x
        LD      ($7815),A               ; 00DF 321578   2.x
        LD      (DENCST),A              ; 00E2 321B78   2.x 
        LD      (CPMLOD),A              ; 00E5 321C78   2.x 
        LD      L,A                     ; 00E8 6F       o
        LD      H,A                     ; 00E9 67       g
        LD      (STACKSAVE),HL          ; 00EA 22427A   "Bz
        LD      ($782C),HL              ; 00ED 222C78   ",x
        LD      HL,$86BF                ; 00F0 21BF86   E- for front leds
        LD      (LEDERROR),HL           ; 00F3 223878   "8x
        LD      HL,$7842                ; 00F6 214278   !Bx
        LD      (SECTORBUF),HL          ; 00F9 222478   "$x pointer to buffer?
        LD      HL,$FFC2                ; 00FC 21C2FF   base counter for button read routine
        LD      ($782E),HL              ; 00FF 222E78   ".x
        LD      HL,$7B84                ; 0102 21847B   !.{ pointer to free ram?
        LD      (FREERAM),HL            ; 0105 224078   "@x
        DEC     A                       ; 0108 3D       =
        LD      ($7819),A               ; 0109 321978   2.x
        LD      (INTENB),A              ; 010C 321178   2.x
        LD      L,A                     ; 010F 6F       o
        LD      H,A                     ; 0110 67       g
        LD      ($7830),HL              ; 0111 223078   "0x
        LD      A,$FB                   ; 0114 3EFB     >.
        LD      (UNUSED1),A             ; 0116 321278   2.x
        LD      (UNUSED2),A             ; 0119 321378   2.x
        LD      A,$E0                   ; 011C 3EE0     format time out value. used for status command only
        LD      ($FMTTOT),A             ; 011E 321D78   store in Format timeout 
        LD      HL,$BFBF                ; 0121 21BFBF   -- for front led display
        LD      (TLEDNUM1),HL           ; 0124 223A78   ":x
        LD      (DENLET),HL             ; 0127 223C78   "<x
        CALL    Lb12                    ; 012A CD290B   .).
        CALL    DNUMSWITCH              ; 012D CDCE0B   ... drive number switch
        CALL    Lb14                    ; 0130 CD3509   .5. reset fdc?
        CALL    Lb15                    ; 0133 CDBE08   ... motor on?
        CALL    Lb16                    ; 0136 CDC107   ... step back to zero 
        LD      D,$08                   ; 0139 1608     ..
        CALL    Lb17                    ; 013B CDF007   ...step out to track 8?
        CALL    Lb16                    ; 013E CDC107   ...step back to track zero
        CALL    Lb18                    ; 0141 CD120C   Get FDC type. setup commands
        CALL    Lb19                    ; 0144 CD6D05   read sector 1, set density
        CALL    SETDENFLG               ; 0147 CDF20B   ...
        CALL    beep                    ; 014A CDDF0B   ... send audio beep
        EI                              ; 014D FB       enable interupts
        XOR     A                       ; 014E AF       zero A
        LD      (INTENB),A              ; 014F 321178   enable major interupt routine
;------------------------------------------------------------------- main wait loop
Lb27:   CALL    Lb22                    ; 0152 CD0678   wait loop call external
        CALL    Lb23                    ; 0155 CD440B   buttons
        CALL    Lb24                    ; 0158 CDE508   step out to track 40?
        LD      A,(DENCST)              ; 015B 3A1B78   :.x
        OR      A                       ; 015E B7       . set flags
        JR      Z,Lb25                  ; 015F 2807     (.
        CALL    Lb19                    ; 0161 CD6D05   go check density of disk
        XOR     A                       ; 0164 AF       . zero A
        LD      (DENCST),A              ; 0165 321B78   2.x
Lb25:   CALL    Lb26                    ; 0168 CDD401   ...
        JR      Lb27                    ; 016B 18E5     .. end wait loop
;----------------------------------------------------------------------------
Lb10:   IN      A,($04)                 ; 016D DB04     ..TXD high
        XOR     A                       ; 016F AF       zero A
        LD      ($7815),A               ; 0170 321578   2.x
        CALL    Lb28                    ; 0173 CD1802   ... check for command signal
        RET     NZ                      ; 0176 C0       .
        CALL    Lb29                    ; 0177 CDFD01   ... call get command frame
        RET     NZ                      ; 017A C0       . get out if drive num don't match
                                        ;jump to command routine------------------------------------
        LD      (CAUX12),DE             ; 017B ED532078  de=command frame aux bytes
        LD      A,$FF                   ; 017F 3EFF     >.b= device num c=command
        LD      (BUSYLD),A              ; 0181 323F78   2?x
        CALL    UPLED-1-2-B-E           ; 0184 CD120B   ...? set busy led?
        CALL    Lb30                    ; 0187 CD0978   call external command routine
        LD      A,C                     ; 018A 79       y
        RLCA                            ; 018B 07       .
        SBC     A,A                     ; 018C 9F       .
        LD      ($7814),A               ; 018D 321478   2.x
        LD      A,C                     ; 0190 79       y
        AND     $7F                     ; 0191 E67F     remove high bit
        LD      C,A                     ; 0193 4F       O
        LD      B,$09                   ; 0194 0609     number of commands 
        LD      HL,$1B9                 ; 0196 21B901   pointer to start of cmd table
Lb32:   LD      A,(HL)                  ; 0199 7E       load command
        INC     HL                      ; 019A 23       inc pointer
        CP      C                       ; 019B B9       command match?
        JR      Z,Lb31                  ; 019C 2806     get out if equal
        INC     HL                      ; 019E 23       inc pointer
        INC     HL                      ; 019F 23       inc pointer
        DJNZ    Lb32                    ; 01A0 10F7     Dec B and loop if not zero
        JR      Lb33                    ; 01A2 1808     no commands matched. go nend Nak
Lb31:   LD      A,(HL)                  ; 01A4 7E       load HL with jump address
        INC     HL                      ; 01A5 23       
        LD      H,(HL)                  ; 01A6 66       
        LD      L,A                     ; 01A7 6F       
        CALL    Lb34                    ; 01A8 CDB801   call command
        RET     Z                       ; 01AB C8       .
Lb33:   LD      BC,$82                  ; 01AC 018200   delay number
        CALL    Lb4                     ; 01AF CD1200   jump to delay
        LD      A,$4E                   ; 01B2 3E4E     load 'N'AK
        CALL    SSIOBYTE                ; 01B4 CD230A   go send byte  sio
        RET                             ; 01B7 C9       .

Lb34:   JP      (HL)                    ; 01B8 E9       jump command

        DB $4E                          ; 01B9 4E       command N
        WORD GETBLOCK                   ; 01BA 0103
        DB $4F                          ; 01BA 4f       command o
        WORD PUTBLOCK                   ; 01BD 4A03
        DB $50                          ; 01BF 50       Put
        WORD PUT                        ; 01C0 8D02
        DB $52                          ; 01C2 52       read
        WORD READ                       ; 01C3 7902
        DB $53                          ; 01C5 53       S status
        WORD STATUS                     ; 01C6 2502
        DB $57                          ; 01C8 57       W write
        WORD WRITE                      ; 01C9 9602     
        DB $58                          ; 01CB 58       command X
        WORD EXTERNALCMD                ; 01CC D802
        DB $21                          ; 01CE 21       format
        WORD FORMAT                     ; 01CF 8B03
        DB $22                          ; 01D1 22       format enhanced
        WORD FORMATENH                  ; 01D2 7E03
                                        ;----------------------------------
                                        ;CP/M LOAD button status check 
Lb26:   LD      A,(CPMLOD)              ; 01D4 3A1C78   :.x
        OR      A                       ; 01D7 B7       set flags
        RET     Z                       ; 01D8 C8       .
                                        ;load CP/M------------------------
        CALL    Lb36                    ; 01D9 CD6005   check if disk changed and test
        LD      HL,(SECTORBUF)          ; 01DC 2A2478   save buffer
        PUSH    HL                      ; 01DF E5       .
        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
        POP     HL                      ; 01EF E1       .
        LD      (SECTORBUF),HL          ; 01F0 222478   "$x
        CP      $43                     ; 01F3 FE43     .C complete
        CALL    Z,Lb38                  ; 01F5 CC007F   ... call $7f00
        XOR     A                       ; 01F8 AF       .
        LD      (CPMLOD),A              ; 01F9 321C78   2.x
        RET                             ; 01FC C9       .
                                        ;----------------------------------------
                                        ; Command frame recieve, test and run
Lb29:   LD      HL,BUFFER               ; 01FD 214279   place to put command frame
        LD      B,$04                   ; 0200 0604     num of bytes to get?
        CALL    Lb39                    ; 0202 CD7C09   get command frame
        CALL    NZ,Lb40                 ; 0205 C49A0A   ... ??
        CALL    DNUMSWITCH              ; 0208 CDCE0B   ... get drive number switch
        LD      BC,BUFFER               ; 020B ED4B4279 device/command
        LD      DE,($7944)              ; 020F ED5B4479 aux bytes 1/2
        LD      L,B                     ; 0213 68       h
        LD      B,C                     ; 0214 41       A b= device number
        LD      C,L                     ; 0215 4D       M c= command
        CP      B                       ; 0216 B8       . compare command with device num
        RET                             ; 0217 C9       .

Lb28:   LD      B,$0A                   ; 0218 060A     ..
Lb41:   LD      A,(STAT2)               ; 021A 3A0020   :. valid 
        AND     $30                     ; 021D E630     .0 command signal?
        CP      $10                     ; 021F FE10     ..
        RET     NZ                      ; 0221 C0       .

        DJNZ    Lb41                    ; 0222 10F6     ..
        RET                             ; 0224 C9       .
STATUS
        CALL    Lb42                    ; 0225 CD0F0A   Send Ack
        CALL    Lb36                    ; 0228 CD6005   .`.
        CALL    Lb14                    ; 022B CD3509   .5.
        LD      A,(STATUSFDC)           ; 022E 3A0060   :.`
        AND     $40                     ; 0231 E640     keep bit 6 of fdc status register. write protect
        ADD     A,$FF                   ; 0233 C6FF     3F plus carry
        SBC     A,A                     ; 0235 9F       either 0 or FF depending on carry
        AND     $08                     ; 0236 E608     keep bit 3
        LD      C,A                     ; 0238 4F       O
        LD      A,(DENFLG)              ; 0239 3A1778   :.x
        OR      A                       ; 023C B7       set flags
        JR      Z,Lb43                  ; 023D 2805     (.
        ADD     A,$FE                   ; 023F C6FE     ..
        RRA                             ; 0241 1F       .
        AND     $A0                     ; 0242 E6A0     only get bits 7 and 5
Lb43:   LD      B,A                     ; 0244 47       G
        LD      A,(STATUS0)             ; 0245 3A1E78   :.x
        AND     $57                     ; 0248 E657     Bits 6,4,2,1,0
        OR      B                       ; 024A B0       .
        OR      C                       ; 024B B1       .
        LD      HL,BUFFER               ; 024C 214279   !By
        LD      (HL),A                  ; 024F 77       w
        INC     HL                      ; 0250 23       #
        CALL    SETDENFLG               ; 0251 CDF20B   ...
        LD      A,($FDCSTA)             ; 0254 3A1F78   load FDC status ram register
        CPL                             ; 0257 2F       invert
        LD      (HL),A                  ; 0258 77       store in buffer
        INC     HL                      ; 0259 23       point to next byte
        LD      A,($FMTTOT)             ; 025A 3A1D78   load format time out value
        LD      (HL),A                  ; 025D 77       store in buffer
        INC     HL                      ; 025E 23       point to next byte
        LD      A,($7826)               ; 025F 3A2678   :&x
        SRL     A                       ; 0262 CB3F     .?
        LD      (HL),A                  ; 0264 77       w
        LD      A,$43                   ; 0265 3E43     >C complete
        LD      HL,BUFFER               ; 0267 214279   buffer in HL
        LD      B,$04                   ; 026A 0604     number of bytes
        CALL    Lb44                    ; 026C CDAC09   go send
Lb12a:  LD      A,(STATUS0)             ; 026F 3A1E78   :.x
        AND     $18                     ; 0272 E618     ..
        LD      (STATUS0),A             ; 0274 321E78   2.x
        XOR     A                       ; 0277 AF       .
        RET                             ; 0278 C9       .
READ
        CALL    CHKSECTNUM              ; 0279 CD3C0C   Check sector will be on disk 
        JP      NZ,Lb40                 ; 027C C29A0A   ...
        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
        XOR     A                       ; 028B AF       .
        RET                             ; 028C C9       .
PUT
        CALL    Lb47                    ; 028D CDA504   ... 
        RET     NZ                      ; 0290 C0       Nak out
        CALL    SSIOBYTE                ; 0291 CD230A  send byte  sio 
        XOR     A                       ; 0294 AF       .
        RET                             ; 0295 C9       .
WRITE
        CALL    Lb47                    ; 0296 CDA504   get data and write sector 
        RET     NZ                      ; 0299 C0       .
        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
        LD      C,B                     ; 02A4 48       H
        LD      B,$00                   ; 02A5 0600     ..
        DEC     C                       ; 02A7 0D       .
        INC     BC                      ; 02A8 03       .
        LD      HL,(SECTORBUF)          ; 02A9 2A2478   *$x
        LD      DE,BUFFER               ; 02AC 114279   .By
        LDIR                            ; 02AF EDB0     ..
        CALL    Lb37                    ; 02B1 CD9504   go read sector
        CP      $45                     ; 02B4 FE45     .E
        JR      Z,Lb51                  ; 02B6 2813     (.
        CALL    Lb50                    ; 02B8 CDA60A   check if sector is 4 or greater  
        LD      HL,(SECTORBUF)          ; 02BB 2A2478   *$x
        LD      DE,BUFFER               ; 02BE 114279   .By
Lb52:   LD      A,(DE)                  ; 02C1 1A       this cannot work properly. neither DE or HL
        CP      (HL)                    ; 02C2 BE       are incremented. only 1st byte on sector is 
        JR      NZ,Lb51                 ; 02C3 2006     checked 128/256 times for write with read verify.
        DJNZ    Lb52                    ; 02C5 10FA     dec B register and jump if not zero
        LD      A,$43                   ; 02C7 3E43     >C complete
        JR      Lb48                    ; 02C9 1808     ..
Lb51:   LD      HL,$8C98                ; 02CB 21988C   P9
        CALL    UPLED-1-2-B-E           ; 02CE CD120B   Send P9 to front led
        LD      A,$45                   ; 02D1 3E45     >E error
Lb48:   CALL    SSIOBYTE                ; 02D3 CD230A   send byte  sio
        XOR     A                       ; 02D6 AF       .
        RET                             ; 02D7 C9       .

EXTERNALCMD:				; 			command X
        CALL    Lb42                    ; 02D8 CD0F0A   send Ack
        LD      A,($7821)               ; 02DB 3A2178   daux2
        AND     $01                     ; 02DE E601     aux 2 = 0?
        JR      Z,Lb53                  ; 02E0 2817     go straight to external routine
        LD      HL,$7F00                ; 02E2 21007F   buffer to put data
        LD      A,(CAUX12)              ; 02E5 3A2078   number of bytes to load Daux1
        LD      B,A                     ; 02E8 47       
        CALL    Lb39                    ; 02E9 CD7C09   get bytes
        JP      NZ,Lb54                 ; 02EC C2A00A   
        CALL    Lb55                    ; 02EF CD1B0A   send Ack
        LD      A,$43                   ; 02F2 3E43     'C'omplete
        CALL    SSIOBYTE                ; 02F4 CD230A   send byte  sio
        JR      Lb56                    ; 02F7 1806     jump relative always
Lb53:   CALL    Lb38                    ; 02F9 CD007F   call external command
        CALL    C,SSIOBYTE              ; 02FC DC230A   send byte  sio
Lb56:   XOR     A                       ; 02FF AF       zero A
        RET                             ; 0300 C9       .

GETBLOCK
        CALL    Lb42                    ; 0301 CD0F0A   send Ack
        CALL    Lb36                    ; 0304 CD6005   .`.
        LD      HL,PCB                  ; 0307 213E03   pointer to rom control block.
        LD      DE,BUFFER               ; 030A 114279   pointer to ram buffer
        LD      BC,$0C                  ; 030D 010C00   number of bytes to move
        LDIR                            ; 0310 EDB0     move bytes rom to ram
        LD      HL,$7945                ; 0312 214579   start with sect per track low
        LD      A,(DENFLG)              ; 0315 3A1778   default to 18
        CP      $02                     ; 0318 FE02     check for double..
        JR      NZ,Lb57                 ; 031A 2002     no .
        LD      (HL),$1A                ; 031C 361A     put 26 into sect per track
Lb57:   INC     HL                      ; 031E 23       set pointer to
        INC     HL                      ; 031F 23       record method
        ADD     A,$FF                   ; 0320 C6FF     ..
        SBC     A,A                     ; 0322 9F       .
        AND     $04                     ; 0323 E604     ..
        LD      (HL),A                  ; 0325 77       w
        INC     HL                      ; 0326 23       #
        CALL    Lb58                    ; 0327 CDB40A   ...call  num bytes per sector
        DEC     B                       ; 032A 05       -1
        LD      C,B                     ; 032B 48       H
        LD      B,$00                   ; 032C 0600     set high byte to zero
        INC     BC                      ; 032E 03       add 1
        LD      (HL),B                  ; 032F 70       put sect num high in
        INC     HL                      ; 0330 23       set pointer +1
        LD      (HL),C                  ; 0331 71       put in low byte
        LD      A,$43                   ; 0332 3E43     >C complete
        LD      HL,BUFFER               ; 0334 214279   buffer start to send
        LD      B,$0C                   ; 0337 060C     num of bytes to send..
        CALL    Lb44                    ; 0339 CDAC09   send bytes
        XOR     A                       ; 033C AF       .
        RET                             ; 033D C9       .
;percom control block
PCB
        DB $28                          ; 033E 28      number of tracks
        DB $01                          ; 033f 01      step rate
        DB $00                          ; 0340 00      sectors per track high
        DB $12                          ; 0341 12      sectors per track low
        DB $00                          ; 0342 00      number of sides -1.
        DB $00                          ; 0344 00      record method. 0=mf. 4=mfm
        DB $FF                          ; 0346 FF      bytes per sector high.
        DB $00                          ; 0347 00      bytes per sector low.
        DB $00                          ; 0348 00       .
        DP $00                          ; 0349 00       .

PUTBLOCK
        CALL    Lb42                    ; 034A CD0F0A   send Ack
        LD      B,$0C                   ; 034D 060C     number of bytes to get
        LD      HL,BUFFER               ; 034F 214279   place to put them
        CALL    Lb39                    ; 0352 CD7C09   get and caculate checksum
        JP      NZ,Lb54                 ; 0355 C2A00A   get out if chksum don't match
        CALL    Lb55                    ; 0358 CD1B0A   send Ack?
        CALL    Lb36                    ; 035B CD6005   .`.
        LD      A,($7947)               ; 035E 3A4779   :Gy record method 0=fm 4=mfm
        OR      A                       ; 0361 B7       . set flags
        JR      Z,Lb60                  ; 0362 280A     (.
        LD      A,($7948)               ; 0364 3A4879   bytes per sect high
        OR      A                       ; 0367 B7       set flags
        LD      A,$02                   ; 0368 3E02     2=enhanced
        JR      Z,Lb60                  ; 036A 2802     (.
        LD      A,$01                   ; 036C 3E01     1= double 0=single 2=enhanced
Lb60:   LD      (DENFLG),A              ; 036E 321778   2.x
        LD      ($7816),A               ; 0371 321678   2.x
        CALL    SETDENFLG               ; 0374 CDF20B   set dden + front led store
        LD      A,$43                   ; 0377 3E43     >C complete
        CALL    SSIOBYTE                ; 0379 CD230A   send byte  sio
        XOR     A                       ; 037C AF       set flags??
        RET                             ; 037D C9       .
                                        ;---------------------------------
FORMATENH
        LD      A,$02                   ; 037E 3E02     format enhanced
        LD      (DENFLG),A              ; 0380 321778   2.x
        LD      ($7816),A               ; 0383 321678   2.x
        CALL    SETDENFLG               ; 0386 CDF20B   set den type for front leds
        JR      Lb61                    ; 0389 180F     ..
FORMAT
        LD      HL,DENFLG               ; 038B 211778   format
        LD      A,(HL)                  ; 038E 7E       ~
        SUB     $02                     ; 038F D602     ..
        JR      NZ,Lb61                 ; 0391 2007      .
        LD      (HL),A                  ; 0393 77       w
        LD      ($7816),A               ; 0394 321678   2.x
        CALL    SETDENFLG               ; 0397 CDF20B   ...
Lb61:   CALL    Lb42                    ; 039A CD0F0A    send Ack
        LD      A,(DENFLG)              ; 039D 3A1778   :.x
        PUSH    AF                      ; 03A0 F5       .
        CALL    Lb36                    ; 03A1 CD6005   .`.
        POP     AF                      ; 03A4 F1       .
        LD      (DENFLG),A              ; 03A5 321778   2.x
        LD      ($7816),A               ; 03A8 321678   2.x
        CALL    SETDENFLG               ; 03AB CDF20B   ...
        CALL    Lb15                    ; 03AE CDBE08   turn motor on
        LD      HL,$FFFF                ; 03B1 21FFFF   !..
        LD      (CAUX12),HL             ; 03B4 222078   " x
        CALL    Lb58                    ; 03B7 CDB40A   set B to bytes per sector
        XOR     A                       ; 03BA AF       .
        LD      (TRACKNUM),A            ; 03BB 322278   2"x
        DEC     A                       ; 03BE 3D       =
        LD      HL,BUFFER               ; 03BF 214279   !By
Lb62:   LD      (HL),A                  ; 03C2 77       put FF in buffer
        INC     HL                      ; 03C3 23       #
        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
        LD      ($FDCSTA),A             ; 03D4 321F78   2.x
        AND     $44                     ; 03D7 E644     .D
        JR      Z,Lb65                  ; 03D9 281B     (.
        LD      B,A                     ; 03DB 47       G
        AND     $40                     ; 03DC E640     .@
        LD      A,B                     ; 03DE 78       x
        JR      NZ,Lb66                 ; 03DF 2006      .
        LD      HL,CDLOOP2              ; 03E1 212878   !(x
        DEC     (HL)                    ; 03E4 35       5
        JR      NZ,Lb67                 ; 03E5 20E7      .
Lb66:   CALL    Lb68                    ; 03E7 CDF60A   ...
        LD      H,$8E                   ; 03EA 268E     &.
        CALL    Lb69                    ; 03EC CD050B   ...
        LD      HL,STATUS0              ; 03EF 211E78   !.x
        SET     2,(HL)                  ; 03F2 CBD6     ..
        JR      Lb70                    ; 03F4 1818     ..

Lb65:   LD      HL,TRACKNUM             ; 03F6 212278   !"x
        LD      A,(HL)                  ; 03F9 7E       ~
        CP      $4E                     ; 03FA FE4E     78 exceded FDC track counter?
        JR      Z,Lb71                  ; 03FC 2804     (.
        INC     (HL)                    ; 03FE 34       4
        INC     (HL)                    ; 03FF 34       4
        JR      Lb72                    ; 0400 18C4     ..
Lb71:   CALL    Lb23                    ; 0402 CD440B   buttons
        CALL    Lb73                    ; 0405 CD1504   go check format
        JR      NZ,Lb70                 ; 0408 2004      .
        LD      A,$43                   ; 040A 3E43     Complete
        JR      Lb74                    ; 040C 1802     ..
Lb70:   LD      A,$45                   ; 040E 3E45     Error
Lb74:   CALL    Lb75                    ; 0410 CD9709   ...
        XOR     A                       ; 0413 AF       .
        RET                             ; 0414 C9       .
                                        ;----------------------------------
Lb73:   CALL    Lb58                    ; 0415 CDB40A   load B with sector size
        LD      A,B                     ; 0418 78       x
        SRL     A                       ; 0419 CB3F     .?
        DEC     A                       ; 041B 3D       =
        LD      ($7829),A               ; 041C 322978   2)x
        XOR     A                       ; 041F AF       zero A
        LD      (TRACKNUM),A            ; 0420 322278   2"x
        LD      IY,BUFFER               ; 0423 FD214279 .!By
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
        LD      A,(DENFLG)              ; 0431 3A1778   :.x
        CP      $02                     ; 0434 FE02     ..
        JR      NZ,Lb77                 ; 0436 2004     
        LD      IX,$79D                 ; 0438 DD219D07  sector order enhanced
                                        ;format track
Lb77:   LD      A,(IX+$00)              ; 043C DD7E00    get sector order
        LD      (SECTORFDC),A           ; 043F 320260    write sector order to FDC
        LD      A,$05                   ; 0442 3E05     >.
        LD      (CDLOOP2),A             ; 0444 322878   2(x
Lb83:   LD      HL,(SECTORBUF)          ; 0447 2A2478   *$x
        CALL    Lb78                    ; 044A CDD505   ...
        JR      Z,Lb79                  ; 044D 2805     (.
        CALL    Lb80                    ; 044F CD6809   .h.
        JR      Lb81                    ; 0452 1805     ..
Lb79:   CALL    Lb14                    ; 0454 CD3509   .5.
        OR      $10                     ; 0457 F610     ..
Lb81:   AND     $1C                     ; 0459 E61C     ..
        JR      Z,Lb82                  ; 045B 281F     (.
        LD      HL,CDLOOP2              ; 045D 212878   !(x
        DEC     (HL)                    ; 0460 35       5
        JR      NZ,Lb83                 ; 0461 20E4      .
        CALL    Lb84                    ; 0463 CD7F0C   ...
        LD      (IY+$00),L              ; 0466 FD7500   .u.
        INC     IY                      ; 0469 FD23     .#
        LD      (IY+$00),H              ; 046B FD7400   .t.
        INC     IY                      ; 046E FD23     .#
        LD      HL,$8E98                ; 0470 21988E   !..
        CALL    Lb69                    ; 0473 CD050B   ...
        LD      HL,$7829                ; 0476 212978   !)x
        DEC     (HL)                    ; 0479 35       5
        JR      Z,Lb85                  ; 047A 2812     (.
Lb82:   INC     IX                      ; 047C DD23     .#
        LD      A,(IX+$00)              ; 047E DD7E00   .~.
        RLCA                            ; 0481 07       .
        JR      NC,Lb77                 ; 0482 30B8     0.

        LD      HL,TRACKNUM             ; 0484 212278   !"x
        INC     (HL)                    ; 0487 34       4
        INC     (HL)                    ; 0488 34       4
        LD      A,(HL)                  ; 0489 7E       ~
        CP      $4F                     ; 048A FE4F     .O
        JR      C,Lb86                  ; 048C 3899     8.

Lb85:   LD      HL,(BUFFER)             ; 048E 2A4279   *By
        INC     HL                      ; 0491 23       #
        LD      A,H                     ; 0492 7C       |
        OR      L                       ; 0493 B5       .
        RET                             ; 0494 C9       .
;---------------------------------------------------------------------
;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
        CALL    Lb88                    ; 0499 CDDA04   ...
        LD      B,$43                   ; 049C 0643     .C complete
        JR      Z,Lb89                  ; 049E 2802     (.
        LD      B,$45                   ; 04A0 0645     .E error
Lb89:   XOR     A                       ; 04A2 AF       .
        LD      A,B                     ; 04A3 78       x
        RET                             ; 04A4 C9       .

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
        JP      NZ,Lb54                 ; 04B1 C2A00A   ...
        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
        LD      A,$FF                   ; 04BD 3EFF     >.
        CALL    Lb88                    ; 04BF CDDA04   setup and write sector
        LD      B,$43                   ; 04C2 0643     .C
        JR      Z,Lb91                  ; 04C4 2802     (.
        LD      B,$45                   ; 04C6 0645     .E
Lb91:   XOR     A                       ; 04C8 AF       .
        LD      A,B                     ; 04C9 78       x
        RET                             ; 04CA C9       .
                                        ;read and write sector 
XCMD2:					;write sector
        LD      A,$FF                   ; 04CB 3EFF     >.
        JR      Lb92                    ; 04CD 1801     ..jump always

XCMD1:  XOR     A                       ; 04CF AF       zero A
Lb92:   LD      C,A                     ; 04D0 4F       O
        LD      A,D                     ; 04D1 7A       z
        LD      (TRACKNUM),A            ; 04D2 322278   2"x
        LD      A,E                     ; 04D5 7B       {
        LD      (SECTORN),A             ; 04D6 322378   2#x
        LD      A,C                     ; 04D9 79       y

Lb88:   CALL    Lb93                    ; 04DA CD0378   ..x jump to Ram vector 
        OR      A                       ; 04DD B7       set flags
        LD      A,$C2                   ; 04DE 3EC2     >.
        JR      Z,Lb94                  ; 04E0 2802     (.
        LD      A,$8C                   ; 04E2 3E8C     >.
Lb94:   PUSH    AF                      ; 04E4 F5       .
        CALL    Lb15                    ; 04E5 CDBE08   turn motor on
        LD      A,$02                   ; 04E8 3E02     >.
        LD      (CDLOOP1),A             ; 04EA 322778   do this loop twice
Lb103:  CALL    Lb63                    ; 04ED CDF407   step to track NN
        LD      A,$05                   ; 04F0 3E05     >.
        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
        LD      (SECTORFDC),A           ; 04FB 320260   2.`
        LD      HL,(SECTORBUF)          ; 04FE 2A2478   *$x
        POP     AF                      ; 0501 F1       .
        PUSH    AF                      ; 0502 F5       .
        JR      NZ,Lb95                 ; 0503 200A      .
        CALL    Lb78                    ; 0505 CDD505   read sector data
        CALL    DATAINVERT              ; 0508 CD890A   invert data in buffer
        JR      Z,Lb96                  ; 050B 280C     (.
        JR      Lb97                    ; 050D 1811     ..

Lb95:   CALL    DATAINVERT              ; 050F CD890A   invert data in buffer
        DI                              ; 0512 F3       .
        CALL    Lb98                    ; 0513 CDF405   write sector data
        EI                              ; 0516 FB       .
        JR      NZ,Lb97                 ; 0517 2007      .
Lb96:   CALL    Lb14                    ; 0519 CD3509   reset FDC?
        OR      $10                     ; 051C F610     ..
        JR      Lb99                    ; 051E 1803     ..
Lb97:   CALL    Lb80                    ; 0520 CD6809   wait for FDC to be free?
Lb99:   LD      ($FDCSTA),A             ; 0523 321F78   2.x
        AND     $7C                     ; 0526 E67C     fdc status
        JR      Z,Lb100                 ; 0528 282D     (-
        LD      B,A                     ; 052A 47       G
        AND     $40                     ; 052B E640     .@
        LD      A,B                     ; 052D 78       x
        JR      NZ,Lb101                ; 052E 2017      .
        LD      HL,CDLOOP2              ; 0530 212878   !(x
        DEC     (HL)                    ; 0533 35       5
        JR      NZ,Lb102                ; 0534 20BF      .
        LD      B,A                     ; 0536 47       G
        AND     $10                     ; 0537 E610     ..
        LD      A,B                     ; 0539 78       x
        JR      Z,Lb101                 ; 053A 280B     (.
        LD      HL,CDLOOP1              ; 053C 212778   !'x
        DEC     (HL)                    ; 053F 35       5
        JR      Z,Lb101                 ; 0540 2805     (.
        CALL    Lb16                    ; 0542 CDC107   ...
        JR      Lb103                   ; 0545 18A6     ..

Lb101:  CALL    Lb68                    ; 0547 CDF60A   get error led number
        POP     AF                      ; 054A F1       .
        LD      H,A                     ; 054B 67       g
        CALL    Lb69                    ; 054C CD050B   beep and display error
        LD      HL,STATUS0              ; 054F 211E78   !.x
        SET     2,(HL)                  ; 0552 CBD6     ..
        OR      $FF                     ; 0554 F6FF     ..
        RET                             ; 0556 C9       .

Lb100:  POP     AF                      ; 0557 F1       .
        RET     Z                       ; 0558 C8       .

        LD      HL,STATUS0              ; 0559 211E78   !.x
        RES     3,(HL)                  ; 055C CB9E     ..
        XOR     A                       ; 055E AF       .
        RET                             ; 055F C9       .
                                        ;----------------------------
                                        ;Check if disk changed
Lb36:   LD      A,($7819)               ; 0560 3A1978   :.x
        OR      A                       ; 0563 B7       set flags
        RET     Z                       ; 0564 C8       .
        CALL    Lb19                    ; 0565 CD6D05   go set density
        XOR     A                       ; 0568 AF       .
        LD      ($7819),A               ; 0569 321978   2.x
        RET                             ; 056C C9       .
;---------------------------------------------------------------------
;go read sector 1 and set density
Lb19:   CALL    Lb15                    ; 056D CDBE08   turn on motor?
        CALL    Lb16                    ; 0570 CDC107   step to track zero
        CALL    Lb104                   ; 0573 CDAA05   ...
        JR      Z,Lb105                 ; 0576 281B     (.
        LD      HL,DENFLG               ; 0578 211778   !.x
        LD      A,(HL)                  ; 057B 7E       ~
        ADD     A,$FF                   ; 057C C6FF     .. -1
        CCF                             ; 057E 3F       ?
        LD      A,$00                   ; 057F 3E00     >.
        RLA                             ; 0581 17       .
        LD      (HL),A                  ; 0582 77       w
        CALL    Lb104                   ; 0583 CDAA05   ...
        JR      Z,Lb105                 ; 0586 280B     (.
        LD      A,($7816)               ; 0588 3A1678   :.x
        LD      (DENFLG),A              ; 058B 321778   2.x
        CALL    SETDENFLG               ; 058E CDF20B   ...
        JR      Lb106                   ; 0591 1816     ..
Lb105:  LD      HL,DENFLG               ; 0593 211778   !.x
        LD      A,(HL)                  ; 0596 7E       ~
        OR      A                       ; 0597 B7       . set flags
        JR      Z,Lb106                 ; 0598 280F     (.
        LD      A,($7945)               ; 059A 3A4579   :Ey
        CP      $01                     ; 059D FE01     ..
        JR      Z,Lb107                 ; 059F 2802     (.
        LD      A,$02                   ; 05A1 3E02     >. enhanced density
Lb107:  LD      (DENFLG),A              ; 05A3 321778   2.x
        LD      ($7816),A               ; 05A6 321678   2.x
Lb106:  RET                             ; 05A9 C9       .
                                        ;----------------------------
Lb104:  LD      A,$02                   ; 05AA 3E02     >.
        LD      (CDLOOP2),A             ; 05AC 322878   2(x
Lb110:  CALL    SETDENFLG               ; 05AF CDF20B   ...
        CALL    Lb108                   ; 05B2 CDCD05   read sector
        JR      Z,Lb109                 ; 05B5 2810     (.
        CALL    Lb80                    ; 05B7 CD6809   .h.
        AND     $18                     ; 05BA E618     ..
        RET     Z                       ; 05BC C8       .

        AND     $10                     ; 05BD E610     ..
        JR      NZ,Lb109                ; 05BF 2006      .
        LD      HL,CDLOOP2              ; 05C1 212878   !(x
        DEC     (HL)                    ; 05C4 35       5
        JR      NZ,Lb110                ; 05C5 20E8      .
Lb109:  CALL    Lb14                    ; 05C7 CD3509   .5.
        OR      $FF                     ; 05CA F6FF     ..
        RET                             ; 05CC C9       .
                                        ;----------------------------
; Read sector data from fdc and store in buffer
Lb108:  LD      HL,BUFFER               ; 05CD 214279   !By
        LD      A,(READADDR)            ; 05D0 3A0F78   :.x
        JR      Lb111                   ; 05D3 1803     ..

Lb78:   LD      A,(READSECT)            ; 05D5 3A0D78   :.x
Lb111:  LD      DE,STAT2                ; 05D8 110020   .. 
        LD      (COMMANDFDC),A          ; 05DB 320060   2.`
Lb113:  LD      BC,$6E73                ; 05DE 01736E   .sn
Lb112:  DEC     BC                      ; 05E1 0B       .
        LD      A,B                     ; 05E2 78       x
        OR      C                       ; 05E3 B1       .
        RET     Z                       ; 05E4 C8       .

        LD      A,(DE)                  ; 05E5 1A       .
        AND     $C0                     ; 05E6 E6C0     ..
        JR      Z,Lb112                 ; 05E8 28F7     (.
        AND     $80                     ; 05EA E680     ..
        RET     NZ                      ; 05EC C0       .

        LD      A,(DATAFDC)             ; 05ED 3A0360   :.`read byte data
        LD      (HL),A                  ; 05F0 77       w  put in buffer
        INC     HL                      ; 05F1 23       #
        JR      Lb113                   ; 05F2 18EA     ..
; write data to FDC data register from buffer
Lb98:   LD      DE,STAT2                ; 05F4 110020   .. 
        LD      A,(WRITESECT)           ; 05F7 3A0E78   :.x
        LD      (COMMANDFDC),A          ; 05FA 320060   2.`
Lb115:  LD      BC,$6E73                ; 05FD 01736E   load time out value
Lb114:  DEC     BC                      ; 0600 0B       .
        LD      A,B                     ; 0601 78       x
        OR      C                       ; 0602 B1       .
        RET     Z                       ; 0603 C8       .

        LD      A,(DE)                  ; 0604 1A       .
        AND     $C0                     ; 0605 E6C0     ..
        JR      Z,Lb114                 ; 0607 28F7     (.
        AND     $80                     ; 0609 E680     ..
        RET     NZ                      ; 060B C0       .

        LD      A,(HL)                  ; 060C 7E       ~  get data from buffer
        LD      (DATAFDC),A             ; 060D 320360   2.`write data to sector
        INC     HL                      ; 0610 23       # next byte
        JR      Lb115                   ; 0611 18EA     ..
;
;--------------------------------------------------------------------
;CP/M INIT Command enters here to Format track
;--------------------------------------------------------------------
;
Lb64:   DI                              ; 0613 F3       .
        LD      HL,$00                  ; 0614 210000   !..
        ADD     HL,SP                   ; 0617 39       9
        LD      ($7829),HL              ; 0618 222978   save stack to 7829
        IN      A,($03)                 ; 061B DB03     ip enable
        IN      A,($0C)                 ; 061D DB0C     ip off
        LD      A,(DENFLG)              ; 061F 3A1778   density flag
        OR      A                       ; 0622 B7       set flags
        JR      NZ,Lb116                ; 0623 2011      .
        LD      DE,$254                 ; 0625 115402   single
        LD      C,$FF                   ; 0628 0EFF     ..
        LD      SP,$722                 ; 062A 312207   set stack to 722
        EXX                             ; 062D D9       .
        LD      HL,$736                 ; 062E 213607   pointer to sector order
        LD      DE,$6EE                 ; 0631 11EE06   ...
        JR      Lb117                   ; 0634 181C     jump always
                                        ;-----------------------MFM
Lb116:  LD      DE,$50D                 ; 0636 110D05   enhanced and double
        LD      C,$4E                   ; 0639 0E4E     .N
        LD      SP,$785                 ; 063B 318507   set stack to 785
        EXX                             ; 063E D9       .
        LD      DE,$749                 ; 063F 114907   .I.
        LD      HL,$736                 ; 0642 213607   sector order single/double
        DEC     A                       ; 0645 3D       =
        LD      A,$FF                   ; 0646 3EFF     bytes per sector.
        JR      Z,Lb118                 ; 0648 2805     Double? jump if yes
        LD      HL,$79D                 ; 064A 219D07   sector order enhanced
        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
        LD      A,B                     ; 0656 78       x
        OR      C                       ; 0657 B1       .
        JR      Z,Lb119                 ; 0658 2802     (.
        LD      L,C                     ; 065A 69       load custom
        LD      H,B                     ; 065B 60       sector order table pointer
Lb119:  EXX                             ; 065C D9       .
        LD      HL,DATAFDC              ; 065D 210360   load HL 6003, data register fdc
        LD      A,(WRITETRK)            ; 0660 3A1078   load write track command to fdc 
        LD      (COMMANDFDC),A          ; 0663 320060   2.`
Lb120:  LD      A,(STAT2)               ; 0666 3A0020   :. fdc
        AND     $C0                     ; 0669 E6C0     .. wait for drq/irg to go low
        JR      Z,Lb120                 ; 066B 28F9     (.
        LD      (HL),C                  ; 066D 71       q
        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
        JR      Z,Lb122                 ; 0679 28F9     (.
;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

        LD      (HL),C                  ; 067B 71       q
        IN      A,($0C)                 ; 067C DB0C     ..ip not pulse?
Lb123:  LD      A,(STAT2)               ; 067E 3A0020   :. fdc
        AND     $C0                     ; 0681 E6C0     ..
        JR      Z,Lb123                 ; 0683 28F9     (.
        LD      (HL),C                  ; 0685 71       q
        DEC     DE                      ; 0686 1B       .
        LD      A,D                     ; 0687 7A       z
        OR      E                       ; 0688 B3       .
        JR      NZ,Lb123                ; 0689 20F3      .
        LD      DE,STAT2                ; 068B 110020   .. 
        JP      Lb124                   ; 068E C39206   ...
;DE = 2000 (STAT2) for FDC IRQ/DRQ
; other registers as above

Lb125:  PUSH    BC                      ; 0691 C5       inc stack pointer
Lb124:  LD      A,(DE)                  ; 0692 1A       .
        AND     $C0                     ; 0693 E6C0     wait for fdc drq/irq
        JR      Z,Lb124                 ; 0695 28FB     (.
        LD      (HL),C                  ; 0697 71       q
        RET                             ; 0698 C9       .
FMTRT1:
        DJNZ    Lb125                   ; 0699 10F6     ..
FMTRT2:
        POP     BC                      ; 069B C1       .
        JP      Lb124                   ; 069C C39206   ...
FMTRT3:
        LD      A,($7826)               ; 069F 3A2678   :&x
        RRCA                            ; 06A2 0F       .
        LD      C,A                     ; 06A3 4F       O
        JP      Lb124                   ; 06A4 C39206   ...
FMTRT4:
        LD      A,(DENFLG)              ; 06A7 3A1778   :.x
        AND     $01                     ; 06AA E601     ..
        LD      C,A                     ; 06AC 4F       O
        JP      Lb124                   ; 06AD C39206   ...
FMTRT5:                                 ;write sector number id field
        EXX                             ; 06B0 D9       .
        LD      A,(HL)                  ; 06B1 7E       sector number
        INC     HL                      ; 06B2 23       #
        EXX                             ; 06B3 D9       .
        LD      C,A                     ; 06B4 4F       O
        JP      Lb124                   ; 06B5 C39206   ...
FMTRT6:
        LD      A,(FMTSTR)              ; 06B8 3A2B78   :+x
        LD      B,A                     ; 06BB 47       G
        JP      Lb124                   ; 06BC C39206   ...
FMTRT7:
        EXX                             ; 06BF D9       .
        LD      C,(HL)                  ; 06C0 4E       N
        EX      DE,HL                   ; 06C1 EB       .
        EXX                             ; 06C2 D9       .
        JP      Lb124                   ; 06C3 C39206   ...
FMTRT8:
        EXX                             ; 06C6 D9       .
        LD      SP,HL                   ; 06C7 F9       .
        EX      DE,HL                   ; 06C8 EB       .
        LD      A,C                     ; 06C9 79       y
        EXX                             ; 06CA D9       .
        RLCA                            ; 06CB 07       .
        JP      NC,Lb124                ; 06CC D29206   ...
Lb126:  LD      A,(DE)                  ; 06CF 1A       .
        AND     $C0                     ; 06D0 E6C0     wait for FDC drq/irq
        JR      Z,Lb126                 ; 06D2 28FB     (.
        LD      (HL),C                  ; 06D4 71       q
        IN      A,($0D)                 ; 06D5 DB0D     .. ip pulse
Lb127:  LD      A,(DE)                  ; 06D7 1A       .
        AND     $C0                     ; 06D8 E6C0     wait for fdc drq/irq
        JR      Z,Lb127                 ; 06DA 28FB     (.
        AND     $80                     ; 06DC E680     ..
        JR      NZ,Lb128                ; 06DE 2003      .
        LD      (HL),C                  ; 06E0 71       q
        JR      Lb127                   ; 06E1 18F4     ..
Lb128:  LD      SP,($7829)              ; 06E3 ED7B2978 restore stack pointer
        IN      A,($0C)                 ; 06E7 DB0C     ..ip pulse
        CALL    Lb80                    ; 06E9 CD6809   .h.
        EI                              ; 06EC FB       .
        RET                             ; 06ED C9       .

				;data*********************************?
        WORD FMTRT2                     ; 06EE 9B06     set de here FM
        DB $00,$06                      ; 06F0 0006     ..
        WORD FMTRT1                     ; 06F2 9906     ..
        WORD $01FE                      ; 06F4 FE01     ..
        WORD FMTRT3                     ; 06F6 9F06   ...
        WORD FMTRT2                     ; 06F8 9B06       .
        WORD $0100                      ; 06FA 0001     ..
        WORD FMTRT5                     ; 06FC B006   ...write sector number
        WORD FMTRT2                     ; 06FE 9B06       .
        WORD $0100                      ; 0700 0001     ..
        WORD FMTRT2                     ; 0702 9B06   ...
        WORD $01F7                      ; 0704 F701       .
        WORD FMTRT2                     ; 0706 9B06   ...
        WORD $1100                      ; 0708 0011       .
        WORD FMTRT1                     ; 070A 9906   ...
        WORD $01FB                      ; 070C FB01       .
        WORD FMTRT2                     ; 070E 9B06   ...
        WORD $80FF                      ; 0710 FF80       .
        WORD FMTRT1                     ; 0712 9906       .
        WORD $01F7                      ; 0714 F701     ..
        WORD FMTRT2                     ; 0716 9B06   ...
        WORD $0900                      ; 0718 0009       .
        WORD FMTRT1                     ; 071A 9906       .
        WORD $03FF                      ; 071C FF03     ..
        WORD FMTRT7                     ; 071E BF06       .
        WORD FMTRT8                     ; 0720 C606     ..
        WORD FMTRT2                     ; 0722 9B06     stack set to here FM
        WORD $0600                      ; 0724 0006     .data and counter
        WORD FMTRT1                     ; 0726 9906     ..
        WORD $01FC                      ; 0728 FC01     ..
        WORD FMTRT2                     ; 072A 9B06   ...
        WORD $0800                      ; 072C 0008       .
        WORD FMTRT1                     ; 072E 9906       .
        WORD $0300                      ; 0730 0003     ..
        WORD FMTRT7                     ; 0732 BF06       .
        WORD FMTRT8                     ; 0733 C606     ..
        DB $01,$03,$05                  ; 0736 010305  sector order
        DB $07,$09,$0B                  ; 0739 07090B       .
        DB $0D,$0F,$11                  ; 073C 0D0F11       .
        DB $02,$04,$06                  ; 073F 020406   ...
        DB $08,$0A,$0C                  ; 0742 080A0C     ..
        DB $0E,$10,$12                  ; 0745 0E1012     ..
        DB $80                          ; 0748 80      end data

        WORD FMTRT2                     ; 0749 9B06     de set to here MFM
        WORD $0C00                      ; 074B 000C     ..
        WORD FMTRT1                     ; 074D 9906       .
        WORD $03F5                      ; 074F F503     ..
        WORD FMTRT1                     ; 0751 9906       .
        WORD $01FE                      ; 0753 FE01     ..
        WORD FMTRT3                     ; 0755 9F06   ...
        WORD FMTRT2                     ; 0757 9B06       .
        WORD $0100                      ; 0759 0001     ..
        WORD FMTRT5                     ; 075B B006   ...write sector number
        WORD FMTRT4                     ; 075D A706       .
        WORD FMTRT2                     ; 075F 9B06     ..
        WORD $01F7                      ; 0761 F701     ..
        WORD FMTRT2                     ; 0763 9B06   ...
        WORD $224E                      ; 0765 4E22       N
        WORD FMTRT1                     ; 0767 9906   "..
        WORD $03F5                      ; 0769 F503       .
        WORD FMTRT1                     ; 076B 9906       .
        WORD $01FB                      ; 076D FB01     ..
        WORD FMTRT2                     ; 076F 9B06   ...
        WORD $01FF                      ; 0771 FF01       .
        WORD FMTRT6                     ; 0773 B806   ...
        WORD FMTRT1                     ; 0775 9906       .
        WORD $01F7                      ; 0777 F701     ..
        WORD FMTRT2                     ; 0779 9B06   ...
        WORD $154E                      ; 077B 4E15       N
        WORD FMTRT1                     ; 077D 9906       .
        WORD $034E                      ; 077F 4E03     .N
        WORD FMTRT7                     ; 0781 BF06       .
        WORD FMTRT8                     ; 0783 C606     ..
        WORD FMTRT2                     ; 0785 9B06     stack set to here MFM
        WORD $0C00                      ; 0787 000C     write 0 B times
        WORD FMTRT1                     ; 0789 9906       .
        WORD $03F6                      ; 078B F603     write F6 3 times
        WORD FMTRT1                     ; 078D 9906       .
        WORD $01FC                      ; 078F FC01     write FC 1 times
        WORD FMTRT2                     ; 0791 9B06   ...
        WORD $134E                      ; 0793 4E13      write 4E $13 times
        WORD FMTRT1                     ; 0795 9906       .
        WORD $034E                      ; 0797 4E03     write 4E 3 times
        WORD FMTRT7                     ; 0799 BF06     load first sectornumber and write
        WORD FMTRT8                     ; 079B C606     set stack 749
        DB $01,$03,$05                  ; 079D 010305  sector order enhanced
        DB $07,$09,$0B                  ; 07A0 07090B       .
        DB $0D,$0F,$11                  ; 07A3 0D0F11       .
        DB $13,$15,$17                  ; 07A6 131517   ...
        DB $19,$02,$04                  ; 07A9 190204       .
        DB $06,$08,$0A                  ; 07AC 06080A     ..
        DB $0C,$0E,$10                  ; 07AF 0C0E10       .
        DB $12,$14,$16                  ; 07B2 121416       .
        DB $18,$1A                      ; 07B4 181A     ..
        DB $80                          ; 07B7 80       . end data
;----------------------------------------------------------------------------
Lb76:   LD      A,(TRACKNUM)            ; 07B8 3A2278   :"x
        SRL     A                       ; 07BB CB3F     X 2
        LD      (TRACKFDC),A            ; 07BD 320160   2.` track register
        RET                             ; 07C0 C9       .
;----------------------------------------------------------------------------
TRK0:                                   ;step to track zero
Lb16:   LD      A,$58                   ; 07C1 3E58     >X
        LD      ($7826),A               ; 07C3 322678   2&x
        LD      A,$08                   ; 07C6 3E08     >.
        LD      (CONTROL),A             ; 07C8 320030   2.0 stepper motor
        CALL    Lb129                   ; 07CB CD5508   .U.
        LD      A,$01                   ; 07CE 3E01     >.
        LD      (CONTROL),A             ; 07D0 320030   2.0 stepper motor
        CALL    Lb129                   ; 07D3 CD5508   .U.
Lb133:  CALL    Lb130                   ; 07D6 CD6F08   .o.
        LD      A,($7826)               ; 07D9 3A2678   :&x
        OR      A                       ; 07DC B7       .
        JR      Z,Lb131                 ; 07DD 2805     (.
        CALL    Lb132                   ; 07DF CD4208   .B.
        JR      Lb133                   ; 07E2 18F2     ..

Lb131:  XOR     A                       ; 07E4 AF       .
        CALL    Lb134                   ; 07E5 CDC30A   ...
        LD      (TLEDNUM1),HL           ; 07E8 223A78   ":x
        CALL    UPLED-1-2-B-E           ; 07EB CD120B   ...
        JR      Lb135                   ; 07EE 1814     ..
STTRACK                                 ;step to track------------------------------------
Lb17:   LD      A,D                     ; 07F0 7A       z
        LD      (TRACKNUM),A            ; 07F1 322278   2"x

; CP/M INIT command enters here for step to track  
Lb63:   LD      A,(TRACKNUM)            ; 07F4 3A2278   :"x
        LD      HL,$7826                ; 07F7 212678   7826= track currenty at?
        CP      (HL)                    ; 07FA BE       .
        JR      Z,Lb136                 ; 07FB 2810     (.
        PUSH    AF                      ; 07FD F5       .
        CALL    Lb137                   ; 07FE CD1C08   ...
        POP     AF                      ; 0801 F1       .
        JR      NC,Lb138                ; 0802 3006     0.
Lb135:  CALL    Lb132                   ; 0804 CD4208   .B.
        CALL    Lb139                   ; 0807 CD3C08   .<.
Lb138:  CALL    Lb129                   ; 080A CD5508   .U.
Lb136:  XOR     A                       ; 080D AF       .
        LD      (CONTROL),A             ; 080E 320030   2.0 stepper motor
        LD      HL,$FFFF                ; 0811 21FFFF   !..
        LD      ($7830),HL              ; 0814 223078   "0x
        EI                              ; 0817 FB       .
        CALL    Lb140                   ; 0818 CD8B08   ...
        RET                             ; 081B C9       .
;-----------------------------------------------------------------------------------
Lb137:  LD      A,(TRACKNUM)            ; 081C 3A2278   :"x
        LD      HL,$7826                ; 081F 212678   !&x
        CP      (HL)                    ; 0822 BE       .
        RET     Z                       ; 0823 C8       .

        PUSH    AF                      ; 0824 F5       .
        CALL    C,Lb132                 ; 0825 DC4208   .B.
        POP     AF                      ; 0828 F1       .
        CALL    NC,Lb139                ; 0829 D43C08   .<.
        LD      A,($7826)               ; 082C 3A2678   :&x
        SRL     A                       ; 082F CB3F     .?
        CALL    Lb134                   ; 0831 CDC30A   ...
        LD      (TLEDNUM1),HL           ; 0834 223A78   ":x
        CALL    UPLED-1-2-B-E           ; 0837 CD120B   ...
        JR      Lb137                   ; 083A 18E0     ..

Lb139:  CALL    Lb129                   ; 083C CD5508   .U.
        INC     (HL)                    ; 083F 34       4
        JR      Lb141                   ; 0840 1804     ..
                                        ;------------------------------------
Lb132:  CALL    Lb129                   ; 0842 CD5508   .U.
        DEC     (HL)                    ; 0845 35       5
Lb141:  LD      A,(HL)                  ; 0846 7E       ~
        AND     $03                     ; 0847 E603     ..
        LD      B,A                     ; 0849 47       G
        XOR     A                       ; 084A AF       .
        SCF                             ; 084B 37       7
        INC     B                       ; 084C 04       .
Lb142:  RLA                             ; 084D 17       .
        DJNZ    Lb142                   ; 084E 10FD     ..
        LD      (CONTROL),A             ; 0850 320030   2.0 stepper motor
        EI                              ; 0853 FB       .
        RET                             ; 0854 C9       .
                                        ;------------------------------------
Lb129:  EI                              ; 0855 FB       .
        CALL    Lb23                    ; 0856 CD440B   buttons
        DI                              ; 0859 F3       .
        LD      HL,$7830                ; 085A 213078   !0x
        INC     (HL)                    ; 085D 34       4
        JR      NZ,Lb129                ; 085E 20F5      .
        INC     HL                      ; 0860 23       #
        INC     (HL)                    ; 0861 34       4
        DEC     HL                      ; 0862 2B       +
        JR      NZ,Lb129                ; 0863 20F0      .
        LD      HL,($782E)              ; 0865 2A2E78   *.x
        LD      ($7830),HL              ; 0868 223078   "0x
        LD      HL,$7826                ; 086B 212678   !&x
        RET                             ; 086E C9       .
                                        ;-----------------------------------
Lb130:  LD      A,($7826)               ; 086F 3A2678   :&x
        AND     $03                     ; 0872 E603     ..
        RET     Z                       ; 0874 C8       .

        LD      A,(STATUSFDC)           ; 0875 3A0060   :.`status register
        AND     $04                     ; 0878 E604     .. track zero?
        RET     Z                       ; 087A C8       .

        LD      A,$0A                   ; 087B 3E0A     >.
Lb143:  DEC     A                       ; 087D 3D       =
        JR      NZ,Lb143                ; 087E 20FD      .
        LD      A,(STATUSFDC)           ; 0880 3A0060   :.`status register
        AND     $04                     ; 0883 E604     ..
        RET     Z                       ; 0885 C8       .

        XOR     A                       ; 0886 AF       .
        LD      ($7826),A               ; 0887 322678   2&x
        RET                             ; 088A C9       .
                                        ;-----------------------------------
Lb140:  LD      A,($7826)               ; 088B 3A2678   :&x
        CP      $28                     ; 088E FE28     .( track 40?
        LD      A,(RESTORE)             ; 0890 3A0C78   restore = 0
        JR      NC,Lb144                ; 0893 3007     0.
        OR      A                       ; 0895 B7       .
        JR      Z,Lb145                 ; 0896 281D     (.
        LD      A,$02                   ; 0898 3E02     >.
        JR      Lb146                   ; 089A 1804     ..
Lb144:  OR      A                       ; 089C B7       .
        JR      Z,Lb147                 ; 089D 2815     (.
        XOR     A                       ; 089F AF       .
Lb146:  LD      B,A                     ; 08A0 47       G
        LD      A,($00A8)               ; 08A1 3AA800   what????????? 06
        AND     $FD                     ; 08A4 E6FD     ..
        OR      B                       ; 08A6 B0       .
        LD      ($00A8),A               ; 08A7 32A800   what?????????
        LD      A,($00F0)               ; 08AA 3AF000   What?????????
        AND     $FD                     ; 08AD E6FD     ..
        OR      B                       ; 08AF B0       .
        LD      ($00F0),A               ; 08B0 32F000   store to rom?????
        RET                             ; 08B3 C9       .
                                        ;-----------------------------------
Lb147:  DEC     A                       ; 08B4 3D       =
Lb145:  LD      ($783E),A               ; 08B5 323E78   2>x
        CALL    UPLED-1-2-B-E           ; 08B8 CD120B   ...
        RET                             ; 08BB C9       .
MONOFF:                                 ; motor on or off-------------------
        JR      NC,Lb148                ; 08BC 3058     0X
;CP/M init enters here for motor on
Lb15:   CALL    Lb14                    ; 08BE CD3509   .5.reset FDC?
        LD      A,(MOTORF)              ; 08C1 3A1878   :.x
        OR      A                       ; 08C4 B7       set flags
        JR      NZ,Lb149                ; 08C5 2017      .
        IN      A,($0B)                 ; 08C7 DB0B     ..motor on
        LD      L,$01                   ; 08C9 2E01     ..
Lb150:  LD      BC,$2C7A                ; 08CB 017A2C   .z,
        CALL    Lb4                     ; 08CE CD1200   ... delay.time =BC
        DEC     L                       ; 08D1 2D       -wait for motor to spin up
        JR      NZ,Lb150                ; 08D2 20F7      .
        LD      A,$FF                   ; 08D4 3EFF     >.
        LD      (MOTORF),A              ; 08D6 321878   2.x
        LD      HL,STATUS0              ; 08D9 211E78   !.x
        SET     4,(HL)                  ; 08DC CBE6     ..
Lb149:  LD      HL,$7FFF                ; 08DE 21FF7F   !..
        LD      ($7832),HL              ; 08E1 223278   "2x
        RET                             ; 08E4 C9       .
                                        ;--------------------------------------------
Lb24:   DI                              ; 08E5 F3       .
        LD      HL,($7832)              ; 08E6 2A3278   *2x motor run delay?
        LD      A,H                     ; 08E9 7C       |
        OR      L                       ; 08EA B5       .
        JR      Z,Lb151                 ; 08EB 2846     (F
        DEC     HL                      ; 08ED 2B       +
        LD      ($7832),HL              ; 08EE 223278   "2x
        EI                              ; 08F1 FB       .
Lb153:  LD      HL,($7832)              ; 08F2 2A3278   *2x
        LD      A,H                     ; 08F5 7C       |
        OR      L                       ; 08F6 B5       .
        JR      NZ,Lb151                ; 08F7 203A      :
        DI                              ; 08F9 F3       .
        LD      A,($7826)               ; 08FA 3A2678   FDC status register shadow?
        CP      $4E                     ; 08FD FE4E     .N
        JR      NC,Lb152                ; 08FF 301C     0.
        CALL    Lb139                   ; 0901 CD3C08   .<.
        DI                              ; 0904 F3       .
        LD      A,($7826)               ; 0905 3A2678   :&x
        SRL     A                       ; 0908 CB3F     .?
        CALL    Lb134                   ; 090A CDC30A   
        LD      (TLEDNUM1),HL           ; 090D 223A78   ":x
        CALL    UPLED-1-2-B-E           ; 0910 CD120B   ...
        EI                              ; 0913 FB       .
        JR      Lb153                   ; 0914 18DC     ..
Lb148:  DI                              ; 0916 F3       .
        LD      HL,$0000                ; 0917 210000   !..
        LD      ($7832),HL              ; 091A 223278   "2x
Lb152:  CALL    Lb129                   ; 091D CD5508   .U.
        DI                              ; 0920 F3       .
        LD      HL,($7832)              ; 0921 2A3278   *2x
        LD      A,H                     ; 0924 7C       |
        OR      L                       ; 0925 B5       .
        JR      NZ,Lb151                ; 0926 200B      .
        IN      A,($0A)                 ; 0928 DB0A     ..motor off
        LD      HL,STATUS0              ; 092A 211E78   !.x
        RES     4,(HL)                  ; 092D CBA6     ..
        XOR     A                       ; 092F AF       .
        LD      (MOTORF),A              ; 0930 321878   2.x
Lb151:  EI                              ; 0933 FB       .
        RET                             ; 0934 C9       .
					; reset the fdc with d8 then d0 ----------------
Lb14:   LD      A,$D8                   ; 0935 3ED8     >. force interupt require reset
        LD      (COMMANDFDC),A          ; 0937 320060   2.`command register
        CALL    Lb80                    ; 093A CD6809   .h.
        PUSH    AF                      ; 093D F5       .
        LD      A,$D0                   ; 093E 3ED0     >.terminate with no interupt
        LD      (COMMANDFDC),A          ; 0940 320060   2.`command register
Lb154:  LD      A,(STATUSFDC)           ; 0943 3A0060   :.`status register
        LD      A,(STAT2)               ; 0946 3A0020   :. fdc
        AND     $80                     ; 0949 E680     .. wait for irq to go low
        JR      NZ,Lb154                ; 094B 20F6      .
        LD      A,(TRACKFDC)            ; 094D 3A0160   :.`
        LD      (DATAFDC),A             ; 0950 320360   2.`
        LD      B,$0F                   ; 0953 060F     ..
Lb155:  DJNZ    Lb155                   ; 0955 10FE     ..
        LD      A,$10                   ; 0957 3E10     >.seek with no verify
        LD      (COMMANDFDC),A          ; 0959 320060   2.`
Lb156:  LD      A,(STAT2)               ; 095C 3A0020   :. fdc
        AND     $80                     ; 095F E680     ..wait for irq to go high
        JR      Z,Lb156                 ; 0961 28F9     (.
        LD      A,(STATUSFDC)           ; 0963 3A0060   :.`
        POP     AF                      ; 0966 F1       .
        RET                             ; 0967 C9       .
;------------------------------------------------------------------------------------------
Lb80:   LD      A,(STAT2)               ; 0968 3A0020   :. fdc
        AND     $80                     ; 096B E680     .. wait for irq to go high
        JR      Z,Lb80                  ; 096D 28F9     (.
        LD      A,(STATUSFDC)           ; 096F 3A0060   :.`
        RET                             ; 0972 C9       .
;--------------------------------------------------------------------------------------------
Lb90:   CALL    Lb50                    ; 0973 CDA60A   check sector is 4 or greater
        LD      HL,(SECTORBUF)          ; 0976 2A2478   *$x
        JR      Lb39                    ; 0979 1801     Jump always
GSIOBLOCK
        EX      DE,HL                   ; 097B EB       .
Lb39:   PUSH    BC                      ; 097C C5       .
        PUSH    HL                      ; 097D E5       .
Lb158:  PUSH    BC                      ; 097E C5       .
        PUSH    HL                      ; 097F E5       .
        CALL    GSIOBYTE                ; 0980 CDD109   ... get byte
        POP     HL                      ; 0983 E1       .
        LD      (HL),C                  ; 0984 71       q
        INC     HL                      ; 0985 23       #
        POP     BC                      ; 0986 C1       .
        DJNZ    Lb158                   ; 0987 10F5     ..
        CALL    GSIOBYTE                ; 0989 CDD109   ... get byte
        LD      A,C                     ; 098C 79       y
        POP     HL                      ; 098D E1       .
        POP     BC                      ; 098E C1       .
        PUSH    AF                      ; 098F F5       .
        CALL    caculate-chksum         ; 0990 CD810A   ... caculate checksum
        POP     BC                      ; 0993 C1       .
        LD      C,B                     ; 0994 48       H
        CP      C                       ; 0995 B9       .
        RET                             ; 0996 C9       .

Lb75:   PUSH    AF                      ; 0997 F5       .
        CALL    Lb50                    ; 0998 CDA60A   ...
        POP     AF                      ; 099B F1       .
        LD      HL,BUFFER               ; 099C 214279   set HL to buffer
        JR      Lb44                    ; 099F 180B     jump always..

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   
        JR      Lb44                    ; 09A9 1801     jump always
SSIOBLOCK:
        EX      DE,HL                   ; 09AB EB       .

Lb44:   PUSH    BC                      ; 09AC C5       .
        PUSH    HL                      ; 09AD E5       .
        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
        PUSH    AF                      ; 09B3 F5       store checksum
        LD      A,B                     ; 09B4 78       what was in A now back in A
        LD      B,$5A                   ; 09B5 065A     .Z
        CALL    CDOWNDELAY              ; 09B7 CD9E0C   ...
        CALL    SSIOBYTE                ; 09BA CD230A   send byte  sio (C for read)
        POP     AF                      ; 09BD F1       .
        POP     HL                      ; 09BE E1       .
        POP     BC                      ; 09BF C1       .
        PUSH    AF                      ; 09C0 F5       .
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
        RET                             ; 09D0 C9       .
;------------------------------------------------------------------------
;this section of code is send and recieve sio. high speed is included but doesn't work
GSIOBYTE:
        LD      A,($7815)               ; 09D1 3A1578   :.x
        OR      A                       ; 09D4 B7       .
        JR      NZ,Lb162                ; 09D5 2024      $
        LD      E,$07                   ; 09D7 1E07     ..8 bits
Lb163:  LD      A,(STAT2)               ; 09D9 3A0020   :. sio data in
        AND     $04                     ; 09DC E604     wait for start bit
        JR      NZ,Lb163                ; 09DE 20F9      .
        LD      B,$12                   ; 09E0 0612     
        CALL    CDOWNDELAY              ; 09E2 CD9E0C 17 lets go delay 239 t states
        INC     DE                      ; 09E5 13       .
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
        RET                             ; 09FA C9       .recieved byte in C
                                        ;high speed sio-----------------------------
Lb162:  PUSH    HL                      ; 09FB E5       .
        LD      B,$08                   ; 09FC 0608     8 bits
        LD      HL,STAT2                ; 09FE 210020   !. 
        LD      D,$02                   ; 0A01 1602     mask byte data in /2
Lb165:  RST     08H                     ; 0A03 CF       get start bit
					;
        JR      NZ,Lb165                ; 0A04 20FD      .
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
        POP     HL                      ; 0A0D E1       .
        RET                             ; 0A0E C9       .

Lb42:   LD      A,$41                   ; 0A0F 3E41     >A ack?
        CALL    SSIOBYTE                ; 0A11 CD230A   send byte  sio
        LD      A,($7814)               ; 0A14 3A1478   :.x
        LD      ($7815),A               ; 0A17 321578   2.x
        RET                             ; 0A1A C9       .

Lb55:   LD      BC,$82                  ; 0A1B 018200   ...
        CALL    Lb4                     ; 0A1E CD1200   ... delay?
        LD      A,$41                   ; 0A21 3E41     >A  ack?
SSIOBYTE:
        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
        LD      D,C                     ; 0A68 51       Q
        LD      B,$08                   ; 0A69 0608     8 bits
        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
        RET                             ; 0A80 C9       .
caculate-chksum:                        ;----------------------------------
	XOR     A                       ; 0A81 AF       . caculate checksum
Lb172:  ADD     A,(HL)                  ; 0A82 86       .
        ADC     A,$00                   ; 0A83 CE00     ..
        INC     HL                      ; 0A85 23       #
        DJNZ    Lb172                   ; 0A86 10FA     ..
        RET                             ; 0A88 C9       .
DATAINVERT:                             ;invert data in buffer-------------
Lb49:   PUSH    AF                      ; 0A89 F5       .
        PUSH    HL                      ; 0A8A E5       .
        CALL    Lb50                    ; 0A8B CDA60A   ...
        LD      HL,(SECTORBUF)          ; 0A8E 2A2478   *$x
Lb173:  LD      A,(HL)                  ; 0A91 7E       ~
        CPL                             ; 0A92 2F       /
        LD      (HL),A                  ; 0A93 77       w
        INC     HL                      ; 0A94 23       #
        DJNZ    Lb173                   ; 0A95 10FA     ..
        POP     HL                      ; 0A97 E1       .
        POP     AF                      ; 0A98 F1       .
        RET                             ; 0A99 C9       .
                                        ;----------------------------------
Lb40:   LD      HL,STATUS0              ; 0A9A 211E78   !.x
        SET     0,(HL)                  ; 0A9D CBC6     .. set bit 0 of
        RET                             ; 0A9F C9       . 781e to 0
                                        ;----------------------------------
Lb54:   LD      HL,STATUS0              ; 0AA0 211E78   !.x
        SET     1,(HL)                  ; 0AA3 CBCE     ..
        RET                             ; 0AA5 C9       .
; check if sector is 4 or greater------------------------------------------
Lb50:   LD      B,$80                   ; 0AA6 0680     ..
        LD      A,(CAUX12)              ; 0AA8 3A2078   : x
        CP      $04                     ; 0AAB FE04     check if sector 4
        JR      NC,Lb58                 ; 0AAD 3005     0.
        LD      A,($7821)               ; 0AAF 3A2178   2nd byte of CAUX12
        OR      A                       ; 0AB2 B7       .
        RET     Z                       ; 0AB3 C8       .

Lb58:   LD      B,$80                   ; 0AB4 0680     ..bytes per sector single	
        LD      A,(DENFLG)              ; 0AB6 3A1778   :.x
        DEC     A                       ; 0AB9 3D       = 7817 =1 = double
        RET     NZ                      ; 0ABA C0       .
        LD      B,$00                   ; 0ABB 0600     .. bytes per sector
        RET                             ; 0ABD C9       .
LEDNUM:                                 ;-----------------------------------
        CALL    Lb134                   ; 0ABE CDC30A   ...
        EX      DE,HL                   ; 0AC1 EB       .
        RET                             ; 0AC2 C9       .
                                        ;-----------------------------------
Lb134:  LD      HL,$22                  ; 0AC3 212200   !".
Lb174:  INC     HL                      ; 0AC6 23       #
        SUB     $0A                     ; 0AC7 D60A     ..
        JR      NC,Lb174                ; 0AC9 30FB     0.
        ADD     A,$0A                   ; 0ACB C60A     ..
        LD      D,(HL)                  ; 0ACD 56       V
        CALL    GETLEDNUM               ; 0ACE CDED0A   ... get led display number
        LD      E,A                     ; 0AD1 5F       _
        EX      DE,HL                   ; 0AD2 EB       .
        RET                             ; 0AD3 C9       .
G2LEDNUM:
        CALL    Lb176                   ; 0AD4 CDD90A   ...
        EX      DE,HL                   ; 0AD7 EB       Swap DE to HL
        RET                             ; 0AD8 C9       .

Lb176:  LD      E,A                     ; 0AD9 5F       _
        RRCA                            ; 0ADA 0F       rotate right A
        RRCA                            ; 0ADB 0F       put high 4bits
        RRCA                            ; 0ADC 0F       to low 4 bits
        RRCA                            ; 0ADD 0F       
        AND     $0F                     ; 0ADE E60F     only want low 4 bits
        CALL    GETLEDNUM               ; 0AE0 CDED0A   get led number
        LD      D,A                     ; 0AE3 57       store high in D
        LD      A,E                     ; 0AE4 7B       {
        AND     $0F                     ; 0AE5 E60F     get low 4 bits
        CALL    GETLEDNUM               ; 0AE7 CDED0A   get led number
        LD      E,A                     ; 0AEA 5F       store in E
        EX      DE,HL                   ; 0AEB EB       swap to HL.
        RET                             ; 0AEC C9       .
GETLEDNUM:                              ;-------------------------------------
        LD      C,A                     ; 0AED 4F        get number pattern
        LD      B,$00                   ; 0AEE 0600     .. to display
        LD      HL,LDTBL                ; 0AF0 212300   !#.on front
        ADD     HL,BC                   ; 0AF3 09       .leds
        LD      A,(HL)                  ; 0AF4 7E       ~number in
        RET                             ; 0AF5 C9       . A register
                                        ;--------------------------------------
Lb68:   LD      B,$09                   ; 0AF6 0609     ..
        JR      Lb177                   ; 0AF8 1803     ..
Lb179:  RLCA                            ; 0AFA 07       .
        JR      C,Lb178                 ; 0AFB 3802     8.
Lb177:  DJNZ    Lb179                   ; 0AFD 10FB     ..
Lb178:  LD      A,B                     ; 0AFF 78       x

        CALL    GETLEDNUM               ; 0B00 CDED0A   ...get number to display
        LD      L,A                     ; 0B03 6F       o
        RET                             ; 0B04 C9       .
                                        ;--------------------------------------
Lb69:   LD      (LEDERROR),HL           ; 0B05 223878   "8x
        LD      HL,$7837                ; 0B08 213778   !7x
        LD      A,(HL)                  ; 0B0B 7E       ~
        OR      $80                     ; 0B0C F680     ..
        LD      (HL),A                  ; 0B0E 77       w
        CALL    beep                    ; 0B0F CDDF0B   ...
                                        ;--------------------------------------
UPLED-1-2-B-E:
Lb11:   LD      A,($7837)               ; 0B12 3A3778   :7x
        LD      HL,(LEDERROR)           ; 0B15 2A3878   *8x
        ADD     A,A                     ; 0B18 87       .
        JR      C,Lb12                  ; 0B19 380E     8.
        CP      $04                     ; 0B1B FE04     ..
        JR      Z,Lb12                  ; 0B1D 280A     (.
        LD      HL,(DENLET)             ; 0B1F 2A3C78   *<x
        CP      $02                     ; 0B22 FE02     ..
        JR      Z,Lb12                  ; 0B24 2803     (.
        LD      HL,(TLEDNUM1)           ; 0B26 2A3A78   *:x
Lb12:   LD      A,H                     ; 0B29 7C       |
        AND     $7F                     ; 0B2A E67F     ..
        LD      H,A                     ; 0B2C 67       g
        LD      A,($783E)               ; 0B2D 3A3E78   :>x
        AND     $80                     ; 0B30 E680     ..
        OR      H                       ; 0B32 B4       .
        LD      H,A                     ; 0B33 67       g
        LD      A,L                     ; 0B34 7D       }
        AND     $7F                     ; 0B35 E67F     ..
        LD      L,A                     ; 0B37 6F       o
        LD      A,(BUSYLD)              ; 0B38 3A3F78   :?x
        CPL                             ; 0B3B 2F       /
        AND     $80                     ; 0B3C E680     ..
        OR      L                       ; 0B3E B5       .
        LD      L,A                     ; 0B3F 6F       o
        LD      (LED1),HL               ; 0B40 22FF4F   ".O set busy led?
        RET                             ; 0B43 C9       .
BUTTONS:
;CP/M INIT command enters here for buttons
Lb23:   DI                              ; 0B44 F3       .
        LD      A,(STAT1S)              ; 0B45 3A3678   buttons status ram
        LD      B,A                     ; 0B48 47       G
        LD      A,(STAT1)               ; 0B49 3A0110   :..
        LD      C,A                     ; 0B4C 4F       O
        AND     $80                     ; 0B4D E680     .. disk write protect
        JR      Z,Lb180                 ; 0B4F 2808     (.
        LD      A,$FF                   ; 0B51 3EFF     >.
        LD      ($7819),A               ; 0B53 321978   2.x
        LD      ($781A),A               ; 0B56 321A78   2.x
Lb180:  LD      A,C                     ; 0B59 79       y
        AND     $70                     ; 0B5A E670     mask out all but buttons
        LD      (STAT1S),A              ; 0B5C 323678   save to ram
        LD      C,A                     ; 0B5F 4F       O
        LD      A,(STAT1R)              ; 0B60 3A0010   :..
        LD      A,B                     ; 0B63 78       x
        XOR     C                       ; 0B64 A9       .
        AND     C                       ; 0B65 A1       .
        JR      Z,Lb181                 ; 0B66 2853     (S
        LD      B,$01                   ; 0B68 0601     ..
        BIT     5,A                     ; 0B6A CB6F     test ID button pressed
        JR      NZ,Lb182                ; 0B6C 201D      .
        LD      B,$02                   ; 0B6E 0602     ..
        BIT     6,A                     ; 0B70 CB77     test ERROR button being pressed
        JR      NZ,Lb183                ; 0B72 200C      .
        BIT     6,C                     ; 0B74 CB71     test error button held
        JR      Z,Lb184                 ; 0B76 281E     (.
        LD      HL,$86BF                ; 0B78 21BF86   E- front leds
        LD      (LEDERROR),HL           ; 0B7B 223878   set error for front leds
        JR      Lb185                   ; 0B7E 1837     .7
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
        JR      Lb181                   ; 0B89 1830     .0
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
        JR      Z,Lb187                 ; 0B98 2817     (.
        XOR     A                       ; 0B9A AF       hold id, press track
        LD      ($7819),A               ; 0B9B 321978   
        LD      HL,DENFLG               ; 0B9E 211778   change density
        LD      A,(HL)                  ; 0BA1 7E       ~
        INC     A                       ; 0BA2 3C       <
        CP      $03                     ; 0BA3 FE03     ..
        JR      C,Lb188                 ; 0BA5 3801     8.
        XOR     A                       ; 0BA7 AF       .
Lb188:  LD      (HL),A                  ; 0BA8 77       w
        LD      ($7816),A               ; 0BA9 321678   2.x
        CALL    SETDENFLG               ; 0BAC CDF20B   ...
        JR      Lb185                   ; 0BAF 1806     ..
Lb187:  LD      B,$00                   ; 0BB1 0600     ..
Lb186:  LD      A,B                     ; 0BB3 78       x
        LD      ($7837),A               ; 0BB4 323778   1=chck disk density.2=drive type?
Lb185:  EI                              ; 0BB7 FB       .
        CALL    beep                    ; 0BB8 CDDF0B   send beep
Lb181:  CALL    DNUMSWITCH              ; 0BBB CDCE0B   get drive number switch
        EI                              ; 0BBE FB       .
        LD      A,($781A)               ; 0BBF 3A1A78   :.x
        OR      A                       ; 0BC2 B7       .
        CALL    NZ,Lb15                 ; 0BC3 C4BE08   motor on
        XOR     A                       ; 0BC6 AF       .
        LD      ($781A),A               ; 0BC7 321A78   2.x
        CALL    UPLED-1-2-B-E           ; 0BCA CD120B   ...
        RET                             ; 0BCD C9       .
;Gets drive number from dip switches
DNUMSWITCH:
        LD      A,(STAT1)               ; 0BCE 3A0110   :..
        AND     $03                     ; 0BD1 E603     .. Drive number switch
        INC     A                       ; 0BD3 3C       <
        PUSH    AF                      ; 0BD4 F5       .
        CALL    GETLEDNUM               ; 0BD5 CDED0A   ...led display number
        LD      (DNMLED),A              ; 0BD8 323D78   2=x store led drive number in 783d
        POP     AF                      ; 0BDB F1       .
        OR      $30                     ; 0BDC F630     .0 device number drive set to
        RET                             ; 0BDE C9       .
                                        ;---------------------------
;sends audio beep to consol
beep:   LD      C,$00                   ; 0BDF 0E00     ..
        LD      H,$20                   ; 0BE1 2620     & 
Lb190:  LD      L,$90                   ; 0BE3 2E90     ..
        LD      A,C                     ; 0BE5 79       y
        XOR     $01                     ; 0BE6 EE01     ..
        LD      C,A                     ; 0BE8 4F       O
        IN      A,(C)                   ; 0BE9 ED78     .xaudio beep?
Lb189:  DEC     L                       ; 0BEB 2D       -
        JR      NZ,Lb189                ; 0BEC 20FD      .
        DEC     H                       ; 0BEE 25       %
        JR      NZ,Lb190                ; 0BEF 20F2      .
        RET                             ; 0BF1 C9       .
SETDENFLG:
        LD      B,$88                   ; 0BF2 0688     A for front led
        LD      A,(DENFLG)              ; 0BF4 3A1778   :.x on FDC to single or double
        OR      A                       ; 0BF7 B7       set flags  
        JR      Z,Lb191                 ; 0BF8 2808     (. depending on contents
        LD      B,$83                   ; 0BFA 0683     .. of $7817
        CP      $01                     ; 0BFC FE01     .. double
        JR      Z,Lb191                 ; 0BFE 2802     (.
        LD      B,$C6                   ; 0C00 06C6     C for front led display
Lb191:  ADD     A,$FF                   ; 0C02 C6FF     if a =0
        CCF                             ; 0C04 3F       then this will set a to FF
        SBC     A,A                     ; 0C05 9F       else a is set to 0
        AND     $01                     ; 0C06 E601     get low bit
        OR      $08                     ; 0C08 F608     set to dden line
        LD      C,A                     ; 0C0A 4F       O
        IN      A,(C)                   ; 0C0B ED78     set dden to 1 or 0
        LD      A,B                     ; 0C0D 78       B=88 single 83 double
        LD      (DENLET),A              ; 0C0E 323C78   C6 enhanced
        RET                             ; 0C11 C9       88=A 83=b c6=C
                                        ;               for front led display
; this routine determins the FDC type and loads FDC commands to 780C,7810
Lb18:   CALL    Lb14                    ; 0C12 CD3509   .5.
        LD      HL,$0033                ; 0C15 213300   !3.
        LD      A,$D8                   ; 0C18 3ED8     >.
        LD      (COMMANDFDC),A          ; 0C1A 320060   2.`
        LD      B,$0A                   ; 0C1D 060A     ..
Lb192:  DJNZ    Lb192                   ; 0C1F 10FE     ..
        LD      A,(STAT2)               ; 0C21 3A0020   :. 
        AND     $80                     ; 0C24 E680     ..
        JR      Z,Lb193                 ; 0C26 2803     (.irq low
        LD      HL,$C37                 ; 0C28 21370C   !7.
Lb193:  LD      DE,RESTORE              ; 0C2B 110C78   ..x
        LD      BC,$05                  ; 0C2E 010500   ...
        LDIR                            ; 0C31 EDB0     ..
        CALL    Lb14                    ; 0C33 CD3509   .5.
        RET                             ; 0C36 C9       .
	;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
        DEC     HL                      ; 0C3F 2B       +
        LD      DE,$2D0                 ; 0C40 11D002   ... total sectors on disk. single and double
        LD      A,(DENFLG)              ; 0C43 3A1778   :.x
        CP      $02                     ; 0C46 FE02     ..
        JR      NZ,Lb194                ; 0C48 2003      .
        LD      DE,$410                 ; 0C4A 111004   ... total sectors on disk enhanced 1040
Lb194:  OR      A                       ; 0C4D B7       .
        SBC     HL,DE                   ; 0C4E ED52     .R
        JR      C,Lb195                 ; 0C50 3803     8.
        OR      $FF                     ; 0C52 F6FF     ..
        RET                             ; 0C54 C9       .

Lb195:  XOR     A                       ; 0C55 AF       .
        RET                             ; 0C56 C9       .
; 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
        LD      A,(DENFLG)              ; 0C5E 3A1778   :.x
        CP      $02                     ; 0C61 FE02     enhanced density?
        JR      NZ,Lb196                ; 0C63 2002      .
        LD      C,$1A                   ; 0C65 0E1A     Yes. 26 sectors per track in C
Lb196:  LD      D,$00                   ; 0C67 1600     ..
        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
        JR      C,Lb197                 ; 0C6F 3802     8.
        SUB     C                       ; 0C71 91       .
        INC     D                       ; 0C72 14       .
Lb197:  DJNZ    Lb198                   ; 0C73 10F5     ..
        INC     A                       ; 0C75 3C       <
        LD      (SECTORN),A             ; 0C76 322378   2#x
        LD      A,D                     ; 0C79 7A       z
        ADD     A,A                     ; 0C7A 87       .
        LD      (TRACKNUM),A            ; 0C7B 322278   2"x
        RET                             ; 0C7E C9       .
; read track register, multiply out and add sector register. 18/26 sectors allowed for
Lb84:   LD      A,(TRACKFDC)            ; 0C7F 3A0160   :.`read track register
        LD      L,A                     ; 0C82 6F       o
        LD      H,$00                   ; 0C83 2600     &.
        ADD     HL,HL                   ; 0C85 29       )  +2
        LD      E,L                     ; 0C86 5D       ] keep +2
        LD      D,H                     ; 0C87 54       T
        ADD     HL,HL                   ; 0C88 29       ) double
        ADD     HL,HL                   ; 0C89 29       ) double *8
        PUSH    HL                      ; 0C8A E5       . keep *8
        ADD     HL,HL                   ; 0C8B 29       ) *16
        ADD     HL,DE                   ; 0C8C 19       . +2
        POP     DE                      ; 0C8D D1       .
        LD      A,(DENFLG)              ; 0C8E 3A1778   :.x density flag
        CP      $02                     ; 0C91 FE02     ..
        JR      NZ,Lb199                ; 0C93 2001      .
        ADD     HL,DE                   ; 0C95 19       . +8 for enhanced denisty
Lb199:  LD      A,(SECTORFDC)           ; 0C96 3A0260   :.`read sector register
        LD      E,A                     ; 0C99 5F       _
        LD      D,$00                   ; 0C9A 1600     ..get sect number?
        ADD     HL,DE                   ; 0C9C 19       . add it in
        RET                             ; 0C9D C9       .
;Countdown delay. load B with number and call here
CDOWNDELAY:
        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
Lb1:    PUSH    AF                      ; 0CA1 F5       .
        PUSH    DE                      ; 0CA2 D5       .
        LD      L,C                     ; 0CA3 69       i
        LD      H,$00                   ; 0CA4 2600     &.
        ADD     HL,HL                   ; 0CA6 29        X 2
        LD      DE,$CB2                 ; 0CA7 11B20C   ...
        ADD     HL,DE                   ; 0CAA 19       Add offset
        LD      E,(HL)                  ; 0CAB 5E       ^
        INC     HL                      ; 0CAC 23       #
        LD      D,(HL)                  ; 0CAD 56       V
        EX      DE,HL                   ; 0CAE EB       .
        POP     DE                      ; 0CAF D1       .
        POP     AF                      ; 0CB0 F1       .
        JP      (HL)                    ; 0CB1 E9       .
;------------------------------------------------------------------------------
; pointers to routines. Used mostly for INDUS CP/M and DIAG program. 
;	INDUS CP/M INIT disk jumps directly to routines in rom.
;------------------------------------------------------------------------------
        WORD VERNUM                     ; 0CB2 F40C  0  $cf4 version number
        WORD TRK0                       ; 0CB4 C107  1  $7c1 step to track zero?
        WORD STTRACK                    ; 0CB6 F007  2  $7F0 step to track?
        WORD XCMD1                      ; 0CB8 CF04  3  $4CF read sector
        WORD XCMD2                      ; 0CBA CB04  4  $4cb write sector
        WORD GSIOBYTE                   ; 0CBC D109  5  $9D1 Get sio byte at 19200 baud
        WORD SSIOBYTE                   ; 0CBE 230A  6  $A23 Send sio byte 
        WORD GSIOBLOCK                  ; 0CC0 7B09  7  $97B Get sio Block. de=Buffer. B=Number to get
        WORD SSIOBLOCK                  ; 0CC2 AB09  8  $9AB Send sio block. de=buffer. B=Number to send
        WORD GETLEDNUM                  ; 0CC4 ED0A  9  $AED Get led pattern num. A=Number
        WORD LEDNUM                     ; 0CC6 BE0A  a  $ABE Led NUM. What does it do?       .
        WORD G2LEDNUM                   ; 0CC8 D40A  b  $AD4 A= BCD LED NUM. DE=Led data returned
        WORD MONOFF                     ; 0CCA BC08  c  $8BC Motor on or off?
        WORD BUTTONS                    ; 0CCC 440B  d  $B44 Button status?
        WORD BC7824                     ; 0CCE DC0C  e  $CDC Returns sector buffer pointer
        WORD IX780C                     ; 0CD0 E00C  f  $CE0 returns FDC Restore command
        WORD beep                       ; 0CD2 DF0B  10  $BDF Send Beep to audio in line
        WORD UPLED-1-2-B-E              ; 0CD4 120B  11  $B12 Update front led display, Busy and Enpre
        WORD LBCDE                      ; 0CD6 E50C  12  $CE5 returns FDC read/write sector commands
        WORD SETDENFLG                  ; 0CD8 F20B  13  $BF2 set density Flags and DDEN
        WORD LDEIX                      ; 0CDA EC0C  14  $CEC DE=781F,IX=$7826. flags for ?
BC7824:
        LD      BC,SECTORBUF            ; 0CDC 012478   .$x
        RET                             ; 0CDF C9       .
IX780C:
        LD      IX,RESTORE              ; 0CE0 DD210C78 .!.x
        RET                             ; 0CE4 C9       .
LBCDE
        LD      BC,READSECT             ; 0CE5 010D78   ..x
        LD      DE,WRITESECT            ; 0CE8 110E78   ..x
        RET                             ; 0CEB C9       .
LDEIX
        LD      DE,$FDCSTA              ; 0CEC 111F78   ..x
        LD      IX,$7826                ; 0CEF DD212678 .!&x
        RET                             ; 0CF3 C9       .
VERNUM
        LD      DE,$120                 ; 0CF4 112001   . . version number
        RET                             ; 0CF7 C9       .
;----------------------------------------------------------------------------
;routines for startup test.
Lb218:  DI                              ; 0CF8 F3       .
        LD      SP,HL                   ; 0CF9 F9       .
Lb213:  DI                              ; 0CFA F3       .
        LD      A,$89                   ; 0CFB 3E89     >.
        LD      (LED2),A                ; 0CFD 320050   2. figure H
        LD      B,$70                   ; 0D00 0670     .p
        LD      C,$00                   ; 0D02 0E00     ..
Lb205:  LD      A,(STAT1R)              ; 0D04 3A0010   :.. front buttons
        LD      A,(STAT1)               ; 0D07 3A0110   :..
        AND     B                       ; 0D0A A0       .
        JR      Z,Lb204                 ; 0D0B 280D     (.
        DEC     L                       ; 0D0D 2D       -
        JR      NZ,Lb205                ; 0D0E 20F4      .
        LD      L,$90                   ; 0D10 2E90     ..
        LD      A,C                     ; 0D12 79       y
        XOR     $01                     ; 0D13 EE01     ..
        LD      C,A                     ; 0D15 4F       O
        IN      A,(C)                   ; 0D16 ED78     .x audio beep
        JR      Lb205                   ; 0D18 18EA     ..
Lb204:  LD      A,(STAT1R)              ; 0D1A 3A0010   :..
        LD      A,(STAT1)               ; 0D1D 3A0110   :..
        AND     B                       ; 0D20 A0       .
        CP      B                       ; 0D21 B8       .
        JR      Z,Lb206                 ; 0D22 280D     (.
        DEC     L                       ; 0D24 2D       -
        JR      NZ,Lb204                ; 0D25 20F3      .
        LD      L,$90                   ; 0D27 2E90     ..
        LD      A,C                     ; 0D29 79       y
        XOR     $01                     ; 0D2A EE01     .. audio beep
        LD      C,A                     ; 0D2C 4F       O
        IN      A,(C)                   ; 0D2D ED78     .x
        JR      Lb204                   ; 0D2F 18E9     ..
Lb206:  LD      A,$C6                   ; 0D31 3EC6     >. figure C
        LD      (LED2),A                ; 0D33 320050   2.P
        SBC     HL,HL                   ; 0D36 ED62     .b
        ADD     HL,SP                   ; 0D38 39       9
        JP      (HL)                    ; 0D39 E9       . jump somewhere

Lb207:  HALT                            ; 0D3A 76       v
;startup test routine------------------------------------------------------
Lb0:    DI                              ; 0D3B F3       .init routine
        IN      A,($03)                 ; 0D3C DB03     ip enable?
        IN      A,($04)                 ; 0D3E DB04     txd high
        IN      A,($06)                 ; 0D40 DB06     rxd high
        IN      A,($0A)                 ; 0D42 DB0A     motor off
        IN      A,($0C)                 ; 0D44 DB0C     ip on?
        XOR     A                       ; 0D46 AF       zero A
        JR      NZ,Lb207                ; 0D47 20F1     get out if A <>0
        JR      C,Lb207                 ; 0D49 38EF     8.
        JP      P0,Lb207                ; 0D4B E23A0D   .:.
        JP      M,Lb207                 ; 0D4E FA3A0D   .:.
        DEC     A                       ; 0D51 3D       =
        ADD     A,A                     ; 0D52 87       .
        JR      Z,Lb207                 ; 0D53 28E5     check zero flag
        JR      NC,Lb207                ; 0D55 30E3     check carry flag
        JP      PE,Lb207                ; 0D57 EA3A0D   check posative flag
        JP      P,Lb207                 ; 0D5A F23A0D   check paraity flag
        LD      A,$55                   ; 0D5D 3E55     >U
        CP      $55                     ; 0D5F FE55     .U
        JR      NZ,Lb207                ; 0D61 20D7      .
        RLCA                            ; 0D63 07       .
        CP      $AA                     ; 0D64 FEAA     ..
        JR      NZ,Lb207                ; 0D66 20D2      .
        LD      A,$80                   ; 0D68 3E80     >. Figure 8
        LD      (LED1),A                ; 0D6A 32FF4F   2.O
        LD      (LED2),A                ; 0D6D 320050   2.P
        XOR     A                       ; 0D70 AF       .
Lb208:  LD      B,A                     ; 0D71 47       check registers
        LD      C,B                     ; 0D72 48       H
        LD      D,C                     ; 0D73 51       Q
        LD      E,D                     ; 0D74 5A       Z
        LD      H,E                     ; 0D75 63       c
        LD      L,H                     ; 0D76 6C       l
        EX      AF,A'F'                 ; 0D77 08       .
        LD      A,L                     ; 0D78 7D       }
        LD      I,A                     ; 0D79 ED47     .G
        LD      A,I                     ; 0D7B ED57     .W
        EXX                             ; 0D7D D9       .
        LD      B,A                     ; 0D7E 47       G
        LD      C,B                     ; 0D7F 48       H
        LD      D,C                     ; 0D80 51       Q
        LD      E,D                     ; 0D81 5A       Z
        LD      H,E                     ; 0D82 63       c
        LD      L,H                     ; 0D83 6C       l
        EX      AF,A'F'                 ; 0D84 08       .
        CP      L                       ; 0D85 BD       .
        JR      NZ,Lb207                ; 0D86 20B2      .
        INC     A                       ; 0D88 3C       <
        JR      NZ,Lb208                ; 0D89 20E6      .
        LD      B,A                     ; 0D8B 47       G
        LD      C,A                     ; 0D8C 4F       O
Lb209:  DEC     C                       ; 0D8D 0D       .
        JR      NZ,Lb209                ; 0D8E 20FD      .
        DJNZ    Lb209                   ; 0D90 10FB     ..
        XOR     A                       ; 0D92 AF       .
        LD      E,A                     ; 0D93 5F       _
        LD      D,A                     ; 0D94 57       W
Lb210:  EX      DE,HL                   ; 0D95 EB       .
        LD      SP,HL                   ; 0D96 F9       .
        EX      DE,HL                   ; 0D97 EB       .
        LD      L,A                     ; 0D98 6F       o
        LD      H,A                     ; 0D99 67       g
        ADD     HL,SP                   ; 0D9A 39       9
        SBC     HL,DE                   ; 0D9B ED52     .R
        JR      NZ,Lb207                ; 0D9D 209B      .
        INC     E                       ; 0D9F 1C       .
        INC     D                       ; 0DA0 14       .
        JR      NZ,Lb210                ; 0DA1 20F2      end test processor
        XOR     A                       ; 0DA3 AF       zero A
        LD      I,A                     ; 0DA4 ED47     .G
        LD      A,(STAT1R)              ; 0DA6 3A0010   :..
        LD      A,(STAT1)               ; 0DA9 3A0110   :..
        LD      B,A                     ; 0DAC 47       G
        OR      $70                     ; 0DAD F670     .p
        SUB     B                       ; 0DAF 90       .
        JR      NZ,Lb211                ; 0DB0 2003      .
        DEC     A                       ; 0DB2 3D       =
        LD      I,A                     ; 0DB3 ED47     .G
Lb211:  LD      HL,$C6C0                ; 0DB5 21C0C6   front leds = C0
        LD      (LED1),HL               ; 0DB8 22FF4F   ".O
        LD      SP,$DDC                 ; 0DBB 31DC0D   1..
        LD      BC,$FFE                 ; 0DBE 01FE0F   rom to end chksum
        LD      DE,$00                  ; 0DC1 110000   ...
        LD      HL,$00                  ; 0DC4 210000   !..
Lb212:  LD      A,(HL)                  ; 0DC7 7E       ~
        ADD     A,E                     ; 0DC8 83       add up chksum
        LD      E,A                     ; 0DC9 5F       _
        LD      A,D                     ; 0DCA 7A       z
        ADC     A,$00                   ; 0DCB CE00     ..
        LD      D,A                     ; 0DCD 57       W test rom
        INC     HL                      ; 0DCE 23       #
        DEC     BC                      ; 0DCF 0B       .
        LD      A,B                     ; 0DD0 78       x
        OR      C                       ; 0DD1 B1       .
        JR      NZ,Lb212                ; 0DD2 20F3      .
        LD      HL,($FFE)               ; 0DD4 2AFE0F   *..
        SBC     HL,DE                   ; 0DD7 ED52     .R
        JP      NZ,Lb213                ; 0DD9 C2FA0C   jump if problem
        LD      A,$F9                   ; 0DDC 3EF9     1 in front led
        LD      (LED1),A                ; 0DDE 32FF4F   2.O
        LD      SP,$E08                 ; 0DE1 31080E   1..
        LD      A,$55                   ; 0DE4 3E55     >U
Lb216:  LD      HL,RINVEC               ; 0DE6 210078   ram start
        LD      BC,$800                 ; 0DE9 010008   ram length
Lb214:  LD      (HL),A                  ; 0DEC 77       w
        RLCA                            ; 0DED 07       .
        INC     HL                      ; 0DEE 23       #
        DEC     C                       ; 0DEF 0D       .
        JR      NZ,Lb214                ; 0DF0 20FA      .
        DJNZ    Lb214                   ; 0DF2 10F8     ..
        LD      HL,RINVEC               ; 0DF4 210078   !.x
        LD      BC,$800                 ; 0DF7 010008   ...
Lb215:  CP      (HL)                    ; 0DFA BE       .
        JP      NZ,Lb213                ; 0DFB C2FA0C   ...
        RLCA                            ; 0DFE 07       .ram quick test
        INC     HL                      ; 0DFF 23       #
        DEC     C                       ; 0E00 0D       .
        JR      NZ,Lb215                ; 0E01 20F7      .
        DJNZ    Lb215                   ; 0E03 10F5     ..
        RLCA                            ; 0E05 07       .
        JR      NC,Lb216                ; 0E06 30DE     0.
        LD      A,I                     ; 0E08 ED57     .W
        OR      A                       ; 0E0A B7       .
        JR      NZ,Lb217                ; 0E0B 2026      &
        LD      A,$A4                   ; 0E0D 3EA4     >. figure 2
        LD      (LED1),A                ; 0E0F 32FF4F   2.O
        LD      HL,$E33                 ; 0E12 21330E   !3.
        LD      SP,$8000                ; 0E15 310080   1..
        LD      DE,$00                  ; 0E18 110000   ...
Lb219:  PUSH    DE                      ; 0E1B D5       .
        POP     IX                      ; 0E1C DDE1     ..
        PUSH    IX                      ; 0E1E DDE5     ..
        POP     IY                      ; 0E20 FDE1     ..index register test
        PUSH    IY                      ; 0E22 FDE5     ..
        POP     BC                      ; 0E24 C1       .
        LD      A,D                     ; 0E25 7A       z
        CP      B                       ; 0E26 B8       .
        JP      NZ,Lb218                ; 0E27 C2F80C   ...
        LD      A,E                     ; 0E2A 7B       {
        CP      C                       ; 0E2B B9       .
        JP      NZ,Lb218                ; 0E2C C2F80C   ...
        INC     E                       ; 0E2F 1C       .
        INC     D                       ; 0E30 14       .
        JR      NZ,Lb219                ; 0E31 20E8      .
Lb217:  LD      A,$B0                   ; 0E33 3EB0     >. figure 3
        LD      (LED1),A                ; 0E35 32FF4F   2.O
        LD      SP,$EB1                 ; 0E38 31B10E   1..
        IN      A,($08)                 ; 0E3B DB08     ..dden low
        LD      A,$D8                   ; 0E3D 3ED8     >.
        LD      (COMMANDFDC),A          ; 0E3F 320060   2.`
        LD      B,$0F                   ; 0E42 060F     ..
Lb220:  DJNZ    Lb220                   ; 0E44 10FE     ..
        LD      A,(STAT2)               ; 0E46 3A0020   :. irq low
        AND     $80                     ; 0E49 E680     ..
        JP      Z,Lb213                 ; 0E4B CAFA0C   ... test fdc
        LD      A,$D0                   ; 0E4E 3ED0     >.
        LD      (COMMANDFDC),A          ; 0E50 320060   2.`
        LD      B,$0F                   ; 0E53 060F     ..
Lb221:  DJNZ    Lb221                   ; 0E55 10FE     ..
        LD      A,(STATUSFDC)           ; 0E57 3A0060   :.`
        LD      B,$0F                   ; 0E5A 060F     ..
Lb222:  DJNZ    Lb222                   ; 0E5C 10FE     ..
        LD      A,(STAT2)               ; 0E5E 3A0020   :. 
        AND     $80                     ; 0E61 E680     .. irq high
        JP      NZ,Lb213                ; 0E63 C2FA0C   ...
        XOR     A                       ; 0E66 AF       .
Lb225:  LD      HL,TRACKFDC             ; 0E67 210160   !.`
        LD      B,$03                   ; 0E6A 0603     ..
Lb223:  LD      (HL),A                  ; 0E6C 77       w
        INC     HL                      ; 0E6D 23       #
        INC     A                       ; 0E6E 3C       <
        DJNZ    Lb223                   ; 0E6F 10FB     ..
        LD      B,$03                   ; 0E71 0603     ..
Lb224:  DEC     HL                      ; 0E73 2B       +
        DEC     A                       ; 0E74 3D       =
        CP      (HL)                    ; 0E75 BE       .
        JP      NZ,Lb213                ; 0E76 C2FA0C   ...
        DJNZ    Lb224                   ; 0E79 10F8     ..
        INC     A                       ; 0E7B 3C       <
        JR      NZ,Lb225                ; 0E7C 20E9      .
        LD      A,(TRACKFDC)            ; 0E7E 3A0160   :.`
        LD      (DATAFDC),A             ; 0E81 320360   2.`
        LD      A,$10                   ; 0E84 3E10     >.
        LD      (COMMANDFDC),A          ; 0E86 320060   2.`
Lb226:  LD      A,(STAT2)               ; 0E89 3A0020   :. 
        AND     $80                     ; 0E8C E680     .. wait for irq to go low
        JR      Z,Lb226                 ; 0E8E 28F9     (.
        LD      A,(STATUSFDC)           ; 0E90 3A0060   :.`
        IN      A,($03)                 ; 0E93 DB03     ..ip enable
        IN      A,($0D)                 ; 0E95 DB0D     ..ip on
        LD      B,$07                   ; 0E97 0607     ..
Lb227:  DJNZ    Lb227                   ; 0E99 10FE     ..
        LD      A,(STATUSFDC)           ; 0E9B 3A0060   :.`
        AND     $02                     ; 0E9E E602     ..
        JP      Z,Lb213                 ; 0EA0 CAFA0C   ...
        IN      A,($0C)                 ; 0EA3 DB0C     ..ip off?
        LD      B,$07                   ; 0EA5 0607     ..
Lb228:  DJNZ    Lb228                   ; 0EA7 10FE     ..
        LD      A,(STATUSFDC)           ; 0EA9 3A0060   :.`
        AND     $02                     ; 0EAC E602     ..
        JP      NZ,Lb213                ; 0EAE C2FA0C   ...
        LD      A,I                     ; 0EB1 ED57     .W
        OR      A                       ; 0EB3 B7       .
        JR      Z,Lb229                 ; 0EB4 2837     (7
        LD      A,$99                   ; 0EB6 3E99     >figure 4
        LD      (LED1),A                ; 0EB8 32FF4F   2.O
        LD      SP,$EED                 ; 0EBB 31ED0E   1..
        LD      B,$3F                   ; 0EBE 063F     .?
        IN      A,($06)                 ; 0EC0 DB06     ..rxd high
        IN      A,($04)                 ; 0EC2 DB04     ..txd high
        LD      A,(STAT2)               ; 0EC4 3A0020   :. 
        AND     B                       ; 0EC7 A0       .
        CP      B                       ; 0EC8 B8       .
        JP      NZ,Lb213                ; 0EC9 C2FA0C   ...
        IN      A,($07)                 ; 0ECC DB07     ..rxd low
        LD      A,(STAT2)               ; 0ECE 3A0020   :. 
        AND     B                       ; 0ED1 A0       .
        CP      $1C                     ; 0ED2 FE1C     ..
        JP      NZ,Lb213                ; 0ED4 C2FA0C   ...
        IN      A,($05)                 ; 0ED7 DB05     ..txd low
        LD      A,(STAT2)               ; 0ED9 3A0020   :. 
        AND     B                       ; 0EDC A0       .
        JP      NZ,Lb213                ; 0EDD C2FA0C   ...
        IN      A,($06)                 ; 0EE0 DB06     ..rxd high
        LD      A,(STAT2)               ; 0EE2 3A0020   :. 
        AND     B                       ; 0EE5 A0       .
        CP      $23                     ; 0EE6 FE23     .#
        JP      NZ,Lb213                ; 0EE8 C2FA0C   ...
        IN      A,($04)                 ; 0EEB DB04     ..txd high
Lb229:  LD      A,I                     ; 0EED ED57     .W
        OR      A                       ; 0EEF B7       .
        JR      Z,Lb230                 ; 0EF0 2840     (@
        LD      A,$92                   ; 0EF2 3E92     figure 5
        LD      (LED1),A                ; 0EF4 32FF4F   2.O
        IM      1                       ; 0EF7 ED56     .V
        LD      A,$C3                   ; 0EF9 3EC3     >.
        LD      (RINVEC),A              ; 0EFB 320078   2.x
        LD      HL,$F2E                 ; 0EFE 212E0F   !..
        LD      ($7801),HL              ; 0F01 220178   ".x
        LD      SP,$8000                ; 0F04 310080   1..
        LD      HL,$F32                 ; 0F07 21320F   !2.
        LD      C,$06                   ; 0F0A 0E06     ..rxd high
        IN      B,(C)                   ; 0F0C ED40     .@??????
        EI                              ; 0F0E FB       .
        NOP                             ; 0F0F 00       .
        XOR     A                       ; 0F10 AF       .
        NOP                             ; 0F11 00       .test interupt circuit
        DI                              ; 0F12 F3       .
        OR      A                       ; 0F13 B7       .
        JP      NZ,Lb218                ; 0F14 C2F80C   ...
        INC     C                       ; 0F17 0C       .
        EI                              ; 0F18 FB       .
        IN      B,(C)                   ; 0F19 ED40     .@rxd low 
        NOP                             ; 0F1B 00       .
        DI                              ; 0F1C F3       .test sio bus
        OR      A                       ; 0F1D B7       .look for shorting plug
        JP      Z,Lb218                 ; 0F1E CAF80C   ...
        XOR     A                       ; 0F21 AF       .
        DEC     C                       ; 0F22 0D       .
        EI                              ; 0F23 FB       .
        IN      B,(C)                   ; 0F24 ED40     .@txd low
        NOP                             ; 0F26 00       .
        DI                              ; 0F27 F3       .
        OR      A                       ; 0F28 B7       .
        JP      NZ,Lb218                ; 0F29 C2F80C   ...
        JR      Lb230                   ; 0F2C 1804     ..
        LD      A,$FF                   ; 0F2E 3EFF     >.
        RETI                            ; 0F30 ED4D     .M

Lb230:  LD      A,I                     ; 0F32 ED57     .W
        OR      A                       ; 0F34 B7       .
        JR      Z,Lb231                 ; 0F35 2861     (a
        LD      A,$82                   ; 0F37 3E82     >. figure 6
        LD      (LED1),A                ; 0F39 32FF4F   2.O
        LD      SP,$F98                 ; 0F3C 31980F   1..
        LD      BC,$7FF                 ; 0F3F 01FF07   ...
        LD      DE,$7801                ; 0F42 110178   ..x
        LD      HL,RINVEC               ; 0F45 210078   !.x
        LD      (HL),$00                ; 0F48 3600     6.
        LDIR                            ; 0F4A EDB0     ..clear ram
        LD      E,$C6                   ; 0F4C 1EC6     ..
        LD      A,$01                   ; 0F4E 3E01     >.
Lb235:  LD      HL,RINVEC               ; 0F50 210078   !.x
        LD      BC,$800                 ; 0F53 010008   ...
        EXX                             ; 0F56 D9       .
        LD      DE,RINVEC               ; 0F57 110078   ..x
        EXX                             ; 0F5A D9       .
Lb234:  LD      (HL),A                  ; 0F5B 77       w
        EX      AF,A'F'                 ; 0F5C 08       .
        EXX                             ; 0F5D D9       .
        LD      HL,RINVEC               ; 0F5E 210078   !.x
        LD      BC,$800                 ; 0F61 010008   ...
        XOR     A                       ; 0F64 AF       .
Lb233:  CP      (HL)                    ; 0F65 BE       .
        JR      Z,Lb232                 ; 0F66 280A     (.
        LD      A,E                     ; 0F68 7B       {
        SUB     L                       ; 0F69 95       .
        JP      NZ,Lb213                ; 0F6A C2FA0C   ...
        LD      A,D                     ; 0F6D 7A       z
        SUB     H                       ; 0F6E 94       .
        JP      NZ,Lb213                ; 0F6F C2FA0C   ...
Lb232:  INC     HL                      ; 0F72 23       #
        DEC     C                       ; 0F73 0D       .
        JR      NZ,Lb233                ; 0F74 20EF      .
        DJNZ    Lb233                   ; 0F76 10ED     ..
        INC     DE                      ; 0F78 13       .
        EXX                             ; 0F79 D9       .
        EX      AF,A'F'                 ; 0F7A 08       .
        CP      (HL)                    ; 0F7B BE       .
        JP      NZ,Lb213                ; 0F7C C2FA0C   ...
        LD      (HL),$00                ; 0F7F 3600     6.
        INC     HL                      ; 0F81 23       #
        DEC     C                       ; 0F82 0D       .
        JR      NZ,Lb234                ; 0F83 20D6      .
        EX      AF,A'F'                 ; 0F85 08       .
        LD      A,E                     ; 0F86 7B       {
        XOR     $61                     ; 0F87 EE61     .a
        LD      E,A                     ; 0F89 5F       _
        LD      (LED2),A                ; 0F8A 320050   2.P
        EX      AF,A'F'                 ; 0F8D 08       .
        DJNZ    Lb234                   ; 0F8E 10CB     ..
        RLCA                            ; 0F90 07       .
        JR      NC,Lb235                ; 0F91 30BD     0.
        LD      A,$C6                   ; 0F93 3EC6     >.
        LD      (LED2),A                ; 0F95 320050   2.P
Lb231:  LD      HL,$86BF                ; 0F98 21BF86   !..
        LD      (LED1),HL               ; 0F9B 22FF4F   ".O
        LD      A,I                     ; 0F9E ED57     .W
        OR      A                       ; 0FA0 B7       .
        JP      Z,Lb236                 ; 0FA1 CA8400   ... jmp init
        LD      C,$00                   ; 0FA4 0E00     ..
Lb237:  DEC     L                       ; 0FA6 2D       -
        JR      NZ,Lb237                ; 0FA7 20FD      .
        LD      L,$90                   ; 0FA9 2E90     ..
        LD      A,C                     ; 0FAB 79       y
        XOR     $01                     ; 0FAC EE01     ..
        LD      C,A                     ; 0FAE 4F       O
        IN      A,(C)                   ; 0FAF ED78     .x audio?
        LD      B,$70                   ; 0FB1 0670     .p
        LD      A,(STAT1R)              ; 0FB3 3A0010   :..
        LD      A,(STAT1)               ; 0FB6 3A0110   :..
        AND     B                       ; 0FB9 A0       .
        CP      B                       ; 0FBA B8       .
        JR      NZ,Lb237                ; 0FBB 20E9      .
        JP      Lb0                     ; 0FBD C33B0D   .;.
        NOP                             ; 0FC0 00       .
        NOP                             ; 0FC1 00       .
        NOP                             ; 0FC2 00       .
        NOP                             ; 0FC3 00       .
        NOP                             ; 0FC4 00       .
        NOP                             ; 0FC5 00       .
        NOP                             ; 0FC6 00       .
        NOP                             ; 0FC7 00       .
        NOP                             ; 0FC8 00       .
        NOP                             ; 0FC9 00       .
        NOP                             ; 0FCA 00       .
        NOP                             ; 0FCB 00       .
        NOP                             ; 0FCC 00       .
        NOP                             ; 0FCD 00       .
        NOP                             ; 0FCE 00       .
        NOP                             ; 0FCF 00       .
        NOP                             ; 0FD0 00       .
        NOP                             ; 0FD1 00       .
        NOP                             ; 0FD2 00       .
        LD      BC,$704                 ; 0FD3 010407   ...
        LD      A,(BC)                  ; 0FD6 0A       .
        INC     H                       ; 0FD7 24       $
        LD      B,B                     ; 0FD8 40       @
        INC     L                       ; 0FD9 2C       ,
        RLA                             ; 0FDA 17       .
        SCF                             ; 0FDB 37       7
        ADD     HL,DE                   ; 0FDC 19       .
        INC     C                       ; 0FDD 0C       .
        LD      A,($383C)               ; 0FDE 3A3C38   :<8
        CCF                             ; 0FE1 3F       ?
        LD      A,$0D                   ; 0FE2 3E0D     >.
        LD      C,$0F                   ; 0FE4 0E0F     ..
        DB $10,$1E                      ; 0FE6 101E     ..
        RRA                             ; 0FE8 1F       .
        DEC     E                       ; 0FE9 1D       .
        LD      H,$2E                   ; 0FEA 262E     &.
        LD      ($2023),HL              ; 0FEC 222320   "# 
        LD      A,B                     ; 0FEF 78       x

        DB "(C)1983,KSB."    
       
        DB $20,$01                      ; version number
        DB $C9,$C2                      ; rom chksum


;⁄ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒø
;≥ 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                    ≥
;¿ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒŸ

; ƒ[CODE]ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ
; LABEL INSTR.  PARAMETER(s)              ADR/OPCODE    ASCII
; Indus syncromesh code loaded to drive from SDX. for version 1.2 rom
; included is routine that loads this code and sets $7809 to JP $78B4
; Code for firmware 1.1 is similar but starts starts 2 bytes lower and calls to
; firmware are different
; 
       
        ORG     7B84H

Lbb:    LD      HL,$00                  ; 7B84 210000   !..
        LD      ($782C),HL              ; 7B87 222C78   ",x
        LD      A,C                     ; 7B8A 79       Is High bit set in command?
        RLCA                            ; 7B8B 07       .
        RET     NC                      ; 7B8C D0       get out if not

        POP     HL                      ; 7B8D E1       .
        SBC     A,A                     ; 7B8E 9F       .
        LD      ($7814),A               ; 7B8F 321478   2.x
        RES     7,C                     ; 7B92 CBB9     clear the high bit
        LD      B,$08                   ; 7B94 0608     number of commands to check
        LD      HL,$7BB8                ; 7B96 21B87B   data where commands and pointers are
Lb1a:   LD      A,(HL)                  ; 7B99 7E       ~
        INC     HL                      ; 7B9A 23       #
        CP      C                       ; 7B9B B9       command match?
        JR      Z,Lb0a                  ; 7B9C 2806     jump if it is
        INC     HL                      ; 7B9E 23       point to next command
        INC     HL                      ; 7B9F 23       #
        DJNZ    Lb1a                    ; 7BA0 10F7     all 8 commands checked?
        JR      Lb2a                    ; 7BA2 1808     ..
Lb0a:   LD      A,(HL)                  ; 7BA4 7E       ~
        INC     HL                      ; 7BA5 23       #
        LD      H,(HL)                  ; 7BA6 66       f
        LD      L,A                     ; 7BA7 6F       o
        CALL    Lb3a                    ; 7BA8 CDB77B   go jump to command
        RET     Z                       ; 7BAB C8       jump if command success

Lb2a:   LD      BC,$82                  ; 7BAC 018200   load 82
        CALL    Lb4                     ; 7BAF CD1200   go delay
        LD      A,$4E                   ; 7BB2 3E4E     Load 'N'ak
        JP      SENDBYTEHS              ; 7BB4 C3CC7E   go send Nak and return to rom
Lb3a:   JP      (HL)                    ; 7BB7 E9       Jump to command

        DB $4E                          ; 7BB8 4E       N command
        WORD GETBLOCKHS                 ; 7BB9 777C  
        DB $4F                          ; 7BBB 4F       O command
        WORD PUTBLOCKHS                 ; 7BBC A97C      
        DB $50                          ; 7BBE 50       P put
        WORD PUTHS                      ; 7BBF 2E7C     
        DB $52                          ; 7BC1 52       R read
        WORD READHS                     ; 7BC2 1A7C     
        DB $53                          ; 7BC4 53       S status
        WORD STATUSHS                   ; 7BC5 D07B     
        DB $57                          ; 7BC7 57       W write
        WORD WRITEHS                    ; 7BC8 357C     
        DB $21                          ; 7BCA 21       ! format
        WORD FORMATHS                   ; 7BCB D27C
        DB $23                          ; 7BCD 23       # format skewed?
        WORD FORMATSPL                  ; 7BCE D87C

STATUSHS:
        CALL    SENDACK19               ; 7BD0 CDB87E   Send Ack at 19200
        CALL    Lb36                    ; 7BD3 CD6005   .`.
        CALL    Lb14                    ; 7BD6 CD3509   .5.

        LD      C,$08                   ; 7BD9 0E08     .. patched
        LD      A,($DENFLG)             ; 7BDB 3A1778   :.x
        OR      A                       ; 7BDE B7       .
        JR      Z,Lb9a                  ; 7BDF 2805     (.
        ADD     A,$FE                   ; 7BE1 C6FE     ..
        RRA                             ; 7BE3 1F       .
        AND     $A0                     ; 7BE4 E6A0     ..
Lb9a:   LD      B,A                     ; 7BE6 47       G
        NOP                             ; 7BE7 00       .
        NOP                             ; 7BE8 00       .
        NOP                             ; 7BE9 00       .
        NOP                             ; 7BEA 00       .
        NOP                             ; 7BEB 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

        LD      A,(STATUS0)             ; 7BED 3A1E78   :.x
        AND     $57                     ; 7BF0 E657     .W
        OR      B                       ; 7BF2 B0       .
        OR      C                       ; 7BF3 B1       .
        LD      HL,BUFFER               ; 7BF4 214279   !By
        LD      (HL),A                  ; 7BF7 77       w
        INC     HL                      ; 7BF8 23       #
        CALL    SETDENFLG               ; 7BF9 CDF20B   ...
        LD      A,($781F)               ; 7BFC 3A1F78   :.x
        CPL                             ; 7BFF 2F       /
        LD      (HL),A                  ; 7C00 77       w
        INC     HL                      ; 7C01 23       #
        LD      A,($781D)               ; 7C02 3A1D78   :.x
        LD      (HL),A                  ; 7C05 77       w
        INC     HL                      ; 7C06 23       #
        LD      A,($7826)               ; 7C07 3A2678   :&x
        SRL     A                       ; 7C0A CB3F     .?
        LD      (HL),A                  ; 7C0C 77       w
        LD      A,$43                   ; 7C0D 3E43     >C
        LD      HL,BUFFER               ; 7C0F 214279   Buffer
        LD      B,$04                   ; 7C12 0604     number of bytes to send
        CALL    SIOHIGHSPEED            ; 7C14 CD9A7E   go send
        JP      Lb12a                   ; 7C17 C36F02   jump to rom status routine to finish off
READHS:
        CALL    CHKSECTNUM              ; 7C1A CD3C0C   .<. read
        JP      NZ,Lb14                 ; 7C1D C29A0A   ...
        CALL    SENDACK19               ; 7C20 CDB87E   ..~
        CALL    Lb36                    ; 7C23 CD6005   .`.
        CALL    Lb37                    ; 7C26 CD9504   ...
        CALL    Lb16a                   ; 7C29 CD927E   ..~
        XOR     A                       ; 7C2C AF       .
        RET                             ; 7C2D C9       .
PUTHS:
        CALL    Lb17a                   ; 7C2E CD287E   .(~ Put
        RET     NZ                      ; 7C31 C0       .
        JP      Lb18a                   ; 7C32 C3727C   .r|

WRITEHS:
        CALL    Lb17a                   ; 7C35 CD287E   .(~ write
        RET     NZ                      ; 7C38 C0       .

        CP      $45                     ; 7C39 FE45     .E
        JR      Z,Lb18a                 ; 7C3B 2835     (5
        CALL    DATAINVERT              ; 7C3D CD890A   ...
        CALL    Lb50                    ; 7C40 CDA60A   get bytes per sect in B 8 bit. $00 = 256
        LD      C,B                     ; 7C43 48       make 8 bit number
        LD      B,$00                   ; 7C44 0600     to a 16 bit number
        DEC     C                       ; 7C46 0D        where $00 =$0100
        INC     BC                      ; 7C47 03       in BC
        LD      HL,(SECTORBUF)          ; 7C48 2A2478   source sector buffer
        LD      DE,BUFFER               ; 7C4B 114279   dest general buffer
        LDIR                            ; 7C4E EDB0     copy bytes over
        CALL    Lb37                    ; 7C50 CD9504   ...
        CP      $45                     ; 7C53 FE45     .E
        JR      Z,Lb21a                 ; 7C55 2813     (.
        CALL    Lb50                    ; 7C57 CDA60A   ...
        LD      HL,(SECTORBUF)          ; 7C5A 2A2478   pointer to sector buffer
        LD      DE,BUFFER               ; 7C5D 114279   general buffer
Lb22a:  LD      A,(DE)                  ; 7C60 1A       Cannot work. see $02C1
        CP      (HL)                    ; 7C61 BE       
        JR      NZ,Lb21a                ; 7C62 2006     get out if no match
        DJNZ    Lb22a                   ; 7C64 10FA     
        LD      A,$43                   ; 7C66 3E43     Load 'C'omplete
        JR      Lb18a                   ; 7C68 1808     skip next 3 lines
Lb21a:  LD      HL,$8C98                ; 7C6A 21988C   Load 'P9' for front leds
        CALL    UPLED-1-2-B-E           ; 7C6D CD120B   update front leds
        LD      A,$45                   ; 7C70 3E45     load 'E'rror
Lb18a:  CALL    SENDBYTEHS              ; 7C72 CDCC7E   go send
        XOR     A                       ; 7C75 AF       .
        RET                             ; 7C76 C9       .
GETBLOCKHS:
        CALL    SENDACK19               ; 7C77 CDB87E   ..~ n command
        CALL    Lb36                    ; 7C7A CD6005   .`.
        LD      HL,$33E                 ; 7C7D 213E03   load table 
        LD      DE,BUFFER               ; 7C80 114279   to buffer
        LD      BC,$0C                  ; 7C83 010C00   number of bytes
        LDIR                            ; 7C86 EDB0     move BC bytes from HL to DE
        LD      HL,$7947                ; 7C88 214779   !Gy
        ADD     A,$FF                   ; 7C8B C6FF     ..
        SBC     A,A                     ; 7C8D 9F       .
        AND     $04                     ; 7C8E E604     ..
        LD      (HL),A                  ; 7C90 77       w
        INC     HL                      ; 7C91 23       #
        CALL    Lb58                    ; 7C92 CDB40A   Get bytes per sector
        DEC     B                       ; 7C95 05       .
        LD      C,B                     ; 7C96 48       H
        LD      B,$00                   ; 7C97 0600     ..
        INC     BC                      ; 7C99 03       .
        LD      (HL),B                  ; 7C9A 70       p
        INC     HL                      ; 7C9B 23       #
        LD      (HL),C                  ; 7C9C 71       q
        LD      A,$43                   ; 7C9D 3E43     Load 'C'omplete
        LD      HL,BUFFER               ; 7C9F 214279   load buffer
        LD      B,$0C                   ; 7CA2 060C     number of bytes to send
        CALL    SIOHIGHSPEED            ; 7CA4 CD9A7E   send bytes High speed
        XOR     A                       ; 7CA7 AF       .
        RET                             ; 7CA8 C9       .
PUTBLOCKHS:
        CALL    SENDACK19               ; 7CA9 CDB87E   ..~ O command
        LD      B,$0C                   ; 7CAC 060C     ..
        LD      HL,BUFFER               ; 7CAE 214279   !By
        CALL    Lb25a                   ; 7CB1 CD437E   .C~
        JP      NZ,Lb54                 ; 7CB4 C2A00A    
        CALL    Lb27a                   ; 7CB7 CDC47E   ..~
        CALL    Lb36                    ; 7CBA CD6005   .`.
        LD      A,($7947)               ; 7CBD 3A4779   :Gy
        OR      A                       ; 7CC0 B7       .
        JR      Z,Lb28a                 ; 7CC1 2801     (.
        INC     A                       ; 7CC3 3C       <
Lb28a:  LD      ($DENFLG),A             ; 7CC4 321778   2.x
        LD      ($7816),A               ; 7CC7 321678   2.x
        CALL    SETDENFLG               ; 7CCA CDF20B   ...lb10
        LD      A,$43                   ; 7CCD 3E43     >C
        JP      Lb18a                   ; 7CCF C3727C   .r|
FORMATHS:
        LD      A,$4E                   ; 7CD2 3E4E     format
        LD      L,$00                   ; 7CD4 2E00     .. 
        JR      Lb29a                   ; 7CD6 180E     ..
FORMATSPL:
        LD      L,$02                   ; 7CD8 2E02     .. # command
        LD      A,($DENFLG)             ; 7CDA 3A1778   :.x
        OR      A                       ; 7CDD B7       .
        LD      A,$04                   ; 7CDE 3E04     >.
        JR      Z,Lb29a                 ; 7CE0 2804     (.
        LD      A,$02                   ; 7CE2 3E02     >.
        JR      Lb29a                   ; 7CE4 1800     ..
Lb29a:  LD      ($7D86),A               ; 7CE6 32867D   
        PUSH    HL                      ; 7CE9 E5       .
        LD      HL,$DENFLG              ; 7CEA 211778   !.x
        LD      A,(HL)                  ; 7CED 7E       ~
        SUB     $02                     ; 7CEE D602     ..
        JR      NZ,Lb30a                ; 7CF0 2007      .
        LD      (HL),A                  ; 7CF2 77       w
        LD      ($7816),A               ; 7CF3 321678   2.x
        CALL    SETDENFLG               ; 7CF6 CDF20B   ...
Lb30a:  CALL    SENDACK19               ; 7CF9 CDB87E   ..~
        POP     HL                      ; 7CFC E1       .
        LD      A,($DENFLG)             ; 7CFD 3A1778   :.x
        PUSH    AF                      ; 7D00 F5       .
        ADD     A,L                     ; 7D01 85       .
        ADD     A,A                     ; 7D02 87       .
        LD      L,A                     ; 7D03 6F       o
        LD      H,$00                   ; 7D04 2600     &.
        LD      DE,$7D88                ; 7D06 11887D   ..}
        ADD     HL,DE                   ; 7D09 19       .
        LD      A,(HL)                  ; 7D0A 7E       ~
        INC     HL                      ; 7D0B 23       #
        LD      H,(HL)                  ; 7D0C 66       f
        LD      L,A                     ; 7D0D 6F       o
        LD      ($782C),HL              ; 7D0E 222C78   ",x
        CALL    Lb36                    ; 7D11 CD6005   .`.
        POP     AF                      ; 7D14 F1       .
        LD      ($DENFLG),A             ; 7D15 321778   2.x
        LD      ($7816),A               ; 7D18 321678   2.x
        CALL    SETDENFLG               ; 7D1B CDF20B   ...
        CALL    Lb15                    ; 7D1E CDBE08   ...
        LD      HL,$FFFF                ; 7D21 21FFFF   !..
        LD      (CAUX12),HL             ; 7D24 222078   " x
        CALL    Lb58                    ; 7D27 CDB40A   ...
        XOR     A                       ; 7D2A AF       .
        LD      (TRACKNUM),A            ; 7D2B 322278   2"x
        DEC     A                       ; 7D2E 3D       =
        LD      HL,BUFFER               ; 7D2F 214279   !By
Lb32a:  LD      (HL),A                  ; 7D32 77       w
        INC     HL                      ; 7D33 23       #
        DJNZ    Lb32a                   ; 7D34 10FC     ..
Lb43a:  CALL    Lb63                    ; 7D36 CDF407   ...
        LD      A,$05                   ; 7D39 3E05     >.
        LD      (CDLOOP2),A             ; 7D3B 322878   2(x
Lb38a:  CALL    BUTTONS                 ; 7D3E CD440B   .D.
        CALL    Lb64                    ; 7D41 CD1306   ...
        LD      ($781F),A               ; 7D44 321F78   2.x
        AND     $44                     ; 7D47 E644     .D
        JR      Z,Lb36a                 ; 7D49 281B     (.
        LD      B,A                     ; 7D4B 47       G
        AND     $40                     ; 7D4C E640     .@
        LD      A,B                     ; 7D4E 78       x
        JR      NZ,Lb37a                ; 7D4F 2006      .
        LD      HL,CDLOOP2              ; 7D51 212878   !(x
        DEC     (HL)                    ; 7D54 35       5
        JR      NZ,Lb38a                ; 7D55 20E7      .
Lb37a:  CALL    Lb68                    ; 7D57 CDF60A   ...
        LD      H,$8E                   ; 7D5A 268E     &.
        CALL    Lb69                    ; 7D5C CD050B   ...
        LD      HL,STATUS0              ; 7D5F 211E78   !.x
        SET     2,(HL)                  ; 7D62 CBD6     ..
        JR      Lb41a                   ; 7D64 1819     ..
Lb36a:  LD      A,($7D86)               ; 7D66 3A867D   :.}
        LD      HL,TRACKNUM             ; 7D69 212278   !"x
        CP      (HL)                    ; 7D6C BE       .
        JR      Z,Lb42a                 ; 7D6D 2804     (.
        INC     (HL)                    ; 7D6F 34       4
        INC     (HL)                    ; 7D70 34       4
        JR      Lb43a                   ; 7D71 18C3     ..
Lb42a:  CALL    Lb23                    ; 7D73 CD440B   .D.
        CALL    Lb44a                   ; 7D76 CDB67D   ..}
        JR      NZ,Lb41a                ; 7D79 2004      .
        LD      A,$43                   ; 7D7B 3E43     >C
        JR      Lb45a                   ; 7D7D 1802     ..
Lb41a:  LD      A,$45                   ; 7D7F 3E45     >E
Lb45a:  CALL    Lb46a                   ; 7D81 CD887E   ..~
        XOR     A                       ; 7D84 AF       .
        RET                             ; 7D85 C9       .

        NOP                             ; 7D86 00       .
        NOP                             ; 7D87 00       .
        SUB     B                       ; 7D88 90       pointer to first sector table.
        LD      A,L                     ; 7D89 7D       }
        AND     E                       ; 7D8A A3       pointer to 2nd sector table
        LD      A,L                     ; 7D8B 7D       }
        LD      (HL),$07                ; 7D8C 3607     6.
        LD      (HL),$07                ; 7D8E 3607     6.

        DB $04,$08,$0C                  ; 7D90 04080C  sector table single hs   
        DB $10,$01,$05                  ; 7D93 100105     
        DB $09,$0D,$11                  ; 7D96 090D11
        DB $02,$06,$0A                  ; 7D99 02060A
        DB $0E,$12,$03                  ; 7D9C 0E1203
        DB $07,$0B,$0F                  ; 7D9F 070B0F

        DB $80                          ; 7DA2 80 

        DB $01,$0E,$09                  ; 7DA3 010E09  sector table double hs
        DB $04,$11,$0C                  ; 7DA6 04110C
        DB $07,$02,$0F                  ; 7DA9 07020F
        DB $0A,$05,$12                  ; 7DAC 0A0512
        DB $0D,$08,$03                  ; 7DAF 0D0803
        DB $10,$0B,$06                  ; 7DB2 100B06 
    
        DB $80                          ; 7DB5 80     

Lb44a:  CALL    Lb58                    ; 7DB6 CDB40A   ...
        LD      A,B                     ; 7DB9 78       x
        SRL     A                       ; 7DBA CB3F     .?
        DEC     A                       ; 7DBC 3D       =
        LD      ($7829),A               ; 7DBD 322978   2)x
        XOR     A                       ; 7DC0 AF       .
        LD      (TRACKNUM),A            ; 7DC1 322278   2"x
        LD      IY,BUFFER               ; 7DC4 FD214279 .!By
Lb59a:  CALL    Lb63                    ; 7DC8 CDF407   ...
        CALL    Lb76                    ; 7DCB CDB807   ...
        LD      IX,($782C)              ; 7DCE DD2A2C78 .*,x
Lb580:  LD      A,(IX+$00)              ; 7DD2 DD7E00   .~.
        LD      (SECTORFDC),A           ; 7DD5 320260   2.`
        LD      A,$05                   ; 7DD8 3E05     >.
        LD      (CDLOOP2),A             ; 7DDA 322878   2(x
Lb55a:  LD      HL,(SECTORBUF)          ; 7DDD 2A2478   sector buf pointer
        CALL    Lb78                    ; 7DE0 CDD505   
        JR      Z,Lb51a                 ; 7DE3 2805     (.
        CALL    Lb80                    ; 7DE5 CD6809   .h.
        JR      Lb53a                   ; 7DE8 1805     ..
Lb51a:  CALL    Lb14                    ; 7DEA CD3509   .5.
        OR      $10                     ; 7DED F610     ..
Lb53a:  AND     $1C                     ; 7DEF E61C     ..
        JR      Z,Lb54a                 ; 7DF1 281F     (.
        LD      HL,CDLOOP2              ; 7DF3 212878   !(x
        DEC     (HL)                    ; 7DF6 35       5
        JR      NZ,Lb55a                ; 7DF7 20E4      .
        CALL    Lb84                    ; 7DF9 CD7F0C   
        LD      (IY+$00),L              ; 7DFC FD7500   .u.
        INC     IY                      ; 7DFF FD23     .#
        LD      (IY+$00),H              ; 7E01 FD7400   .t.
        INC     IY                      ; 7E04 FD23     .#
        LD      HL,$8E98                ; 7E06 21988E   load hl with F9 for leds
        CALL    Lb69                    ; 7E09 CD050B   ...
        LD      HL,$7829                ; 7E0C 212978   !)x
        DEC     (HL)                    ; 7E0F 35       5
        JR      Z,Lb57a                 ; 7E10 2813     (.
Lb54a:  INC     IX                      ; 7E12 DD23     .#
        LD      A,(IX+$00)              ; 7E14 DD7E00   .~.
        RLCA                            ; 7E17 07       .
        JR      NC,Lb580                ; 7E18 30B8     0.
        LD      HL,TRACKNUM             ; 7E1A 212278   !"x
        INC     (HL)                    ; 7E1D 34       4
        INC     (HL)                    ; 7E1E 34       4
        LD      A,($7D86)               ; 7E1F 3A867D   :.}
        CP      (HL)                    ; 7E22 BE       .
        JR      NC,Lb59a                ; 7E23 30A3     0.
Lb57a:  JP      Lb85                    ; 7E25 C38E04   

Lb17a:  CALL    CHKSECTNUM              ; 7E28 CD3C0C   .<.
        JP      NZ,Lb40                 ; 7E2B C29A0A   ...
        CALL    SENDACK19               ; 7E2E CDB87E   ..~
        CALL    Lb61a                   ; 7E31 CD3D7E   .=~
        JP      NZ,Lb26                 ; 7E34 C2A00A   ...
        CALL    Lb27a                   ; 7E37 CDC47E   ..~
        JP      Lb62a                   ; 7E3A C3B704   ...
Lb61a:  CALL    Lb50                    ; 7E3D CDA60A   ...
        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
RECIEVEHS
Lb25a:  PUSH    BC                      ; 7E43 C5       number of bytes to get
        PUSH    HL                      ; 7E44 E5       buffer pointer

        EX      DE,HL                   ; 7E45 EB       .
        LD      A,B                     ; 7E46 78       load bytes to get to A
        EXX                             ; 7E47 D9       save bc,de,hl to 2ndary 
        LD      C,A                     ; 7E48 4F       load bytes to get to C
        DEC     C                       ; 7E49 0D       subtract 1
        LD      B,$00                   ; 7E4A 0600     load highbyte with 00
        INC     BC                      ; 7E4C 03       add 1
        INC     BC                      ; 7E4D 03       add 1 allow for chksum byte
        EXX                             ; 7E4E D9       .
        LD      HL,$2000                ; 7E4F 210020   !. 
        LD      A,(HL)                  ; 7E52 7E       ~
        AND     $FB                     ; 7E53 E6FB     mask out recieve bit
        OR      $03                     ; 7E55 F603     ignore clockin/out
        LD      B,A                     ; 7E57 47       load mask to B
        JR      Lb63a                   ; 7E58 1804     jump always

Lb65a:  LD      A,C                     ; 7E5A 79       move recieved byte to A
        LD      (DE),A                  ; 7E5B 12       Move A to buffer
        INC     DE                      ; 7E5C 13       Inc to next byte of buffer
        LD      A,B                     ; 7E5D 78       x
Lb63a:  CP      (HL)                    ; 7E5E BE       .
        JP      C,Lb63a                 ; 7E5F DA5E7E   wait for start bit
        EX      AF,A'F'                 ; 7E62 08       .
        EXX                             ; 7E63 D9       .
        DEC     BC                      ; 7E64 0B       dec number of bytes to get
        LD      A,B                     ; 7E65 78       x
        OR      C                       ; 7E66 B1       = to zero?
        EXX                             ; 7E67 D9       swap registers with 2ndary
        EX      AF,A'F'                 ; 7E68 08       swap a and F registers with 2ndary
        LD      C,$7F                   ; 7E69 0E7F     Bit pattern for 8 bits to recieve
        LD      I,A                     ; 7E6B ED47     timing
        LD      I,A                     ; 7E6D ED47     instructions
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
        EX      AF,A'F'                 ; 7E7A 08       .
        JP      NZ,Lb65a                ; 7E7B C25A7E   number of bytes to get = zero?
        LD      A,C                     ; 7E7E 79       yes
        POP     HL                      ; 7E7F E1       .
        POP     BC                      ; 7E80 C1       .
        PUSH    AF                      ; 7E81 F5       .
        CALL    caculate-chksum         ; 7E82 CD810A   caculate chksum
        POP     BC                      ; 7E85 C1       .
        CP      B                       ; 7E86 B8       .
        RET                             ; 7E87 C9       .

Lb46a:  PUSH    AF                      ; 7E88 F5       .
        CALL    Lb50                    ; 7E89 CDA60A   ...
        POP     AF                      ; 7E8C F1       .
        LD      HL,BUFFER               ; 7E8D 214279   !By
        JR      SIOHIGHSPEED            ; 7E90 1808     jump always

Lb16a:  PUSH    AF                      ; 7E92 F5       .
        CALL    Lb50                    ; 7E93 CDA60A   ...
        POP     AF                      ; 7E96 F1       .
        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
;-------------------------------------------------------------------------
;
SIOHIGHSPEED
        CALL    SENDBYTEHS              ; 7E9A CDCC7E   patched
        LD      C,B                     ; 7E9D 48       save B
        LD      B,$5A                   ; 7E9E 065A     count 5A
        CALL    CDOWNDELAY              ; 7EA0 CD9E0C   Count DOWN DELAY
        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

        PUSH    BC                      ; 7EA4 C5       .
        PUSH    HL                      ; 7EA5 E5       .
        CALL    caculate-chksum         ; 7EA6 CD810A   ...
        POP     HL                      ; 7EA9 E1       .
        POP     BC                      ; 7EAA C1       .
        PUSH    AF                      ; 7EAB F5       .
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?
        POP     AF                      ; 7EB3 F1       get chksum
        CALL    SENDBYTEHS              ; 7EB4 CDCC7E   send chksum
        RET                             ; 7EB7 C9       .
SENDACK19
Lb600:  LD      A,$41                   ; 7EB8 3E41     Load A for ack
        CALL    SSIOBYTE                ; 7EBA CD230A   Send byte at 19200 
        LD      A,($7814)               ; 7EBD 3A1478   :.x
        LD      ($7815),A               ; 7EC0 321578   2.x
        RET                             ; 7EC3 C9       .

Lb27a:  LD      BC,$82                  ; 7EC4 018200   ...
        CALL    Lb4                     ; 7EC7 CD1200   ...
        LD      A,$41                   ; 7ECA 3E41     >A
SENDBYTEHS
        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 



;⁄ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒø
;≥ 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                    ≥
;¿ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒŸ
;The following is used by syncromesh loader to get the Indus GT Firmware version number.
;Syncromesh only works with Version 1.1 and version 1.2 Firmware
        ORG     7F00H
 
        LD      C,$00                   ; 7F00 0E00     ..
        CALL    Lba                     ; 7F02 CD0400   call routine 0. data returned in DE
        LD      (TEMP),DE               ; 7F05 ED53177F save contents of DE

					; add stuff in here
        LD      DE,TEMP                 ; 7F09 11177F   load location of data to DE
        LD      B,$02                   ; 7F0C 0602     Num of bytes to send
        LD      C,$08                   ; 7F0E 0E08     load routine number to C
        LD      A,$43                   ; 7F10 3E43     'C'omplete
        CALL    Lba                     ; 7F12 CD0400   Call routine 8
        OR      A                       ; 7F15 B7       set flags
        RET                             ; 7F16 C9       get out
TEMP:   BD $00,$00                      ; 7F17 0000     temp storage


; ƒ[CODE]ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ
; LABEL INSTR.  PARAMETER(s)              ADR/OPCODE    ASCII
the following is placed at $7F00 by the X command.
;Starts at $7F00
;Loades both syncro code and ramcharger code (if ramcharger is present).
; SDX version only loads syncro code. several changes made to code for SDX version
; are noted. SDX version doesn't have ramcharger code segments.
        ORG     7F00H

        DI                              ; 7F00 F3       .
        LD      HL,($7FE3)              ; 7F01 2AE37F   reset ram
        LD      ($7804),HL              ; 7F04 220478   vectors
        LD      ($7807),HL              ; 7F07 220778   to $CA0
        LD      ($780A),HL              ; 7F0A 220A78   ".x
        LD      HL,($7FD7)              ; 7F0D 2AD77F   $7840 pointer to free ram
        LD      DE,($7FE1)              ; 7F10 ED5BE17F $7B84
        LD      (HL),E                  ; 7F14 73       s
        INC     HL                      ; 7F15 23       #
        LD      (HL),D                  ; 7F16 72       r
        EI                              ; 7F17 FB       .
        LD      HL,$7FCD                ; 7F18 21CD7F   syncro load flag
        LD      A,(HL)                  ; 7F1B 7E       ~
        INC     (HL)                    ; 7F1C 34       add 1 to syncro flag
        OR      A                       ; 7F1D B7       set flags
        JR      Z,Lb0b                  ; 7F1E 2864     go to syncro load
;the following 6 bytes have been NOP'ed for SDX version of syncromesh

        DEC     A                       ; 7F20 3D       nop     for sdx
        JR      Z,Lb888                 ; 7F21 2833     nop nop for sdx
        DEC     A                       ; 7F23 3D       nop     for sdx.
        JR      Z,Lb0b                  ; 7F24 285E     nop nop for sdx
        DI                              ; 7F26 F3       .
        LD      HL,($7FD7)              ; 7F27 2AD77F   $7840
        LD      DE,($7FD9)              ; 7F2A ED5BD97F $7eed
        LD      (HL),E                  ; 7F2E 73       s
        INC     HL                      ; 7F2F 23       #
        LD      (HL),D                  ; 7F30 72       r
        LD      A,($7FCE)               ; 7F31 3ACE7F   
        OR      A                       ; 7F34 B7       .
        JR      Z,Lb1b                  ; 7F35 2814     (.
        LD      HL,($7FDD)              ; 7F37 2ADD7F   FBD9
        LD      ($7807),HL              ; 7F3A 220778   ".x
        LD      HL,($7FDF)              ; 7F3D 2ADF7F   FC12
        LD      ($780A),HL              ; 7F40 220A78   ".x
        LD      HL,($7FDB)              ; 7F43 2ADB7F   FC31
        LD      ($7804),HL              ; 7F46 220478   ".x
        JR      Lb2c                    ; 7F49 1806     ..
Lb1b:   LD      HL,($7FE1)              ; 7F4B 2AE17F   7b84. Start of syncro memory
        LD      ($780A),HL              ; 7F4E 220A78   Place command tie in
Lb2c:   EI                              ; 7F51 FB       .
        LD      A,$43                   ; 7F52 3E43     >C
        SCF                             ; 7F54 37       7
        RET                             ; 7F55 C9       .

Lb888:  LD      HL,($7FD5)              ; 7F56 2AD57F   2f5 change pointers
        LD      ($7FD1),HL              ; 7F59 22D17F    to load the ramcharger
        LD      HL,($7FD3)              ; 7F5C 2AD37F   FBD9 code
        LD      ($7FCF),HL              ; 7F5F 22CF7F   "..
        LD      A,(STAT1R)              ; 7F62 3A0010   :..
        LD      A,(STAT1)               ; 7F65 3A0110   :..
        AND     $10                     ; 7F68 E610     Track button
        JR      NZ,Lb3c                 ; 7F6A 2010      if track button held, dont load
        LD      HL,$FFFF                ; 7F6C 21FFFF   !..
        LD      B,(HL)                  ; 7F6F 46       F
        XOR     A                       ; 7F70 AF       zero A
Lb4c:   LD      (HL),A                  ; 7F71 77       test if ramcharger is present
        CP      (HL)                    ; 7F72 BE       .
        JR      NZ,Lb3c                 ; 7F73 2007      .
        INC     A                       ; 7F75 3C       <
        JR      NZ,Lb4c                 ; 7F76 20F9      .
        LD      (HL),B                  ; 7F78 70       p
        DEC     A                       ; 7F79 3D       set a to $FF
        JR      Lb5c                    ; 7F7A 1801     ..
Lb3c:   XOR     A                       ; 7F7C AF       zero a
Lb5c:   LD      ($7FCE),A               ; 7F7D 32CE7F   save a to ram present flag
        LD      A,$43                   ; 7F80 3E43     >C
        SCF                             ; 7F82 37       Set Carry Flag
        RET                             ; 7F83 C9       .

Lb0b:   LD      DE,($7FD1)              ; 7F84 ED5BD17F  369 
        LD      HL,($7FCF)              ; 7F88 2ACF7F   B784
        PUSH    HL                      ; 7F8B E5       .
        LD      A,E                     ; 7F8C 7B       {
        OR      A                       ; 7F8D B7       .
        JR      Z,Lb6c                  ; 7F8E 280B     (.
        LD      B,A                     ; 7F90 47       G
        LD      E,$00                   ; 7F91 1E00     ..
        ADD     A,L                     ; 7F93 85       .
        LD      L,A                     ; 7F94 6F       o
        LD      A,H                     ; 7F95 7C       |
        ADC     A,$00                   ; 7F96 CE00     ..
        LD      H,A                     ; 7F98 67       g
        JR      Lb7c                    ; 7F99 1804     ..
Lb6c:   LD      B,$00                   ; 7F9B 0600     ..
        DEC     D                       ; 7F9D 15       .
        INC     H                       ; 7F9E 24       $
Lb7c:   EX      (SP),HL                 ; 7F9F E3       .
        PUSH    DE                      ; 7FA0 D5       .
        EX      DE,HL                   ; 7FA1 EB       .
        LD      C,$07                   ; 7FA2 0E07     de=buffer,b=number to get. c= routine number
        CALL    Lba                     ; 7FA4 CD0400   Jump to routine #7 Get sio Block. de=Buffer. B=Number to get
        POP     BC                      ; 7FA7 C1       .
        POP     HL                      ; 7FA8 E1       .
        JR      Z,Lb9c                  ; 7FA9 2808     (.
        LD      A,($7FCE)               ; 7FAB 3ACE7F   :..
        OR      A                       ; 7FAE B7       set flags
        LD      A,$4E                   ; 7FAF 3E4E     Nak
        JR      NZ,Lb10a                ; 00B1 2018      .
Lb9c:   LD      ($7FCF),HL              ; 7FB3 22CF7F   "..
        LD      ($7FD1),BC              ; 7FB6 ED43D17F .C..
        LD      A,B                     ; 7FBA 78       x
        OR      C                       ; 7FBB B1       .
        JR      Z,Lb11c                 ; 7FBC 2804     finished loading syncro code?
        LD      HL,$7FCD                ; 7FBE 21CD7F   no
        DEC     (HL)                    ; 7FC1 35       dec flag back to one
Lb11c:  LD      A,$41                   ; 7FC2 3E41     yes load 'A'ck
        LD      C,$06                   ; 7FC4 0E06     routine 6 send byte
        CALL    Lba                     ; 7FC6 CD0400   go do do it
        LD      A,$43                   ; 7FC9 3E43     load 'C'omplete
Lb10a   SCF                             ; 7FCB 37       set carry flag
        RET                             ; 7FCC C9       .

        NOP                             ; 7FCD 00       flag for syncro code or ramcharger code 
        NOP                             ; 7FCE 00       ramcharger ram present flag
        DB $84,$7B                      ; 7FCF 847B     start of syncro code  .
        DB $69,$03                      ; 7FD1 6903     length of syncro code
        DB $D9,$FB                      ; 7FD3 D9FB     start of ramcharger code.
        DB $F5,$02                      ; 7FD5 F502     length for ramcharger code. zeroed in SDX
        DB $40,$78                      ; 7FD7 4078     word Pointer for free ram start
        DB $ED,$7E                      ; 7FD9 ED7E     word end of syncro code +1. free ram start address
        DB $31,$FC                      ; 7FDB 31FC     word jump to ram
        DB $D9,$FB                      ; 7FDD D9FB     word Jump address Main wait loop tie in
        DB $12,$FC                      ; 7FDF 12FC     Word Jump address for ram vector command tie in
					;               over writes one below if ramcharger is present
        DB $84,$7B                      ; 7FE1 847B     word Jump address for ram vector command tie in
        DB $A0,$0C                      ; 7FE3 A00C     word Points to RET instruction in firmware
Lb12:


;⁄ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒø
;≥ 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                    ≥
;¿ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒŸ

; ƒ[CODE]ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ
; LABEL INSTR.  PARAMETER(s)              ADR/OPCODE    ASCII
;This code is loaded in to the ramcharger ram.
        ORG     FBD9H

; 7807 external main loop extra code
        LD      L,$60                   ; FBD9 2E60     .`
        LD      A,(STAT1)               ; FBDB 3A0110   :..
        AND     L                       ; FBDE A5       .
        CP      L                       ; FBDF BD       id and error button
        JR      NZ,Lb0d                 ; FBE0 200F      .
        LD      A,($7836)               ; FBE2 3A3678   :6x
        OR      L                       ; FBE5 B5       .
        LD      ($7836),A               ; FBE6 323678   26x
        LD      A,$FF                   ; FBE9 3EFF     >.
        LD      ($7819),A               ; FBEB 321978   2.x
        LD      ($781A),A               ; FBEE 321A78   2.x
Lb0d:   LD      HL,$FECD                ; FBF1 21CDFE   !..
        LD      A,(HL)                  ; FBF4 7E       ~
        INC     A                       ; FBF5 3C       <
        JR      Z,Lb1d                  ; FBF6 2810     (.
        DEC     A                       ; FBF8 3D       =
        JR      NZ,Lb2d                 ; FBF9 2006      .
        LD      A,($7819)               ; FBFB 3A1978   :.x
        OR      A                       ; FBFE B7       .
        JR      Z,Lb3d                  ; FBFF 2810     (.
Lb2d:   LD      (HL),$FF                ; FC01 36FF     6.
        LD      A,$00                   ; FC03 3E00     >.
        LD      ($7837),A               ; FC05 323778   27x
Lb1d:   LD      HL,$838E                ; FC08 218E83       bF for front leds = track BuFfer?
        LD      (TLEDNUM1),HL           ; FC0B 223A78   ":x
        CALL    UPLED-1-2-B-E           ; FC0E CD120B   ...
Lb3d:   RET                             ; FC11 C9       .
;--------------------------------------------------------------------------------
;    780a external command tie in
        LD      A,C                     ; FC12 79       y
        AND     $7F                     ; FC13 E67F     remove high bit
        CP      $4F                     ; FC15 FE4F     .O command O
        JR      Z,Lb5d                  ; FC17 280C     (.
        CP      $24                     ; FC19 FE24     .$
        JR      C,Lb5d                  ; FC1B 3808     8.
        CP      $57                     ; FC1D FE57     .WRITE
        JR      NZ,Lb6d                 ; FC1F 2009      .
        LD      A,$FF                   ; FC21 3EFF     >.
        JR      Lb7d                    ; FC23 1806     ..
Lb5d:   LD      A,$FF                   ; FC25 3EFF     >.
        LD      ($FECD),A               ; FC27 32CDFE   2..
Lb6d:   XOR     A                       ; FC2A AF       zero A
Lb7d:   LD      ($FED0),A               ; FC2B 32D0FE   set flag
        JP      Lbb                     ; FC2E C3847B   jump to syncro code
;-------------------------------------------------------------------------------
;tie in for something 7803
        POP     HL                      ; FC31 E1       .
        LD      ($FECE),HL              ; FC32 22CEFE   "..
        PUSH    AF                      ; FC35 F5       .
        LD      A,($FECD)               ; FC36 3ACDFE   :..
        OR      A                       ; FC39 B7       .
        JR      Z,Lb9d                  ; FC3A 284D     (M
        CALL    Lb36                    ; FC3C CD6005   .`.
        CALL    Lb58                    ; FC3F CDB40A   get bytes per sector in B
        LD      L,B                     ; FC42 68       h
        DEC     L                       ; FC43 2D       -1
        LD      H,$00                   ; FC44 2600     &.
        INC     HL                      ; FC46 23       make 8 bit number into 16bit number
        LD      ($FED1),HL              ; FC47 22D1FE   "..
        ADD     HL,HL                   ; FC4A 29       *2
        LD      E,L                     ; FC4B 5D       save *2
        LD      D,H                     ; FC4C 54       T
        ADD     HL,HL                   ; FC4D 29       *4
        ADD     HL,HL                   ; FC4E 29       *8
        ADD     HL,HL                   ; FC4F 29       *16
        ADD     HL,DE                   ; FC50 19       add *2 for total of * 18
        LD      ($FED3),HL              ; FC51 22D3FE   "..
        LD      A,$12                   ; FC54 3E12     sect per track
        LD      ($FED5),A               ; FC56 32D5FE   2..
        XOR     A                       ; FC59 AF       zero A
        LD      ($FED6),A               ; FC5A 32D6FE   2..
        LD      ($FF69),A               ; FC5D 3269FF   2i.
        EX      DE,HL                   ; FC60 EB       .
        LD      HL,$FBD9                ; FC61 21D9FB   start of this code 
        LD      IX,$FED8                ; FC64 DD21D8FE end of this code 
        LD      BC,$03                  ; FC68 010300   ...
Lb13d:  SBC     HL,DE                   ; FC6B ED52     .R
        JR      C,Lb12d                 ; FC6D 3813     8.
        LD      (IX+$00),$FF            ; FC6F DD3600FF .6..
        INC     IX                      ; FC73 DD23     .#
        LD      (IX+$00),L              ; FC75 DD7500   .u.
        INC     IX                      ; FC78 DD23     .#
        LD      (IX+$00),H              ; FC7A DD7400   .t.
        ADD     IX,BC                   ; FC7D DD09     ..
        INC     A                       ; FC7F 3C       <
        JR      Lb13d                   ; FC80 18E9     ..
Lb12d:  LD      ($FED7),A               ; FC82 32D7FE   2..
        XOR     A                       ; FC85 AF       .
        LD      ($FECD),A               ; FC86 32CDFE   2..
Lb9d:   POP     AF                      ; FC89 F1       .
        OR      A                       ; FC8A B7       .
        JR      NZ,Lb14d                ; FC8B 2005      .
        CALL    Lb15d                   ; FC8D CD96FC   ...
        JR      Lb16d                   ; FC90 1803     ..
Lb14d:  CALL    Lb17d                   ; FC92 CDABFC   ...
Lb16d:  RET                             ; FC95 C9       .

Lb15d:  LD      A,($FED0)               ; FC96 3AD0FE   :..
        OR      A                       ; FC99 B7       .
        JR      NZ,Lb18d                ; FC9A 200A      .
        CALL    Lb19d                   ; FC9C CDC1FC   ...
        JR      NZ,Lb18d                ; FC9F 2005      .
        LDIR                            ; FCA1 EDB0     ..
        XOR     A                       ; FCA3 AF       .
        JR      Lb20d                   ; FCA4 1804     ..
Lb18d:  XOR     A                       ; FCA6 AF       zero A
        CALL    Lb21d                   ; FCA7 CDC9FE   ...
Lb20d:  RET                             ; FCAA C9       .

Lb17d:  CALL    Lb21d                   ; FCAB CDC9FE   ...
        JR      NZ,Lb22d                ; FCAE 2010      .
        CALL    Lb19d                   ; FCB0 CDC1FC   ...
        JR      NZ,Lb23d                ; FCB3 200A      .
Lb24d:  LD      A,(DE)                  ; FCB5 1A       .
        CPL                             ; FCB6 2F       /
        LD      (HL),A                  ; FCB7 77       w
        INC     DE                      ; FCB8 13       .
        INC     HL                      ; FCB9 23       #
        DEC     BC                      ; FCBA 0B       .
        LD      A,B                     ; FCBB 78       x
        OR      C                       ; FCBC B1       .
        JR      NZ,Lb24d                ; FCBD 20F6      .
Lb23d:  XOR     A                       ; FCBF AF       .
Lb22d:  RET                             ; FCC0 C9       .

Lb19d:  LD      A,(TRACKNUM)            ; FCC1 3A2278   :"x
        OR      A                       ; FCC4 B7       .
        JR      NZ,Lb25d                ; FCC5 200D      .
        LD      A,(SECTORN)             ; FCC7 3A2378   :#x
        DEC     A                       ; FCCA 3D       =
        JR      NZ,Lb25d                ; FCCB 2007      .
        LD      A,($FF69)               ; FCCD 3A69FF   :i.
        OR      A                       ; FCD0 B7       .
        JP      NZ,Lb26                 ; FCD1 C2D9FD   ...
Lb25d:  CALL    Lb27d                   ; FCD4 CDEEFD   ...
        JR      Z,Lb28d                 ; FCD7 2861     (a
        LD      HL,$FED6                ; FCD9 21D6FE   !..
        LD      A,(HL)                  ; FCDC 7E       ~
        OR      A                       ; FCDD B7       .
        JR      NZ,Lb29d                ; FCDE 2001      .
        INC     (HL)                    ; FCE0 34       4
Lb29d:  LD      A,($FED8)               ; FCE1 3AD8FE   :..
        INC     A                       ; FCE4 3C       <
        JR      Z,Lb30d                 ; FCE5 284B     (K
        LD      A,($FED7)               ; FCE7 3AD7FE   :..
        LD      C,A                     ; FCEA 4F       O
        LD      B,$00                   ; FCEB 0600     ..
        LD      L,C                     ; FCED 69       i
        LD      H,B                     ; FCEE 60       `
        ADD     HL,HL                   ; FCEF 29       )
        ADD     HL,HL                   ; FCF0 29       )
        ADD     HL,BC                   ; FCF1 09       .
        LD      C,L                     ; FCF2 4D       M
        LD      B,H                     ; FCF3 44       D
        LD      DE,$FED7                ; FCF4 11D7FE   ...
        ADD     HL,DE                   ; FCF7 19       .
        PUSH    HL                      ; FCF8 E5       .
        LD      DE,$05                  ; FCF9 110500   ...
        ADD     HL,DE                   ; FCFC 19       .
        EX      DE,HL                   ; FCFD EB       .
        POP     HL                      ; FCFE E1       .
        PUSH    HL                      ; FCFF E5       .
        DI                              ; FD00 F3       .
        LDDR                            ; FD01 EDB8     ..
        INC     HL                      ; FD03 23       #
        LD      (HL),$FF                ; FD04 36FF     6.
        INC     HL                      ; FD06 23       #
        EX      DE,HL                   ; FD07 EB       .
        POP     HL                      ; FD08 E1       .
        INC     HL                      ; FD09 23       #
        INC     HL                      ; FD0A 23       #
        LDI                             ; FD0B EDA0     ..
        LDI                             ; FD0D EDA0     ..
        LD      HL,$FED6                ; FD0F 21D6FE   !..
        LD      A,($FED7)               ; FD12 3AD7FE   :..
        DEC     A                       ; FD15 3D       =
        CP      (HL)                    ; FD16 BE       .
        JR      C,Lb31d                 ; FD17 3801     8.
        INC     (HL)                    ; FD19 34       4
Lb31d:  LD      HL,($FEDE)              ; FD1A 2ADEFE   *..HL=source,DE= dest
        LD      DE,($FED9)              ; FD1D ED5BD9FE .[..BC=bytes to move for LDIR
        LD      ($FED9),HL              ; FD21 22D9FE   "..
        LD      ($FEDE),DE              ; FD24 ED53DEFE .S..
        LD      BC,$FED3                ; FD28 ED4BD3FE .K..
        OUT     ($0F),A                 ; FD2C D30F     enable ram $0000,$7FFF
        LDIR                            ; FD2E EDB0     ..
        OUT     ($0E),A                 ; FD30 D30E     disable ram $0000,$7FFF
Lb30d:  CALL    Lb32d                   ; FD32 CD06FE   ...
        JP      NZ,Lb33d                ; FD35 C2EDFD   ...
        JR      Lb34d                   ; FD38 184C     .L

Lb28d:  PUSH    HL                      ; FD3A E5       .
        CALL    Lb35d                   ; FD3B CDBAFE   ...
        POP     HL                      ; FD3E E1       .
        LD      A,($FED8)               ; FD3F 3AD8FE   :..
        LD      B,A                     ; FD42 47       G
        LD      A,(TRACKNUM)            ; FD43 3A2278   :"x
        CP      B                       ; FD46 B8       .
        JR      Z,Lb36d                 ; FD47 2844     (D
        LD      E,L                     ; FD49 5D       ]
        LD      D,H                     ; FD4A 54       T
        DEC     DE                      ; FD4B 1B       .
        INC     HL                      ; FD4C 23       #
        LD      C,(HL)                  ; FD4D 4E       N
        INC     HL                      ; FD4E 23       #
        LD      B,(HL)                  ; FD4F 46       F
        PUSH    BC                      ; FD50 C5       .
        INC     HL                      ; FD51 23       #
        LD      C,(HL)                  ; FD52 4E       N
        INC     HL                      ; FD53 23       #
        LD      B,(HL)                  ; FD54 46       F
        PUSH    BC                      ; FD55 C5       .
        PUSH    HL                      ; FD56 E5       .
        LD      BC,$FEDC                ; FD57 01DCFE   ...
        OR      A                       ; FD5A B7       .
        SBC     HL,BC                   ; FD5B ED42     .B
        LD      C,L                     ; FD5D 4D       M
        LD      B,H                     ; FD5E 44       D
        POP     HL                      ; FD5F E1       .
        EX      DE,HL                   ; FD60 EB       .
        DI                              ; FD61 F3       .
        LDDR                            ; FD62 EDB8     ..
        POP     HL                      ; FD64 E1       .
        LD      ($FEDB),HL              ; FD65 22DBFE   "..
        POP     HL                      ; FD68 E1       .
        PUSH    HL                      ; FD69 E5       .
        POP     IX                      ; FD6A DDE1     ..
        LD      ($FEDE),HL              ; FD6C 22DEFE   "..
        LD      DE,($FED9)              ; FD6F ED5BD9FE .[..
        LD      BC,$FED3                ; FD73 ED4BD3FE .K..
        OUT     ($0F),A                 ; FD77 D30F     ..
Lb37d:  LD      A,(DE)                  ; FD79 1A       .
        LDI                             ; FD7A EDA0     ..
        LD      (IX+$00),A              ; FD7C DD7700   .w.
        INC     IX                      ; FD7F DD23     .#
        JP      PE,Lb37d                ; FD81 EA79FD   .y.
        OUT     ($0E),A                 ; FD84 D30E     ..
Lb34d:  LD      A,(TRACKNUM)            ; FD86 3A2278   :"x
        LD      ($FED8),A               ; FD89 32D8FE   2..
        EI                              ; FD8C FB       .
Lb36d:  LD      A,($FED5)               ; FD8D 3AD5FE   :..
        LD      B,A                     ; FD90 47       G
        LD      HL,($FEDB)              ; FD91 2ADBFE   *..
        LD      IX,($FED9)              ; FD94 DD2AD9FE .*..
        LD      DE,($FED1)              ; FD98 ED5BD1FE .[..
        LD      A,(SECTORN)             ; FD9C 3A2378   :#x
        LD      C,A                     ; FD9F 4F       O
Lb40d:  LD      A,(HL)                  ; FDA0 7E       ~
        CP      C                       ; FDA1 B9       .
        JR      Z,Lb38d                 ; FDA2 2819     (.
        RLCA                            ; FDA4 07       .
        JR      C,Lb39d                 ; FDA5 3807     8.
        ADD     IX,DE                   ; FDA7 DD19     ..
        INC     HL                      ; FDA9 23       #
        DJNZ    Lb40d                   ; FDAA 10F4     ..
        JR      Lb33d                   ; FDAC 183F     .?
Lb39d:  LD      A,($FED5)               ; FDAE 3AD5FE   :..
        LD      E,A                     ; FDB1 5F       _
        LD      D,$00                   ; FDB2 1600     ..
        OR      A                       ; FDB4 B7       .
        SBC     HL,DE                   ; FDB5 ED52     .R
        LD      DE,($FED1)              ; FDB7 ED5BD1FE .[..
        JR      Lb40d                   ; FDBB 18E3     ..
Lb38d:  LD      A,(TRACKNUM)            ; FDBD 3A2278   :"x
        OR      A                       ; FDC0 B7       .
        JR      NZ,Lb41d                ; FDC1 2020       
        LD      A,(SECTORN)             ; FDC3 3A2378   :#x
        DEC     A                       ; FDC6 3D       =
        JR      NZ,Lb41d                ; FDC7 201A      .
        PUSH    IX                      ; FDC9 DDE5     ..
        POP     HL                      ; FDCB E1       .
        LD      BC,$80                  ; FDCC 018000   ...
        LD      DE,$FF6A                ; FDCF 116AFF   .j.
        LDIR                            ; FDD2 EDB0     ..
        LD      A,$FF                   ; FDD4 3EFF     >.
        LD      ($FF69),A               ; FDD6 3269FF   2i.
Lb26d:  CALL    Lb35d                   ; FDD9 CDBAFE   ...
        LD      IX,$FF6A                ; FDDC DD216AFF .!j.
        LD      DE,$80                  ; FDE0 118000   ...
Lb41d:  PUSH    IX                      ; FDE3 DDE5     ..
        POP     HL                      ; FDE5 E1       .
        LD      C,E                     ; FDE6 4B       K
        LD      B,D                     ; FDE7 42       B
        LD      DE,(SECTORBUF)          ; FDE8 ED5B2478 .[$x
        XOR     A                       ; FDEC AF       .
Lb33d:  RET                             ; FDED C9       .

Lb27d:  LD      DE,$05                  ; FDEE 110500   ...
        LD      HL,$FED8                ; FDF1 21D8FE   !..
        LD      A,($FED6)               ; FDF4 3AD6FE   :..
        LD      B,A                     ; FDF7 47       G
        ADD     A,$FF                   ; FDF8 C6FF     ..
        JR      NC,Lb42d                ; FDFA 3009     0.
        LD      A,(TRACKNUM)            ; FDFC 3A2278   :"x
Lb43d:  CP      (HL)                    ; FDFF BE       .
        JR      Z,Lb42d                 ; FE00 2803     (.
        ADD     HL,DE                   ; FE02 19       .
        DJNZ    Lb43d                   ; FE03 10FA     ..
Lb42d:  RET                             ; FE05 C9       .

Lb32d:  CALL    Lb15                    ; FE06 CDBE08   turn motor on
        CALL    Lb63                    ; FE09 CDF407   step to track
        LD      A,$05                   ; FE0C 3E05     >.
        LD      (CDLOOP2),A             ; FE0E 322878   2(x
Lb52d:  LD      A,($780F)               ; FE11 3A0F78   :.x
        LD      HL,$FFEA                ; FE14 21EAFF   !..
        CALL    Lb111                   ; FE17 CDD805   read sector data
        JR      NZ,Lb47d                ; FE1A 2005      .
        CALL    Lb14                    ; FE1C CD3509   reset FDC
        JR      Lb49d                   ; FE1F 1878     .x
Lb47d:  CALL    Lb80                    ; FE21 CD6809   wait for FDC
        AND     $1C                     ; FE24 E61C     ..
        JR      Z,Lb51d                 ; FE26 2808     (.
        LD      HL,CDLOOP2              ; FE28 212878   !(x
        DEC     (HL)                    ; FE2B 35       5
        JR      NZ,Lb52d                ; FE2C 20E3      .
        JR      Lb49d                   ; FE2E 1869     .i
Lb51d:  LD      A,($7815)               ; FE30 3A1578   :.x
        CPL                             ; FE33 2F       /
        AND     $04                     ; FE34 E604     ..
        LD      B,A                     ; FE36 47       G
        LD      A,($DENFLG)             ; FE37 3A1778   :.x
        ADD     A,A                     ; FE3A 87       .
        OR      B                       ; FE3B B0       .
        LD      L,A                     ; FE3C 6F       o
        LD      H,$00                   ; FE3D 2600     &.
        LD      DE,$7D88                ; FE3F 11887D   ..}
        ADD     HL,DE                   ; FE42 19       .
        LD      E,(HL)                  ; FE43 5E       ^
        INC     HL                      ; FE44 23       #
        LD      D,(HL)                  ; FE45 56       V
        EX      DE,HL                   ; FE46 EB       .
        LD      A,($FFEC)               ; FE47 3AECFF   :..
        LD      B,A                     ; FE4A 47       G
Lb54d:  LD      A,(HL)                  ; FE4B 7E       ~
        INC     HL                      ; FE4C 23       #
        CP      B                       ; FE4D B8       .
        JR      Z,Lb53d                 ; FE4E 2805     (.
        RLCA                            ; FE50 07       .
        JR      NC,Lb54d                ; FE51 30F8     0.
        JR      Lb49d                   ; FE53 1844     .D
Lb53d:  LD      ($FEDB),HL              ; FE55 22DBFE   "..
        PUSH    HL                      ; FE58 E5       .
        CALL    Lb76                    ; FE59 CDB807   load track to FDC
        POP     IX                      ; FE5C DDE1     ..
        LD      HL,($FED9)              ; FE5E 2AD9FE   *..
Lb57d:  LD      A,(IX+$00)              ; FE61 DD7E00   .~.
        BIT     7,A                     ; FE64 CB7F     ..
        JR      Z,Lb56d                 ; FE66 280C     (.
        LD      A,($FED5)               ; FE68 3AD5FE   :..
        CPL                             ; FE6B 2F       /
        LD      E,A                     ; FE6C 5F       _
        LD      D,$FF                   ; FE6D 16FF     ..
        INC     DE                      ; FE6F 13       .
        ADD     IX,DE                   ; FE70 DD19     ..
        JR      Lb57d                   ; FE72 18ED     ..
Lb56d:  LD      (SECTORFDC),A           ; FE74 320260   2.`
        LD      A,$05                   ; FE77 3E05     >.
        LD      (CDLOOP2),A             ; FE79 322878   2(x
        PUSH    HL                      ; FE7C E5       .
Lb62d:  POP     HL                      ; FE7D E1       .
        PUSH    HL                      ; FE7E E5       .
        CALL    Lb78                    ; FE7F CDD505   read sector
        JR      Z,Lb59d                 ; FE82 2805     (.
        CALL    Lb80                    ; FE84 CD6809   wait for fdc
        JR      Lb60d                   ; FE87 1805     ..
Lb59d:  CALL    Lb14                    ; FE89 CD3509   reset FDC
        OR      $10                     ; FE8C F610     ..
Lb60d:  AND     $1C                     ; FE8E E61C     ..
        JR      Z,Lb61d                 ; FE90 280B     (.
        LD      HL,CDLOOP2              ; FE92 212878   !(x
        DEC     (HL)                    ; FE95 35       5
        JR      NZ,Lb62d                ; FE96 20E5      .
        POP     HL                      ; FE98 E1       .
Lb49d:  OR      $FF                     ; FE99 F6FF     ..
        JR      Lb63d                   ; FE9B 181C     ..
Lb61d:  POP     BC                      ; FE9D C1       .
        LD      B,(IX+$00)              ; FE9E DD4600   .F.
        INC     IX                      ; FEA1 DD23     .#
        LD      A,($FFEC)               ; FEA3 3AECFF   :..
        CP      B                       ; FEA6 B8       .
        JR      NZ,Lb57d                ; FEA7 20B8      .
        LD      BC,$FED3                ; FEA9 ED4BD3FE .K..
        LD      HL,($FED9)              ; FEAD 2AD9FE   *..
Lb64d:  LD      A,(HL)                  ; FEB0 7E       ~
        CPL                             ; FEB1 2F       /
        LD      (HL),A                  ; FEB2 77       w
        INC     HL                      ; FEB3 23       #
        DEC     BC                      ; FEB4 0B       .
        LD      A,B                     ; FEB5 78       x
        OR      C                       ; FEB6 B1       .
        JR      NZ,Lb64d                ; FEB7 20F7      .
Lb63d:  RET                             ; FEB9 C9       .

Lb35d:  LD      A,(TRACKNUM)            ; FEBA 3A2278   :"x
        SRL     A                       ; FEBD CB3F     .?
        CALL    Lb134                   ; FEBF CDC30A   update track led display
        LD      (TLEDNUM1),HL           ; FEC2 223A78   ":x
        CALL    UPLED-1-2-B-E           ; FEC5 CD120B   ...
        RET                             ; FEC8 C9       .

Lb21d:  LD      HL,($FECE)              ; FEC9 2ACEFE   *..
        JP      (HL)                    ; FECC E9       .

        DB $FE                          ; FECD FE

Add new attachment

Only authorized users are allowed to upload new attachments.

List of attachments

Kind Attachment Name Size Version Date Modified Author Change note
asm
INDUS12.asm 213.0 kB 1 31-Jan-2015 12:53 Carsten Strotmann Updated source
asm
indusgt.asm 199.9 kB 1 31-Jan-2015 12:53 Carsten Strotmann
« This page (revision-2) was last changed on 31-Jan-2015 12:55 by Carsten Strotmann