mirror of
https://github.com/Michaelangel007/apple2_fantavision_reloaded.git
synced 2024-06-26 05:29:27 +00:00
Indent Stage 2
This commit is contained in:
parent
5867adbafc
commit
5558758c31
150
README.md
150
README.md
|
@ -1155,91 +1155,91 @@ TODO: FIXME: Convert ProDOS Block # to Sector # ?
|
||||||
Once the entire track $15 of Stage 2 is read in it is executed to read Stage 3.
|
Once the entire track $15 of Stage 2 is read in it is executed to read Stage 3.
|
||||||
|
|
||||||
```asm
|
```asm
|
||||||
TestBoot3: ; Boot Stage 2 done, do stage 3
|
TestBoot3: ; Boot Stage 2 done, do stage 3
|
||||||
0873:A6 2B LDX P5.SlotX16 ;
|
0873:A6 2B LDX P5.SlotX16 ;
|
||||||
0875:86 FD STX RWTS_SLOTx16 ;
|
0875:86 FD STX rwts_SlotX16 ;
|
||||||
0877:A9 BC LDA #>LoadBoot3 ; Load T$22 4&4 "4 sectors" @ $BC00, $BD00, $BE00, $BF00
|
0877:A9 BC LDA #>LoadBoot3 ; Load T$22 4&4 "4 sectors" @ $BC00, $BD00, $BE00, $BF00
|
||||||
0879:20 00 B5 JSR ReadBoot3 ; Boot Stage 2 reads in encrypted Stage 3
|
0879:20 00 B5 JSR ReadBoot3 ; Boot Stage 2 reads in encrypted Stage 3
|
||||||
087C:B0 F5 BCS TestBoot3 ;^ $0873 C=1 error, Hang if NibbleCheck1 fails
|
087C:B0 F5 BCS TestBoot3 ;^ $0873 C=1 error, Hang if NibbleCheck1 fails
|
||||||
087E:4C 00 BE JMP ExecBoot3 ;
|
087E:4C 00 BE JMP ExecBoot3 ;
|
||||||
```
|
```
|
||||||
|
|
||||||
Let's disassemble $B500 ...
|
Let's disassemble $B500 ...
|
||||||
|
|
||||||
```asm
|
```asm
|
||||||
COUNT = $3E ; 16-bit counter
|
COUNT = $3E ; 16-bit counter
|
||||||
DRIVE_DATA = $C08C ; Read Disk Nibble
|
DRIVE_DATA = $C08C ; Read Disk Nibble
|
||||||
|
|
||||||
ReadBoot3:
|
ReadBoot3:
|
||||||
B500:8D 17 B5 STA _B516+1 ; *** SELF-MODIFYING *** DestAddr
|
B500:8D 17 B5 STA _B516+1 ; *** SELF-MODIFYING *** DestAddr
|
||||||
; These 3 bytes are wasted
|
; These 3 bytes are wasted
|
||||||
; Should just be STA $3D
|
; Should just be STA $3D
|
||||||
; And we can delete $B516..$B518
|
; And we can delete $B516..$B518
|
||||||
B503:A9 22 LDA #$22 ; TRACK_NIBBLE_CHECK
|
B503:A9 22 LDA #$22 ; TRACK_NIBBLE_CHECK
|
||||||
B505:20 09 B0 JSR RWTS_Seek ;
|
B505:20 09 B0 JSR RWTS_Seek ;
|
||||||
B508:A6 FD LDX RWTS_SLOTx16 ;
|
B508:A6 FD LDX rwts_SlotX16 ;
|
||||||
B50A:A9 80 LDA #$80 ; Attempt to read $8080 disk nibbles
|
B50A:A9 80 LDA #$80 ; Attempt to read $8080 disk nibbles
|
||||||
B50C:85 3E STA Count ; Count
|
B50C:85 3E STA Count ; Count
|
||||||
B50E:85 3F STA Count+1 ;
|
B50E:85 3F STA Count+1 ;
|
||||||
B510:A9 04 LDA #$04 ; Num "Sectors" or Pages to read
|
B510:A9 04 LDA #$04 ; Num "Sectors" or Pages to read
|
||||||
B512:85 3B STA NumSectors ;
|
B512:85 3B STA NumSectors ;
|
||||||
B514:A0 00 LDY #$00 ; Num disk nibbles read (actually is 1/2)
|
B514:A0 00 LDY #$00 ; Num disk nibbles read (actually is 1/2)
|
||||||
_B516:
|
_B516:
|
||||||
B516:A9 00 LDA #$00 ; *** SELF-MODIFIED @ $B500 *** Dest Addr to Load at
|
B516:A9 00 LDA #$00 ; *** SELF-MODIFIED @ $B500 *** Dest Addr to Load at
|
||||||
B518:84 3C STY $3C ;
|
B518:84 3C STY $3C ;
|
||||||
B51A:85 3D STA DestPage ; DestPage
|
B51A:85 3D STA DestPage ; DestPage
|
||||||
|
|
||||||
NextCount:
|
NextCount:
|
||||||
B51C:C6 3E DEC Count ; Force read counter
|
B51C:C6 3E DEC Count ; Force read counter
|
||||||
B51E:D0 06 BNE DoNibbleCheck1 ; to read at least once
|
B51E:D0 06 BNE DoNibbleCheck1 ; to read at least once
|
||||||
B520:C6 3F DEC Count+1 ;
|
B520:C6 3F DEC Count+1 ;
|
||||||
B522:D0 02 BNE DoNibbleCheck1 ;
|
B522:D0 02 BNE DoNibbleCheck1 ;
|
||||||
B524:38 SEC ; FAIL nibble check 1
|
B524:38 SEC ; FAIL nibble check 1
|
||||||
B525:60 RTS ;
|
B525:60 RTS ;
|
||||||
|
|
||||||
DoNibbleCheck1:
|
DoNibbleCheck1:
|
||||||
WaitNib1a: ; ^
|
WaitNib1a: ; ^
|
||||||
B526:BD 8C C0 LDA DRIVE_DATA,X ; |
|
B526:BD 8C C0 LDA DRIVE_DATA,X ; |
|
||||||
B529:10 FB BPl WaitNib1a ;^ $B526 |
|
B529:10 FB BPl WaitNib1a ;^ $B526 |
|
||||||
TestNib1a: ; |
|
TestNib1a: ; |
|
||||||
B52B:C9 F5 CMP #$F5 ; $F5 | <--+
|
B52B:C9 F5 CMP #$F5 ; $F5 | <--+
|
||||||
B52D:D0 ED BNE NextCount ;^ $B51C + |
|
B52D:D0 ED BNE NextCount ;^ $B51C + |
|
||||||
; |
|
; |
|
||||||
WaitNib1b: ; |
|
WaitNib1b: ; |
|
||||||
B52F:BD 8C C0 LDA DRIVE_DATA,X ; |
|
B52F:BD 8C C0 LDA DRIVE_DATA,X ; |
|
||||||
B532:10 FB BPL WaitNib1b ;^ $B52F |
|
B532:10 FB BPL WaitNib1b ;^ $B52F |
|
||||||
TestNib1b: ; |
|
TestNib1b: ; |
|
||||||
B534:C9 F4 CMP #$F4 ; $F4 |
|
B534:C9 F4 CMP #$F4 ; $F4 |
|
||||||
B536:D0 F3 BNE TestNib1a ;^ $B52B ---+
|
B536:D0 F3 BNE TestNib1a ;^ $B52B ---+
|
||||||
|
|
||||||
WaitNib1c:
|
WaitNib1c:
|
||||||
B538:BD 8C C0 LDA DRIVE_DATA,X;
|
B538:BD 8C C0 LDA DRIVE_DATA,X;
|
||||||
B53B:10 FB BPL WaitNib2b ;^ $B538
|
B53B:10 FB BPL WaitNib2b ;^ $B538
|
||||||
TestNib1c:
|
TestNib1c:
|
||||||
B53D:C9 CF CMP #$CF ; $CF
|
B53D:C9 CF CMP #$CF ; $CF
|
||||||
B53F:D0 F3 BNE $B534
|
B53F:D0 F3 BNE $B534
|
||||||
|
|
||||||
:
|
:
|
||||||
B541:BD 8C C0 LDA $C08C,X ;+
|
B541:BD 8C C0 LDA $C08C,X ;+
|
||||||
B544:10 FB BPL $B541 ;^
|
B544:10 FB BPL $B541 ;^
|
||||||
B546:2A ROL
|
B546:2A ROL
|
||||||
B547:85 3A STA $3A
|
B547:85 3A STA $3A
|
||||||
B549:BD 8C C0 LDA $C08C,X ;+
|
B549:BD 8C C0 LDA $C08C,X ;+
|
||||||
B54C:10 FB BPL $B549 ;^
|
B54C:10 FB BPL $B549 ;^
|
||||||
B54E:25 3A AND $3A
|
B54E:25 3A AND $3A
|
||||||
B550:91 3C STA ($3C),Y
|
B550:91 3C STA ($3C),Y
|
||||||
B552:C8 INY
|
B552:C8 INY
|
||||||
B553:D0 EC BNE $B541
|
B553:D0 EC BNE $B541
|
||||||
B555:0E FF FF ASL $FFFF ; //e = $C3, //c = $C8, Laser128 = ? TODO: FIXME:
|
B555:0E FF FF ASL $FFFF ; //e = $C3, //c = $C8, Laser128 = ? TODO: FIXME:
|
||||||
B558:BD 8C C0 LDA $C08C,X
|
B558:BD 8C C0 LDA $C08C,X
|
||||||
B55B:10 FB BPL $B558 ;^
|
B55B:10 FB BPL $B558 ;^
|
||||||
B55D:C9 D5 CMP #$D5 ; $ D5
|
B55D:C9 D5 CMP #$D5 ; $ D5
|
||||||
B55F:D0 AF BNE $B510 ;^
|
B55F:D0 AF BNE $B510 ;^
|
||||||
B561:E6 3D INC $3D ; Inc Dest Page
|
B561:E6 3D INC $3D ; Inc Dest Page
|
||||||
B563:C6 3B DEC NumSectors ;
|
B563:C6 3B DEC NumSectors ;
|
||||||
B565:D0 DA BNE $B541 ;^
|
B565:D0 DA BNE $B541 ;^
|
||||||
B567:18 CLC ; PASS nibble check 1
|
B567:18 CLC ; PASS nibble check 1
|
||||||
B568:60 RTS
|
B568:60 RTS
|
||||||
```
|
```
|
||||||
|
|
||||||
This first nibble check reads these disk nibbles on Track $22:
|
This first nibble check reads these disk nibbles on Track $22:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user