From 0219fe8d144630dcabc80d345650a434679d78b9 Mon Sep 17 00:00:00 2001 From: pkali Date: Sat, 20 Aug 2022 02:33:24 -0400 Subject: [PATCH] linetable ellimination --- constants.asm | 8 ++++---- definitions.asm | 18 ++++++++++++------ scorch.asm | 29 +++++++++++++++++++++++++++++ scorch.xex | Bin 51356 -> 51002 bytes 4 files changed, 45 insertions(+), 10 deletions(-) diff --git a/constants.asm b/constants.asm index 96509d3..fbbb01e 100644 --- a/constants.asm +++ b/constants.asm @@ -191,10 +191,10 @@ sintable .by 255 .by 255 ;anti self destruction byte -linetableL - :screenheight+1 .by <(display+screenBytes*#) -linetableH - :screenheight+1 .by >(display+screenBytes*#) +;linetableL +; :screenheight+1 .by <(display+screenBytes*#) +;linetableH +; :screenheight+1 .by >(display+screenBytes*#) ;---------------------------- bittable .by $80,$40,$20,$10,$08,$04,$02,$01 diff --git a/definitions.asm b/definitions.asm index 4d0d952..91094b4 100644 --- a/definitions.asm +++ b/definitions.asm @@ -1,14 +1,20 @@ ; @com.wudsn.ide.asm.mainsourcefile=scorch.asm -;---------------------------------------------- -; Player/missile memory - -PMGraph = $0800 -display = $1010 ;screen takes $2K due to clearing routine - screenheight = 200 screenBytes = 40 screenwidth = screenBytes*8 ; Max screenwidth = 512!!! + +;---------------------------------------------- +; Player/missile memory +PMGraph = $0800 ; real PM start = $0b00 + + +; Generated tables +linetableL = $0b00 - screenHeight*2 +linetableH = $0b00 - screenHeight + +display = $1010 ;screen takes $2K due to clearing routine + margin = 40 ;mountain drawing Y variable margin MaxPlayers = 6 maxOptions = 8 ;number of all options diff --git a/scorch.asm b/scorch.asm index f0b6164..6c37d95 100644 --- a/scorch.asm +++ b/scorch.asm @@ -177,6 +177,22 @@ FirstSTART dey bpl @- + + ; generate linetables + mwa #display temp + mwa #linetableL temp2 + mwa #linetableH modify + ldy #0 +@ lda temp + sta (temp2),y + lda temp+1 + sta (modify),y + adw temp #40 + iny + cpy #screenheight + bne @- + + ; RMT INIT lda #$f0 ;initial value sta RMTSFXVOLUME ;sfx note volume * 16 (0,16,32,...,240) @@ -1626,6 +1642,19 @@ noingame mva #0 RMT_blocked rts .endp +;;-------------------------------------------------- +;.proc Randomizer +;;-------------------------------------------------- +; ;usage: randomize floor ceiling +; ;returns (in A) a random .byte between "floor" and "ceiling" +;?rand +; lda random +; cmp #:1 ;floor +; bcc ?rand +; cmp #:2+1 ;ceiling +; bcs ?rand +; rts +;.endp ;---------------------------------------------- icl 'weapons.asm' ;---------------------------------------------- diff --git a/scorch.xex b/scorch.xex index aa0df240789fa84923ae48f2398a515ab2a47e01..f7e137de55bfd07eb386bf3412ea2da58cc854e8 100644 GIT binary patch delta 16675 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 F{y)9OGYbF!