From 4088e5f8fafcdf3e041a047ef140085db8003241 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Thu, 19 Jan 2023 19:46:06 +0100 Subject: [PATCH] Macro "wait" optimization, and better credits --- constants.asm | 7 +++++-- lib/5200MACRO.ASM | 25 ++++++++++--------------- lib/MACRO.ASM | 25 ++++++++++--------------- scorch.bin | Bin 32768 -> 32768 bytes scorch.xex | Bin 49301 -> 49294 bytes 5 files changed, 25 insertions(+), 32 deletions(-) diff --git a/constants.asm b/constants.asm index 7f79453..4184ed3 100644 --- a/constants.asm +++ b/constants.asm @@ -626,10 +626,13 @@ CreditsStart dta d"Bocianu, Probabilitydragon, EnderDude",d","* dta d"Beeblebrox, KrzysRog, lopezpb, Dracon",d","* dta d"brad-colbert, archon800, nowy80",d","* - dta d"Shaggy the Atarian, RetroBorsuk, ZP",d"H"* + dta d"Shaggy the Atarian, RetroBorsuk, ZPH" .IF target = 5200 - dta d"x-usr(1536), Aking, JAC!, phaero",d"n"* + dta d","* + dta d"x-usr(1536), Aking, JAC!, phaeron",d","* dta d"RB520",d"0"* + .ELSE + dta d" "* .ENDIF dta d" "* dta d"Additional testin",d"g"* diff --git a/lib/5200MACRO.ASM b/lib/5200MACRO.ASM index 2662deb..1bfddf2 100644 --- a/lib/5200MACRO.ASM +++ b/lib/5200MACRO.ASM @@ -74,23 +74,18 @@ .ENDM ;------------------------------------- - .MACRO WAIT + .MACRO WAIT ; WAIT ; waits one frame (1/50 s(PAL) or 1/60s(NTSC)) -?zero LDA VCOUNT - cmp #$05 - bcc ?zero - cmp #$70 - bcc ?WA - sbc #10 ; last lines correction -?WA cmp VCOUNT - beq ?WA - bcc ?WA -?WFRAME cmp VCOUNT - beq ?nowait - bcs ?WFRAME -?nowait - .ENDM +?ze LDA VCOUNT + cmp #16 ; if line<16 then wait for line>15 (long VBI protection) + bcc ?ze + sbc #10 ; last lines correction +?wa cmp VCOUNT + bcc ?wa +?wf cmp VCOUNT + bcs ?wf + .ENDM ;------------------------------------- .macro waitRTC lda RTCLOK+1 diff --git a/lib/MACRO.ASM b/lib/MACRO.ASM index 4dea932..34aa3ba 100644 --- a/lib/MACRO.ASM +++ b/lib/MACRO.ASM @@ -73,23 +73,18 @@ PLA .ENDM ;------------------------------------- - .MACRO WAIT + .MACRO WAIT ; WAIT ; waits one frame (1/50 s(PAL) or 1/60s(NTSC)) -?zero LDA VCOUNT - cmp #$05 ; if line<5 then wait for line>4 - bcc ?zero - cmp #$70 - bcc ?WA ; if line>=112 then - sbc #10 ; last lines correction -?WA cmp VCOUNT - beq ?WA - bcc ?WA -?WFRAME cmp VCOUNT - beq ?nowait - bcs ?WFRAME -?nowait - .ENDM +?ze LDA VCOUNT + cmp #16 ; if line<16 then wait for line>15 (long VBI protection) + bcc ?ze + sbc #10 ; last lines correction +?wa cmp VCOUNT + bcc ?wa +?wf cmp VCOUNT + bcs ?wf + .ENDM ;------------------------------------- .macro waitRTC lda RTCLOK+2 diff --git a/scorch.bin b/scorch.bin index 98e037c8e72847facd8a855e8a90ebf963ce309b..bc45a0e6c0ffb315e490b8fbb099ac370e8db7a7 100644 GIT binary patch delta 6883 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 diff --git a/scorch.xex b/scorch.xex index 9f426aa24ceb9d546447b6513a4ee47fc747bcfc..030463b230838055792725eef902bf9b56425a73 100644 GIT binary patch delta 7314 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 TZL{Fo-gbuk;M2?Z*y;ZRhZCw- delta 7286 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