mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-08-12 12:29:04 +00:00
chiptune: move chunksize to 3
also abandon hope of getting starfield background; needs 3kB of RAM that we can't afford
This commit is contained in:
parent
bb5f5c3aec
commit
1f63b498a2
@ -2,16 +2,18 @@
|
|||||||
; "Beneath Apple DOS" by Don Worth and Pieter Lechner
|
; "Beneath Apple DOS" by Don Worth and Pieter Lechner
|
||||||
|
|
||||||
; FIXME: make these a parameter
|
; FIXME: make these a parameter
|
||||||
|
; filename
|
||||||
disk_buff EQU $6000
|
disk_buff EQU $6000
|
||||||
read_size EQU $2A00 ; (3*256*14)
|
read_size EQU $2A00 ; (3*256*14)
|
||||||
|
|
||||||
;; For the disk-read code
|
;; For the disk-read code
|
||||||
;RWTSH EQU $F1
|
|
||||||
;RWTSL EQU $F0
|
;RWTSL EQU $F0
|
||||||
;DOSBUFH EQU $EF
|
;RWTSH EQU $F1
|
||||||
;DOSBUFL EQU $EE
|
;DOSBUFL EQU $EE
|
||||||
;FILEMH EQU $ED
|
;DOSBUFH EQU $EF
|
||||||
;FILEML EQU $EC
|
;FILEML EQU $EC
|
||||||
|
;FILEMH EQU $ED
|
||||||
|
|
||||||
|
|
||||||
;; DOS Constants
|
;; DOS Constants
|
||||||
OPEN EQU $01
|
OPEN EQU $01
|
||||||
@ -221,10 +223,10 @@ dos33_read:
|
|||||||
sta (FILEML),y
|
sta (FILEML),y
|
||||||
|
|
||||||
ldy #6 ; point to number of bytes to read
|
ldy #6 ; point to number of bytes to read
|
||||||
lda #>read_size
|
lda #<read_size
|
||||||
sta (FILEML),y ; we want to read 255 bytes
|
sta (FILEML),y ; we want to read 255 bytes
|
||||||
iny
|
iny
|
||||||
lda #<read_size
|
lda #>read_size
|
||||||
sta (FILEML),y
|
sta (FILEML),y
|
||||||
|
|
||||||
ldy #8 ; buffer address
|
ldy #8 ; buffer address
|
||||||
|
@ -7,7 +7,8 @@ all: chiptune_player.dsk
|
|||||||
|
|
||||||
chiptune_player.dsk: CHIPTUNE_PLAYER OUT.0
|
chiptune_player.dsk: CHIPTUNE_PLAYER OUT.0
|
||||||
$(DOS33) -y chiptune_player.dsk BSAVE -a 0x1000 CHIPTUNE_PLAYER
|
$(DOS33) -y chiptune_player.dsk BSAVE -a 0x1000 CHIPTUNE_PLAYER
|
||||||
$(DOS33) -y chiptune_player.dsk BSAVE -a 0x6000 OUT.0
|
$(DOS33) -y chiptune_player.dsk SAVE B OUT.0
|
||||||
|
# $(DOS33) -y chiptune_player.dsk BSAVE -a 0x6000 OUT.0
|
||||||
|
|
||||||
|
|
||||||
CHIPTUNE_PLAYER: chiptune_player.o
|
CHIPTUNE_PLAYER: chiptune_player.o
|
||||||
|
Binary file not shown.
@ -1,5 +1,4 @@
|
|||||||
+ Load from disk
|
+ Starfield -- takes too much ram (3k+)
|
||||||
+ Starfield
|
|
||||||
+ Volume Bars
|
+ Volume Bars
|
||||||
+ Print Descriptive Text
|
+ Print Descriptive Text
|
||||||
+ Print time
|
+ Print time
|
||||||
|
@ -5,21 +5,23 @@
|
|||||||
CHUNK_BUFFER EQU $6000
|
CHUNK_BUFFER EQU $6000
|
||||||
|
|
||||||
;=============================
|
;=============================
|
||||||
; Print message
|
; Setup
|
||||||
;=============================
|
;=============================
|
||||||
jsr HOME
|
jsr HOME
|
||||||
jsr TEXT
|
jsr TEXT
|
||||||
|
|
||||||
|
; init variables
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta DRAW_PAGE
|
sta DRAW_PAGE
|
||||||
sta CH
|
sta CH
|
||||||
sta CV
|
sta CV
|
||||||
sta DONE_PLAYING
|
sta DONE_PLAYING
|
||||||
sta XPOS
|
sta XPOS
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta MB_FRAME_DIFF
|
sta MB_FRAME_DIFF
|
||||||
|
|
||||||
|
; print detection message
|
||||||
|
|
||||||
lda #<mocking_message ; load loading message
|
lda #<mocking_message ; load loading message
|
||||||
sta OUTL
|
sta OUTL
|
||||||
lda #>mocking_message
|
lda #>mocking_message
|
||||||
@ -40,12 +42,12 @@ CHUNK_BUFFER EQU $6000
|
|||||||
jmp forever_loop ; and wait forever
|
jmp forever_loop ; and wait forever
|
||||||
|
|
||||||
mockingboard_found:
|
mockingboard_found:
|
||||||
lda #<found_message ; print found message
|
; lda #<found_message ; print found message
|
||||||
sta OUTL
|
; sta OUTL
|
||||||
lda #>found_message
|
; lda #>found_message
|
||||||
sta OUTH
|
; sta OUTH
|
||||||
inc CV
|
; inc CV
|
||||||
jsr move_and_print
|
; jsr move_and_print
|
||||||
|
|
||||||
;============================
|
;============================
|
||||||
; Init the Mockingboard
|
; Init the Mockingboard
|
||||||
@ -55,7 +57,6 @@ mockingboard_found:
|
|||||||
jsr reset_ay_both
|
jsr reset_ay_both
|
||||||
jsr clear_ay_both
|
jsr clear_ay_both
|
||||||
|
|
||||||
|
|
||||||
;=========================
|
;=========================
|
||||||
; Setup Interrupt Handler
|
; Setup Interrupt Handler
|
||||||
;=========================
|
;=========================
|
||||||
@ -71,7 +72,7 @@ mockingboard_found:
|
|||||||
; Enable 50Hz clock on 6522
|
; Enable 50Hz clock on 6522
|
||||||
;============================
|
;============================
|
||||||
|
|
||||||
lda #$40 ; Generate continuous interrupts, don't touch PB7
|
lda #$40 ; Continuous interrupts, don't touch PB7
|
||||||
sta $C40B ; ACR register
|
sta $C40B ; ACR register
|
||||||
lda #$7F ; clear all interrupt flags
|
lda #$7F ; clear all interrupt flags
|
||||||
sta $C40E ; IER register (interrupt enable)
|
sta $C40E ; IER register (interrupt enable)
|
||||||
@ -91,7 +92,7 @@ mockingboard_found:
|
|||||||
|
|
||||||
|
|
||||||
;============================
|
;============================
|
||||||
; Setup Graphics
|
; Draw title screen
|
||||||
;============================
|
;============================
|
||||||
|
|
||||||
jsr set_gr_page0
|
jsr set_gr_page0
|
||||||
@ -124,6 +125,7 @@ mockingboard_found:
|
|||||||
sta INH
|
sta INH
|
||||||
lda #<CHUNK_BUFFER
|
lda #<CHUNK_BUFFER
|
||||||
sta INL
|
sta INL
|
||||||
|
|
||||||
lda #$0
|
lda #$0
|
||||||
sta MB_CHUNK
|
sta MB_CHUNK
|
||||||
|
|
||||||
@ -131,16 +133,35 @@ mockingboard_found:
|
|||||||
;============================
|
;============================
|
||||||
; Enable 6502 interrupts
|
; Enable 6502 interrupts
|
||||||
;============================
|
;============================
|
||||||
;
|
|
||||||
cli ; clear interrupt mask
|
cli ; clear interrupt mask
|
||||||
|
|
||||||
|
|
||||||
|
;============================
|
||||||
|
; Init Background
|
||||||
|
;============================
|
||||||
|
; jsr clear_screens ; clear top/bottom of page 0/1
|
||||||
|
; jsr set_gr_page0
|
||||||
|
|
||||||
|
; lda #0
|
||||||
|
; sta DRAW_PAGE
|
||||||
|
; sta RANDOM_POINTER
|
||||||
|
; sta SCREEN_Y
|
||||||
|
; always multiply with low byte as zero
|
||||||
|
; sta NUM2L
|
||||||
|
|
||||||
;============================
|
;============================
|
||||||
; Loop forever
|
; Loop forever
|
||||||
;============================
|
;============================
|
||||||
playing_loop:
|
playing_loop:
|
||||||
|
|
||||||
|
|
||||||
|
;============================
|
||||||
|
; starfield
|
||||||
|
;============================
|
||||||
|
|
||||||
|
; jsr starfield
|
||||||
|
|
||||||
lda DONE_PLAYING
|
lda DONE_PLAYING
|
||||||
beq playing_loop
|
beq playing_loop
|
||||||
|
|
||||||
@ -204,7 +225,7 @@ mb_not_13:
|
|||||||
; so write same to both left/write
|
; so write same to both left/write
|
||||||
clc
|
clc
|
||||||
lda INH
|
lda INH
|
||||||
adc #$4
|
adc #$3
|
||||||
sta INH
|
sta INH
|
||||||
|
|
||||||
inx
|
inx
|
||||||
@ -223,7 +244,7 @@ wraparound:
|
|||||||
|
|
||||||
inc MB_CHUNK
|
inc MB_CHUNK
|
||||||
lda MB_CHUNK
|
lda MB_CHUNK
|
||||||
cmp #$4
|
cmp #$3
|
||||||
bne chunk_good
|
bne chunk_good
|
||||||
lda #0
|
lda #0
|
||||||
sta MB_CHUNK
|
sta MB_CHUNK
|
||||||
@ -243,7 +264,6 @@ done_interrupt:
|
|||||||
.include "../asm_routines/gr_offsets.s"
|
.include "../asm_routines/gr_offsets.s"
|
||||||
.include "../asm_routines/text_print.s"
|
.include "../asm_routines/text_print.s"
|
||||||
.include "../asm_routines/mockingboard_a.s"
|
.include "../asm_routines/mockingboard_a.s"
|
||||||
;.include "../asm_routines/lzss_decompress.s"
|
|
||||||
.include "../asm_routines/gr_fast_clear.s"
|
.include "../asm_routines/gr_fast_clear.s"
|
||||||
.include "../asm_routines/pageflip.s"
|
.include "../asm_routines/pageflip.s"
|
||||||
.include "../asm_routines/gr_unrle.s"
|
.include "../asm_routines/gr_unrle.s"
|
||||||
|
@ -14,14 +14,13 @@ BASL EQU $28
|
|||||||
BASH EQU $29
|
BASH EQU $29
|
||||||
;H2 EQU $2C
|
;H2 EQU $2C
|
||||||
;V2 EQU $2D
|
;V2 EQU $2D
|
||||||
;MASK EQU $2E
|
MASK EQU $2E
|
||||||
COLOR EQU $30
|
COLOR EQU $30
|
||||||
;INVFLG EQU $32
|
;INVFLG EQU $32
|
||||||
|
|
||||||
; dos33 zero page = 26-2f, 35-38, 3e 3f 40-4d
|
; dos33 zero page = 26-2f, 35-38, 3e 3f 40-4d
|
||||||
; overlap applesoft 67-6a,6f,70,af,b0,ca-cd,d8
|
; overlap applesoft 67-6a,6f,70,af,b0,ca-cd,d8
|
||||||
|
|
||||||
|
|
||||||
RWTSL EQU $60
|
RWTSL EQU $60
|
||||||
RWTSH EQU $61
|
RWTSH EQU $61
|
||||||
DOSBUFL EQU $62
|
DOSBUFL EQU $62
|
||||||
@ -30,11 +29,9 @@ FILEML EQU $64
|
|||||||
FILEMH EQU $65
|
FILEMH EQU $65
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;TURNING EQU $60
|
;TURNING EQU $60
|
||||||
;SCREEN_X EQU $61 ; not used?
|
;SCREEN_X EQU $61 ; not used?
|
||||||
;SCREEN_Y EQU $62
|
SCREEN_Y EQU $62
|
||||||
;ANGLE EQU $63
|
;ANGLE EQU $63
|
||||||
;HORIZ_SCALE_I EQU $64
|
;HORIZ_SCALE_I EQU $64
|
||||||
;HORIZ_SCALE_F EQU $65
|
;HORIZ_SCALE_F EQU $65
|
||||||
@ -48,6 +45,8 @@ FILEMH EQU $65
|
|||||||
;CX_F EQU $6D
|
;CX_F EQU $6D
|
||||||
;DY_I EQU $6E
|
;DY_I EQU $6E
|
||||||
;DY_F EQU $6F
|
;DY_F EQU $6F
|
||||||
|
|
||||||
|
|
||||||
;SPACEY_I EQU $70
|
;SPACEY_I EQU $70
|
||||||
;SPACEY_F EQU $71
|
;SPACEY_F EQU $71
|
||||||
;CY_I EQU $72
|
;CY_I EQU $72
|
||||||
@ -62,22 +61,22 @@ FILEMH EQU $65
|
|||||||
;SPEED EQU $7B
|
;SPEED EQU $7B
|
||||||
;SPLASH_COUNT EQU $7C
|
;SPLASH_COUNT EQU $7C
|
||||||
;OVER_LAND EQU $7D
|
;OVER_LAND EQU $7D
|
||||||
;NUM1L EQU $7E
|
NUM1L EQU $7E
|
||||||
;NUM1H EQU $7F
|
NUM1H EQU $7F
|
||||||
;NUM2L EQU $80
|
NUM2L EQU $80
|
||||||
;NUM2H EQU $81
|
NUM2H EQU $81
|
||||||
;RESULT EQU $82 ; 83,84,85
|
RESULT EQU $82 ; 83,84,85
|
||||||
;NEGATE EQU $86 ; UNUSED?
|
;NEGATE EQU $86 ; UNUSED?
|
||||||
;LAST_SPACEX_I EQU $87
|
;LAST_SPACEX_I EQU $87
|
||||||
;LAST_SPACEY_I EQU $88
|
;LAST_SPACEY_I EQU $88
|
||||||
;LAST_MAP_COLOR EQU $89
|
;LAST_MAP_COLOR EQU $89
|
||||||
;DRAW_SKY EQU $8A
|
;DRAW_SKY EQU $8A
|
||||||
;COLOR_MASK EQU $8B
|
COLOR_MASK EQU $8B
|
||||||
;KEY_COUNT EQU $8C
|
;KEY_COUNT EQU $8C
|
||||||
;KEY_OFFSET EQU $8D
|
;KEY_OFFSET EQU $8D
|
||||||
;DRAW_BLUE_SKY EQU $8E
|
;DRAW_BLUE_SKY EQU $8E
|
||||||
;RANDOM_POINTER EQU $8F
|
RANDOM_POINTER EQU $8F
|
||||||
;FRAME_COUNT EQU $90
|
FRAME_COUNT EQU $90
|
||||||
MB_VALUE EQU $91
|
MB_VALUE EQU $91
|
||||||
MB_CHUNK EQU $92
|
MB_CHUNK EQU $92
|
||||||
MB_ADDRL EQU $91
|
MB_ADDRL EQU $91
|
||||||
@ -98,7 +97,7 @@ MB_FRAME_DIFF EQU $94
|
|||||||
;COLOR1 EQU $E0
|
;COLOR1 EQU $E0
|
||||||
;COLOR2 EQU $E1
|
;COLOR2 EQU $E1
|
||||||
;MATCH EQU $E2
|
;MATCH EQU $E2
|
||||||
;XX EQU $E3
|
XX EQU $E3
|
||||||
;YY EQU $E4
|
;YY EQU $E4
|
||||||
;SHIPY EQU $E4
|
;SHIPY EQU $E4
|
||||||
;YADD EQU $E5
|
;YADD EQU $E5
|
||||||
@ -116,7 +115,7 @@ DRAW_PAGE EQU $EE
|
|||||||
;LASTKEY EQU $F1
|
;LASTKEY EQU $F1
|
||||||
;PADDLE_STATUS EQU $F2
|
;PADDLE_STATUS EQU $F2
|
||||||
XPOS EQU $F3
|
XPOS EQU $F3
|
||||||
;YPOS EQU $F4
|
YPOS EQU $F4
|
||||||
TEMP EQU $FA
|
TEMP EQU $FA
|
||||||
;RUN EQU $FA
|
;RUN EQU $FA
|
||||||
;TEMP2 EQU $FB
|
;TEMP2 EQU $FB
|
||||||
|
Loading…
Reference in New Issue
Block a user