irqcounter_fdc = $0 irq16counter_fdc = $1 acltim_fdc? = $2 drvst_fdc = $4 tmp_fdc = $8 work_fdc = $9 LA = $A csect_fdc = $D header_id1_fdc = $E header_track_fdc = $10 header_sect_fdc = $11 drive_fdc = $13 tracc_fdc = $14 nexts_fdc = $15 sectr_fdc = $16 bufpnt_fdc = $17 bufpnt_fdc+1 = $18 hdrpnt_fdc = $19 sync_counter_fdc = $1E job_fdc = $1F jobn_fdc = $20 drvtrk_fdc = $21 steptmp_fdc = $23 chksum_fdc = $25 save_jobn_fdc = $28 nxtrk_fdc = $29 io_via40_pb_fdc = $40 io_diskdata_read_fdc = $41 io_via40_t1lc_fdc = $45 io_via40_pcr_fdc = $4C io_via40_ifr_fdc = $4D io_diskdata_write_fdc = $80 io_riot80_pb_fdc = $82 io_riot80_t8_fdc = $8F L2A0 = $2A0 fdc_resetphase_fdc = $400 L401 = $401 L402 = $402 jobs_fdc = $403 hwdep_1099_maxsecperzone = $499 headergap_size_fdc = $49D L4A0 = $4A0 phase_fdc = $4A1 min_sync_length_fdc = $4A5 wpsw_fdc = $4A6 lwpt_fdc = $4A8 L4A9 = $4A9 killp_flag_fdc = $4AB trknum_side0?_fdc-1 = $4AF trknum_side0?_fdc = $4B0 trknum_side1?_fdc-1 = $4B3 steps?_fdc = $4EB mintrk_side2?_fdc = $4ED buff0_fdc = $500 L9A9 = $9A9 LBA9 = $BA9 .ORG $FC00 FC00 itop_fdc: FC02 ierrr_fdc = * + 2 FC00 17 FC DB .BYTE $17,$FC,$DB FC03 LFC03: FC03 FE A0 02 INC L2A0,X FC06 lcc_fdc: FC06 8C 00 04 STY fdc_resetphase_fdc FC09 LFC09: FC09 AD 00 04 LDA fdc_resetphase_fdc FC0C D0 FB BNE LFC09 FC0E LFC0E: FC0E 88 DEY FC0F D0 F5 BNE lcc_fdc FC11 LFC11: FC11 4C 00 05 JMP buff0_fdc FC14 LFC14: FC14 88 DEY FC15 10 02 BPL cont10_fdc FC17 top_fdc: FC17 A0 0E LDY #$E FC19 cont10_fdc: FC19 58 CLI FC1A B9 03 04 LDA jobs_fdc,Y FC1D 10 F5 BPL LFC14 FC1F LFC1F: FC1F C9 D0 CMP #$D0 FC21 D0 06 BNE cont30_fdc FC23 LFC23: FC23 98 TYA FC24 85 20 STA jobn_fdc FC26 4C 00 FD JMP LFD00 FC29 cont30_fdc: FC29 78 SEI FC2A 29 01 AND #$1 FC2C AA TAX FC2D 85 13 STA drive_fdc FC2F A5 40 LDA io_via40_pb_fdc FC31 3D E6 FF AND phase_1_fdc,X FC34 F0 11 BEQ LFC47 FC36 LFC36: FC36 45 40 EOR io_via40_pb_fdc FC38 85 40 STA io_via40_pb_fdc FC3A A5 01 LDA irq16counter_fdc FC3C 6D 01 04 ADC L401 FC3F 95 02 STA acltim_fdc?,X FC41 B5 04 LDA drvst_fdc,X FC43 09 80 ORA #$80 FC45 95 04 STA drvst_fdc,X FC47 LFC47: FC47 B5 04 LDA drvst_fdc,X FC49 30 C9 BMI LFC14 FC4B LFC4B: FC4B 20 D9 FF JSR LFFD9 FC4E B5 04 LDA drvst_fdc,X FC50 0A ASL A FC51 30 C1 BMI LFC14 FC53 LFC53: FC53 58 CLI FC54 A0 0E LDY #$E FC56 84 20 STY jobn_fdc FC58 LFC58: FC58 20 20 FD JSR setjb_fdc FC5B 30 20 BMI que20_fdc FC5D que05_fdc?: FC5D C6 20 DEC jobn_fdc FC5F 10 F7 BPL LFC58 FC61 LFC61: FC61 A4 28 LDY save_jobn_fdc FC63 20 22 FD JSR setjb_y_fdc FC66 A5 29 LDA nxtrk_fdc FC68 78 SEI FC69 9D EB 04 STA steps?_fdc,X FC6C A9 08 LDA #$8 FC6E 95 23 STA steptmp_fdc,X FC70 A9 41 LDA #$41 FC72 15 04 ORA drvst_fdc,X FC74 95 04 STA drvst_fdc,X FC76 B1 19 LDA (hdrpnt_fdc),Y FC78 95 21 STA drvtrk_fdc,X FC7A LFC7A: FC7A 4C 17 FC JMP top_fdc FC7D que20_fdc: FC7D 29 01 AND #$1 FC7F C5 13 CMP drive_fdc FC81 D0 DA BNE que05_fdc? FC83 LFC83: FC83 A5 82 LDA io_riot80_pb_fdc FC85 09 10 ORA #$10 FC87 85 82 STA io_riot80_pb_fdc FC89 B1 19 LDA (hdrpnt_fdc),Y FC8B CD B0 04 CMP trknum_side0?_fdc FC8E 90 12 BCC LFCA2 FC90 LFC90: FC90 A5 82 LDA io_riot80_pb_fdc FC92 29 EF AND #$EF FC94 85 82 STA io_riot80_pb_fdc FC96 B5 21 LDA drvtrk_fdc,X FC98 CD B0 04 CMP trknum_side0?_fdc FC9B B0 11 BCS LFCAE FC9D LFC9D: FC9D 6D ED 04 ADC mintrk_side2?_fdc FCA0 D0 0A BNE LFCAC FCA2 LFCA2: FCA2 B5 21 LDA drvtrk_fdc,X FCA4 CD B0 04 CMP trknum_side0?_fdc FCA7 90 05 BCC LFCAE FCA9 LFCA9: FCA9 ED ED 04 SBC mintrk_side2?_fdc FCAC LFCAC: FCAC 95 21 STA drvtrk_fdc,X FCAE LFCAE: FCAE B5 21 LDA drvtrk_fdc,X FCB0 F0 0D BEQ gotu_fdc FCB2 LFCB2: FCB2 38 SEC FCB3 F1 19 SBC (hdrpnt_fdc),Y FCB5 F0 08 BEQ gotu_fdc FCB7 LFCB7: FCB7 85 29 STA nxtrk_fdc FCB9 A5 20 LDA jobn_fdc FCBB 85 28 STA save_jobn_fdc FCBD 10 9E BPL que05_fdc? FCBF gotu_fdc: FCBF A2 04 LDX #$4 FCC1 B1 19 LDA (hdrpnt_fdc),Y FCC3 85 14 STA tracc_fdc FCC5 CD B0 04 CMP trknum_side0?_fdc FCC8 B0 08 BCS LFCD2 FCCA LFCCA: FCCA DD AF 04 CMP trknum_side0?_fdc-1,X FCCD CA DEX FCCE B0 FA BCS LFCCA FCD0 LFCD0: FCD0 90 06 BCC LFCD8 FCD2 LFCD2: FCD2 DD B3 04 CMP trknum_side1?_fdc-1,X FCD5 CA DEX FCD6 B0 FA BCS LFCD2 FCD8 LFCD8: FCD8 BD 99 04 LDA hwdep_1099_maxsecperzone,X FCDB 85 16 STA sectr_fdc FCDD 8A TXA FCDE 0A ASL A FCDF 85 09 STA work_fdc FCE1 A5 82 LDA io_riot80_pb_fdc FCE3 29 F8 AND #$F8 FCE5 05 09 ORA work_fdc FCE7 05 13 ORA drive_fdc FCE9 85 82 STA io_riot80_pb_fdc FCEB A6 13 LDX drive_fdc FCED B5 04 LDA drvst_fdc,X FCEF 30 89 BMI LFC7A FCF1 LFCF1: FCF1 A5 1F LDA job_fdc FCF3 C9 40 CMP #$40 FCF5 F0 11 BEQ bmp_fdc FCF7 exe_fdc: FCF7 C9 60 CMP #$60 FCF9 F0 03 BEQ ex_fdc FCFB LFCFB: FCFB 4C 5A FE JMP seak_fdc FCFE ex_fdc: FCFE A5 20 LDA jobn_fdc FD00 LFD00: FD00 18 CLC FD01 69 05 ADC #$5 FD03 85 18 STA bufpnt_fdc+1 FD05 6C 17 00 JMP (bufpnt_fdc) FD08 bmp_fdc: FD08 78 SEI FD09 A9 41 LDA #$41 FD0B 95 04 STA drvst_fdc,X FD0D A9 01 LDA #$1 FD0F 95 21 STA drvtrk_fdc,X FD11 BD E4 FF LDA phase_3_fdc,X FD14 05 40 ORA io_via40_pb_fdc FD16 85 40 STA io_via40_pb_fdc FD18 A9 5C LDA #$5C FD1A 9D EB 04 STA steps?_fdc,X FD1D 4C EA FF JMP LFFEA FD20 setjb_fdc: FD20 A4 20 LDY jobn_fdc FD22 setjb_y_fdc: FD22 B9 03 04 LDA jobs_fdc,Y FD25 48 PHA FD26 29 78 AND #$78 FD28 85 1F STA job_fdc FD2A 98 TYA FD2B 0A ASL A FD2C 0A ASL A FD2D 0A ASL A FD2E 69 21 ADC #$21 FD30 85 19 STA hdrpnt_fdc FD32 A0 02 LDY #$2 FD34 68 PLA FD35 60 RTS FD36 LFD36: FD36 A0 03 LDY #$3 FD38 B1 19 LDA (hdrpnt_fdc),Y FD3A 85 11 STA header_sect_fdc FD3C wsect_fdc?: FD3C A9 7F LDA #$7F FD3E 85 0D STA csect_fdc FD40 A5 11 LDA header_sect_fdc FD42 18 CLC FD43 69 02 ADC #$2 FD45 C5 16 CMP sectr_fdc FD47 90 02 BCC l_460_fdc FD49 LFD49: FD49 A9 00 LDA #$0 FD4B l_460_fdc: FD4B 85 15 STA nexts_fdc FD4D A2 0E LDX #$E FD4F 86 20 STX jobn_fdc FD51 A2 FF LDX #$FF FD53 l_480_fdc: FD53 20 20 FD JSR setjb_fdc FD56 10 2C BPL l_470_fdc FD58 LFD58: FD58 85 09 STA work_fdc FD5A 29 01 AND #$1 FD5C C5 13 CMP drive_fdc FD5E D0 24 BNE l_470_fdc FD60 LFD60: FD60 B1 19 LDA (hdrpnt_fdc),Y FD62 C5 14 CMP tracc_fdc FD64 D0 1E BNE l_470_fdc FD66 LFD66: FD66 A5 1F LDA job_fdc FD68 C9 60 CMP #$60 FD6A F0 18 BEQ l_470_fdc FD6C LFD6C: FD6C C8 INY FD6D 38 SEC FD6E B1 19 LDA (hdrpnt_fdc),Y FD70 E5 15 SBC nexts_fdc FD72 10 03 BPL l_465_fdc FD74 LFD74: FD74 18 CLC FD75 65 16 ADC sectr_fdc FD77 l_465_fdc: FD77 C5 0D CMP csect_fdc FD79 B0 09 BCS l_470_fdc FD7B doitt_fdc: FD7B 85 0D STA csect_fdc FD7D A5 20 LDA jobn_fdc FD7F AA TAX FD80 69 05 ADC #$5 FD82 85 18 STA bufpnt_fdc+1 FD84 l_470_fdc: FD84 C6 20 DEC jobn_fdc FD86 10 CB BPL l_480_fdc FD88 LFD88: FD88 8A TXA FD89 10 03 BPL LFD8E FD8B LFD8B: FD8B 4C 17 FC JMP top_fdc FD8E LFD8E: FD8E 8E A0 04 STX L4A0 FD91 86 20 STX jobn_fdc FD93 20 20 FD JSR setjb_fdc FD96 A5 1F LDA job_fdc FD98 reed_fdc: FD98 C9 00 CMP #$0 FD9A D0 36 BNE wright_fdc FD9C read01_fdc: FD9C 20 C7 FD JSR dstrt_fdc FD9F LFD9F: FD9F 50 FE BVC LFD9F FDA1 LFDA1: FDA1 B8 CLV FDA2 A5 41 LDA io_diskdata_read_fdc FDA4 91 17 STA (bufpnt_fdc),Y FDA6 C8 INY FDA7 D0 F6 BNE LFD9F FDA9 read_checksum_fdc: FDA9 50 FE BVC read_checksum_fdc FDAB LFDAB: FDAB A5 41 LDA io_diskdata_read_fdc FDAD 85 25 STA chksum_fdc FDAF A9 10 LDA #$10 FDB1 24 4D BIT io_via40_ifr_fdc FDB3 D0 0F BNE LFDC4 FDB5 LFDB5: FDB5 20 36 FF JSR chkblk_fdc FDB8 C5 25 CMP chksum_fdc FDBA D0 03 BNE LFDBF FDBC LFDBC: FDBC 4C 9F FE JMP done_fdc FDBF LFDBF: FDBF A9 05 LDA #$5 FDC2 LFDC2 = * + 1 ; Instruction parameter jumped to. FDC1 2C A9 04 BIT L4A9 FDC4 LFDC4: FDC4 4C DB FE JMP errr_fdc FDC7 dstrt_fdc: FDC7 20 AA FE JSR srch_fdc FDCA 20 F7 FE JSR sync?_fdc FDCD C9 07 CMP #$7 FDCF D0 F1 BNE LFDC2 FDD1 LFDD1: FDD1 60 RTS FDD2 wright_fdc: FDD2 C9 10 CMP #$10 FDD4 D0 65 BNE vrfy_fdc FDD6 LFDD6: FDD6 20 36 FF JSR chkblk_fdc FDD9 85 25 STA chksum_fdc FDDB A5 82 LDA io_riot80_pb_fdc FDDD 29 08 AND #$8 FDDF D0 E3 BNE LFDC4 FDE1 wrt10_fdc: FDE1 20 AA FE JSR srch_fdc FDE4 AE 9D 04 LDX headergap_size_fdc FDE7 LFDE7: FDE7 50 FE BVC LFDE7 FDE9 LFDE9: FDE9 B8 CLV FDEA CA DEX FDEB D0 FA BNE LFDE7 FDED LFDED: FDED A9 DE LDA #$DE FDEF 85 4C STA io_via40_pcr_fdc FDF1 A9 DC LDA #$DC FDF3 A2 FF LDX #$FF FDF5 20 2D FF JSR write_2_bytes_fdc FDF8 20 2D FF JSR write_2_bytes_fdc FDFB LFDFB: FDFB 50 FE BVC LFDFB FDFD LFDFD: FDFD B8 CLV FDFE 85 4C STA io_via40_pcr_fdc FE00 A9 07 LDA #$7 FE02 85 80 STA io_diskdata_write_fdc FE04 A0 00 LDY #$0 FE06 LFE06: FE06 50 FE BVC LFE06 FE08 LFE08: FE08 B8 CLV FE09 B1 17 LDA (bufpnt_fdc),Y FE0B 85 80 STA io_diskdata_write_fdc FE0D C8 INY FE0E D0 F6 BNE LFE06 FE10 LFE10: FE10 A6 25 LDX chksum_fdc FE12 LFE12: FE12 50 FE BVC LFE12 FE14 LFE14: FE14 B8 CLV FE15 86 80 STX io_diskdata_write_fdc FE17 20 30 FF JSR write_a_byte_fdc FE1A A2 00 LDX #$0 FE1C 20 30 FF JSR write_a_byte_fdc FE1F A9 FC LDA #$FC FE21 LFE21: FE21 50 FE BVC LFE21 FE23 LFE23: FE23 B8 CLV FE24 85 4C STA io_via40_pcr_fdc FE26 A2 28 LDX #$28 FE28 LFE28: FE28 20 27 FF JSR read_a_byte_fdc FE2B CA DEX FE2C D0 FA BNE LFE28 FE2E LFE2E: FE2E A4 20 LDY jobn_fdc FE30 B9 03 04 LDA jobs_fdc,Y FE33 49 30 EOR #$30 FE35 99 03 04 STA jobs_fdc,Y FE38 4C 36 FD JMP LFD36 FE3B vrfy_fdc: FE3B C9 20 CMP #$20 FE3D D0 16 BNE sectsk_fdc FE3F LFE3F: FE3F 20 C7 FD JSR dstrt_fdc FE42 LFE42: FE42 50 FE BVC LFE42 FE44 LFE44: FE44 B8 CLV FE45 A5 41 LDA io_diskdata_read_fdc FE47 D1 17 CMP (bufpnt_fdc),Y FE49 D0 06 BNE LFE51 FE4B LFE4B: FE4B C8 INY FE4C D0 F4 BNE LFE42 FE4E LFE4E: FE4E 4C A9 FD JMP read_checksum_fdc FE51 LFE51: FE51 A9 07 LDA #$7 FE53 D0 52 BNE LFEA7 FE55 sectsk_fdc: FE55 20 AA FE JSR srch_fdc FE58 F0 45 BEQ done_fdc FE5A seak_fdc: FE5A A2 B4 LDX #$B4 FE5C 20 D5 FE JSR wait_for_hdrblock_fdc FE5F A0 04 LDY #$4 FE61 LFE61: FE61 50 FE BVC LFE61 FE63 LFE63: FE63 B8 CLV FE64 A5 41 LDA io_diskdata_read_fdc FE66 99 0E 00 STA header_id1_fdc,Y FE69 88 DEY FE6A 10 F5 BPL LFE61 FE6C LFE6C: FE6C A0 04 LDY #$4 FE6E A9 00 LDA #$0 FE70 LFE70: FE70 59 0E 00 EOR header_id1_fdc,Y FE73 88 DEY FE74 10 FA BPL LFE70 FE76 LFE76: FE76 C9 00 CMP #$0 FE78 D0 28 BNE LFEA2 FE7A LFE7A: FE7A A6 13 LDX drive_fdc FE7C A5 10 LDA header_track_fdc FE7E 95 21 STA drvtrk_fdc,X FE80 A5 1F LDA job_fdc FE82 C9 30 CMP #$30 FE84 F0 0F BEQ eseek_fdc FE86 LFE86: FE86 A0 01 LDY #$1 FE88 LFE88: FE88 B1 19 LDA (hdrpnt_fdc),Y FE8A D9 0E 00 CMP header_id1_fdc,Y FE8D D0 16 BNE badid_fdc FE8F LFE8F: FE8F 88 DEY FE90 10 F6 BPL LFE88 FE92 LFE92: FE92 4C 3C FD JMP wsect_fdc? FE95 eseek_fdc: FE95 A0 04 LDY #$4 FE97 LFE97: FE97 B9 0E 00 LDA header_id1_fdc,Y FE9A 91 19 STA (hdrpnt_fdc),Y FE9C 88 DEY FE9D 10 F8 BPL LFE97 FE9F done_fdc: FE9F A9 01 LDA #$1 FEA2 LFEA2 = * + 1 ; Instruction parameter jumped to. FEA1 2C A9 09 BIT L9A9 FEA5 badid_fdc = * + 1 ; Instruction parameter jumped to. FEA4 2C A9 0B BIT LBA9 FEA7 LFEA7: FEA7 4C DB FE JMP errr_fdc FEAA srch_fdc: FEAA A0 03 LDY #$3 FEAC A9 00 LDA #$0 FEAE LFEAE: FEAE 51 19 EOR (hdrpnt_fdc),Y FEB0 88 DEY FEB1 10 FB BPL LFEAE FEB3 LFEB3: FEB3 A0 04 LDY #$4 FEB5 91 19 STA (hdrpnt_fdc),Y FEB7 A4 20 LDY jobn_fdc FEB9 A2 B4 LDX #$B4 FEBB LFEBB: FEBB 20 D5 FE JSR wait_for_hdrblock_fdc FEBE A0 04 LDY #$4 FEC0 LFEC0: FEC0 50 FE BVC LFEC0 FEC2 LFEC2: FEC2 B8 CLV FEC3 A5 41 LDA io_diskdata_read_fdc FEC5 D1 19 CMP (hdrpnt_fdc),Y FEC7 D0 F2 BNE LFEBB FEC9 LFEC9: FEC9 88 DEY FECA 10 F4 BPL LFEC0 FECC LFECC: FECC C8 INY FECD LFECD: FECD 60 RTS FECE LFECE: FECE 20 F7 FE JSR sync?_fdc FED1 C9 08 CMP #$8 FED3 F0 F8 BEQ LFECD FED5 wait_for_hdrblock_fdc: FED5 58 CLI FED6 CA DEX FED7 D0 F5 BNE LFECE FED9 LFED9: FED9 A9 02 LDA #$2 FEDB errr_fdc: FEDB A4 20 LDY jobn_fdc FEDD 99 03 04 STA jobs_fdc,Y FEE0 48 PHA FEE1 A5 01 LDA irq16counter_fdc FEE3 A6 13 LDX drive_fdc FEE5 6D 02 04 ADC L402 FEE8 95 02 STA acltim_fdc?,X FEEA 68 PLA FEEB 4A LSR A FEEC D0 03 BNE LFEF1 FEEE LFEEE: FEEE 4C 36 FD JMP LFD36 FEF1 LFEF1: FEF1 A2 3F LDX #$3F FEF3 9A TXS FEF4 4C 17 FC JMP top_fdc FEF7 sync?_fdc: FEF7 A9 1E LDA #$1E FEF9 85 1E STA sync_counter_fdc FEFB LFEFB: FEFB A5 40 LDA io_via40_pb_fdc FEFD 29 BF AND #$BF FEFF 85 40 STA io_via40_pb_fdc FF01 78 SEI FF02 A9 D0 LDA #$D0 FF04 85 45 STA io_via40_t1lc_fdc FF06 A9 03 LDA #$3 FF08 C6 1E DEC sync_counter_fdc FF0A 30 CF BMI errr_fdc FF0C LFF0C: FF0C 24 45 BIT io_via40_t1lc_fdc FF0E 10 CB BPL errr_fdc FF10 LFF10: FF10 24 40 BIT io_via40_pb_fdc FF12 30 F8 BMI LFF0C FF14 LFF14: FF14 AC A5 04 LDY min_sync_length_fdc FF17 LFF17: FF17 24 40 BIT io_via40_pb_fdc FF19 30 E0 BMI LFEFB FF1B LFF1B: FF1B 88 DEY FF1C D0 F9 BNE LFF17 FF1E LFF1E: FF1E A5 40 LDA io_via40_pb_fdc FF20 09 40 ORA #$40 FF22 85 40 STA io_via40_pb_fdc FF24 24 41 BIT io_diskdata_read_fdc FF26 B8 CLV FF27 read_a_byte_fdc: FF27 50 FE BVC read_a_byte_fdc FF29 LFF29: FF29 B8 CLV FF2A A5 41 LDA io_diskdata_read_fdc FF2C 60 RTS FF2D write_2_bytes_fdc: FF2D 20 30 FF JSR write_a_byte_fdc FF30 write_a_byte_fdc: FF30 50 FE BVC write_a_byte_fdc FF32 LFF32: FF32 B8 CLV FF33 86 80 STX io_diskdata_write_fdc FF35 60 RTS FF36 chkblk_fdc: FF36 A9 00 LDA #$0 FF38 A8 TAY FF39 LFF39: FF39 51 17 EOR (bufpnt_fdc),Y FF3B C8 INY FF3C D0 FB BNE LFF39 FF3E LFF3E: FF3E 60 RTS FF3F irq_fdc: FF3F 48 PHA FF40 8A TXA FF41 48 PHA FF42 A9 03 LDA #$3 FF44 85 8F STA io_riot80_t8_fdc FF46 85 8F STA io_riot80_t8_fdc FF48 E6 00 INC irqcounter_fdc FF4A A5 00 LDA irqcounter_fdc FF4C 29 0F AND #$F FF4E D0 02 BNE LFF52 FF50 LFF50: FF50 E6 01 INC irq16counter_fdc FF52 LFF52: FF52 A2 01 LDX #$1 FF54 A5 82 LDA io_riot80_pb_fdc FF56 48 PHA FF57 09 01 ORA #$1 FF59 LFF59: FF59 85 82 STA io_riot80_pb_fdc FF5B A5 82 LDA io_riot80_pb_fdc FF5D 29 08 AND #$8 FF5F DD A8 04 CMP lwpt_fdc,X FF62 9D A8 04 STA lwpt_fdc,X FF65 F0 05 BEQ LFF6C FF67 LFF67: FF67 A9 01 LDA #$1 FF69 9D A6 04 STA wpsw_fdc,X FF6C LFF6C: FF6C A5 01 LDA irq16counter_fdc FF6E D5 02 CMP acltim_fdc?,X FF70 D0 11 BNE LFF83 FF72 LFF72: FF72 16 04 ASL drvst_fdc,X FF74 B0 07 BCS LFF7D FF76 LFF76: FF76 BD E6 FF LDA phase_1_fdc,X FF79 05 40 ORA io_via40_pb_fdc FF7B 85 40 STA io_via40_pb_fdc FF7D LFF7D: FF7D 20 D9 FF JSR LFFD9 FF80 18 CLC FF81 76 04 ROR drvst_fdc,X FF83 LFF83: FF83 BD EB 04 LDA steps?_fdc,X FF86 D0 14 BNE LFF9C FF88 LFF88: FF88 B5 23 LDA steptmp_fdc,X FF8A F0 04 BEQ LFF90 FF8C LFF8C: FF8C D6 23 DEC steptmp_fdc,X FF8E 10 38 BPL LFFC8 FF90 LFF90: FF90 9D A1 04 STA phase_fdc,X FF93 B5 04 LDA drvst_fdc,X FF95 29 BF AND #$BF FF97 95 04 STA drvst_fdc,X FF99 4C C8 FF JMP LFFC8 FF9C LFF9C: FF9C 0A ASL A FF9D A5 40 LDA io_via40_pb_fdc FF9F 3D E0 FF AND phase_maskrest_fdc,X FFA2 85 08 STA tmp_fdc FFA4 A5 40 LDA io_via40_pb_fdc FFA6 3D E4 FF AND phase_3_fdc,X FFA9 B0 09 BCS LFFB4 FFAB LFFAB: FFAB DE EB 04 DEC steps?_fdc,X FFAE 5D E4 FF EOR phase_3_fdc,X FFB1 4C B7 FF JMP LFFB7 FFB4 LFFB4: FFB4 FE EB 04 INC steps?_fdc,X FFB7 LFFB7: FFB7 5D E2 FF EOR phase_2_fdc,X FFBA F0 08 BEQ LFFC4 FFBC LFFBC: FFBC DD E4 FF CMP phase_3_fdc,X FFBF F0 03 BEQ LFFC4 FFC1 LFFC1: FFC1 5D E4 FF EOR phase_3_fdc,X FFC4 LFFC4: FFC4 05 08 ORA tmp_fdc FFC6 85 40 STA io_via40_pb_fdc FFC8 LFFC8: FFC8 A5 82 LDA io_riot80_pb_fdc FFCA 29 FE AND #$FE FFCC CA DEX FFCD 10 8A BPL LFF59 FFCF LFFCF: FFCF 4E AB 04 LSR killp_flag_fdc FFD2 68 PLA FFD3 85 82 STA io_riot80_pb_fdc FFD5 68 PLA FFD6 AA TAX FFD7 68 PLA FFD8 40 RTI FFD9 LFFD9: FFD9 A5 01 LDA irq16counter_fdc FFDB 95 02 STA acltim_fdc?,X FFDD D6 02 DEC acltim_fdc?,X FFDF 60 RTS FFE0 phase_maskrest_fdc: FFE2 phase_2_fdc = * + 2 FFE0 F3 FC 08 .BYTE $F3,$FC,$8 FFE4 phase_3_fdc = * + 1 FFE3 02 0C 03 .BYTE $2,$C,$3 FFE6 phase_1_fdc: FFE6 20 10 AA .BYTE $20,$10,$AA FFE9 AA .BYTE $AA FFEA LFFEA: FFEA 95 23 STA steptmp_fdc,X FFEC 4C 9F FE JMP done_fdc FFEF AA AA AA .BYTE $AA,$AA,$AA FFF2 AA AA AA .BYTE $AA,$AA,$AA FFF5 AA AA AA .BYTE $AA,$AA,$AA FFF8 AA AA 53 .BYTE $AA,$AA,$53 FFFB A3 04 FC .BYTE $A3,$4,$FC 0000 irqcounter_fdc = * + 2 FFFE 3F FF 00 .BYTE $3F,$FF,$0