From 415bfbba2ba5a96c66d3e8a4d3ea51802b59bb97 Mon Sep 17 00:00:00 2001 From: pkali Date: Sat, 17 Sep 2022 14:36:36 -0400 Subject: [PATCH] WIP: moving displays part 3 --- scorch.asm | 58 +++++++++++++++++++++++++++++++++----------------- scorch.xex | Bin 48701 -> 48732 bytes textproc.asm | 25 ---------------------- variables.asm | 2 ++ 4 files changed, 41 insertions(+), 44 deletions(-) diff --git a/scorch.asm b/scorch.asm index 21ea1f4..26a22fc 100644 --- a/scorch.asm +++ b/scorch.asm @@ -140,23 +140,29 @@ WeaponFont ;----------------------------------------------- ;Screen displays go here to avoid crossing 4kb barrier ;----------------------------------------------- + DisplayCopyRom = * org display, DisplayCopyRom DisplayCopyStart icl 'display_main_menu.asm' DisplayCopyEnd - org DisplayCopyRom + (DisplayCopyEnd - DisplayCopyStart +1) + org DisplayCopyRom + (DisplayCopyEnd - DisplayCopyStart) DisplayCopyPurchaseDlROM = * org DisplayCopyPurchase, DisplayCopyPurchaseDlROM DisplayCopyPurchaseStart icl 'display_purchasedl.asm' DisplayCopyPurchaseEnd - org DisplayCopyPurchaseDlROM + (DisplayCopyPurchaseEnd - DisplayCopyPurchaseStart +1) - - + org DisplayCopyPurchaseDlROM + (DisplayCopyPurchaseEnd - DisplayCopyPurchaseStart) + StatusBufferROM = * + org StatusBufferCopy, StatusBufferROM +StatusBufferCopyStart icl 'display_status.asm' +StatusBufferCopyEnd + org StatusBufferROM + (StatusBufferCopyEnd - StatusBufferCopyStart) + + icl 'display_static.asm' ;---------------------------------------------- @@ -195,21 +201,6 @@ FirstSTART cpy #screenheight+1 bne @- -; .if target = 5200 -; ; move RMT player from ROM to RAM (it modifies itself) -; mwa #PlayerBlob temp -; mwa #PlayerBlobDest temp2 -;@ -; ldy #0 -; lda (temp),y -; sta (temp2),y -; inw temp -; inw temp2 -; cpw temp #PlayerBlobEnd -; bne @- -; .endif - - ; RMT INIT lda #$f0 ;initial value sta RMTSFXVOLUME ;sfx note volume * 16 (0,16,32,...,240) @@ -455,6 +446,12 @@ SettingEnergies jsr calculatemountains ;let mountains be easy for the eye ;jsr calculatemountains0 ;only for tests - makes mountains flat and 0 height + + mwa #StatusBufferROM temp + mwa #StatusBufferCopy temp2 + mwa #StatusBufferCopyEnd+1 modify + jsr CopyFromROM + jsr SetMainScreen jsr ColorsOfSprites @@ -1646,6 +1643,29 @@ noingame mva #0 RMT_blocked rts .endp +;------------------------------------------------- +.proc CopyFromROM +;------------------------------------------------- +;copy from CART to RAM +; trashes Y +; temp: source +; temp2: destination +; modify: destination-end +;usage: +; mwa #DisplayCopyRom temp +; mwa #display temp2 +; mwa #DisplayCopyEnd+1 modify +; jsr CopyFromROM + + ldy #0 +@ lda (temp),y + sta (temp2),y + inw temp + inw temp2 + cpw temp2 modify + bne @- + rts +.endp ;;-------------------------------------------------- ;.proc Randomizer ;;-------------------------------------------------- diff --git a/scorch.xex b/scorch.xex index 0825c6112cd18bb91f4db65a753fe5191a1655d0..a9e34e64504aeee6b57a4797a174bfa5b74a66af 100644 GIT binary patch delta 8910 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 delta 8885 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