diff options
author | pikalaxalt <PikalaxALT@gmail.com> | 2016-06-06 08:23:52 -0400 |
---|---|---|
committer | pikalaxalt <PikalaxALT@gmail.com> | 2016-06-06 08:23:52 -0400 |
commit | 0e9d0481b897c6afe7cd7c0ea5c23562379ad8ca (patch) | |
tree | 43666c9c14e9e8eddcaf9591c1bb3d61e420c59f | |
parent | 7ee526b05e7eede42729697f1641dd1fd9829bf0 (diff) |
Printer-related labels
-rwxr-xr-x | engine/menu/main_menu.asm | 2 | ||||
-rw-r--r-- | engine/menu/options.asm | 4 | ||||
-rwxr-xr-x | engine/oak_speech.asm | 4 | ||||
-rw-r--r-- | engine/printer.asm | 856 | ||||
-rwxr-xr-x | engine/printer/serial.asm | 620 | ||||
-rwxr-xr-x | engine/unknown_ea3ea.asm | 10 | ||||
-rw-r--r-- | home.asm | 10 | ||||
-rw-r--r-- | home/serial.asm | 10 | ||||
-rw-r--r-- | hram.asm | 2 | ||||
-rwxr-xr-x | wram.asm | 40 |
10 files changed, 789 insertions, 769 deletions
diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 48346a02..3f1ca0e8 100755 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -128,7 +128,7 @@ InitOptions: ; 5bff (1:5bff) ld a,3 ; medium speed ld [wOptions],a ld a,64 ; audio? - ld [wd498], a + ld [wPrinterSettings], a ret Func_5cc1: ; 5cc1 (1:5cc1) diff --git a/engine/menu/options.asm b/engine/menu/options.asm index 5d3c82cb..4b8eb883 100644 --- a/engine/menu/options.asm +++ b/engine/menu/options.asm @@ -272,7 +272,7 @@ OptionsMenu_GBPrinterBrightness: ; 41e0c (10:5e0c) ld a, d .asm_41e2e ld b, a - ld [wd498], a + ld [wPrinterSettings], a .asm_41e32 ld b, $0 ld hl, GBPrinterOptionStringsPointerTable @@ -305,7 +305,7 @@ DarkestPrintText: ; 41e72 (10:5e72) db "DARKEST @" Func_41e7b: ; 41e7b (10:5e7b) - ld a, [wd498] + ld a, [wPrinterSettings] and a jr z, .asm_41e93 cp $20 diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm index 5cbfbee1..6b43574a 100755 --- a/engine/oak_speech.asm +++ b/engine/oak_speech.asm @@ -5,7 +5,7 @@ SetDefaultNames: ; 5e27 (1:5e27) push af ld a, [wd732] push af - ld a, [wd498] + ld a, [wPrinterSettings] push af ld hl, wPlayerName ld bc, wBoxDataEnd - wPlayerName @@ -20,7 +20,7 @@ SetDefaultNames: ; 5e27 (1:5e27) ld [wd496], a ld [wd497], a pop af - ld [wd498], a + ld [wPrinterSettings], a pop af ld [wd732], a pop af diff --git a/engine/printer.asm b/engine/printer.asm index 51a5c9ed..aa5c6ced 100644 --- a/engine/printer.asm +++ b/engine/printer.asm @@ -1,614 +1,4 @@ -Func_e8783: ; e8783 (3a:4783) - ld a, 9 -Func_e8785: - push af - ld hl, wOverworldMap - lb bc, 4, 13 - xor a - call Func_e8a2e - xor a - ld [rSB], a - ld [rSC], a - ld [wUnknownSerialFlag_d49b], a - ld hl, wUnknownSerialFlag_d49a - set 0, [hl] - ld a, [wd498] - ld [wcae3], a - pop af - ld [wcaf4], a - ret - -; e87a8 -Func_e87a8: ; e87a8 (3a:47a8) - ld a, [wOverworldMap] - ld e, a - ld d, 0 - ld hl, Jumptable_e87b7 - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_e87b7: - dw Func_e87fd - dw Func_e88c9 - dw Func_e88a6 - dw Func_e881f - dw Func_e8906 - dw Func_e88b4 - dw Func_e884b - dw Func_e8906 - dw Func_e88a6 - dw Func_e8864 - dw Func_e8906 - dw Func_e88a6 - dw Func_e8927 - dw Func_e87e9 - dw Func_e87f3 - dw Func_e88a6 - dw Func_e8889 - dw Func_e87f7 - dw Func_e8936 - dw Func_e8939 - -Func_e87df: - ld hl, wOverworldMap - inc [hl] - ret - -Func_e87e4: - ld hl, wOverworldMap - dec [hl] - ret - -Func_e87e9: - xor a - ld [wc971], a - ld hl, wOverworldMap - set 7, [hl] - ret - -Func_e87f3: - call Func_e87df - ret - -Func_e87f7: - ld a, $01 - ld [wOverworldMap], a - ret - -Func_e87fd: - call Func_e8981 - ld hl, Data_e8a3a - call Func_e8968 - xor a - ld [wc976], a - ld [wc977], a - ld a, [wcaf4] - ld [wc6e9], a - call Func_e87df - call Func_e8949 - ld a, $01 - ld [wPrinterStatusIndicator], a - ret - -Func_e881f: - call Func_e8981 - ld hl, wc6e9 - ld a, [hl] - and a - jr z, Func_e884b - ld hl, Data_e8a46 - call Func_e8968 - call Func_e89e6 - ld a, $80 - ld [wc976], a - ld a, $02 - ld [wc977], a - call Func_e899f - call Func_e87df - call Func_e8949 - ld a, $02 - ld [wPrinterStatusIndicator], a - ret - -Func_e884b: - ld a, $06 - ld [wOverworldMap], a - ld hl, Data_e8a4c - call Func_e8968 - xor a - ld [wc976], a - ld [wc977], a - call Func_e87df - call Func_e8949 - ret - -Func_e8864: - call Func_e8981 - ld hl, Data_e8a40 - call Func_e8968 - call Func_e89cf - ld a, $04 - ld [wc976], a - ld a, $00 - ld [wc977], a - call Func_e899f - call Func_e87df - call Func_e8949 - ld a, $03 - ld [wPrinterStatusIndicator], a - ret - -Func_e8889: - call Func_e8981 - ld hl, Data_e8a3a - call Func_e8968 - xor a - ld [wc976], a - ld [wc977], a - ld a, [wcaf4] - ld [wc6e9], a - call Func_e87df - call Func_e8949 - ret - -Func_e88a6: - ld hl, wc973 - inc [hl] - ld a, [hl] - cp a, $06 - ret c - xor a - ld [hl], a - call Func_e87df - ret - -Func_e88b4: - ld hl, wc973 - inc [hl] - ld a, [hl] - cp a, $06 - ret c - xor a - ld [hl], a - ld hl, wc6e9 - dec [hl] - call Func_e87e4 - call Func_e87e4 - ret - -Func_e88c9: - ld a, [wUnknownSerialFlag_d49b] - and a - ret nz - ld a, [wc970] - cp a, $ff - jr nz, .asm_e88dc - ld a, [wc971] - cp a, $ff - jr z, .asm_e88f8 -.asm_e88dc - ld a, [wc970] - cp a, $81 - jr nz, .asm_e88f8 - ld a, [wc971] - cp a, $00 - jr nz, .asm_e88f8 - ld hl, wUnknownSerialFlag_d49a - set 1, [hl] - ld a, $05 - ld [wc972], a - call Func_e87df - ret - -.asm_e88f8 - ld a, $ff - ld [wc970], a - ld [wc971], a - ld a, $0e - ld [wOverworldMap], a - ret - -Func_e8906: - ld a, [wUnknownSerialFlag_d49b] - and a - ret nz - ld a, [wc971] - and a, $f0 - jr nz, .asm_e8921 - ld a, [wc971] - and a, $01 - jr nz, .asm_e891d - call Func_e87df - ret - -.asm_e891d - call Func_e87e4 - ret - -.asm_e8921 - ld a, $12 - ld [wOverworldMap], a - ret - -Func_e8927: - ld a, [wUnknownSerialFlag_d49b] - and a - ret nz - ld a, [wc971] - and a, $f3 - ret nz - call Func_e87df - ret - -Func_e8936: - call Func_e87df -Func_e8939: - ld a, [wUnknownSerialFlag_d49b] - and a - ret nz - ld a, [wc971] - and a, $f0 - ret nz - xor a - ld [wOverworldMap], a - ret - -Func_e8949: -.asm_e8949 - ld a, [wUnknownSerialFlag_d49b] - and a - jr nz, .asm_e8949 - xor a - ld [wc974], a - ld [wc975], a - ld a, $01 - ld [wUnknownSerialFlag_d49b], a - ld a, $88 - ld [rSB], a - ld a, $01 - ld [rSC], a - ld a, $81 - ld [rSC], a - ret - -Func_e8968: - ld a, [hli] - ld [wc6ea], a - ld a, [hli] - ld [wc6eb], a - ld a, [hli] - ld [wc6ec], a - ld a, [hli] - ld [wc6ed], a - ld a, [hli] - ld [wc6ee], a - ld a, [hl] - ld [wc6ef], a - ret - -Func_e8981: - xor a - ld hl, wc6ea - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a - ld hl, wc6ee - ld [hli], a - ld [hl], a - xor a - ld [wc976], a - ld [wc977], a - ld hl, wc6f0 - ld bc, $0280 - call Func_e8a2e - ret - -Func_e899f: - ld hl, $0000 - ld bc, $0004 - ld de, wc6ea - call Func_e89c2 - ld a, [wc976] - ld c, a - ld a, [wc977] - ld b, a - ld de, wc6f0 - call Func_e89c2 - ld a, l - ld [wc6ee], a - ld a, h - ld [wc6ef], a - ret - -Func_e89c2: -.asm_e89c2 - ld a, [de] - inc de - add l - jr nc, .asm_e89c8 - inc h -.asm_e89c8 - ld l, a - dec bc - ld a, c - or b - jr nz, .asm_e89c2 - ret - -Func_e89cf: - ld a, $01 - ld [wc6f0], a - ld a, [wcae2] - ld [wc6f1], a - ld a, $e4 - ld [wc6f2], a - ld a, [wcae3] - ld [wc6f3], a - ret - -Func_e89e6: - ld a, [wc6e9] - ld b, a - ld a, [wcaf4] - sub b - ld hl, wPrinterTileBuffer - ld de, $0028 -.asm_e89f4 - and a - jr z, .asm_e89fb - add hl, de - dec a - jr .asm_e89f4 - -.asm_e89fb - ld e, l - ld d, h - ld hl, wc6f0 - ld c, $28 -.asm_e8a02 - ld a, [de] - inc de - push bc - push de - push hl - swap a - ld d, a - and a, $f0 - ld e, a - ld a, d - and a, $0f - ld d, a - and a, $08 - ld a, d - jr nz, .asm_e8a1a - or a, $90 - jr .asm_e8a1c - -.asm_e8a1a - or a, $80 -.asm_e8a1c - ld d, a - ld bc, $3a01 - call CopyVideoData - pop hl - ld de, $0010 - add hl, de - pop de - pop bc - dec c - jr nz, .asm_e8a02 - ret - -Func_e8a2e: ; e8a2e (3a:4a2e) - push de - ld e, a -.asm_e8a30 - ld [hl], e - inc hl - dec bc - ld a, c - or b - jr nz, .asm_e8a30 - ld a, e - pop de - ret - -Data_e8a3a: - db $01, $00, $00, $00, $01, $00 -Data_e8a40: - db $02, $00, $04, $00, $00, $00 -Data_e8a46: - db $04, $00, $80, $02, $00, $00 -Data_e8a4c: - db $04, $00, $00, $00, $04, $00 -Data_e8a52: - db $08, $00, $00, $00, $08, $00 -Data_e8a58: - db $0f, $00, $00, $00, $0f, $00 - -Func_e8a5e: ; e8a5e (3a:4a5e) - ld a, [wUnknownSerialFlag_d49b] - ld e, a - ld d, 0 - ld hl, Jumptable_e8a6d - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_e8a6d: - dw Func_e8ab2 - dw Func_e8ab3 - dw Func_e8abc - dw Func_e8ac6 - dw Func_e8ad0 - dw Func_e8ada - dw Func_e8ae4 - dw Func_e8b0f - dw Func_e8b19 - dw Func_e8b23 - dw Func_e8b2c - dw Func_e8b3a - dw Func_e8ab3 - dw Func_e8b44 - dw Func_e8b4d - dw Func_e8b4d - dw Func_e8b4d - dw Func_e8b44 - dw Func_e8b4d - dw Func_e8b23 - dw Func_e8b2c - dw Func_e8b6a - dw Func_e8ab3 - dw Func_e8b56 - dw Func_e8b4d - dw Func_e8b4d - dw Func_e8b4d - dw Func_e8b56 - dw Func_e8b4d - dw Func_e8b23 - dw Func_e8b2c - dw Func_e8b3a - -Func_e8aad: - ld hl, wUnknownSerialFlag_d49b - inc [hl] - ret - -Func_e8ab2: - ret - -Func_e8ab3: - ld a, $33 - call Func_e8b5f - call Func_e8aad - ret - -Func_e8abc: - ld a, [wc6ea] - call Func_e8b5f - call Func_e8aad - ret - -Func_e8ac6: - ld a, [wc6eb] - call Func_e8b5f - call Func_e8aad - ret - -Func_e8ad0: - ld a, [wc6ec] - call Func_e8b5f - call Func_e8aad - ret - -Func_e8ada: - ld a, [wc6ed] - call Func_e8b5f - call Func_e8aad - ret - -Func_e8ae4: - ld hl, wc976 - ld e, [hl] - inc hl - ld d, [hl] - ld a, e - or d - jr z, .asm_e8b0c - dec de - ld [hl], d - dec hl - ld [hl], e - ld a, [wc974] - ld e, a - ld a, [wc975] - ld d, a - ld hl, wc6f0 - add hl, de - inc de - ld a, e - ld [wc974], a - ld a, d - ld [wc975], a - ld a, [hl] - call Func_e8b5f - ret - -.asm_e8b0c - call Func_e8aad -Func_e8b0f: - ld a, [wc6ee] - call Func_e8b5f - call Func_e8aad - ret - -Func_e8b19: - ld a, [wc6ef] - call Func_e8b5f - call Func_e8aad - ret - -Func_e8b23: - ld a, $00 - call Func_e8b5f - call Func_e8aad - ret - -Func_e8b2c: - ld a, [rSB] - ld [wc970], a - ld a, $00 - call Func_e8b5f - call Func_e8aad - ret - -Func_e8b3a: - ld a, [rSB] - ld [wc971], a - xor a - ld [wUnknownSerialFlag_d49b], a - ret - -Func_e8b44: - ld a, $0f - call Func_e8b5f - call Func_e8aad - ret - -Func_e8b4d: - ld a, $00 - call Func_e8b5f - call Func_e8aad - ret - -Func_e8b56: - ld a, $08 - call Func_e8b5f - call Func_e8aad - ret - -Func_e8b5f: - ld [rSB], a - ld a, $01 - ld [rSC], a - ld a, $81 - ld [rSC], a - ret - -Func_e8b6a: - ld a, [rSB] - ld [wc971], a - xor a - ld [wUnknownSerialFlag_d49b], a - ret +INCLUDE "engine/printer/serial.asm" Func_e8b74: ; e8b74 (3a:4b74) ld a, [wUpdateSpritesEnabled] @@ -616,12 +6,12 @@ Func_e8b74: ; e8b74 (3a:4b74) xor a ld [wUpdateSpritesEnabled], a ld [$ffdb], a - call Func_e8f24 + call Printer_PlayPrinterMusic ld a, [rIE] push af xor a ld [rIF], a - ld a, $09 + ld a, $9 ld [rIE], a xor a ld [$ffba], a @@ -637,11 +27,11 @@ Func_e8b74: ; e8b74 (3a:4b74) ld a, $13 .asm_e8ba0 ld [wcae2], a - call Func_e8efc + call Printer_CopyTileMapToPrinterTileBuffer call ClearScreen callab Func_401c2 callab Func_4027c - ld a, $01 + ld a, $1 ld [$ffba], a call Func_e8c0c jr c, .asm_e8bf4 @@ -649,44 +39,44 @@ Func_e8b74: ; e8b74 (3a:4b74) and a jr z, .asm_e8bf4 xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a - ld c, $0c + ld [wPrinterConnectionOpen], a + ld [wPrinterOpcode], a + ld c, $c call DelayFrames call SaveScreenTilesToBuffer1 xor a ld [$ffba], a call Func_e8c50 - ld a, $07 + ld a, $7 call Func_e8785 - ld a, $03 + ld a, $3 ld [wcae2], a - call Func_e8efc + call Printer_CopyTileMapToPrinterTileBuffer call LoadScreenTilesFromBuffer1 - ld a, $01 + ld a, $1 ld [$ffba], a call Func_e8c0c .asm_e8bf4 xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a + ld [wPrinterConnectionOpen], a + ld [wPrinterOpcode], a xor a ld [rIF], a pop af ld [rIE], a call Func_0f3d - call Func_e8f3b + call Printer_PlayMapMusic pop af ld [wUpdateSpritesEnabled], a ret Func_e8c0c: - call Func_e8f16 + call Printer_ResetJoypadHRAM .asm_e8c0f call JoypadLowSensitivity - call Func_e8eca + call Printer_CheckPressingB jr c, .asm_e8c2e - ld a, [wc6e8] + ld a, [wPrinterReceiveJumptableIndex] bit 7, a jr nz, .asm_e8c2c call Func_e87a8 @@ -709,16 +99,16 @@ Func_e8c30: ld [wcaf5], a ld a, h ld [wcaf6], a - ld a, $00 + ld a, $0 rla ; copy carry flag state to bit 0 ld [wcaf9], a and a jr z, .asm_e8c4d - ld a, $05 + ld a, $5 jr .asm_e8c4f .asm_e8c4d - ld a, $09 + ld a, $9 .asm_e8c4f ret @@ -730,24 +120,24 @@ Func_e8c50: Func_e8c5c: xor a ld [$ffdb], a - call Func_e8f24 + call Printer_PlayPrinterMusic call Func_e910a ld a, [rIE] push af xor a ld [rIF], a - ld a, $09 + ld a, $9 ld [rIE], a call Func_e8783 ld a, $13 ld [wcae2], a - call Func_e8efc - call Func_e8f16 + call Printer_CopyTileMapToPrinterTileBuffer + call Printer_ResetJoypadHRAM .asm_e8c7d call JoypadLowSensitivity - call Func_e8eca + call Printer_CheckPressingB jr c, .asm_e8c9a - ld a, [wc6e8] + ld a, [wPrinterReceiveJumptableIndex] bit 7, a jr nz, .asm_e8c9a call Func_e87a8 @@ -758,69 +148,69 @@ Func_e8c5c: .asm_e8c9a xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a - call Func_e8f09 + ld [wPrinterConnectionOpen], a + ld [wPrinterOpcode], a + call Printer_CopyTileMapFromPrinterTileBuffer xor a ld [rIF], a pop af ld [rIE], a call Func_0f3d - call Func_e8f3b + call Printer_PlayMapMusic ret Func_e8cb1: xor a ld [$ffdb], a - call Func_e8f24 + call Printer_PlayPrinterMusic call _DisplayDiploma ld a, [rIE] push af xor a ld [rIF], a - ld a, $09 + ld a, $9 ld [rIE], a call Func_e8783 ld a, $10 ld [wcae2], a - call Func_e8efc + call Printer_CopyTileMapToPrinterTileBuffer call Func_e8d11 jr c, .asm_e8cfa xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a - ld c, $0c + ld [wPrinterConnectionOpen], a + ld [wPrinterOpcode], a + ld c, $c call DelayFrames call SaveScreenTilesToBuffer1 xor a ld [$ffba], a call Func_e9ad3 call Func_e8783 - ld a, $03 + ld a, $3 ld [wcae2], a - call Func_e8efc + call Printer_CopyTileMapToPrinterTileBuffer call LoadScreenTilesFromBuffer1 call Func_e8d11 .asm_e8cfa xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a - call Func_e8f09 + ld [wPrinterConnectionOpen], a + ld [wPrinterOpcode], a + call Printer_CopyTileMapFromPrinterTileBuffer xor a ld [rIF], a pop af ld [rIE], a call Func_0f3d - call Func_e8f3b + call Printer_PlayMapMusic ret Func_e8d11: - call Func_e8f16 + call Printer_ResetJoypadHRAM .asm_e8d14 call JoypadLowSensitivity - call Func_e8eca + call Printer_CheckPressingB jr c, .asm_e8d33 - ld a, [wc6e8] + ld a, [wPrinterReceiveJumptableIndex] bit 7, a jr nz, .asm_e8d31 call Func_e87a8 @@ -847,13 +237,13 @@ Func_e8d35:: ; e8d35 (3a:4e79) push af xor a ld [wUpdateSpritesEnabled], a - ld [hItemCounter], a - call Func_e8f24 + ld [hCanceledPrinting], a + call Printer_PlayPrinterMusic ld a, [rIE] push af xor a ld [rIF], a - ld a, $09 + ld a, $9 ld [rIE], a call SaveScreenTilesToBuffer1 xor a @@ -862,64 +252,64 @@ Func_e8d35:: ; e8d35 (3a:4e79) call Func_e8783 ld a, $10 ld [wcae2], a - call Func_e8efc + call Printer_CopyTileMapToPrinterTileBuffer call LoadScreenTilesFromBuffer1 call Func_e8dfb jr c, .asm_e8ddc xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a + ld [wPrinterConnectionOpen], a + ld [wPrinterOpcode], a ld c, 12 call DelayFrames xor a ld [H_AUTOBGTRANSFERENABLED], a call Func_e98ec call Func_e8783 - ld a, $00 + ld a, $0 ld [wcae2], a - call Func_e8efc + call Printer_CopyTileMapToPrinterTileBuffer call LoadScreenTilesFromBuffer1 call Func_e8dfb jr c, .asm_e8ddc xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a + ld [wPrinterConnectionOpen], a + ld [wPrinterOpcode], a ld c, 12 call DelayFrames xor a ld [H_AUTOBGTRANSFERENABLED], a call Func_e9907 call Func_e8783 - ld a, $00 + ld a, $0 ld [wcae2], a - call Func_e8efc + call Printer_CopyTileMapToPrinterTileBuffer call LoadScreenTilesFromBuffer1 call Func_e8dfb jr c, .asm_e8ddc xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a + ld [wPrinterConnectionOpen], a + ld [wPrinterOpcode], a ld c, 12 call DelayFrames xor a ld [H_AUTOBGTRANSFERENABLED], a call Func_e9922 call Func_e8783 - ld a, $03 + ld a, $3 ld [wcae2], a - call Func_e8efc + call Printer_CopyTileMapToPrinterTileBuffer call LoadScreenTilesFromBuffer1 call Func_e8dfb .asm_e8ddc xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a + ld [wPrinterConnectionOpen], a + ld [wPrinterOpcode], a xor a ld [rIF], a pop af ld [rIE], a call Func_0f3d - call Func_e8f3b + call Printer_PlayMapMusic pop af ld [wUpdateSpritesEnabled], a ret @@ -930,12 +320,12 @@ Func_e8df4: ; e8df4 ret Func_e8dfb: ; e8dfb - call Func_e8f16 + call Printer_ResetJoypadHRAM .asm_e8dfe call JoypadLowSensitivity - call Func_e8eca + call Printer_CheckPressingB jr c, .asm_e8e1d - ld a, [wOverworldMap] + ld a, [wPrinterReceiveJumptableIndex] bit 7, a jr nz, .asm_e8e1b call Func_e87a8 @@ -958,25 +348,25 @@ String_e8e1f: ; e8e1f Func_e8e24: ; e8e24 xor a - ld [hItemCounter], a - call Func_e8f24 + ld [hCanceledPrinting], a + call Printer_PlayPrinterMusic call Func_ea3ea ld a, [rIE] push af xor a ld [rIF], a - ld a, $09 + ld a, $9 ld [rIE], a call Func_e8783 ld a, $13 ld [wcae2], a - call Func_e8efc - call Func_e8f16 + call Printer_CopyTileMapToPrinterTileBuffer + call Printer_ResetJoypadHRAM .asm_e8e45 call JoypadLowSensitivity - call Func_e8eca + call Printer_CheckPressingB jr c, .asm_e8e62 - ld a, [wOverworldMap] + ld a, [wPrinterReceiveJumptableIndex] bit 7, a jr nz, .asm_e8e62 call Func_e87a8 @@ -987,15 +377,15 @@ Func_e8e24: ; e8e24 .asm_e8e62 xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a - call Func_e8f09 + ld [wPrinterConnectionOpen], a + ld [wPrinterOpcode], a + call Printer_CopyTileMapFromPrinterTileBuffer xor a ld [rIF], a pop af ld [rIE], a call Func_0f3d - call Func_e8f3b + call Printer_PlayMapMusic ret Func_e8e79: ; e8e79 (3a:4e79) @@ -1008,17 +398,17 @@ Func_e8e79: ; e8e79 (3a:4e79) push af xor a ld [rIF], a - ld a, $09 + ld a, $9 ld [rIE], a call Func_e8783 ld a, $13 ld [wcae2], a ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a - call Func_e8efc + call Printer_CopyTileMapToPrinterTileBuffer call Func_ea573 .asm_e8e9c - ld a, [wOverworldMap] + ld a, [wPrinterReceiveJumptableIndex] bit 7, a jr nz, .asm_e8eae call Func_ea5d1 @@ -1028,10 +418,10 @@ Func_e8e79: ; e8e79 (3a:4e79) .asm_e8eae xor a - ld [wUnknownSerialFlag_d49a], a - ld [wUnknownSerialFlag_d49b], a + ld [wPrinterConnectionOpen], a + ld [wPrinterOpcode], a ld hl, wOAMBuffer + 32 * 4 - ld bc, $0020 + ld bc, 8 * 4 xor a call FillMemory xor a @@ -1044,54 +434,54 @@ Func_e8e79: ; e8e79 (3a:4e79) pop af ret -Func_e8eca: ; e8eca (3a:4eca) +Printer_CheckPressingB: ; e8eca (3a:4eca) ld a, [hJoyHeld] and B_BUTTON - jr nz, .asm_e8ed2 + jr nz, .quit and a ret -.asm_e8ed2 - ld a, [wOverworldMap] - cp $0c - jr nz, .asm_e8ef6 -.asm_e8ed9 - ld a, [wUnknownSerialFlag_d49b] +.quit + ld a, [wPrinterReceiveJumptableIndex] + cp $c + jr nz, .already_done +.wait_current_task + ld a, [wPrinterOpcode] and a - jr nz, .asm_e8ed9 + jr nz, .wait_current_task ld a, $16 - ld [wUnknownSerialFlag_d49b], a + ld [wPrinterOpcode], a ld a, $88 ld [rSB], a - ld a, $01 + ld a, $1 ld [rSC], a ld a, $81 ld [rSC], a -.asm_e8ef0 - ld a, [wUnknownSerialFlag_d49b] +.wait_send_cancel + ld a, [wPrinterOpcode] and a - jr nz, .asm_e8ef0 -.asm_e8ef6 - ld a, $01 - ld [hItemCounter], a + jr nz, .wait_send_cancel +.already_done + ld a, $1 + ld [hCanceledPrinting], a scf ret -Func_e8efc: ; e8efc (3a:4efc) +Printer_CopyTileMapToPrinterTileBuffer: ; e8efc (3a:4efc) coord hl, 0, 0 coord de, 0, 0, wPrinterTileBuffer ld bc, SCREEN_HEIGHT * SCREEN_WIDTH call CopyData ret -Func_e8f09: ; e8f09 (3a:4f09) +Printer_CopyTileMapFromPrinterTileBuffer: ; e8f09 (3a:4f09) coord hl, 0, 0, wPrinterTileBuffer coord de, 0, 0 ld bc, SCREEN_HEIGHT * SCREEN_WIDTH call CopyData ret -Func_e8f16: ; e8f16 (3a:4f16) +Printer_ResetJoypadHRAM: ; e8f16 (3a:4f16) xor a ld [hJoyLast], a ld [hJoyReleased], a @@ -1101,8 +491,8 @@ Func_e8f16: ; e8f16 (3a:4f16) ld [hJoy6], a ret -Func_e8f24: ; e8f24 (3a:4f24) - call Func_e8f42 +Printer_PlayPrinterMusic: ; e8f24 (3a:4f24) + call Printer_FadeOutMusicAndWait ld a, [wAudioROMBank] ld [wAudioSavedROMBank], a ld a, BANK(Music_GBPrinter) @@ -1112,19 +502,19 @@ Func_e8f24: ; e8f24 (3a:4f24) call PlaySound ret -Func_e8f3b: ; e8f3b (3a:4f3b) - call Func_e8f42 +Printer_PlayMapMusic: ; e8f3b (3a:4f3b) + call Printer_FadeOutMusicAndWait call PlayDefaultMusic ret -Func_e8f42: ; e8f42 (3a:4f42) +Printer_FadeOutMusicAndWait: ; e8f42 (3a:4f42) ld a, $4 ld [wAudioFadeOutControl], a call StopAllMusic -.asm_e8f4a +.wait_music_stop ld a, [wAudioFadeOutControl] and a - jr nz, .asm_e8f4a + jr nz, .wait_music_stop ret GBPrinter_CheckForErrors: ; e8f51 (3a:4f51) @@ -1139,7 +529,7 @@ GBPrinter_CheckForErrors: ; e8f51 (3a:4f51) .check_other_errors ld a, [wc971] - and $e0 + and %11100000 ret z bit 7, a jr nz, .error1 @@ -1176,7 +566,7 @@ GBPrinter_UpdateStatusMessage: pop af ld e, a ld d, $0 - ld hl, Table_e8fca + ld hl, .PrinterStatusMessages add hl, de add hl, de ld e, [hl] @@ -1185,7 +575,7 @@ GBPrinter_UpdateStatusMessage: coord hl, 1, 7 call PlaceString coord hl, 2, 15 - ld de, String_e8fb8 + ld de, .PressBToCancel call PlaceString ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a @@ -1193,10 +583,10 @@ GBPrinter_UpdateStatusMessage: ld [wPrinterStatusIndicator], a ret -String_e8fb8: +.PressBToCancel: db "Press B to Cancel@" -Table_e8fca: +.PrinterStatusMessages: dw .Blank dw .CheckingLink dw .Transmitting @@ -1257,7 +647,7 @@ Func_e910a: call Func_e91b5 coord hl, 19, 0 call Func_e91b5 - ld a, $04 + ld a, $4 coord hl, 0, 0 ld [hl], a coord hl, 0, 17 @@ -1312,9 +702,9 @@ Func_e910a: Func_e91a9: ld c, SCREEN_WIDTH / 2 .asm_e91ab - ld [hl], $00 + ld [hl], $0 inc hl - ld [hl], $01 + ld [hl], $1 inc hl dec c jr nz, .asm_e91ab @@ -1324,9 +714,9 @@ Func_e91b5: ld c, SCREEN_HEIGHT / 2 ld de, SCREEN_WIDTH .asm_e91ba - ld [hl], $02 + ld [hl], $2 add hl, de - ld [hl], $03 + ld [hl], $3 add hl, de dec c jr nz, .asm_e91ba @@ -1427,7 +817,7 @@ Func_e988a: ld [hl], a coord hl, 4, 9 ld de, wBoxSpecies - ld c, $03 + ld c, $3 call Func_e994e ret diff --git a/engine/printer/serial.asm b/engine/printer/serial.asm new file mode 100755 index 00000000..0c9a70ed --- /dev/null +++ b/engine/printer/serial.asm @@ -0,0 +1,620 @@ +Func_e8783: ; e8783 (3a:4783) + ld a, 9 +Func_e8785: + push af + ld hl, wPrinterData + ld bc, wPrinterDataEnd - wPrinterData + xor a + call Printer_FillMemory + xor a + ld [rSB], a + ld [rSC], a + ld [wPrinterOpcode], a + ld hl, wPrinterConnectionOpen + set 0, [hl] + ld a, [wPrinterSettings] + ld [wPrinterSettingsTempCopy], a + pop af + ld [wcaf4], a + ret + +; e87a8 +Func_e87a8: ; e87a8 (3a:47a8) + ld a, [wPrinterReceiveJumptableIndex] + ld e, a + ld d, 0 + ld hl, .Jumptable + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.Jumptable: + dw Printer_InitSerial ; 00 + dw Func_e88c9 ; 01 + dw Func_e88a6 ; 02 + dw Func_e881f ; 03 + dw Func_e8906 ; 04 + dw Func_e88b4 ; 05 + dw Func_e884b ; 06 + dw Func_e8906 ; 07 + dw Func_e88a6 ; 08 + dw Func_e8864 ; 09 + dw Func_e8906 ; 0a + dw Func_e88a6 ; 0b + dw Func_e8927 ; 0c + dw Printer_Quit ; 0d + dw Printer_Next_ ; 0e + dw Func_e88a6 ; 10 + dw Func_e8889 ; 11 + dw Printer_LoopBack ; 12 + dw Func_e8936 ; 13 + dw Func_e8939 ; 14 + +Printer_Next: + ld hl, wPrinterReceiveJumptableIndex + inc [hl] + ret + +Printer_Back: + ld hl, wPrinterReceiveJumptableIndex + dec [hl] + ret + +Printer_Quit: + xor a + ld [wc971], a + ld hl, wPrinterReceiveJumptableIndex + set 7, [hl] + ret + +Printer_Next_: + call Printer_Next + ret + +Printer_LoopBack: + ld a, $1 + ld [wPrinterReceiveJumptableIndex], a + ret + +Printer_InitSerial: + call Func_e8981 + ld hl, PrinterDataPacket1 + call Func_e8968 + xor a + ld [wPrinterDataSize], a + ld [wPrinterDataSize + 1], a + ld a, [wcaf4] + ld [wc6e9], a + call Printer_Next + call Func_e8949 + ld a, $1 + ld [wPrinterStatusIndicator], a + ret + +Func_e881f: + call Func_e8981 + ld hl, wc6e9 + ld a, [hl] + and a + jr z, Func_e884b + ld hl, PrinterDataPacket3 + call Func_e8968 + call Func_e89e6 + ld a, $80 + ld [wPrinterDataSize], a + ld a, $2 + ld [wPrinterDataSize + 1], a + call ComputePrinterChecksum + call Printer_Next + call Func_e8949 + ld a, $2 + ld [wPrinterStatusIndicator], a + ret + +Func_e884b: + ld a, $6 + ld [wPrinterReceiveJumptableIndex], a + ld hl, PrinterDataPacket4 + call Func_e8968 + xor a + ld [wPrinterDataSize], a + ld [wPrinterDataSize + 1], a + call Printer_Next + call Func_e8949 + ret + +Func_e8864: + call Func_e8981 + ld hl, PrinterDataPacket2 + call Func_e8968 + call Func_e89cf + ld a, $4 + ld [wPrinterDataSize], a + ld a, $0 + ld [wPrinterDataSize + 1], a + call ComputePrinterChecksum + call Printer_Next + call Func_e8949 + ld a, $3 + ld [wPrinterStatusIndicator], a + ret + +Func_e8889: + call Func_e8981 + ld hl, PrinterDataPacket1 + call Func_e8968 + xor a + ld [wPrinterDataSize], a + ld [wPrinterDataSize + 1], a + ld a, [wcaf4] + ld [wc6e9], a + call Printer_Next + call Func_e8949 + ret + +Func_e88a6: + ld hl, wc973 + inc [hl] + ld a, [hl] + cp a, $6 + ret c + xor a + ld [hl], a + call Printer_Next + ret + +Func_e88b4: + ld hl, wc973 + inc [hl] + ld a, [hl] + cp a, $6 + ret c + xor a + ld [hl], a + ld hl, wc6e9 + dec [hl] + call Printer_Back + call Printer_Back + ret + +Func_e88c9: + ld a, [wPrinterOpcode] + and a + ret nz + ld a, [wc970] + cp a, $ff + jr nz, .asm_e88dc + ld a, [wc971] + cp a, $ff + jr z, .asm_e88f8 +.asm_e88dc + ld a, [wc970] + cp a, $81 + jr nz, .asm_e88f8 + ld a, [wc971] + cp a, $0 + jr nz, .asm_e88f8 + ld hl, wPrinterConnectionOpen + set 1, [hl] + ld a, $5 + ld [wc972], a + call Printer_Next + ret + +.asm_e88f8 + ld a, $ff + ld [wc970], a + ld [wc971], a + ld a, $e + ld [wPrinterReceiveJumptableIndex], a + ret + +Func_e8906: + ld a, [wPrinterOpcode] + and a + ret nz + ld a, [wc971] + and a, $f0 + jr nz, .asm_e8921 + ld a, [wc971] + and a, $1 + jr nz, .asm_e891d + call Printer_Next + ret + +.asm_e891d + call Printer_Back + ret + +.asm_e8921 + ld a, $12 + ld [wPrinterReceiveJumptableIndex], a + ret + +Func_e8927: + ld a, [wPrinterOpcode] + and a + ret nz + ld a, [wc971] + and a, $f3 + ret nz + call Printer_Next + ret + +Func_e8936: + call Printer_Next +Func_e8939: + ld a, [wPrinterOpcode] + and a + ret nz + ld a, [wc971] + and a, $f0 + ret nz + xor a + ld [wPrinterReceiveJumptableIndex], a + ret + +Func_e8949: +.wait_printer_operation + ld a, [wPrinterOpcode] + and a + jr nz, .wait_printer_operation + xor a + ld [wc974], a + ld [wc975], a + ld a, $1 + ld [wPrinterOpcode], a + ld a, $88 + ld [rSB], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret + +Func_e8968: + ld a, [hli] + ld [wPrinterDataHeader], a + ld a, [hli] + ld [wPrinterDataHeader + 1], a + ld a, [hli] + ld [wPrinterDataHeader + 2], a + ld a, [hli] + ld [wPrinterDataHeader + 3], a + ld a, [hli] + ld [wPrinterChecksum], a + ld a, [hl] + ld [wPrinterChecksum + 1], a + ret + +Func_e8981: + xor a + ld hl, wPrinterDataHeader + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld hl, wPrinterChecksum + ld [hli], a + ld [hl], a + xor a + ld [wPrinterDataSize], a + ld [wPrinterDataSize + 1], a + ld hl, wPrinterSerialReceived + ld bc, $280 + call Printer_FillMemory + ret + +ComputePrinterChecksum: + ld hl, $0 + ld bc, $4 + ld de, wPrinterDataHeader + call .AddToChecksum + ld a, [wPrinterDataSize] + ld c, a + ld a, [wPrinterDataSize + 1] + ld b, a + ld de, wPrinterSerialReceived + call .AddToChecksum + ld a, l + ld [wPrinterChecksum], a + ld a, h + ld [wPrinterChecksum + 1], a + ret + +.AddToChecksum: +.loop + ld a, [de] + inc de + add l + jr nc, .no_carry + inc h +.no_carry + ld l, a + dec bc + ld a, c + or b + jr nz, .loop + ret + +Func_e89cf: + ld a, $1 + ld [wPrinterSerialReceived], a + ld a, [wcae2] + ld [wPrinterStatusReceived], a + ld a, $e4 + ld [wc6f2], a + ld a, [wPrinterSettingsTempCopy] + ld [wc6f3], a + ret + +Func_e89e6: + ld a, [wc6e9] + ld b, a + ld a, [wcaf4] + sub b + ld hl, wPrinterTileBuffer + ld de, $28 +.asm_e89f4 + and a + jr z, .asm_e89fb + add hl, de + dec a + jr .asm_e89f4 + +.asm_e89fb + ld e, l + ld d, h + ld hl, wPrinterSerialReceived + ld c, $28 +.asm_e8a02 + ld a, [de] + inc de + push bc + push de + push hl + swap a + ld d, a + and a, $f0 + ld e, a + ld a, d + and a, $f + ld d, a + and a, $8 + ld a, d + jr nz, .asm_e8a1a + or a, $90 + jr .asm_e8a1c + +.asm_e8a1a + or a, $80 +.asm_e8a1c + ld d, a + ld bc, $3a01 + call CopyVideoData + pop hl + ld de, $10 + add hl, de + pop de + pop bc + dec c + jr nz, .asm_e8a02 + ret + +Printer_FillMemory: ; e8a2e (3a:4a2e) + push de + ld e, a +.loop + ld [hl], e + inc hl + dec bc + ld a, c + or b + jr nz, .loop + ld a, e + pop de + ret + +PrinterDataPacket1: + db 1, 0, $00, 0 + dw 1 +PrinterDataPacket2: + db 2, 0, $04, 0 + dw 0 +PrinterDataPacket3: + db 4, 0, $80, 2 + dw 0 +PrinterDataPacket4: + db 4, 0, $00, 0 + dw 4 +PrinterDataPacket5: ; unused + db 8, 0, $00, 0 + dw 8 +PrinterDataPacket6: ; unused + db 15, 0, $00, 0 + dw 15 + +PrinterSerial_: ; e8a5e (3a:4a5e) + ld a, [wPrinterOpcode] + ld e, a + ld d, 0 + ld hl, .Jumptable + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.Jumptable: + dw .Nop + + dw .SignalTransmissionStart + dw .SendHeaderByte1 + dw .SendHeaderByte2 + dw .SendHeaderByte3 + dw .SendHeaderByte4 + dw .DataByte + dw .SendChecksumLo + dw .SendChecksumHi + dw .SignalTransmissionEnd + dw .Receive1 + dw .Receive2 + + dw .SignalTransmissionStart + dw .Send_0F + dw .Send_00 + dw .Send_00 + dw .Send_00 + dw .Send_0F + dw .Send_00 + dw .SignalTransmissionEnd + dw .Receive1 + dw .Receive2_ + + dw .SignalTransmissionStart + dw .SignalQuit + dw .Send_00 + dw .Send_00 + dw .Send_00 + dw .SignalQuit + dw .Send_00 + dw .SignalTransmissionEnd + dw .Receive1 + dw .Receive2 + +.NextInstruction: + ld hl, wPrinterOpcode + inc [hl] + ret + +.Nop: + ret + +.SignalTransmissionStart: + ld a, $33 + call .SendByte + call .NextInstruction + ret + +.SendHeaderByte1: + ld a, [wPrinterDataHeader] + call .SendByte + call .NextInstruction + ret + +.SendHeaderByte2: + ld a, [wPrinterDataHeader + 1] + call .SendByte + call .NextInstruction + ret + +.SendHeaderByte3: + ld a, [wPrinterDataHeader + 2] + call .SendByte + call .NextInstruction + ret + +.SendHeaderByte4: + ld a, [wPrinterDataHeader + 3] + call .SendByte + call .NextInstruction + ret + +.DataByte: + ld hl, wPrinterDataSize + ld e, [hl] + inc hl + ld d, [hl] + ld a, e + or d + jr z, .sent_last_byte + dec de + ld [hl], d + dec hl + ld [hl], e + ld a, [wc974] + ld e, a + ld a, [wc975] + ld d, a + ld hl, wPrinterSerialReceived + add hl, de + inc de + ld a, e + ld [wc974], a + ld a, d + ld [wc975], a + ld a, [hl] + call .SendByte + ret + +.sent_last_byte + call .NextInstruction +.SendChecksumLo: + ld a, [wPrinterChecksum] + call .SendByte + call .NextInstruction + ret + +.SendChecksumHi: + ld a, [wPrinterChecksum + 1] + call .SendByte + call .NextInstruction + ret + +.SignalTransmissionEnd: + ld a, $0 + call .SendByte + call .NextInstruction + ret + +.Receive1: + ld a, [rSB] + ld [wc970], a + ld a, $0 + call .SendByte + call .NextInstruction + ret + +.Receive2: + ld a, [rSB] + ld [wc971], a + xor a + ld [wPrinterOpcode], a + ret + +.Send_0F: + ld a, $f + call .SendByte + call .NextInstruction + ret + +.Send_00: + ld a, $0 + call .SendByte + call .NextInstruction + ret + +.SignalQuit: + ld a, $8 + call .SendByte + call .NextInstruction + ret + +.SendByte: + ld [rSB], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret + +.Receive2_: + ld a, [rSB] + ld [wc971], a + xor a + ld [wPrinterOpcode], a + ret diff --git a/engine/unknown_ea3ea.asm b/engine/unknown_ea3ea.asm index c00785b4..39f3de7e 100755 --- a/engine/unknown_ea3ea.asm +++ b/engine/unknown_ea3ea.asm @@ -398,7 +398,7 @@ Func_ea6d2: ; ea6d2 (3a:66d2) ld a, [$c971] cp a, $00 jr nz, .asm_ea6fb - ld hl, wUnknownSerialFlag_d49a + ld hl, wPrinterConnectionOpen set 1, [hl] call Func_ea606 ret @@ -441,7 +441,7 @@ Func_ea721: ; ea721 (3a:6721) Func_ea72f: ; ea72f (3a:672f) call Func_ea606 Func_ea732: ; ea732 (3a:6732) - ld a, [wUnknownSerialFlag_d49b] + ld a, [wPrinterOpcode] and a ret nz ld a, [$c971] @@ -452,7 +452,7 @@ Func_ea732: ; ea732 (3a:6732) ret Func_ea742: ; ea742 (3a:6742) - ld a, [wUnknownSerialFlag_d49b] + ld a, [wPrinterOpcode] and a jr nz, .asm_ea74a and a @@ -464,11 +464,11 @@ Func_ea742: ; ea742 (3a:6742) Func_ea74c: ; ea74c (3a:674c) .asm_ea74c - ld a, [wUnknownSerialFlag_d49b] + ld a, [wPrinterOpcode] and a jr nz, .asm_ea74c ld a, $01 - ld [wUnknownSerialFlag_d49b], a + ld [wPrinterOpcode], a xor a ld [$c974], a ld [$c975], a @@ -2120,15 +2120,15 @@ ChooseFlyDestination:: ; 2f9a (0:2f9a) res 4, [hl] jpba LoadTownMap_Fly -Func_2fa7:: ; 2fa7 (0:2fa7) - homecall Func_e8a5e +PrinterSerial:: ; 2fa7 (0:2fa7) + homecall PrinterSerial_ ret SerialFunction:: ; 2fb7 (0:2fb7) - ld a, [wUnknownSerialFlag_d49a] + ld a, [wPrinterConnectionOpen] bit 0, a ret z - ld a, [wUnknownSerialFlag_d49b] + ld a, [wPrinterOpcode] and a ret nz ld hl, wOverworldMap+650 @@ -2139,7 +2139,7 @@ SerialFunction:: ; 2fb7 (0:2fb7) xor a ld [hl], a ld a, $0c - ld [wUnknownSerialFlag_d49b], a + ld [wPrinterOpcode], a ld a, $88 ld [rSB], a ld a, $1 diff --git a/home/serial.asm b/home/serial.asm index c8e64f38..c8c7cbe9 100644 --- a/home/serial.asm +++ b/home/serial.asm @@ -3,9 +3,9 @@ Serial:: ; 1f78 (0:1f78) push bc push de push hl - ld a, [wUnknownSerialFlag_d49a] - bit 0,a - jp nz,Func_2162 + ld a, [wPrinterConnectionOpen] + bit 0, a + jp nz, PrinterSerial__ ld a, [hSerialConnectionStatus] inc a jr z, .connectionNotYetEstablished @@ -314,8 +314,8 @@ Serial_TryEstablishingExternallyClockedConnection:: ; 22fa (0:22fa) ld [rSC], a ret -Func_2162:: ; 2162 (0:2162) - call Func_2fa7 +PrinterSerial__:: ; 2162 (0:2162) + call PrinterSerial pop hl pop de pop bc @@ -271,6 +271,8 @@ H_CURRENTSPRITEOFFSET EQU $FFDA ; multiple of $10 hItemCounter EQU $FFDB +hCanceledPrinting EQU $FFDB + hGymGateIndex EQU $FFDB hGymTrashCanRandNumMask EQU $FFDB @@ -420,13 +420,17 @@ wYellowIntroAnimatedObjectStructPointer:: ; c636 ; c698 ds 80 -wTempPic:: +wTempPic:: ; c6e8 +wPrinterData:: ; c6e8 wOverworldMap:: ; c6e8 ; ds 1300 -wc6e8:: ; c6e8 +wPrinterReceiveJumptableIndex:: ; c6e8 ds 1 wc6e9:: ; c6e9 ds 1 + +; Printer data header +wPrinterDataHeader:: ; c6ea wc6ea:: ; c6ea ds 1 wc6eb:: ; c6eb @@ -435,14 +439,18 @@ wc6ec:: ; c6ec ds 1 wc6ed:: ; c6ed ds 1 -wc6ee:: ; c6ee - ds 1 -wc6ef:: ; c6ef - ds 1 -wc6f0:: ; c6f0 +wPrinterChecksum:: ; c6ee + dw + +wPrinterSerialReceived:: ; c6f0 ds 1 -wc6f1:: ; c6f1 +wPrinterStatusReceived:: ; c6f1 +; bit 7: set if error 1 (battery low) +; bit 6: set if error 4 (too hot or cold) +; bit 5: set if error 3 (paper jammed or empty) +; if this and the previous byte are both $ff: error 2 (connection error) ds 1 + wc6f2:: ; c6f2 ds 1 wc6f3:: ; c6f3 @@ -472,20 +480,20 @@ wc974:: ; c974 ds 1 wc975:: ; c975 ds 1 -wc976:: ; c976 - ds 1 -wc977:: ; c977 - ds 1 +wPrinterDataSize:: ; c976 + dw wPrinterTileBuffer:: ; c978 ds SCREEN_HEIGHT * SCREEN_WIDTH wPrinterStatusIndicator:: ; cae0 ds 2 wcae2:: ; cae2 ds 1 -wcae3:: ; cae3 +wPrinterSettingsTempCopy:: ; cae3 ds 17 wcaf4:: ; caf4 ds 1 +wPrinterDataEnd:: ; caf5 + wcaf5:: ; caf5 ds 1 wcaf6:: ; caf6 @@ -2780,11 +2788,11 @@ wPreventBlackout:: ds 1 ; d492 wd495:: ds 1 wd496:: ds 1 wd497:: ds 1 -wd498:: ds 1 +wPrinterSettings:: ds 1 wUnknownSerialFlag_d499:: ds 1 ; d498 -wUnknownSerialFlag_d49a:: ds 1 ; d499 -wUnknownSerialFlag_d49b:: ds 1 ; d49a +wPrinterConnectionOpen:: ds 1 ; d499 +wPrinterOpcode:: ds 1 ; d49a wd49c:: ds 1 ; d49b ds 19 |