Код:
RAM:ED7B
RAM:ED7B
RAM:ED7B stepOut: ; CODE XREF: FindSector:loc_EE13p
RAM:ED7B 1D dec e
RAM:ED7C 7B ld a, e
RAM:ED7D 0F rrca
RAM:ED7E D0 ret nc
RAM:ED7F 3E 03 ld a, ppi_1_|ppi_b1_StepIn
RAM:ED81 C3 8A ED jp doSTEP ; A- setC direction
RAM:ED81 ; End of function stepOut
RAM:ED81
RAM:ED84
RAM:ED84 ; =============== S U B R O U T I N E =======================================
RAM:ED84
RAM:ED84
RAM:ED84 stepIn: ; CODE XREF: FindSector:loc_EE09p
RAM:ED84 1C inc e
RAM:ED85 7B ld a, e
RAM:ED86 0F rrca
RAM:ED87 D8 ret c
RAM:ED88 3E 02 ld a, ppi_0_|ppi_b1_StepIn
RAM:ED88 ; End of function stepIn
RAM:ED88
RAM:ED8A
RAM:ED8A ; =============== S U B R O U T I N E =======================================
RAM:ED8A
RAM:ED8A ; A- setC direction
RAM:ED8A
RAM:ED8A doSTEP: ; CODE XREF: stepOut+6j
RAM:ED8A ; FDC_HOME+9p
RAM:ED8A 21 03 F0 ld hl, FDC_PPI_RUS
RAM:ED8D 77 ld (hl), a
RAM:ED8E 36 08 ld (hl), ppi_0_|ppi_b4_Step
RAM:ED90 3E 02 ld a, 2
RAM:ED92
RAM:ED92 loc_ED92: ; CODE XREF: doSTEP+9j
RAM:ED92 3D dec a
RAM:ED93 C2 92 ED jp nz, loc_ED92
RAM:ED96 36 09 ld (hl), ppi_1_|ppi_b4_Step
RAM:ED98
RAM:ED98 loc_ED98: ; CODE XREF: doSTEP+Fj
RAM:ED98 3D dec a
RAM:ED99 C2 98 ED jp nz, loc_ED98
RAM:ED9C C9 ret
RAM:ED9C ; End of function doSTEP
RAM:ED9C
RAM:ED9D
RAM:ED9D ; =============== S U B R O U T I N E =======================================
RAM:ED9D
RAM:ED9D
RAM:ED9D FindSector: ; CODE XREF: rd_physicalp
RAM:ED9D ; wr_physical+Ap ...
RAM:ED9D 3E 04 ld a, 4
RAM:ED9F 32 8F 75 ld (RD_Try??), a
RAM:EDA2 21 43 75 ld hl, TSKT ; Sector
RAM:EDA5 BE cp (hl)
RAM:EDA6 DA 47 EE jp c, pop_RET_IOERROR
RAM:EDA9
RAM:EDA9 nextRdTry: ; CODE XREF: FindSector+73j
RAM:EDA9 ; FindSector+7Dj
RAM:EDA9 21 8F 75 ld hl, RD_Try??
RAM:EDAC 35 dec (hl)
RAM:EDAD FA 47 EE jp m, pop_RET_IOERROR
RAM:EDB0 ;
RAM:EDB0 3A 42 75 ld a, (TTRK) ; Track
RAM:EDB3 E6 01 and 1
RAM:EDB5 C6 04 add a, ppi_0_|ppi_b2_SIDE ; Select SIDE
RAM:EDB7 ;
RAM:EDB7 01 03 F0 ld bc, FDC_PPI_RUS
RAM:EDBA 02 ld (bc), a
RAM:EDBB 03 inc bc ; F004
RAM:EDBC ;
RAM:EDBC 3E 25 ld a, 25h ; '%'
RAM:EDBE D3 C1 out (xC001_CRT), a ; C001
RAM:EDC0 ;
RAM:EDC0 21 01 F0 ld hl, FDC_PPI_B
RAM:EDC3
RAM:EDC3 WrongSector: ; CODE XREF: FindSector+64j
RAM:EDC3 11 E8 03 ld de, 1000
RAM:EDC6
RAM:EDC6 Find_Address_Label: ; CODE XREF: FindSector+36j
RAM:EDC6 ; FindSector+40j
RAM:EDC6 1B dec de
RAM:EDC7 7A ld a, d
RAM:EDC8 B3 or e
RAM:EDC9 CA 47 EE jp z, pop_RET_IOERROR
RAM:EDCC
RAM:EDCC loc_EDCC: ; CODE XREF: FindSector+30j
RAM:EDCC 34 inc (hl)
RAM:EDCD F2 CC ED jp p, loc_EDCC ; pc7 - DataREADY
RAM:EDD0 ;
RAM:EDD0 0A ld a, (bc) ; DATA_LOCK F004
RAM:EDD1 D6 EA sub 0EAh ; 'ê'
RAM:EDD3 C2 C6 ED jp nz, Find_Address_Label
RAM:EDD6
RAM:EDD6 loc_EDD6: ; CODE XREF: FindSector+3Aj
RAM:EDD6 B6 or (hl)
RAM:EDD7 F2 D6 ED jp p, loc_EDD6
RAM:EDDA ;
RAM:EDDA 0A ld a, (bc)
RAM:EDDB D6 D3 sub 0D3h ; 'Ó'
RAM:EDDD C2 C6 ED jp nz, Find_Address_Label
RAM:EDE0
RAM:EDE0 loc_EDE0: ; CODE XREF: FindSector+44j
RAM:EDE0 B6 or (hl)
RAM:EDE1 F2 E0 ED jp p, loc_EDE0
RAM:EDE4 ;
RAM:EDE4 0A ld a, (bc) ; Track
RAM:EDE5 5F ld e, a
RAM:EDE6
RAM:EDE6 loc_EDE6: ; CODE XREF: FindSector+4Aj
RAM:EDE6 34 inc (hl)
RAM:EDE7 F2 E6 ED jp p, loc_EDE6
RAM:EDEA ;
RAM:EDEA 0A ld a, (bc) ; Sector
RAM:EDEB 57 ld d, a
RAM:EDEC
RAM:EDEC loc_EDEC: ; CODE XREF: FindSector+50j
RAM:EDEC 34 inc (hl)
RAM:EDED F2 EC ED jp p, loc_EDEC
RAM:EDF0 ;
RAM:EDF0 0A ld a, (bc)
RAM:EDF1 93 sub e
RAM:EDF2 92 sub d ; calc CRC
RAM:EDF3 C2 47 EE jp nz, pop_RET_IOERROR
RAM:EDF6 ;
RAM:EDF6 3A 42 75 ld a, (TTRK) ; Track
RAM:EDF9 93 sub e
RAM:EDFA C2 05 EE jp nz, WrongTrack
RAM:EDFD 3A 43 75 ld a, (TSKT) ; Sector
RAM:EE00 BA cp d
RAM:EE01 C2 C3 ED jp nz, WrongSector
RAM:EE04 C9 ret
RAM:EE05 ; ---------------------------------------------------------------------------
RAM:EE05
RAM:EE05 WrongTrack: ; CODE XREF: FindSector+5Dj
RAM:EE05 4F ld c, a
RAM:EE06 DA 13 EE jp c, loc_EE13
RAM:EE09
RAM:EE09 loc_EE09: ; CODE XREF: FindSector+70j
RAM:EE09 CD 84 ED call stepIn
RAM:EE0C 0D dec c
RAM:EE0D C2 09 EE jp nz, loc_EE09
RAM:EE10 C3 A9 ED jp nextRdTry
RAM:EE13 ; ---------------------------------------------------------------------------
RAM:EE13
RAM:EE13 loc_EE13: ; CODE XREF: FindSector+69j
RAM:EE13 ; FindSector+7Aj
RAM:EE13 CD 7B ED call stepOut
RAM:EE16 0C inc c
RAM:EE17 C2 13 EE jp nz, loc_EE13
RAM:EE1A C3 A9 ED jp nextRdTry
RAM:EE1A ; End of function FindSector
RAM:EE1A
RAM:EE1D
RAM:EE1D ; =============== S U B R O U T I N E =======================================
RAM:EE1D
RAM:EE1D
RAM:EE1D FDC_HOME: ; CODE XREF: RAM:E094p
RAM:EE1D ; FDC_HOME+Cj ...
RAM:EE1D DB F1 in a, (xF001_B_STAT)
RAM:EE1F E6 20 and fdc_TRK00
RAM:EE21 CA 48 EE jp z, ret_IOERROR
RAM:EE24 ;
RAM:EE24 3E 03 ld a, ppi_1_|ppi_b1_StepIn
RAM:EE26 CD 8A ED call doSTEP ; A- setC direction
RAM:EE29 C3 1D EE jp FDC_HOME
RAM:EE29 ; End of function FDC_HOME
RAM:EE29
RAM:EE2C
RAM:EE2C ; =============== S U B R O U T I N E =======================================
RAM:EE2C
RAM:EE2C
RAM:EE2C waitDataLabel: ; CODE XREF: rd_physical+3p
RAM:EE2C ; verify_phisical+3p
RAM:EE2C 16 19 ld d, 25
RAM:EE2E
RAM:EE2E loc_EE2E: ; CODE XREF: waitDataLabel+Dj
RAM:EE2E ; waitDataLabel+18j
RAM:EE2E 15 dec d
RAM:EE2F CA 47 EE jp z, pop_RET_IOERROR
RAM:EE32
RAM:EE32 loc_EE32: ; CODE XREF: waitDataLabel+7j
RAM:EE32 34 inc (hl)
RAM:EE33 F2 32 EE jp p, loc_EE32
RAM:EE36 0A ld a, (bc)
RAM:EE37 D6 DD sub 0DDh ; 'Ý' ; DD - data field
RAM:EE39 C2 2E EE jp nz, loc_EE2E
RAM:EE3C
RAM:EE3C loc_EE3C: ; CODE XREF: waitDataLabel+11j
RAM:EE3C B6 or (hl)
RAM:EE3D F2 3C EE jp p, loc_EE3C
RAM:EE40 0A ld a, (bc)
RAM:EE41 D6 F3 sub 0F3h ; 'ó' ; D3 - data field
RAM:EE43 C8 ret z
RAM:EE44 C3 2E EE jp loc_EE2E
RAM:EE47 ; ---------------------------------------------------------------------------
RAM:EE47
RAM:EE47 pop_RET_IOERROR: ; CODE XREF: FindSector+9j
RAM:EE47 ; FindSector+10j ...
RAM:EE47 F1 pop af
RAM:EE48
RAM:EE48 ret_IOERROR: ; CODE XREF: FDC_HOME+4j
RAM:EE48 AF xor a
RAM:EE49 3C inc a ; 1 - IO Error
RAM:EE4A C9 ret
RAM:EE4A ; End of function waitDataLabel
RAM:EE4A
RAM:EE4B