From cee53fd2577e4c846ec35c7dfc78c153e0db514a Mon Sep 17 00:00:00 2001 From: Pecusx Date: Fri, 12 Aug 2022 15:23:23 +0200 Subject: [PATCH] Now splash screen works on classic Atari 800 :) --- artwork/Scorch50.asm | 68 +++++++++++++++---------------------------- scorch.xex | Bin 50948 -> 50944 bytes textproc.asm | 2 +- 3 files changed, 24 insertions(+), 46 deletions(-) diff --git a/artwork/Scorch50.asm b/artwork/Scorch50.asm index ab5e005..ab6aa99 100644 --- a/artwork/Scorch50.asm +++ b/artwork/Scorch50.asm @@ -28,7 +28,7 @@ WIDTH = 40 HEIGHT = 30 ; --- BASIC switch OFF - org $2000\ mva #$ff portb\ rts\ ini $2000 + ;org $2000\ mva #$ff portb\ rts\ ini $2000 ; --- MAIN PROGRAM org $2000 @@ -211,6 +211,7 @@ main ; ;sta $a300,x ; inx ; bne @- + ; --- init PMG ift USESPRITES @@ -223,16 +224,18 @@ main sei ;stop IRQ interrupts mva #$00 nmien ;stop NMI interrupts sta dmactl - mva #$fe portb ;switch off ROM to get 16k more ram + ;mva #$fe portb ;switch off ROM to get 16k more ram - mwa #NMI $fffa ;new NMI handler + ;mwa #NMI $fffa ;new NMI handler + + VMAIN NMI.vbl,6 ;jsr SetVBL + VDLI DLI.dli_start + mva #1 vscrol mva #$c0 nmien ;switch on NMI+DLI again - ift CHANGES ;if label CHANGES defined - _lp lda trig0 ; FIRE #0 beq stop @@ -247,27 +250,26 @@ _lp lda trig0 ; FIRE #0 and #$04 bne _lp ;wait to press any key; here you can put any own routine - els - -null jmp DLI.dli1 ;CPU is busy here, so no more routines allowed - - eif - stop + + cli + vmain sysvbv,6 + mva #$00 pmcntl ;PMG disabled tax sta:rne hposp0,x+ - mva #$ff portb ;ROM switch on + ;mva #$ff portb ;ROM switch on mva #$40 nmien ;only NMI interrupts, DLI disabled - cli ;IRQ enabled + ;cli ;IRQ enabled - lda #0 + lda #0 ldx #8 @ sta POKEY,x dex bpl @- + ;no glitching please (issue #67) lda #0 @@ -281,32 +283,6 @@ stop ?old_dli = * - ift !CHANGES - -dli1 lda trig0 ; FIRE #0 - beq stop - - lda trig1 ; FIRE #1 - beq stop - - lda consol ; START - and #1 - beq stop - - lda skctl - and #$04 - beq stop - - lda vcount - cmp #$02 - bne dli1 - - :3 sta wsync - - DLINEW dli13 - - eif - dli_start dli13 @@ -680,6 +656,8 @@ FADECHR = 0 SCHR = 127 +dliv = $0200 + ; --- .proc NMI @@ -688,14 +666,14 @@ SCHR = 127 bpl VBL jmp DLI.dli_start -dliv equ *-2 + VBL sta regA stx regX sty regY - sta nmist ;reset NMI flag + ;sta nmist ;reset NMI flag mwa #ant dlptr ;ANTIC address program @@ -763,7 +741,7 @@ quit lda regA ldx regX ldy regY - rti + jmp sysvbv .endp @@ -864,9 +842,9 @@ player3 USESPRITES = 1 .MACRO DLINEW - mva <:1 NMI.dliv + mva <:1 dliv ift [>?old_dli]<>[>:1] - mva >:1 NMI.dliv+1 + mva >:1 dliv+1 eif ift :2 diff --git a/scorch.xex b/scorch.xex index d490e935d8442c118f08c975d887d25842dfefb2..97b3f3cc842a060c69bee5a49d789f5f067439ee 100644 GIT binary patch delta 337 zcmZqaV{YhUX8QksqfnbQ`I1S*$b=YGF*6Z;nzwBkbItvf#u#_2BxL+99rkC)am8A(#v^e<$1V> z0Yn5ug3(HL5Y2O8n?HAO%*lTGY3SgJw73HIx?%|XJ&C|Wfj zT7jO>;lCol>@zdJbza;2mIae-9lAwlg4E{&)hnFLgSgQr{>kRs4zi|`eN-yV? zm4|>LlQ-JPvpfYcuGj?2y8;<23wrH<3YX1avH+ym1gbb3q{hwGhGiy*(PnGRaskBH zYuh284ANDIqRRoQs}!Ur#qJ2F8%RwNP|ajRdkvO6kZ`R1dOaS w2r&Ef9*~xNpcaLbc~EC=zV0Av%D8Ux*HZ340GAbz2LJ#7 diff --git a/textproc.asm b/textproc.asm index 55311dd..d29f539 100644 --- a/textproc.asm +++ b/textproc.asm @@ -254,7 +254,7 @@ OptionsYLoop ManualPurchase jsr Purchase - ldx escFlag + bit escFlag spl:rts AfterManualPurchase