4cade/src/4cade.a

116 lines
3.0 KiB
Plaintext

!cpu 6502
!to "build/LAUNCHER.SYSTEM",plain
*=$2000
!source "src/constants.a"
!source "src/macros.a"
jsr DisableAccelerator ; set to 1 MHz
jsr Has128K ; check for 128K (64K is OK, we just filter out some games)
ror MachineStatus
jsr HasJoystick ; check for joystick (keyboard-only is OK, we just filter out some games)
ror MachineStatus
lda LCBANK1WRITE ; read ROM / write LC bank 1
lda LCBANK1WRITE
ldx #$00
FM lda FirstMover,x
sta $D000,x
inx
bne FM
; inc FM+2
; inc FM+5
; lda FM+5
; cmp #>LastMover
; bcc FM
jsr init ; initialize ProRWTS2 (bye bye ProDOS)
lda LCBANK1 ; read/write LC bank 1
lda LCBANK1
jmp Start
!source "src/memcheck.a"
!source "src/joystick.a"
!source "src/normfast.a"
!source "src/prorwts2.a"
FirstMover
!pseudopc $D000 {
!zone
Start
lda #$00 ; read first $2000 bytes
sta sizelo
lda #$20
sta sizehi
lda #0 ; 0 = read into main memory
sta auxreq
lda #cmdread ; read (instead of write)
sta reqcmd
bit MachineStatus
bvs @ShowCover128K
lda #<cover64 ; pointer to length-prefixed filename
sta namlo
lda #>cover64
sta namhi
jsr hddopendir ; call ProRWTS2
clc
bcc @Show
@ShowCover128K
inc auxreq ; 1 = read into aux memory
lda #<cover128 ; pointer to length-prefixed filename
sta namlo
lda #>cover128
sta namhi
jsr hddopendir ; call ProRWTS2
lda #$20 ; read next $2000 bytes
sta sizehi
dec auxreq ; 0 = read into main memory
jsr hddrdwrpart ; call ProRWTS2
sta $C000 ; display double hi-res page 1
sta $C00D
sta $C05E
sta $C001
@Show
sta $C057
sta $C052
sta $C054
sta $C050
bit $C010
- lda $C000
bpl -
bit $C010
brk
cover64
!byte cover64_e-cover64_b
cover64_b
!text "COVER"
cover64_e
cover128
!byte cover128_e-cover128_b
cover128_b
!text "COVER.A2FC"
cover128_e
}
LastMover
;LoadDHGR
; sta $C000
; ldx #$20 ; copy $2000 bytes to auxmem
; stx @copya+2
; stx @copyb+2
; ldy #0
;@writeToAuxLoop
; sta $C005
;@copya lda $FF00, y
;@copyb sta $FF00, y
; iny
; bne @copya
; sta $C004
; inc @copya+2
; inc @copyb+2
; dex
; bne @writeToAuxLoop