Guides:Fast 0x1500 ACE: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
Line 487: | Line 487: | ||
F5 push af |
F5 push af |
||
E1 pop hl ; hl = $F500 |
E1 pop hl ; hl = $F500 |
||
E6 EF and $ |
E6 EF and $EF ; a = $E5 |
||
84 add a, h ; af = $DA10 |
84 add a, h ; af = $DA10 |
||
F5 push af |
F5 push af |
||
Line 591: | Line 591: | ||
<pre> |
<pre> |
||
Box 1: $DB75 |
Box 1: $DB75 |
||
F6 F5 or $F5 ; a = $F5 |
|||
F5 push af |
|||
D6 FF sub $FF ; a = $01 |
|||
E1 pop hl ; hl = $F500 |
|||
EA A1 FB ld ($FBA1), a |
|||
E6 E5 and $E5 ; a = $E5 |
|||
84 add a, h ; af = $DA10 |
|||
F5 push af |
|||
50 ld d, b |
50 ld d, b |
||
Box 2: $DB7E |
Box 2: $DB7E |
||
E1 pop hl ; hl = $DA10 |
|||
FB ei ; Overwritten to $22, ldi (hl), a |
|||
EA A2 FB ld ($FBA2), a |
|||
D0 ret nc ; On first pass, ignored. Taken whenever $DB7F is called |
|||
C6 EF add $EF ; a = $21 |
|||
D6 B9 sub $B9 ; a = $21 |
|||
FB ei |
|||
EA 81 FB ld ($FB81), a |
|||
50 ld d, b |
50 ld d, b |
||
Box 3: $DB87 |
Box 3: $DB87 |
||
D6 FF sub $FF ; a = $22 |
|||
EA 9E FB ld ($FB9E), a |
|||
EA 7F FB ld ($FB7F), a |
|||
D6 C8 sub $C8 ; a = $59 |
|||
D6 F4 sub $F4 ; a = $2E |
|||
EA 9F FB ld ($FB9F), a |
|||
85 add a, l ; a = $3E, reset carry flag |
|||
50 ld d, b |
50 ld d, b |
||
Box 4: $DB90 |
Box 4: $DB90 |
||
D4 7F FB call nc, $FB7F |
|||
E6 84 and $84 ; a = $04 |
|||
EA A5 FB ld ($FBA5), a |
|||
D4 7F FB call nc, $FB7F |
|||
FB ei |
|||
50 ld d, b |
50 ld d, b |
||
Box 5: $DB99 |
Box 5: $DB99 |
||
D6 D5 sub $D5 ; a = $2F |
|||
EA A6 FB ld ($FBA6), a |
|||
EA 88 FB ld ($FB88), a |
|||
F6 FF or $FF |
|||
D6 FF sub $FF ; a = $30 |
|||
21 59 F8 ld hl, wTMsHMs ; $59 gets overwritten to $D8 to prevent a crash upon viewing the newly written box name |
|||
FB ei |
|||
01 |
|||
50 ld d, b |
|||
Box 6: $DBA2 |
Box 6: $DBA2 |
||
EA 89 FB ld ($FB89), a |
|||
D6 FE sub $FE ; a = $32 |
|||
CD 2F 30 call byteFill |
|||
EA 85 FB ld ($FB85), a |
|||
AF xor a ; a = $00 |
|||
F6 E2 or $E2 ; a = $E2 |
|||
50 ld d, b |
50 ld d, b |
||
Box 7: $DBAB |
Box 7: $DBAB |
||
C6 91 add $91 ; a = $C3, reset carry flag |
|||
D4 7F FB call nc, $FB7F |
|||
F5 push af |
|||
EA 87 FB ld ($FB87), a |
|||
E1 pop hl |
|||
D6 9C sub $9C ; a = $3E |
|||
CD C8 FB call .write |
|||
50 ld d, b |
50 ld d, b |
||
Box 8: $DBB4 |
Box 8: $DBB4 |
||
AF xor a ; a = $00 |
|||
EA 86 FB ld ($FB86), a |
|||
F5 push af |
|||
C6 BF add $BF ; a = $C3 |
|||
D6 A7 sub $A7 ; a = $59 |
|||
BF cp a |
|||
A7 and a ; Reset carry flag |
|||
50 ld d, b |
50 ld d, b |
||
Box 9: $DBBD |
Box 9: $DBBD |
||
D4 7F FB call nc, $FB7F |
|||
EA 82 FB ld ($FB82), a |
|||
C6 96 add $96 ; a = $59 |
|||
D6 81 sub $81 ; a = $D8 |
|||
CD C8 FB call .write |
|||
50 ld d, b |
50 ld d, b |
||
Box 10: $DBC6 |
Box 10: $DBC6 |
||
A7 and a ; Reset carry flag |
|||
D4 7F FB call nc, $FB7F |
|||
22 ldi (hl), a ; .write |
|||
EA 83 FB ld ($FB83), a |
|||
C9 ret |
|||
F1 pop af ; a = $00 |
|||
50 ld d, b |
|||
Box 11: $DBCF |
|||
D6 FF sub $FF ; a = $01 |
|||
EA 84 FB ld ($FB84), a |
|||
E1 pop hl ; first of two pops to prevent side effects of 0x1500 ACE |
|||
F6 FF or $FF ; a = $FF |
|||
50 ld d, b |
|||
Box 12: $DBD8 |
|||
D4 81 FB call nc, $FB81 ; $FB81 was rewritten to 21 59 D8 01 32 00 C3 2F 30 |
|||
EA 82 FB ld ($FB82), a ; Replace $59 by $FF to prevent possible crash when viewing $59 as text |
|||
E1 pop hl ; second of two pops to prevent side effects of 0x1500 ACE |
|||
D6 50 sub $50 ; a = $AF |
|||
Box 13: $DBE1 |
|||
D6 E1 sub $E1 ; a = $CE |
|||
EA 93 F8 ld (wItems), a ; Replace first item in item pocket with TM15 |
|||
A7 and a ; Reset carry flag |
|||
D0 ret nc |
|||
FB ei |
|||
50 ld d, b |
|||
Box 14: displayed as screen tiles at $C4BE |
|||
AF xor a ; a = $00 |
|||
F6 FB or $FB ; a = $FB |
|||
F5 push af |
|||
E1 pop hl ; h = $FB |
|||
D6 86 sub $86 ; a = $75 |
|||
F7 rst30h ; hl = $FB75, de = $C4C5, jump to hl |
|||
Bootstrap: $DA10 |
Bootstrap: $DA10 |
||
Line 664: | Line 698: | ||
<pre> |
<pre> |
||
Box 1: $DB75 |
Box 1: $DB75 |
||
F6 F5 or $F5 ; a = $F5 |
|||
F5 push af |
|||
D6 FF sub $FF ; a = $01 |
|||
E1 pop hl ; hl = $F500 |
|||
EA A1 FB ld ($FBA1), a |
|||
E6 E5 and $E5 ; a = $E5 |
|||
84 add a, h ; af = $DA10 |
|||
F5 push af |
|||
50 ld d, b |
50 ld d, b |
||
Box 2: $DB7E |
Box 2: $DB7E |
||
E1 pop hl ; hl = $DA10 |
|||
FB ei ; Overwritten to $22, ldi (hl), a |
|||
EA A2 FB ld ($FBA2), a |
|||
D0 ret nc ; On first pass, ignored. Taken whenever $DB7F is called |
|||
C6 EF add $EF ; a = $21 |
|||
D6 B9 sub $B9 ; a = $21 |
|||
FB ei |
|||
EA 81 FB ld ($FB81), a |
|||
50 ld d, b |
50 ld d, b |
||
Box 3: $DB87 |
Box 3: $DB87 |
||
D6 FF sub $FF ; a = $22 |
|||
EA 9E FB ld ($FB9E), a |
|||
EA 7F FB ld ($FB7F), a |
|||
D6 C8 sub $C8 ; a = $59 |
|||
D6 F4 sub $F4 ; a = $2E |
|||
EA 9F FB ld ($FB9F), a |
|||
85 add a, l ; a = $3E, reset carry flag |
|||
50 ld d, b |
50 ld d, b |
||
Box 4: $DB90 |
Box 4: $DB90 |
||
D4 7F FB call nc, $FB7F |
|||
E6 84 and $84 ; a = $04 |
|||
EA A5 FB ld ($FBA5), a |
|||
D4 7F FB call nc, $FB7F |
|||
FB ei |
|||
50 ld d, b |
50 ld d, b |
||
Box 5: $DB99 |
Box 5: $DB99 |
||
D6 D4 sub $D4 ; a = $30 |
|||
EA A6 FB ld ($FBA6), a |
|||
EA 89 FB ld ($FB89), a |
|||
F6 FF or $FF |
|||
C6 FB add $FB ; a = $2B |
|||
21 59 F8 ld hl, wTMsHMs ; $59 gets overwritten to $D8 to prevent a crash upon viewing the newly written box name |
|||
FB ei |
|||
01 |
|||
50 ld d, b |
|||
Box 6: $DBA2 |
Box 6: $DBA2 |
||
EA 88 FB ld ($FB88), a |
|||
D6 F9 sub $F9 ; a = $32 |
|||
CD 2B 30 call byteFill |
|||
EA 85 FB ld ($FB85), a |
|||
AF xor a ; a = $00 |
|||
F6 E2 or $E2 ; a = $E2 |
|||
50 ld d, b |
50 ld d, b |
||
Box 7: $DBAB |
Box 7: $DBAB |
||
C6 91 add $91 ; a = $C3, reset carry flag |
|||
D4 7F FB call nc, $FB7F |
|||
F5 push af |
|||
EA 87 FB ld ($FB87), a |
|||
E1 pop hl |
|||
D6 9C sub $9C ; a = $3E |
|||
CD C8 FB call .write |
|||
50 ld d, b |
50 ld d, b |
||
Box 8: $DBB4 |
Box 8: $DBB4 |
||
AF xor a ; a = $00 |
|||
EA 86 FB ld ($FB86), a |
|||
F5 push af |
|||
C6 BF add $BF ; a = $C3 |
|||
D6 A7 sub $A7 ; a = $59 |
|||
BF cp a |
|||
A7 and a ; Reset carry flag |
|||
50 ld d, b |
50 ld d, b |
||
Box 9: $DBBD |
Box 9: $DBBD |
||
D4 7F FB call nc, $FB7F |
|||
EA 82 FB ld ($FB82), a |
|||
C6 96 add $96 ; a = $59 |
|||
D6 81 sub $81 ; a = $D8 |
|||
CD C8 FB call .write |
|||
50 ld d, b |
50 ld d, b |
||
Box 10: $DBC6 |
Box 10: $DBC6 |
||
A7 and a ; Reset carry flag |
|||
D4 7F FB call nc, $FB7F |
|||
22 ldi (hl), a ; .write |
|||
EA 83 FB ld ($FB83), a |
|||
C9 ret |
|||
F1 pop af ; a = $00 |
|||
50 ld d, b |
|||
Box 11: $DBCF |
|||
D6 FF sub $FF ; a = $01 |
|||
EA 84 FB ld ($FB84), a |
|||
E1 pop hl ; first of two pops to prevent side effects of 0x1500 ACE |
|||
F6 FF or $FF ; a = $FF |
|||
50 ld d, b |
|||
Box 12: $DBD8 |
|||
D4 81 FB call nc, $FB81 ; $FB81 was rewritten to 21 59 D8 01 32 00 C3 2B 30 |
|||
EA 82 FB ld ($FB82), a ; Replace $59 by $FF to prevent possible crash when viewing $59 as text |
|||
E1 pop hl ; second of two pops to prevent side effects of 0x1500 ACE |
|||
D6 50 sub $50 ; a = $AF |
|||
Box 13: $DBE1 |
|||
D6 E1 sub $E1 ; a = $CE |
|||
EA 93 F8 ld (wItems), a ; Replace first item in item pocket with TM15 |
|||
A7 and a ; Reset carry flag |
|||
D0 ret nc |
|||
FB ei |
|||
50 ld d, b |
|||
Box 14: displayed as screen tiles at $C4BE |
|||
AF xor a ; a = $00 |
|||
F6 FB or $FB ; a = $FB |
|||
F5 push af |
|||
E1 pop hl ; h = $FB |
|||
D6 86 sub $86 ; a = $75 |
|||
F7 rst30h ; hl = $FB75, de = $C4C5, jump to hl |
|||
Bootstrap: $DA10 |
Bootstrap: $DA10 |