; ; System equates ; ; OS 1050 DRIVE EQUATES ; --------------------- ; ; Syntax: ; Use '=' for addresses ; and '#' for values ; ; RAM $0000 - $00FF ; TIMER,IO $0280 - $029F (6532) ; memory used by ports: ; PORT A ($0280) ; bit 0 drive number read ; 1 " read ; 2 write ; 3 motor off write ; 4 > track 20 write ; 5 single density write ; 6 IRQ floppy ? read ; 7 data request floppy NAK read ; ; PORT B ($0282) ; bit 0 data out (to CPU) write ; 1 read ; 2 step motor phase 1 write ; 3 step motor phase 2 write ; 4 step motor phase 3 write ; 5 step motor phase 4 write ; 6 data in (from CPU) read ; 7 command (from CPU) read ; READSEC EQU $0052 WRITSEC EQU $0050 WRVESEC EQU $0057 STATREQ EQU $0053 FORMSD EQU $0021 FORMED EQU $0022 SPECIAL EQU $0023 ; ; memory usage ; ; sector buffer from $0000 to $007F ; ; ; buffer for address info after READ ADRESS ; TRACK, SIDE, SEKTOR, LENGTH, CRC1, CRC2 ; ATRACK EQU $007A ASEK EQU $007C ALEN EQU $007D ACRC1 EQU $007E ACRC2 EQU $007F ; ; buffer for command and sector number ; RDRIVE EQU $0080 RKOMND EQU $0081 RSEKL EQU $0082 RSEKH EQU $0083 ; FDATA EQU $0085 FSNR EQU $0087 FTNR EQU $0089 ; MOTIML EQU $008B MOTIMH EQU $008C TRACK EQU $008D SEKTOR EQU $008E CSTAT EQU $008F STATUS EQU $0090 ERROR EQU $0091 COUNT EQU $0092 DIR EQU $0093 FLAG EQU $0094 HZ95 EQU $0095 SEEKERR EQU $0096 TRKERR EQU $0097 KOMND EQU $0098 JUMPL EQU $0099 JUMPH EQU $009A DSTAT EQU $009B MUSTERNR EQU $009C HZ9D EQU $009D HZ9E EQU $009E PHASE EQU $009F FMERK EQU $00A0 ERRADR EQU $00A3 HZA4 EQU $00A4 BUFFER EQU $00A5 STEPCNT EQU $00AF STEPS EQU $00B0 SBUF EQU $00B1 DRA EQU $0280 DDRA EQU $0281 DRB EQU $0282 DDRB EQU $0283 TIM64 EQU $0296 TIM1024 EQU $0297 T1024I EQU $029F FCNTRL EQU $0400 TRKREG EQU $0401 SEKREG EQU $0402 DATREG EQU $0403 ; ; Code equates ; L0001 EQU $0001 L0002 EQU $0002 L0003 EQU $0003 L0007 EQU $0007 L0008 EQU $0008 L000A EQU $000A L000B EQU $000B L000C EQU $000C L000D EQU $000D L0017 EQU $0017 L0018 EQU $0018 L008A EQU $008A L00A1 EQU $00A1 L00A2 EQU $00A2 L00B2 EQU $00B2 L00B3 EQU $00B3 L110F EQU $110F L1210 EQU $1210 ; ; Start of code ; ORG $F000 ; LF000 DFB $FB,$F7,$EF LF003 DFB $DF,$57 LF005 DFB $52 LF006 DFB $50 LF007 DFB $57,$53,$21,$22 LF00B DFB $23,$24 LF00D DFB $33,$32,$34,$31 DFB $FF,$00 CLD LDX #$FF TXS LDA #$3C STA DDRA LDA #$38 STA DRA LDA DRA AND #$3C CMP #$38 BNE LF09D LDA #$3D STA DDRB LDA #$3D STA DRB LDA DRB AND #$3D CMP #$3D BNE LF09D LDA #$D0 STA FCNTRL LDX #$15 LF044 DEX BNE LF044 LDA FCNTRL AND #$01 BNE LF09D LDA #$55 STA TRKREG STA SEKREG LDX #$1E LF058 DEX BNE LF058 EOR TRKREG BNE LF09D LDA #$55 EOR SEKREG BNE LF09D LDA #$48 STA FCNTRL LDX #$28 JSR LF191 LDA FCNTRL AND #$01 BEQ LF09D LDX #$28 JSR LF191 LDA FCNTRL AND #$01 BNE LF09D LDA #$F0 STA L0001 LDA #$00 STA L0000 CLC TAY LF08E ADC (L0000),Y INY BNE LF08E INC L0001 BNE LF08E ORA #$00 STA L0000 BEQ LF09E LF09D BRK LF09E LDX #$00 LF0A0 TXA STA L0000,X INX BNE LF0A0 LF0A6 TXA CMP L0000,X BNE LF09D DEX BNE LF0A6 TXA LF0AF STA L0000,X INX BNE LF0AF LDX #$03 STX PHASE LDA LF003 AND DRB STA DRB JSR LF180 LDA #$00 STA TRACK JSR LF1B4 LDA FCNTRL STA CSTAT AND #$80 BNE LF0D7 JSR LF155 LF0D7 JSR LF0F7 JSR LF2B2 LDA DRA AND #$08 BNE LF0D7 LDX #$08 LF0E6 DEX BNE LF0E6 INC MOTIML BNE LF0D7 INC MOTIMH BNE LF0D7 JSR LF119 JMP LF0D7 LF0F7 LDA #$80 AND FCNTRL TAX EOR DSTAT BNE LF102 RTS LF102 STX DSTAT TXA BPL LF10D JSR LF119 JMP LF113 LF10D JSR LF180 JSR LF155 LF113 LDA FCNTRL STA CSTAT RTS LF119 LDA DRA ORA #$08 STA DRA LDA #$3C ORA DRB STA DRB LDA STATUS AND #$EF STA STATUS RTS LF130 LDA DRA AND #$F7 STA DRA LDX PHASE LDA DRB AND LF000,X STA DRB LDA #$00 STA MOTIMH STA MOTIML LDA STATUS ORA #$10 STA STATUS LDX #$05 JSR LF19C RTS LF155 JSR LF1B9 LDA DRA AND #$DF STA DRA JSR LF593 BEQ LF179 JSR LF593 BEQ LF179 LDA DRA EOR #$20 STA DRA LDA STATUS AND #$7F STA STATUS RTS LF179 LDA STATUS ORA #$80 STA STATUS RTS LF180 LDA DRA AND #$08 BEQ LF18A JSR LF130 LF18A LDA #$00 STA MOTIML STA MOTIMH RTS LF191 LDY #$12 LF193 DEY BNE LF193 DEX NOP NOP BNE LF191 RTS LF19C STX SBUF LF19E LDY #$04 STY L00B2 LF1A2 LDX #$FA JSR LF191 DEC L00B2 BNE LF1A2 DEC SBUF BNE LF19E RTS LF1B0 DEY BNE LF1B0 RTS LF1B4 LDA #$0A JSR LF23D LF1B9 JSR LF2A0 JSR LF2A0 LDA #$FF STA DIR LDA #$00 STA STEPCNT STA STEPS LF1C9 LDA FCNTRL AND #$04 BEQ LF1D6 JSR LF1EF JMP LF1C9 LF1D6 LDA PHASE CMP #$03 BEQ LF1E2 JSR LF1EF JMP LF1D6 LF1E2 LDA #$00 STA TRKREG STA STEPCNT LDX #$C8 JSR LF191 RTS LF1EF JSR LF1FA JSR LF2A0 LDX #$64 JMP LF191 LF1FA INC STEPCNT LDA STEPCNT CMP #$78 BCS LF209 LDA DRA AND #$08 BEQ LF20A LF209 BRK LF20A LDX PHASE LDA LF000,X EOR #$FF TAY BIT DIR BPL LF21F INX CPX #$04 BNE LF224 LDX #$00 BEQ LF224 LF21F DEX BPL LF224 LDX #$03 LF224 STX PHASE TYA ORA DRB AND LF000,X STA DRB RTS LF231 JSR LF2A0 LDA TRACK SEC SBC TRKREG BNE LF23D RTS LF23D BMI LF243 LDX #$01 BPL LF24A LF243 LDX #$FF EOR #$FF CLC ADC #$01 LF24A ASL BPL LF255 JSR LF1B9 LDA #$80 STA STATUS RTS LF255 STA STEPS STX DIR LDA #$00 STA STEPCNT LF25D JSR LF1EF DEC STEPS BNE LF25D BIT DIR BMI LF280 LDA #$FF STA STEPS LDA #$00 STA STEPCNT JSR LF1EF LDA #$FF STA DIR JSR LF1EF LDA #$00 STA STEPS STA STEPCNT LF280 LDA TRACK STA TRKREG CMP #$14 BCC LF290 LDA #$10 ORA DRA BNE LF295 LF290 LDA #$EF AND DRA LF295 STA DRA LDX #$C8 JSR LF191 LF29D JSR LF2A0 LF2A0 LDA #$D0 STA FCNTRL LDX #$07 LF2A7 DEX BNE LF2A7 LDA #$00 LF2AC BIT FCNTRL BNE LF2AC RTS LF2B2 LDA #$02 BIT DRB BNE LF2BB BMI LF2BC LF2BB RTS LF2BC JSR LF3B8 BIT ERROR BVS LF2FE JSR LF308 BIT ERROR BMI LF2FE BVC LF2D7 JSR LF374 LDA STATUS ORA #$01 STA STATUS BNE LF2FE LF2D7 JSR LF36E LDA ERROR AND #$01 BEQ LF2F5 JSR LF3C7 BIT ERROR BVC LF2F2 JSR LF374 LDA STATUS ORA #$02 STA STATUS BNE LF2FE LF2F2 JSR LF36E LF2F5 JSR LF46E LDA STATUS AND #$FC STA STATUS LF2FE LDX #$04 LDA #$00 LF302 STA RDRIVE,X DEX BPL LF302 RTS LF308 LDA DRA AND #$03 TAX LDA LF00D,X CMP RDRIVE BNE LF364 LDX #$07 LDA RKOMND LF319 CMP LF005,X BEQ LF323 DEX BPL LF319 BMI LF369 LF323 STX KOMND CPX #$03 BCS LF34A LDA RSEKL CLC ORA RSEKH BEQ LF369 LDA DRA AND #$20 BEQ LF33D LDX #$D0 LDY #$02 BNE LF341 LF33D LDX #$10 LDY #$04 LF341 SEC TXA SBC RSEKL TYA SBC RSEKH BCC LF369 LF34A LDA RKOMND CMP LF006 BEQ LF35F CMP LF007 BEQ LF35F CMP LF00B BEQ LF35F LDA #$00 BEQ LF361 LF35F LDA #$01 LF361 STA ERROR RTS LF364 LDA #$80 STA ERROR RTS LF369 LDA #$40 STA ERROR RTS LF36E LDY #$41 JSR LF424 RTS LF374 LDY #$4E JSR LF424 RTS LF37A LDY #$43 JSR LF424 RTS LF380 LDY #$45 JSR LF424 RTS LF386 STX L00B3 LF388 BIT DRA BVC LF3B3 BIT DRB BVC LF388 SEC LDA #$80 LDX #$06 LF397 DEX BNE LF397 LF39A LDX #$06 LF39C DEX BNE LF39C NOP NOP NOP BIT DRB BVC LF3AA CLC BCC LF3AC LF3AA SEC NOP LF3AC ROR BCC LF39A TAY LDX L00B3 RTS LF3B3 PLA PLA JMP LF3FD LF3B8 LDA #$04 STA COUNT LDX #$80 JSR LF3D6 LF3C1 BIT DRB BMI LF3C1 RTS LF3C7 LDA #$80 STA COUNT LDX #$00 JSR LF3D6 LDX #$09 JSR LF191 RTS LF3D6 LDA #$FF JSR LF5C4 LDA #$00 STA SBUF LF3DF JSR LF386 STY L0000,X CLC LDA SBUF ADC L0000,X ADC #$00 STA SBUF INX DEC COUNT BNE LF3DF JSR LF386 STY L0000,X LDA SBUF EOR L0000,X BEQ LF3FF LF3FD LDA #$40 LF3FF STA ERROR LDA TIM64 RTS LF405 LDA #$00 LF407 CLC LDY L0000,X ADC L0000,X ADC #$00 JSR LF424 INX DEC COUNT BNE LF407 TAY JSR LF424 RTS LF41B LDA #$80 STA COUNT LDX #$00 JMP LF405 LF424 STY SBUF STA L00B2 STX L00B3 LDY #$08 LDA #$FE AND DRB STA DRB INC L00B3 LF436 ROR SBUF BCC LF441 LDA #$01 ORA DRB BNE LF447 LF441 LDA #$FE AND DRB NOP LF447 LDX #$05 LF449 DEX BNE LF449 STA DRB DEY BNE LF436 LDX #$06 LF454 DEX BNE LF454 NOP DEC L00B3 LDA #$01 ORA DRB STA DRB LDX #$05 LF464 DEX BNE LF464 LDX L00B3 LDY SBUF LDA L00B2 RTS LF46E LDX KOMND LDA LFFE0,X STA JUMPL LDA LFFE8,X STA JUMPH JMP (JUMPL) LF47D LDY RSEKL STY SBUF LDY RSEKH STY L00B2 LDY #$00 STY TRACK STY SEKTOR INY JSR LF4A8 LDA #$20 AND DRA BNE LF49A LDY #$1A BNE LF49C LF49A LDY #$12 LF49C JSR LF4A8 BCC LF4A5 INC TRACK BCS LF49C LF4A5 INC SEKTOR RTS LF4A8 STY HZ95 SEC LDA SBUF STA SEKTOR SBC HZ95 STA SBUF LDA L00B2 SBC #$00 STA L00B2 RTS JSR LF4C3 JSR LF529 JMP LF41B LF4C3 JSR LF515 BIT FCNTRL BPL LF4CC RTS LF4CC JSR LF231 BEQ LF4D2 RTS LF4D2 LDA SEKTOR STA SEKREG JSR LF54B BNE LF4E1 LDA #$00 STA ERROR RTS LF4E1 DEC COUNT BEQ LF514 LDA FCNTRL AND #$10 BEQ LF4F2 JSR LF1B9 JMP LF4CC LF4F2 LDA #$01 CMP COUNT BNE LF4CC LDA #$00 STA STEPCNT LDA #$FF STA STEPS STA DIR JSR LF1EF LDA #$01 STA DIR JSR LF1EF LDX #$C8 JSR LF191 JMP LF4CC LF514 RTS LF515 LDA #$80 STA ERROR LDA #$02 STA COUNT JSR LF47D BIT FCNTRL BMI LF528 JSR LF180 LF528 RTS LF529 LDX #$02 JSR LF191 LDA FCNTRL STA CSTAT BIT ERROR BMI LF541 LDA STATUS AND #$9B STA STATUS JSR LF37A RTS LF541 LDA STATUS ORA #$04 STA STATUS JSR LF380 RTS LF54B LDX #$00 LDA #$E6 JSR LF5C4 LDA #$82 STA FCNTRL LF557 BIT DRA BVC LF578 BPL LF557 LDA DATREG EOR #$FF STA L0000,X LDA TIM64 INX BPL LF557 LDA #$01 LF56D BIT FCNTRL BNE LF56D LDA FCNTRL AND #$2C RTS LF578 LDA FCNTRL AND #$01 BEQ LF586 LDA #$E6 JSR LF5C4 BNE LF557 LF586 LDA TIM64 LDA FCNTRL AND #$04 BNE LF54B LDA #$01 RTS LF593 LDX #$7A LDA #$80 JSR LF5C4 LDA #$C0 STA FCNTRL LF59F BIT DRA BVC LF5BE BPL LF59F LDA DATREG STA L0000,X LDA TIM64 INX BPL LF59F LDA #$01 LF5B3 BIT FCNTRL BNE LF5B3 LDA FCNTRL AND #$0C RTS LF5BE JSR LF29D LDA #$01 RTS LF5C4 STA TIM64 STA T1024I RTS JSR LF5D2 JSR LF529 RTS LF5D2 JSR LF515 BIT FCNTRL BPL LF5DB RTS LF5DB JSR LF231 BEQ LF5E1 RTS LF5E1 LDA SEKTOR STA SEKREG JSR LF5FB BNE LF5F0 LDA #$00 STA ERROR RTS LF5F0 DEC COUNT BEQ LF5FA JSR LF1B9 JMP LF5DB LF5FA RTS LF5FB LDX #$00 LDA #$E6 JSR LF5C4 LDA #$A2 STA FCNTRL LF607 LDA L0000,X EOR #$FF LF60B BIT DRA BVC LF628 BPL LF60B STA DATREG LDA TIM64 INX BPL LF607 LDA #$01 LF61D BIT FCNTRL BNE LF61D LDA FCNTRL AND #$0C RTS LF628 LDA FCNTRL AND #$01 BEQ LF636 LDA #$E6 JSR LF5C4 BNE LF607 LF636 LDA TIM64 LDA FCNTRL AND #$04 BNE LF5FB LDA FCNTRL RTS JSR LF5D2 BIT ERROR BMI LF652 LDA #$02 STA COUNT JSR LF656 LF652 JSR LF529 RTS LF656 LDA #$80 STA ERROR JSR LF669 BNE LF664 LDA #$00 STA ERROR RTS LF664 DEC COUNT BNE LF656 RTS LF669 LDX #$00 LDA #$E6 JSR LF5C4 LDA #$82 STA FCNTRL LF675 BIT DRA BVC LF698 BPL LF675 LDA DATREG EOR #$FF CMP L0000,X BNE LF6A6 LDA TIM64 INX BPL LF675 LDA #$01 LF68D BIT FCNTRL BNE LF68D LDA FCNTRL AND #$2C RTS LF698 LDA FCNTRL AND #$01 BEQ LF6B1 LDA #$E6 JSR LF5C4 BNE LF675 LF6A6 LDA TIM64 STX ERRADR JSR LF2A0 LDA DATREG LF6B1 LDA TIM64 LDA FCNTRL AND #$04 BNE LF669 LDA #$01 RTS JSR LF2A0 LDA DRA AND #$20 BEQ LF6CF LDA #$1F AND STATUS JMP LF6D3 LF6CF LDA #$80 ORA STATUS LF6D3 BIT FCNTRL BVC LF6DC ORA #$08 BNE LF6DE LF6DC AND #$F7 LF6DE LDX #$00 STA BUFFER,X INX LDA CSTAT EOR #$FF STA BUFFER,X INX LDA #$E0 STA BUFFER,X INX LDA #$00 STA BUFFER,X STA ERROR JSR LF37A LDX #$04 STX COUNT LDX #$A5 JSR LF405 LDA FCNTRL STA CSTAT RTS JSR LF72D LF70A BIT ERROR BMI LF711 JSR LFA52 LF711 LDA TIM64 JSR LF529 LDA #$FF LDX #$00 LF71B STA L0000,X INX BPL LF71B BIT ERROR BPL LF72A LDA #$00 STA L0000 STA L0001 LF72A JMP LF41B LF72D JSR LFA22 LDA #$00 STA L0001 LDA DRA ORA #$20 STA DRA LF73C BIT FCNTRL BMI LF745 BVS LF745 BPL LF74A LF745 LDA #$80 STA ERROR RTS LF74A JSR LF231 LDA #$02 STA COUNT JSR LF769 LDX #$D2 STX T1024I BIT ERROR BPL LF75E RTS LF75E INC TRACK INC FTNR LDA #$28 CMP TRACK BNE LF73C RTS LF769 LDY #$00 LDA LFA07,Y STA FSNR LDA #$F0 STA FCNTRL LDA #$D2 LF777 BIT DRA BPL LF777 STY DATREG LF77F BIT DRA BPL LF77F STY DATREG STA T1024I LDA #$00 LDX #$AC LF78E BIT DRA BVC LF7BA BPL LF78E STA DATREG DEX BNE LF78E LDA #$FC LF79D BIT DRA BVC LF7BA BPL LF79D STA DATREG LDA #$00 LDX #$10 LF7AB BIT DRA BVC LF7BA BPL LF7AB STA DATREG DEX BNE LF7AB BEQ LF7BD LF7BA JMP LF84D LF7BD LDA #$00 LDX #$06 LF7C1 BIT DRA BVC LF7BA BPL LF7C1 STA DATREG DEX BNE LF7C1 LDX #$05 LF7D0 LDA FDATA,X LF7D2 BIT DRA BVC LF7BA BPL LF7D2 STA DATREG DEX BPL LF7D0 LDA #$00 LDX #$11 LF7E3 BIT DRA BVC LF7BA BPL LF7E3 STA DATREG DEX BNE LF7E3 LDX #$83 LF7F2 LDA L0000,X LF7F4 BIT DRA BVC LF7BA BPL LF7F4 STA DATREG DEX BNE LF7F2 INY CPY #$09 BNE LF808 LDY #$0D LF808 CPY #$16 BEQ LF825 LDA LFA07,Y STA FSNR LDA #$00 LDX #$0B LF815 BIT DRA BVC LF7BA BPL LF815 STA DATREG DEX BNE LF815 JMP LF7BD LF825 LDA #$01 LDX #$00 LF829 AND FCNTRL BEQ LF839 BIT DRA BPL LF829 STX DATREG JMP LF829 LF839 LDA FCNTRL AND #$04 BNE LF84D LDA #$00 LF842 STA ERROR LDA TIM64 LDA FCNTRL STA CSTAT RTS LF84D JSR LF2A0 DEC COUNT BMI LF85C LDA #$01 STA T1024I JMP LF769 LF85C LDA #$80 JMP LF842 JSR LF867 JMP LF70A LF867 JSR LFA22 LDA #$00 STA L0001 LDA DRA AND #$DF STA DRA LF876 BIT FCNTRL BMI LF87F BVS LF87F BPL LF884 LF87F LDA #$80 STA ERROR RTS LF884 JSR LF231 LDA #$02 STA COUNT JSR LF8A3 LDX #$D2 STX T1024I BIT ERROR BPL LF898 RTS LF898 INC TRACK INC FTNR LDA #$28 CMP TRACK BNE LF876 RTS LF8A3 LDY #$00 LDA LFA07,Y STA FSNR LDX #$4E LDA #$F0 STA FCNTRL LF8B1 BIT DRA BPL LF8B1 STX DATREG TXA LDX #$D2 LF8BC BIT DRA BPL LF8BC STA DATREG STX T1024I LDX #$90 LF8C9 BIT DRA BVC LF924 BPL LF8C9 STA DATREG DEX BNE LF8C9 LF8D6 BIT DRA BVC LF924 BPL LF8D6 STA DATREG DEX BNE LF8D6 LDA #$00 LDX #$0C LF8E7 BIT DRA BVC LF924 BPL LF8E7 STA DATREG DEX BNE LF8E7 LDA #$F6 LDX #$03 LF8F8 BIT DRA BVC LF924 BPL LF8F8 STA DATREG DEX BNE LF8F8 LDA #$FC LF907 BIT DRA BVC LF924 BPL LF907 STA DATREG LDA #$4E LDX #$32 LF915 BIT DRA BVC LF924 BPL LF915 STA DATREG DEX BNE LF915 BEQ LF927 LF924 JMP LF9F3 LF927 LDA #$00 LDX #$0C LF92B BIT DRA BVC LF924 BPL LF92B STA DATREG DEX BNE LF92B LDA #$F5 LDX #$03 LF93C BIT DRA BVC LF924 BPL LF93C STA DATREG DEX BNE LF93C LDX #$05 LF94B LDA FDATA,X LF94D BIT DRA BVC LF924 BPL LF94D STA DATREG DEX BPL LF94B LDA #$4E LDX #$16 LF95E BIT DRA BVC LF924 BPL LF95E STA DATREG DEX BNE LF95E LDA #$00 LDX #$0C LF96F BIT DRA BVC LF924 BPL LF96F STA DATREG DEX BNE LF96F LDA #$F5 LDX #$03 LF980 BIT DRA BVC LF924 BPL LF980 STA DATREG DEX BNE LF980 LDX #$83 LF98F LDA L0000,X LF991 BIT DRA BVC LF924 BPL LF991 STA DATREG DEX BNE LF98F INY LDA LFA07,Y BMI LF9CB STA FSNR LDA #$00 LDX #$11 LF9AA BIT DRA BVC LF9F3 BPL LF9AA STA DATREG DEX BNE LF9AA LDA #$4E LDX #$20 LF9BB BIT DRA BVC LF9F3 BPL LF9BB STA DATREG DEX BNE LF9BB JMP LF927 LF9CB LDX #$4E LDA #$01 LF9CF AND FCNTRL BEQ LF9DF BIT DRA BPL LF9CF STX DATREG JMP LF9CF LF9DF LDA FCNTRL AND #$04 BNE LF9F3 LDA #$00 LF9E8 STA ERROR LDA TIM64 LDA FCNTRL STA CSTAT RTS LF9F3 JSR LF2A0 DEC COUNT BMI LFA02 LDA #$01 STA T1024I JMP LF8A3 LFA02 LDA #$80 JMP LF9E8 LFA07 ORA (L0003,X) ORA L0007 ORA #$0B ORA L110F DFB $13 ORA L0017,X ORA SEKREG,Y ASL L0008 ASL DFB $0C ASL L1210 DFB $14 ASL L0018,X DFB $1A,$FF LFA22 JSR LF130 JSR LF1B9 LDA #$00 STA TRACK LDX #$00 LDA #$FF LFA30 STA L0003,X INX BPL LFA30 LDA #$FB STA RSEKH LDA #$F7 STA L0002 STA FDATA LDA #$00 LDX #$04 LFA43 STA FDATA,X DEX BNE LFA43 LDA #$FE STA L008A LDA #$02 STA T1024I RTS LFA52 LDA #$27 STA TRACK LDA DRA AND #$20 ASL STA SBUF LFA5E LDA #$00 STA L00B2 STA ERROR LDA #$02 STA COUNT JSR LF231 LFA6B LDY L00B2 BIT SBUF BVC LFA7D CPY #$09 BNE LFA79 LDY #$0D STY L00B2 LFA79 CPY #$16 BEQ LFAAB LFA7D LDA LFA07,Y BMI LFAAB STA SEKTOR STA SEKREG JSR LF54B BNE LFA90 INC L00B2 BPL LFA6B LFA90 DEC COUNT BEQ LFAA1 JSR LF54B BNE LFA90 LDA #$02 STA COUNT INC L00B2 BPL LFA6B LFAA1 LDA #$80 LFAA3 STA ERROR LDA FCNTRL STA CSTAT RTS LFAAB DEC TRACK BPL LFA5E LDA #$00 BEQ LFAA3 LFAB3 JSR LF119 LDX #$F0 JSR LF19C LDX #$6E JSR LF19C JSR LF180 RTS JSR LF180 LDA L0000 CMP #$02 BNE LFADF JSR LF1B9 LDA #$00 STA TRACK LDA L0001 STA SEKTOR JSR LFE04 BCS LFAFE BCC LFB06 LFADF BMI LFB04 CMP #$03 BNE LFAEB JSR LFC3D JMP LFB06 LFAEB CMP #$04 BNE LFAF5 JSR LFB06 JMP LFB0F LFAF5 CMP #$05 BNE LFAFE JSR LFC10 BCC LFB06 LFAFE LDA ERROR ORA #$80 BNE LFB0A LFB04 STA FLAG LFB06 LDA ERROR AND #$7F LFB0A STA ERROR JMP LF529 LFB0F LDA L0001 STA HZ9D LDA L0002 STA HZ9E LDX #$09 LFB19 LDA L0003,X STA BUFFER,X DEX BPL LFB19 JSR LF867 BMI LFBA0 JSR LFA52 BIT ERROR BMI LFBA0 JSR LFC45 LFB2F JSR LFCE7 JSR LFE2F JSR LFAB3 JSR LFE23 JSR LFAB3 JSR LFCF2 JSR LFE41 JSR LFAB3 JSR LFE11 JSR LFAB3 JSR LFCE7 JSR LFBE0 JSR LFAB3 JSR LFBC8 JSR LFAB3 JSR LFCF2 JSR LFBF8 JSR LFAB3 JSR LFBB0 JSR LFAB3 LDA #$00 STA TRACK JSR LF231 LDA #$01 STA SEKTOR STA SEKREG JSR LFC92 INC L000A BNE LFB82 INC L000B LFB82 JSR LFDA7 DEC HZ9D BNE LFB2F LDA HZ9E BEQ LFB92 DEC HZ9E JMP LFB2F LFB92 LDA FCNTRL STA CSTAT LDX #$FF TXS JSR LF1B9 JMP LF0D7 LFBA0 LDA #$08 EOR DRA STA DRA LDX #$14 JSR LF19C JMP LFBA0 LFBB0 LDA #$27 STA SBUF LDA #$00 STA L00B2 LDA #$14 STA L00B3 LFBBC JSR LFC1F INC L00B2 DEC SBUF DEC L00B3 BNE LFBBC RTS LFBC8 LDA #$00 STA SBUF LDA #$27 STA L00B2 LDA #$14 STA L00B3 LFBD4 JSR LFC1F INC L00B2 DEC SBUF DEC L00B3 BNE LFBD4 RTS LFBE0 LDA #$27 STA SBUF LDA #$00 STA L00B2 LDA #$14 STA L00B3 LFBEC JSR LFC2E INC L00B2 DEC SBUF DEC L00B3 BNE LFBEC RTS LFBF8 LDA #$00 STA SBUF LDA #$27 STA L00B2 LDA #$14 STA L00B3 LFC04 JSR LFC2E INC L00B2 DEC SBUF DEC L00B3 BNE LFC04 RTS LFC10 LDA L0001 CMP #$28 BPL LFC1D STA TRACK JSR LF231 CLC RTS LFC1D SEC RTS LFC1F LDA SBUF STA TRACK JSR LFE4D LDA L00B2 STA TRACK JSR LFE4D RTS LFC2E LDA SBUF STA TRACK JSR LFE9A LDA L00B2 STA TRACK JSR LFE9A RTS LFC3D LDA L0001 STA DIR JSR LF20A RTS LFC45 LDA #$00 STA TRACK LDA #$00 TAY JSR LFCFA LFC4F LDA #$01 STA SEKTOR JSR LFDA7 BMI LFCCA LDA #$03 STA SEKTOR JSR LFDA7 BMI LFCCA INC TRACK LDA TRACK CMP #$28 BNE LFC4F LDA #$00 STA TRACK LDX #$09 LFC6F LDA BUFFER,X STA L0000,X DEX BPL LFC6F LDA HZ9D STA L000C LDA HZ9E STA L000D LDA #$01 STA SEKTOR JSR LFDA7 BMI LFCCA RTS LFC88 LDA MUSTERNR BNE LFC8F JMP LFCE7 LFC8F JMP LFCF2 LFC92 LDA SEKREG CMP #$10 BPL LFC9E LDY #$01 JMP LFCA3 LFC9E SEC SBC #$10 LDY #$03 LFCA3 STY SEKREG STY SEKTOR ASL ASL ASL ADC #$00 STA KOMND LDA #$00 STA JUMPL LDA #$02 STA COUNT LFCB7 JSR LF54B BEQ LFCE6 DEC COUNT BEQ LFCCA LDA FCNTRL AND #$0C BEQ LFCCD JMP LFCB7 LFCCA JMP LFB92 LFCCD LDA CSTAT AND #$10 BEQ LFCB7 JSR LF1B9 JSR LF231 JSR LF54B BNE LFCCA LDA #$40 STA SEEKERR LDA #$FF STA L00A1 LFCE6 RTS LFCE7 LDA #$00 STA MUSTERNR LDA #$6D LDY #$B6 JMP LFCFA LFCF2 LDA #$FF STA MUSTERNR LDA #$DB LDY #$66 LFCFA LDX #$00 LFCFC STA L0000,X INX STY L0000,X INX BPL LFCFC RTS LFD05 LDA FCNTRL STA CSTAT STY JUMPH LDA CSTAT AND #$10 BEQ LFD35 LDA FMERK BEQ LFD23 LDA L00A2 BEQ LFD1E LDA #$80 BNE LFD20 LFD1E LDA #$04 LFD20 JMP LFD53 LFD23 LDA #$FF STA FMERK STA L00A1 LDA L00A2 BNE LFD32 JSR LF5FB BNE LFD1E LFD32 JMP LFDA1 LFD35 LDA CSTAT AND #$08 BEQ LFD3F LDA #$02 BNE LFD53 LFD3F LDA CSTAT AND #$04 BEQ LFD49 LDA #$08 BNE LFD53 LFD49 LDA TRKERR BEQ LFD51 LDA #$10 BNE LFD53 LFD51 LDA #$01 LFD53 LDY #$00 STY L00A1 STA SEEKERR JSR LFC92 LDA SEEKERR LDY #$00 ORA (KOMND),Y STA (KOMND),Y LDA SEEKERR CMP #$08 BEQ LFD99 LDY #$07 CMP #$10 BEQ LFD85 DEY CMP #$80 BEQ LFD8F DEY CMP #$40 BEQ LFD8F DEY CMP #$04 BEQ LFD8F DEY CMP #$02 BEQ LFD8F DEY LFD85 STY HZA4 LDY #$01 LDA ERRADR STA (KOMND),Y LDY HZA4 LFD8F LDA (KOMND),Y CLC ADC #$01 STA (KOMND),Y BPL LFD99 BRK LFD99 JSR LFDA7 BPL LFDA1 JMP LFB92 LFDA1 JSR LFC88 LDY JUMPH RTS LFDA7 LDA #$80 STA ERROR LDA #$02 STA COUNT JSR LF5DB BIT ERROR BMI LFDC3 LDA #$80 STA ERROR LDA #$02 STA COUNT JSR LF656 BIT ERROR LFDC3 RTS LFDC4 JSR LFF77 BCS LFE00 INC TRACK JSR LF231 LDA #$C0 STA FCNTRL LDA #$D2 JSR LF5C4 LDX #$7A LFDDA BIT DRA BVC LFE00 BPL LFDDA LDA DATREG STA L0000,X INX BPL LFDDA LDA TIM64 LDA #$01 LFDEE BIT FCNTRL BNE LFDEE LDA FCNTRL BNE LFE00 LDA ASEK CMP SEKTOR BEQ LFE02 BMI LFE02 LFE00 SEC RTS LFE02 CLC RTS LFE04 JSR LFDC4 BCS LFE10 LDA TRACK CMP #$27 BNE LFE04 CLC LFE10 RTS LFE11 LDA #$00 STA TRACK LDA #$28 STA L00B3 LFE19 JSR LFE4D INC TRACK DEC L00B3 BNE LFE19 RTS LFE23 LDA #$27 STA TRACK LFE27 JSR LFE4D DEC TRACK BPL LFE27 RTS LFE2F LDA #$00 STA TRACK LDA #$28 STA L00B3 LFE37 JSR LFE9A INC TRACK DEC L00B3 BNE LFE37 RTS LFE41 LDA #$27 STA TRACK LFE45 JSR LFE9A DEC TRACK BPL LFE45 RTS LFE4D JSR LF231 LDA #$00 STA L00A2 LDY #$02 LFE56 LDA #$00 STA FMERK LFE5A LDA LFA07,Y BMI LFE99 INY STA SEKREG JSR LF669 BEQ LFE56 LDA FCNTRL AND #$1C BNE LFE8E LDA #$06 STA COUNT LFE73 DEC COUNT BEQ LFE8A JSR LF669 BEQ LFE73 LDA FCNTRL AND #$1C BNE LFE73 LDA #$FF STA TRKERR JMP LFE8E LFE8A LDA #$00 STA TRKERR LFE8E JSR LFD05 LDA L00A1 BEQ LFE56 DEY JMP LFE5A LFE99 RTS LFE9A JSR LF231 LDA #$FF STA L00A2 LDY #$02 LFEA3 LDA #$00 STA FMERK LFEA7 LDA LFA07,Y BMI LFE4D INY STA SEKREG JSR LF5FB BEQ LFEA3 JSR LFD05 LDA L00A1 BEQ LFEA3 DEY JMP LFEA7 JSR LF180 LDA #$00 STA L0000 STA L0001 LDA LFFF9 STA ALEN LDA LFFFA STA ACRC1 LDA LFFFB STA ACRC2 LDA FLAG BEQ LFEFC CMP #$01 BNE LFEE3 JMP LFF09 LFEE3 LDA ERROR ORA #$80 STA ERROR BNE LFEF1 LFEEB LDA ERROR AND #$7F STA ERROR LFEF1 LDA #$D0 STA FCNTRL JSR LF529 JMP LF41B LFEFC JSR LFF77 BCS LFEE3 JSR LFFA0 BCS LFEE3 JMP LFEEB LFF09 LDA #$14 STA TRACK JSR LF231 JSR LF119 LDX #$32 JSR LF19C LDA DRA AND #$7F STA DRA LDA #$C0 STA FCNTRL LDX #$7A LFF27 LDA #$01 STA TIM1024 LFF2C BIT DRA BMI LFF49 BIT T1024I BPL LFF2C INC L0000 BNE LFF27 INC L0001 BNE LFF27 LDA TIM64 JMP LFEE3 LFF44 BIT DRA BPL LFF44 LFF49 LDA DATREG STA L0000,X INX BPL LFF44 LDA #$01 LFF53 BIT FCNTRL BNE LFF53 LDA ATRACK CMP #$14 BEQ LFF67 LFF5E LDA #$C0 STA FCNTRL LDX #$7A BNE LFF2C LFF67 LDA FCNTRL BNE LFF5E LFF6C BIT T1024I BPL LFF6C LDA TIM64 JMP LFEEB LFF77 LDA #$01 STA SEKREG LDA DATREG LDA #$82 STA FCNTRL LDA #$E6 JSR LF5C4 LFF89 BIT DRA BVC LFF9E BPL LFF89 LDA TIM64 LDA DATREG JSR LF2A0 LDA DATREG CLC RTS LFF9E SEC RTS LFFA0 LDA #$01 STA SEKREG LDA #$82 STA FCNTRL LDY #$01 JSR LF1B0 LFFAF BIT DRA BMI LFFC7 LDY #$0D JSR LF1B0 NOP NOP NOP NOP INC L0000 BNE LFFAF INC L0001 BNE LFFAF SEC RTS LFFC7 CLC RTS JSR LF2A0 LDA #$3C ORA DRB STA DRB JMP LFBA0 DFB $AA,$AA,$AA,$AA DFB $AA,$AA,$AA,$AA DFB $AA LFFE0 DFB $BA,$CB,$44,$BE DFB $07,$61,$C4,$C0 LFFE8 DFB $F4,$F5,$F6,$F6 DFB $F7,$F8,$FA,$FE DFB $AA,$AA,$AA,$AA DFB $AA,$AA,$AA,$AA DFB $AA LFFF9 DFB $4B LFFFA DFB $04 LFFFB DFB $1A,$13,$F0,$C9 DFB $FF