SHR-NTSC/imgview.asm
2017-07-26 13:59:03 -07:00

111 lines
2.0 KiB
NASM

;*
;* Light Cycles 3D
;*
KEYBD = $C000 ; KEYBOARD
KEYSTRB = $C010
STORE80DIS = $C000
STORE80EN = $C001
MAINWRT = $C004
AUXWRT = $C005
VIDCTL = $C029
SHADOW = $C035
SCB = $80 ; 640 PIXEL SUPER-HIRES
PIXBUF = $2000
SCBBUF = $9D00
PALBUFF = $9E00
DST = $06
SRC = $08
;* = $1000
;
; TURN OFF 80 COLUMN CODE
;
STA STORE80DIS
;
; SHADOW SHR BUFFER IN AUX MEMORY
;
LDA VIDCTL
ORA #$80
STA VIDCTL
LDA SHADOW
AND #$F7
STA SHADOW
;
; FILL SCB
;
LDX #200
LDA #SCB
STA AUXWRT
- STA SCBBUF-1,X
DEX
BNE -
STA MAINWRT
;
; FILL PALETTE
;
LDY #$00
STA AUXWRT
- LDA PALETTE,Y
STA PALBUFF,X
STA PALBUFF+$1000,X
INY
TYA
AND #$07
TAY
INX
BNE -
STA MAINWRT
;
; COPY IMAGE TO FRAMEBUFFER
;
LDX #<IMAGE
STX SRC
LDX #>IMAGE
STX SRC+1
LDX #<PIXBUF
STX DST
LDX #>PIXBUF
STX DST+1
LDY #$00
STA AUXWRT
- LDA (SRC),Y
STA (DST),Y
INY
BNE -
INC SRC+1
INX
STX DST+1
CPX #>SCBBUF
BNE -
STA MAINWRT
; !!! A2PI return !!!
RTS
;
; WAIT FOR KEYPRESS
;
LDA KEYSTRB
- LDA KEYBD
BPL -
LDA KEYSTRB
;
; CLEAN UP
;
EXIT: LDA VIDCTL
AND #$7F
STA VIDCTL
LDA SHADOW
ORA #$08
STA SHADOW
JSR $BF00 ; ProDOS QUIT
!BYTE $65
!WORD PARMTBL
PARMTBL !BYTE 4
!BYTE 0
!WORD 0
!BYTE 0
!WORD 0
PALETTE:
; !WORD $0000, $0555, $0AAA, $0FFF
!WORD $0000, $0333, $0777, $0FFF
IMAGE:
!SOURCE "image.asm"