;license:MIT ;(c) 2021 by Frank M. !cpu 6502 !to "res/DEMO/BU",plain *=$300 !source "src/constants.a" ; no code in these !source "src/macros.a" +READ_RAM2_WRITE_RAM2 jsr EnableAccelerator ;+LOAD_FILE_KEEP_DIR ldx #0 ; read to main memory stx ldrhi stx ldrlo +LDADDR title jsr iLoadFileDirect ldx #5-1 ; we also need to copy the length byte - lda newpath,x sta $BFD0,x dex bpl - lda #$60 sta $3ec9 sta $3f09 jsr $3e97 ; decompress jsr DisableAccelerator +READ_ROM_NO_WRITE lda #$4C sta $653F lda #$8D sta $653F+1 lda #$65 sta $653F+2 ; skip joystick/keyboard selection lda #$b1 sta $646b jsr $6400 +ENABLE_ACCEL jsr $811 lda #0 sta $A30A lda #1 sta $A30F ; reset vector patch lda #$4C sta $9FD3 sta $9FCF sta $A497 ; set exits lda #0 sta $9FD3+1 sta $9FCF+1 sta $A497+1 sta $A15B sta $A16A sta $A17B sta $A1D0 ; disable sound lda #1 sta $9FD3+2 sta $9FCF+2 sta $A497+2 +DISABLE_ACCEL jmp $a300 newpath !byte 4 !text "X/BU" title !byte x_e-x_b x_b !text "X/BU/BU" x_e !if * > $3F0 { !error "code is too large, ends at ", * }