From bfa02adfae0bf7998a2a5e3a80602c5486448789 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Fri, 25 May 2018 00:24:49 +0100 Subject: [PATCH] trs80m1: banking - measure size available Needs more work: for some reason we are getting the RAM sizes wrong still --- Kernel/platform-trs80m1/trs80-bank.s | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/Kernel/platform-trs80m1/trs80-bank.s b/Kernel/platform-trs80m1/trs80-bank.s index 51d60ff2..d7b9749a 100644 --- a/Kernel/platform-trs80m1/trs80-bank.s +++ b/Kernel/platform-trs80m1/trs80-bank.s @@ -35,23 +35,25 @@ init_hardware: ; set system RAM size ld hl,#0xFFFF ; FFFF is free in all our pages ld bc,#0xFF43 ; kernel included + xor a mark_pages: out (c),b - ld (hl),b + ld (hl),a djnz mark_pages scan_pages: - ld a,#2 + ld b,#2 scan_pages_l: - out (c),a - cp (hl) + out (c),b + cp (hl) ; still 0 ? jr nz, mismatch - inc a + ld (hl),b + inc b jr nz, scan_pages_l -mismatch: ; A holds the first page above +mismatch: ; B holds the first page above ; the limit (4 for 128K etc) - dec a - dec a ; remove kernel - ld h,a + dec b + dec b ; remove kernel + ld h,b ld l,#0 ; effectively * 256 srl h rr l ; * 128 -- 2.34.1