; =============================================================================
; Console / kbd / print / bank helpers
; Source: VECTOR 4/8086 - V2_AC_Interleaved_XHE_XHO.bin
; CPU: Z80  |  base: 0000h  |  size: 8192
; Generated linear disassembly with fixed relative branch targets
; =============================================================================

; --- kbd, print, putchar start, bank 0436 ---
03C0  eb                EX DE, HL
03C1  21a909            LD HL, 09A9h
03C4  010900            LD BC, 0009h
03C7  edb0              LDIR
03C9  3add5f            LD A, (5FDDh)
03CC  11d800            LD DE, 00D8h
03CF  b7                OR A
03D0  c8                RET Z
03D1  11d801            LD DE, 01D8h
03D4  c9                RET
03D5  db01              IN A, (01h)  ; KBD STATUS
03D7  e602              AND 02h
03D9  c9                RET
03DA  db00              IN A, (00h)  ; KBD DATA
03DC  c9                RET
03DD  f5                PUSH AF  ; OUT (00),02
03DE  3e02              LD A, 02h
03E0  d300              OUT (00h), A
03E2  f1                POP AF
03E3  c9                RET
03E4  7e                LD A, (HL)  ; PRINT bit7-terminated string HL
03E5  cb7f              BIT 7, A
03E7  cbbf              RES 7, A
03E9  c24304            JP NZ, 0443h
03EC  cd4304            CALL 0443h
03EF  23                INC HL
03F0  18f2              JR 03E4h
03F2  f5                PUSH AF
03F3  3e5b              LD A, 5Bh
03F5  cd4304            CALL 0443h
03F8  f1                POP AF
03F9  cd0604            CALL 0406h
03FC  3e5d              LD A, 5Dh
03FE  cd4304            CALL 0443h
0401  3e20              LD A, 20h
0403  c34304            JP 0443h
0406  f5                PUSH AF  ; PRINT hex byte A
0407  1f                RRA
0408  1f                RRA
0409  1f                RRA
040A  1f                RRA
040B  cd1304            CALL 0413h
040E  f1                POP AF
040F  cd1304            CALL 0413h
0412  c9                RET
0413  e60f              AND 0Fh
0415  c630              ADD A, 30h
0417  fe3a              CP 3Ah
0419  3802              JR C, 041Dh
041B  c607              ADD A, 07h
041D  c34304            JP 0443h
0420  7b                LD A, E  ; bank/page helper for bulk load
0421  e607              AND 07h
0423  0603              LD B, 03h
0425  b7                OR A
0426  cb1a              RR D
0428  cb1b              RR E
042A  10f9              DJNZ 0425h
042C  53                LD D, E
042D  cd3604            CALL 0436h
0430  210070            LD HL, 7000h
0433  84                ADD A, H
0434  67                LD H, A
0435  c9                RET
0436  c5                PUSH BC  ; MAP BANK: OUT (16),~D
0437  0e16              LD C, 16h
0439  0670              LD B, 70h
043B  f5                PUSH AF
043C  7a                LD A, D
043D  2f                CPL
043E  ed79              OUT (C), A
0440  f1                POP AF
0441  c1                POP BC
0442  c9                RET
0443  f5                PUSH AF  ; PUTCHAR A
0444  c5                PUSH BC
0445  d5                PUSH DE
0446  e5                PUSH HL
0447  e67f              AND 7Fh
0449  4f                LD C, A
044A  cdfa04            CALL 04FAh
044D  3ad35f            LD A, (5FD3h)

; --- Console clear 0521 ---
0521  217f5f            LD HL, 5F7Fh  ; CLEAR text RAM ~5800-5F7F
0524  3620              LD (HL), 20h
0526  2b                DEC HL
0527  7c                LD A, H
0528  fe57              CP 57h
052A  20f8              JR NZ, 0524h
052C  23                INC HL
052D  22d45f            LD (5FD4h), HL
0530  af                XOR A
0531  32d35f            LD (5FD3h), A
0534  210000            LD HL, 0000h
0537  22d05f            LD (5FD0h), HL
053A  22d25f            LD (5FD2h), HL
053D  c9                RET
053E  3e02              LD A, 02h

; --- Handoff stub copied to 674C ---
0573  3e01              LD A, 01h  ; STUB: mapper tweak + JP 0000
0575  d302              OUT (02h), A
0577  0600              LD B, 00h
0579  3e00              LD A, 00h
057B  2f                CPL
057C  0e16              LD C, 16h
057E  ed79              OUT (C), A
0580  db0c              IN A, (0Ch)
0582  c30000            JP 0000h

