Version 1 'final' demo for the Apple II'
This commit is contained in:
commit
df654cb1b2
185
DEMO.ASM
Normal file
185
DEMO.ASM
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
.ORG $8000
|
||||||
|
|
||||||
|
CLOBBER:
|
||||||
|
LDA #$04 ; text / lo mem address
|
||||||
|
STA $0B
|
||||||
|
LDA #$00 ; text / lo mem address
|
||||||
|
STA $0A
|
||||||
|
LDA #$60 ; graphic asset address
|
||||||
|
STA $0D
|
||||||
|
LDA #$00 ; graphic asset address
|
||||||
|
STA $0C
|
||||||
|
|
||||||
|
CLOBNP:
|
||||||
|
LDY #$00 ; indirect addressing mode stuff
|
||||||
|
CLOBLOOP:
|
||||||
|
LDA ($0C),y
|
||||||
|
STA ($0A),y
|
||||||
|
INY
|
||||||
|
CPY #$FF
|
||||||
|
BNE CLOBLOOP
|
||||||
|
LDY $0B
|
||||||
|
INY
|
||||||
|
STY $0B
|
||||||
|
CPY #$20
|
||||||
|
BEQ TIMER
|
||||||
|
LDY $0D
|
||||||
|
INY
|
||||||
|
STY $0D
|
||||||
|
JMP CLOBNP
|
||||||
|
|
||||||
|
TIMER:
|
||||||
|
LDY #$00
|
||||||
|
STY $71 ; timer1 y
|
||||||
|
OUTERLOOP:
|
||||||
|
LDY $71
|
||||||
|
LDX #$00
|
||||||
|
STX $70 ; timer1 x
|
||||||
|
INNERLOOP:
|
||||||
|
LDX $70
|
||||||
|
INX
|
||||||
|
STX $70
|
||||||
|
CPX #$FF
|
||||||
|
BNE INNERLOOP
|
||||||
|
INY
|
||||||
|
STY $71
|
||||||
|
CPY #$FF
|
||||||
|
BNE OUTERLOOP
|
||||||
|
JSR LGRMODE
|
||||||
|
JMP TIMER2
|
||||||
|
|
||||||
|
TIMER2:
|
||||||
|
LDY #$00
|
||||||
|
OUTERLOOP2:
|
||||||
|
LDX #$00
|
||||||
|
INNERLOOP2:
|
||||||
|
INX
|
||||||
|
CPX #$FF
|
||||||
|
BNE INNERLOOP2
|
||||||
|
INY
|
||||||
|
CPY #$FF
|
||||||
|
BNE OUTERLOOP2
|
||||||
|
JSR INITDISPLAY
|
||||||
|
|
||||||
|
LGRMODE:
|
||||||
|
LDA #$FF
|
||||||
|
STA $C056
|
||||||
|
STA $C054
|
||||||
|
STA $C050
|
||||||
|
RTS
|
||||||
|
|
||||||
|
INITDISPLAY:
|
||||||
|
LDA #$FF
|
||||||
|
STA $C057
|
||||||
|
STA $C054
|
||||||
|
STA $C050
|
||||||
|
LDA #$80
|
||||||
|
STA $2000
|
||||||
|
STA $2001
|
||||||
|
STA $2002
|
||||||
|
STA $2003
|
||||||
|
JMP XOREFFECT
|
||||||
|
|
||||||
|
LOADBUFFER:
|
||||||
|
LDA #$FF
|
||||||
|
LDX #$00
|
||||||
|
LOADLOOP:
|
||||||
|
STA $20,x
|
||||||
|
INX
|
||||||
|
CPX #$28
|
||||||
|
BNE LOADLOOP
|
||||||
|
JMP GLITCHINIT
|
||||||
|
LOOP:
|
||||||
|
NOP
|
||||||
|
JMP LOOP
|
||||||
|
|
||||||
|
XOREFFECT:
|
||||||
|
LDA #$34
|
||||||
|
STA $01 ; start memory address
|
||||||
|
LDA #$25
|
||||||
|
STA $02 ; width of individual row
|
||||||
|
LDA $01
|
||||||
|
ADC $02
|
||||||
|
STA $03 ; memory address of end of line
|
||||||
|
LDA #$00
|
||||||
|
STA $64 ; counter 1
|
||||||
|
STA $65 ; counter 2
|
||||||
|
STA $66 ; counter 3
|
||||||
|
LDA $00
|
||||||
|
STA $08 ; low order address byte
|
||||||
|
LDA $20
|
||||||
|
STA $09 ; high order address byte
|
||||||
|
GLITCHINIT:
|
||||||
|
LDX #$65
|
||||||
|
STX $04 ; memory address currently being grabbed
|
||||||
|
GLITCHSTORE:
|
||||||
|
;LDA $2000,x ; grab the byte from HGR memory
|
||||||
|
LDA #$FF
|
||||||
|
STA $20,x ; store it in zero page
|
||||||
|
INX
|
||||||
|
STX $04 ; store current memory address
|
||||||
|
TXA
|
||||||
|
CMP $02
|
||||||
|
BNE GLITCHSTORE
|
||||||
|
LTIMERY:
|
||||||
|
LDA #$00
|
||||||
|
STA $65
|
||||||
|
LTIMERX:
|
||||||
|
LDA #$00
|
||||||
|
STA $64
|
||||||
|
XEINIT:
|
||||||
|
LDX $01
|
||||||
|
XELINE:
|
||||||
|
LDA $2000,x
|
||||||
|
EOR $20,x
|
||||||
|
STA $2000,x
|
||||||
|
INX
|
||||||
|
STX $04 ; store current XOR byte
|
||||||
|
TXA
|
||||||
|
CMP $02 ; compare to width of row
|
||||||
|
BNE XELINE
|
||||||
|
LTIMER:
|
||||||
|
LDX $64 ; start of long timer
|
||||||
|
INX
|
||||||
|
STX $64
|
||||||
|
CPX #$FF
|
||||||
|
BNE XEINIT
|
||||||
|
LDX $65
|
||||||
|
INX
|
||||||
|
STX $65
|
||||||
|
CPX #$02
|
||||||
|
BNE LTIMERX
|
||||||
|
LDA #$FF ; switch to page 2
|
||||||
|
STA $C050
|
||||||
|
STA $C052
|
||||||
|
STA $C057
|
||||||
|
STA $C055
|
||||||
|
; go through once more in the timer
|
||||||
|
LDA #$00
|
||||||
|
STA $64
|
||||||
|
STA $65
|
||||||
|
LDX $66
|
||||||
|
INX
|
||||||
|
CPX #$02
|
||||||
|
BEQ CLEANUP
|
||||||
|
|
||||||
|
;LDX $66 ; don't need this third variable
|
||||||
|
;INX
|
||||||
|
;STX $66
|
||||||
|
;CPX #$FF
|
||||||
|
;BNE LTIMERY
|
||||||
|
;JMP XEINIT
|
||||||
|
|
||||||
|
;SWITCHPAGE:
|
||||||
|
;LDA #$FF
|
||||||
|
;STA $C055
|
||||||
|
;RTS
|
||||||
|
|
||||||
|
CLEANUP:
|
||||||
|
LDA #$00
|
||||||
|
STA $4000
|
||||||
|
STA $4001
|
||||||
|
STA $4002
|
||||||
|
STA $4003
|
||||||
|
JMP CLEANUP
|
||||||
|
|
Loading…
Reference in New Issue
Block a user