1
0
mirror of https://github.com/deater/dos33fsprogs.git synced 2025-03-22 17:30:56 +00:00

driven: add credits

This commit is contained in:
Vince Weaver 2024-10-23 23:49:07 -04:00
parent 802e586561
commit 7725a54281
8 changed files with 1288 additions and 113 deletions

@ -11,7 +11,8 @@ all: driven.dsk
driven.dsk: QBOOT QLOAD \
MUSIC \
music.inc qload.inc \
./part00_intro/INTRO
./part00_intro/INTRO \
./part20_credits/CREDITS
cp $(EMPTY_DISK) driven.dsk
$(DOS33_RAW) driven.dsk 0 0 QBOOT 0 1
$(DOS33_RAW) driven.dsk 0 2 QBOOT 1 1
@ -19,6 +20,7 @@ driven.dsk: QBOOT QLOAD \
$(DOS33_RAW) driven.dsk 1 0 QLOAD 0 0
$(DOS33_RAW) driven.dsk 4 0 MUSIC 0 0
$(DOS33_RAW) driven.dsk 9 0 ./part00_intro/INTRO 0 0
$(DOS33_RAW) driven.dsk 13 0 ./part20_credits/CREDITS 0 0
#second_d1.dsk: QBOOT QLOAD \
# music.inc qload.inc \
@ -64,38 +66,8 @@ driven.dsk: QBOOT QLOAD \
part00_intro/INTRO:
cd part00_intro && make
part01_intropan/INTRO:
cd part01_intropan && make
part04_chess_shapes/CHESS:
cd part04_chess_shapes && make
part08_gorilla/GORILLA:
cd part08_gorilla && make
part09_leaves/LEAVES:
cd part09_leaves && make
part10_lens_rotozoom/LENS:
cd part10_lens_rotozoom && make
part12_plasma/PLASMA:
cd part12_plasma && make
part13_plasmacube/PLASMACUBE:
cd part13_plasmacube && make
part14_dotbounce/DOTS:
cd part14_dotbounce && make
part15_transmission/SPHERES:
cd part15_transmission && make
part16_ocean/OCEAN:
cd part16_ocean && make
part17_polar/POLAR:
cd part17_polar && make
part20_credits/CREDITS:
cd part20_credits && make
####
@ -232,6 +204,7 @@ clean:
rm -f *~ *.o *.lst HELLO SECOND QBOOT QLOAD MUSIC START
rm -f qload.inc qload2.inc music.inc music2.inc
cd part00_intro && make clean
cd part20_credits && make clean
###

@ -0,0 +1,89 @@
hgr_clear_screen:
lda DRAW_PAGE
beq hgr_page1_clearscreen
lda #0
beq hgr_page2_clearscreen
hgr_page1_clearscreen:
ldy #0
hgr_page1_cls_loop:
sta $2000,Y
sta $2100,Y
sta $2200,Y
sta $2300,Y
sta $2400,Y
sta $2500,Y
sta $2600,Y
sta $2700,Y
sta $2800,Y
sta $2900,Y
sta $2A00,Y
sta $2B00,Y
sta $2C00,Y
sta $2D00,Y
sta $2E00,Y
sta $2F00,Y
sta $3000,Y
sta $3100,Y
sta $3200,Y
sta $3300,Y
sta $3400,Y
sta $3500,Y
sta $3600,Y
sta $3700,Y
sta $3800,Y
sta $3900,Y
sta $3A00,Y
sta $3B00,Y
sta $3C00,Y
sta $3D00,Y
sta $3E00,Y
sta $3F00,Y
iny
bne hgr_page1_cls_loop
rts
hgr_page2_clearscreen:
ldy #0
hgr_page2_cls_loop:
sta $4000,Y
sta $4100,Y
sta $4200,Y
sta $4300,Y
sta $4400,Y
sta $4500,Y
sta $4600,Y
sta $4700,Y
sta $4800,Y
sta $4900,Y
sta $4A00,Y
sta $4B00,Y
sta $4C00,Y
sta $4D00,Y
sta $4E00,Y
sta $4F00,Y
sta $5000,Y
sta $5100,Y
sta $5200,Y
sta $5300,Y
sta $5400,Y
sta $5500,Y
sta $5600,Y
sta $5700,Y
sta $5800,Y
sta $5900,Y
sta $5A00,Y
sta $5B00,Y
sta $5C00,Y
sta $5D00,Y
sta $5E00,Y
sta $5F00,Y
iny
bne hgr_page2_cls_loop
rts

@ -0,0 +1,31 @@
include ../../../Makefile.inc
DOS33 = ../../../utils/dos33fs-utils/dos33
DOS33_RAW = ../../../utils/dos33fs-utils/dos33_raw
EMPTY_DISK = ../../../empty_disk/empty.dsk
TOKENIZE = ../../../utils/asoft_basic-utils/tokenize_asoft
LINKER_SCRIPTS = ../../../linker_scripts/
all: CREDITS
####
CREDITS: credits.o
ld65 -o CREDITS credits.o -C $(LINKER_SCRIPTS)/apple2_8000.inc
credits.o: credits.s vertical_scroll.s \
font_4am_1x8.s ./fonts/font_4am_1x8_data.s \
../zp.inc ../hardware.inc ../qload.inc
ca65 -o credits.o credits.s -l credits.lst
###
#graphics/summary1_invert.hgr.zx02:
# cd graphics && make
###
clean:
rm -f *~ *.o *.lst CREDITS

@ -0,0 +1,219 @@
; Credits
; o/~ It's the credits, yeah, that's the best part
; When the movie ends and the reading starts o/~
;
; by deater (Vince Weaver) <vince@deater.net>
.include "../zp.inc"
.include "../hardware.inc"
.include "../qload.inc"
.include "../music.inc"
mod7_table = $1c00
div7_table = $1d00
hposn_low = $1e00
hposn_high = $1f00
intro_start:
;=====================
; initializations
;=====================
bit KEYRESET ; clear just in case
;===================
; Load graphics
;===================
load_loop:
bit SET_GR
bit HIRES
bit FULLGR
bit PAGE1
lda #0
jsr hgr_page1_clearscreen
; jsr hgr_make_tables
;=======================
;=======================
; scroll job
;=======================
;=======================
ldx #8
stx FRAME
; print message
lda #192 ; top of $4000 PAGE2
sta CV
lda #<final_credits
sta BACKUP_OUTL
lda #>final_credits
sta BACKUP_OUTH
do_scroll:
inc FRAME
lda FRAME
cmp #9
bne no_update_message
; and #$7
; bne no_update_message
lda #0
sta FRAME
; clear lines on Page2
; we cheat and setup 192-200 to map to top of page2
ldx #200
cl_outer_loop:
lda hposn_low,X
sta INL
lda hposn_high,X
sta INH
ldy #39
lda #0
cl_inner_loop:
sta (INL),Y
dey
bpl cl_inner_loop
dex
cpx #191
bne cl_outer_loop
urgh:
lda BACKUP_OUTL
sta OUTL
lda BACKUP_OUTH
sta OUTH
jsr draw_condensed_1x8_again
; point to location after
sec ; always add 1
; inx
txa
adc OUTL
sta BACKUP_OUTL
lda #0
adc OUTH
sta BACKUP_OUTH
no_update_message:
jsr hgr_vertical_scroll
jmp do_scroll
.align $100
.include "../wait_keypress.s"
; .include "../zx02_optim.s"
.include "../hgr_clear_screen.s"
.include "vertical_scroll.s"
.include "font_4am_1x8.s"
.include "fonts/font_4am_1x8_data.s"
; .include "font_4am_1x10.s"
; .include "fonts/font_4am_1x10_data.s"
; .include "thumbnail_credits.s"
.include "../irq_wait.s"
;summary1_data:
; .incbin "graphics/summary1_invert.hgr.zx02"
;summary2_data:
; .incbin "graphics/summary2_invert.hgr.zx02"
final_credits:
.byte 12,"Apple ][ Reality",0
.byte 20," ",0
.byte 11,"by Deater / Desire",0
.byte 20," ",0
.byte 4,"This demo won the oldskool demo",0
.byte 5,"competition at Demosplash 2023",0
.byte 8,"held in Pittsburgh, PA,",0
.byte 12,"in November 2023.",0
.byte 20," ",0
.byte 13,"Apologies to:",0
.byte 14,"Future Crew",0
.byte 20," ",0
.byte 15,"Code used:",0
.byte 9,"French Touch -- Plasma",0
.byte 7,"DMSC -- ZX02 decompression",0
.byte 7,"qkumba -- fast disk loader",0
.byte 15,"4am - font",0
.byte 2,"K. Kennaway -- iipix image converter",0
.byte 3,"O. Schmidt -- sampled audio player",0
.byte 6,"Hellmood -- circles/sierzoom",0
.byte 20," ",0
.byte 11,"Special Thanks to:",0
.byte 5,"mA2E for providing intro music",0
.byte 7,"at the extreme-last minute",0
.byte 20," ",0
.byte 15,"Greets to:",0
.byte 14,"French Touch",0
.byte 18,"4am",0
.byte 17,"qkumba",0
.byte 17,"Grouik",0
.byte 14,"Fenarinarsa",0
.byte 14,"Ninjaforce",0
.byte 15,"T. Greene",0
.byte 15,"K. Savetz",0
.byte 15,"Boo Atari",0
.byte 15,"textfiles",0
.byte 13,"Stealth Susie",0
.byte 17,"wiz21b",0
.byte 17,"Trixter",0
.byte 18,"LGR",0
.byte 16,"Hellmood",0
.byte 17,"Foone",0
.byte 20," ",0
.byte 14,"Talbot 0101",0
.byte 12,"Utopia BBS (410)",0
.byte 10,"Weave's World Talker",0
.byte 8,"Tell 'em Deater sent ya",0
; end
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 12,"Apple II Forever",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte 20," ",0
.byte $FF

@ -0,0 +1,880 @@
font_1x8_row0:
.byte $08 ;
.byte $08 ;
.byte $00 ;
.byte $10 ;
.byte $10 ;
.byte $14 ;
.byte $14 ;
.byte $14 ;
.byte $14 ;
.byte $00 ;
.byte $00 ;
.byte $00 ;
.byte $14 ;
.byte $00 ;
.byte $08 ; !
.byte $14 ; "
.byte $14 ; #
.byte $08 ; $
.byte $06 ; %
.byte $0C ; &
.byte $08 ; '
.byte $08 ; (
.byte $08 ; )
.byte $00 ; *
.byte $00 ; +
.byte $00 ; ,
.byte $00 ; -
.byte $00 ; .
.byte $00 ; /
.byte $1C ; 0
.byte $08 ; 1
.byte $1C ; 2
.byte $1C ; 3
.byte $10 ; 4
.byte $3E ; 5
.byte $18 ; 6
.byte $3E ; 7
.byte $1C ; 8
.byte $1C ; 9
.byte $00 ; :
.byte $00 ; ;
.byte $10 ; <
.byte $00 ; =
.byte $04 ; >
.byte $1C ; ?
.byte $1C ; @
.byte $08 ; A
.byte $1E ; B
.byte $18 ; C
.byte $0E ; D
.byte $3E ; E
.byte $3E ; F
.byte $38 ; G
.byte $22 ; H
.byte $1C ; I
.byte $38 ; J
.byte $26 ; K
.byte $0E ; L
.byte $22 ; M
.byte $22 ; N
.byte $08 ; O
.byte $1E ; P
.byte $1C ; Q
.byte $1E ; R
.byte $1C ; S
.byte $3E ; T
.byte $22 ; U
.byte $22 ; V
.byte $22 ; W
.byte $22 ; X
.byte $22 ; Y
.byte $3E ; Z
.byte $3C ; [
.byte $00 ; \
.byte $1E ; ]
.byte $08 ; ^
.byte $00 ; _
.byte $08 ; `
.byte $00 ; a
.byte $06 ; b
.byte $00 ; c
.byte $30 ; d
.byte $00 ; e
.byte $18 ; f
.byte $00 ; g
.byte $06 ; h
.byte $08 ; i
.byte $20 ; j
.byte $06 ; k
.byte $0C ; l
.byte $00 ; m
.byte $00 ; n
.byte $00 ; o
.byte $00 ; p
.byte $00 ; q
.byte $00 ; r
.byte $00 ; s
.byte $00 ; t
.byte $00 ; u
.byte $00 ; v
.byte $00 ; w
.byte $00 ; x
.byte $00 ; y
.byte $00 ; z
.byte $30 ; {
.byte $08 ; |
.byte $06 ; }
.byte $2C ; ~
.byte $00 ;
font_1x8_row1:
.byte $08 ;
.byte $08 ;
.byte $00 ;
.byte $08 ;
.byte $08 ;
.byte $14 ;
.byte $14 ;
.byte $14 ;
.byte $14 ;
.byte $00 ;
.byte $00 ;
.byte $00 ;
.byte $14 ;
.byte $00 ;
.byte $1C ; !
.byte $14 ; "
.byte $14 ; #
.byte $3C ; $
.byte $26 ; %
.byte $12 ; &
.byte $08 ; '
.byte $04 ; (
.byte $10 ; )
.byte $22 ; *
.byte $08 ; +
.byte $00 ; ,
.byte $00 ; -
.byte $00 ; .
.byte $20 ; /
.byte $22 ; 0
.byte $0C ; 1
.byte $22 ; 2
.byte $22 ; 3
.byte $18 ; 4
.byte $02 ; 5
.byte $04 ; 6
.byte $22 ; 7
.byte $22 ; 8
.byte $22 ; 9
.byte $08 ; :
.byte $08 ; ;
.byte $08 ; <
.byte $00 ; =
.byte $08 ; >
.byte $22 ; ?
.byte $22 ; @
.byte $14 ; A
.byte $24 ; B
.byte $24 ; C
.byte $14 ; D
.byte $24 ; E
.byte $24 ; F
.byte $04 ; G
.byte $22 ; H
.byte $08 ; I
.byte $10 ; J
.byte $24 ; K
.byte $04 ; L
.byte $36 ; M
.byte $26 ; N
.byte $14 ; O
.byte $24 ; P
.byte $22 ; Q
.byte $24 ; R
.byte $22 ; S
.byte $2A ; T
.byte $22 ; U
.byte $22 ; V
.byte $22 ; W
.byte $22 ; X
.byte $22 ; Y
.byte $22 ; Z
.byte $04 ; [
.byte $02 ; \
.byte $10 ; ]
.byte $14 ; ^
.byte $00 ; _
.byte $08 ; `
.byte $00 ; a
.byte $04 ; b
.byte $00 ; c
.byte $10 ; d
.byte $00 ; e
.byte $24 ; f
.byte $00 ; g
.byte $04 ; h
.byte $00 ; i
.byte $00 ; j
.byte $04 ; k
.byte $08 ; l
.byte $00 ; m
.byte $00 ; n
.byte $00 ; o
.byte $00 ; p
.byte $00 ; q
.byte $00 ; r
.byte $00 ; s
.byte $04 ; t
.byte $00 ; u
.byte $00 ; v
.byte $00 ; w
.byte $00 ; x
.byte $00 ; y
.byte $00 ; z
.byte $08 ; {
.byte $08 ; |
.byte $08 ; }
.byte $1A ; ~
.byte $08 ;
font_1x8_row2:
.byte $7F ;
.byte $08 ;
.byte $7F ;
.byte $3E ;
.byte $36 ;
.byte $17 ;
.byte $74 ;
.byte $17 ;
.byte $74 ;
.byte $1F ;
.byte $7C ;
.byte $7F ;
.byte $14 ;
.byte $00 ;
.byte $1C ; !
.byte $14 ; "
.byte $3E ; #
.byte $02 ; $
.byte $10 ; %
.byte $0C ; &
.byte $04 ; '
.byte $02 ; (
.byte $20 ; )
.byte $1C ; *
.byte $08 ; +
.byte $00 ; ,
.byte $00 ; -
.byte $00 ; .
.byte $10 ; /
.byte $32 ; 0
.byte $0A ; 1
.byte $20 ; 2
.byte $20 ; 3
.byte $14 ; 4
.byte $1E ; 5
.byte $02 ; 6
.byte $10 ; 7
.byte $22 ; 8
.byte $22 ; 9
.byte $08 ; :
.byte $08 ; ;
.byte $04 ; <
.byte $3E ; =
.byte $10 ; >
.byte $20 ; ?
.byte $2A ; @
.byte $22 ; A
.byte $24 ; B
.byte $02 ; C
.byte $24 ; D
.byte $04 ; E
.byte $04 ; F
.byte $02 ; G
.byte $22 ; H
.byte $08 ; I
.byte $10 ; J
.byte $14 ; K
.byte $04 ; L
.byte $2A ; M
.byte $2A ; N
.byte $22 ; O
.byte $24 ; P
.byte $22 ; Q
.byte $24 ; R
.byte $02 ; S
.byte $08 ; T
.byte $22 ; U
.byte $22 ; V
.byte $22 ; W
.byte $14 ; X
.byte $14 ; Y
.byte $10 ; Z
.byte $04 ; [
.byte $04 ; \
.byte $10 ; ]
.byte $22 ; ^
.byte $00 ; _
.byte $10 ; `
.byte $1C ; a
.byte $04 ; b
.byte $1C ; c
.byte $10 ; d
.byte $1C ; e
.byte $04 ; f
.byte $1C ; g
.byte $1C ; h
.byte $0C ; i
.byte $30 ; j
.byte $24 ; k
.byte $08 ; l
.byte $16 ; m
.byte $1A ; n
.byte $1C ; o
.byte $1E ; p
.byte $3C ; q
.byte $1A ; r
.byte $3C ; s
.byte $1E ; t
.byte $22 ; u
.byte $22 ; v
.byte $22 ; w
.byte $22 ; x
.byte $22 ; y
.byte $3E ; z
.byte $08 ; {
.byte $08 ; |
.byte $08 ; }
.byte $00 ; ~
.byte $14 ;
font_1x8_row3:
.byte $00 ;
.byte $08 ;
.byte $00 ;
.byte $7F ;
.byte $41 ;
.byte $10 ;
.byte $04 ;
.byte $10 ;
.byte $04 ;
.byte $10 ;
.byte $04 ;
.byte $00 ;
.byte $14 ;
.byte $00 ;
.byte $08 ; !
.byte $00 ; "
.byte $14 ; #
.byte $1C ; $
.byte $08 ; %
.byte $2A ; &
.byte $00 ; '
.byte $02 ; (
.byte $20 ; )
.byte $3E ; *
.byte $3E ; +
.byte $00 ; ,
.byte $3E ; -
.byte $00 ; .
.byte $08 ; /
.byte $2A ; 0
.byte $08 ; 1
.byte $18 ; 2
.byte $18 ; 3
.byte $12 ; 4
.byte $20 ; 5
.byte $1E ; 6
.byte $08 ; 7
.byte $1C ; 8
.byte $3C ; 9
.byte $00 ; :
.byte $00 ; ;
.byte $02 ; <
.byte $00 ; =
.byte $20 ; >
.byte $10 ; ?
.byte $3A ; @
.byte $22 ; A
.byte $1C ; B
.byte $02 ; C
.byte $24 ; D
.byte $1C ; E
.byte $1C ; F
.byte $02 ; G
.byte $3E ; H
.byte $08 ; I
.byte $10 ; J
.byte $0C ; K
.byte $04 ; L
.byte $22 ; M
.byte $32 ; N
.byte $22 ; O
.byte $1C ; P
.byte $22 ; Q
.byte $1C ; R
.byte $1C ; S
.byte $08 ; T
.byte $22 ; U
.byte $22 ; V
.byte $2A ; W
.byte $08 ; X
.byte $08 ; Y
.byte $08 ; Z
.byte $04 ; [
.byte $08 ; \
.byte $10 ; ]
.byte $00 ; ^
.byte $00 ; _
.byte $00 ; `
.byte $20 ; a
.byte $1C ; b
.byte $22 ; c
.byte $1C ; d
.byte $22 ; e
.byte $0E ; f
.byte $22 ; g
.byte $24 ; h
.byte $08 ; i
.byte $20 ; j
.byte $14 ; k
.byte $08 ; l
.byte $2A ; m
.byte $26 ; n
.byte $22 ; o
.byte $24 ; p
.byte $12 ; q
.byte $24 ; r
.byte $02 ; s
.byte $04 ; t
.byte $22 ; u
.byte $22 ; v
.byte $22 ; w
.byte $14 ; x
.byte $22 ; y
.byte $10 ; z
.byte $06 ; {
.byte $00 ; |
.byte $30 ; }
.byte $00 ; ~
.byte $22 ;
font_1x8_row4:
.byte $7F ;
.byte $08 ;
.byte $7F ;
.byte $3F ;
.byte $21 ;
.byte $17 ;
.byte $74 ;
.byte $1F ;
.byte $7C ;
.byte $17 ;
.byte $74 ;
.byte $7F ;
.byte $14 ;
.byte $00 ;
.byte $08 ; !
.byte $00 ; "
.byte $3E ; #
.byte $20 ; $
.byte $04 ; %
.byte $12 ; &
.byte $00 ; '
.byte $02 ; (
.byte $20 ; )
.byte $1C ; *
.byte $08 ; +
.byte $08 ; ,
.byte $00 ; -
.byte $00 ; .
.byte $04 ; /
.byte $26 ; 0
.byte $08 ; 1
.byte $04 ; 2
.byte $20 ; 3
.byte $3E ; 4
.byte $20 ; 5
.byte $22 ; 6
.byte $04 ; 7
.byte $22 ; 8
.byte $20 ; 9
.byte $08 ; :
.byte $08 ; ;
.byte $04 ; <
.byte $3E ; =
.byte $10 ; >
.byte $08 ; ?
.byte $1A ; @
.byte $3E ; A
.byte $24 ; B
.byte $02 ; C
.byte $24 ; D
.byte $04 ; E
.byte $04 ; F
.byte $32 ; G
.byte $22 ; H
.byte $08 ; I
.byte $12 ; J
.byte $0C ; K
.byte $04 ; L
.byte $22 ; M
.byte $22 ; N
.byte $22 ; O
.byte $04 ; P
.byte $2A ; Q
.byte $0C ; R
.byte $20 ; S
.byte $08 ; T
.byte $22 ; U
.byte $22 ; V
.byte $2A ; W
.byte $14 ; X
.byte $08 ; Y
.byte $04 ; Z
.byte $04 ; [
.byte $10 ; \
.byte $10 ; ]
.byte $00 ; ^
.byte $00 ; _
.byte $00 ; `
.byte $3C ; a
.byte $24 ; b
.byte $02 ; c
.byte $12 ; d
.byte $3E ; e
.byte $04 ; f
.byte $22 ; g
.byte $24 ; h
.byte $08 ; i
.byte $20 ; j
.byte $0C ; k
.byte $08 ; l
.byte $2A ; m
.byte $22 ; n
.byte $22 ; o
.byte $24 ; p
.byte $12 ; q
.byte $04 ; r
.byte $1C ; s
.byte $04 ; t
.byte $22 ; u
.byte $22 ; v
.byte $2A ; w
.byte $08 ; x
.byte $22 ; y
.byte $08 ; z
.byte $08 ; {
.byte $08 ; |
.byte $08 ; }
.byte $00 ; ~
.byte $22 ;
font_1x8_row5:
.byte $00 ;
.byte $08 ;
.byte $08 ;
.byte $3F ;
.byte $21 ;
.byte $14 ;
.byte $14 ;
.byte $00 ;
.byte $00 ;
.byte $14 ;
.byte $14 ;
.byte $00 ;
.byte $14 ;
.byte $00 ;
.byte $00 ; !
.byte $00 ; "
.byte $14 ; #
.byte $1E ; $
.byte $32 ; %
.byte $12 ; &
.byte $00 ; '
.byte $04 ; (
.byte $10 ; )
.byte $22 ; *
.byte $08 ; +
.byte $08 ; ,
.byte $00 ; -
.byte $08 ; .
.byte $02 ; /
.byte $22 ; 0
.byte $08 ; 1
.byte $22 ; 2
.byte $22 ; 3
.byte $10 ; 4
.byte $22 ; 5
.byte $22 ; 6
.byte $04 ; 7
.byte $22 ; 8
.byte $10 ; 9
.byte $08 ; :
.byte $08 ; ;
.byte $08 ; <
.byte $00 ; =
.byte $08 ; >
.byte $00 ; ?
.byte $02 ; @
.byte $22 ; A
.byte $24 ; B
.byte $24 ; C
.byte $14 ; D
.byte $24 ; E
.byte $04 ; F
.byte $24 ; G
.byte $22 ; H
.byte $08 ; I
.byte $12 ; J
.byte $14 ; K
.byte $24 ; L
.byte $22 ; M
.byte $22 ; N
.byte $14 ; O
.byte $04 ; P
.byte $1C ; Q
.byte $14 ; R
.byte $22 ; S
.byte $08 ; T
.byte $22 ; U
.byte $14 ; V
.byte $36 ; W
.byte $22 ; X
.byte $08 ; Y
.byte $22 ; Z
.byte $04 ; [
.byte $20 ; \
.byte $10 ; ]
.byte $00 ; ^
.byte $00 ; _
.byte $00 ; `
.byte $22 ; a
.byte $24 ; b
.byte $22 ; c
.byte $12 ; d
.byte $02 ; e
.byte $04 ; f
.byte $3C ; g
.byte $24 ; h
.byte $08 ; i
.byte $22 ; j
.byte $14 ; k
.byte $08 ; l
.byte $2A ; m
.byte $22 ; n
.byte $22 ; o
.byte $1C ; p
.byte $1C ; q
.byte $04 ; r
.byte $20 ; s
.byte $24 ; t
.byte $32 ; u
.byte $14 ; v
.byte $2A ; w
.byte $14 ; x
.byte $3C ; y
.byte $04 ; z
.byte $08 ; {
.byte $08 ; |
.byte $08 ; }
.byte $00 ; ~
.byte $3E ;
font_1x8_row6:
.byte $00 ;
.byte $08 ;
.byte $08 ;
.byte $7E ;
.byte $4A ;
.byte $14 ;
.byte $14 ;
.byte $00 ;
.byte $00 ;
.byte $14 ;
.byte $14 ;
.byte $00 ;
.byte $14 ;
.byte $00 ;
.byte $08 ; !
.byte $00 ; "
.byte $14 ; #
.byte $08 ; $
.byte $30 ; %
.byte $2C ; &
.byte $00 ; '
.byte $08 ; (
.byte $08 ; )
.byte $00 ; *
.byte $00 ; +
.byte $04 ; ,
.byte $00 ; -
.byte $08 ; .
.byte $00 ; /
.byte $1C ; 0
.byte $3E ; 1
.byte $3E ; 2
.byte $1C ; 3
.byte $38 ; 4
.byte $1C ; 5
.byte $1C ; 6
.byte $04 ; 7
.byte $1C ; 8
.byte $0C ; 9
.byte $00 ; :
.byte $04 ; ;
.byte $10 ; <
.byte $00 ; =
.byte $04 ; >
.byte $08 ; ?
.byte $3C ; @
.byte $22 ; A
.byte $1E ; B
.byte $18 ; C
.byte $0E ; D
.byte $3E ; E
.byte $0E ; F
.byte $38 ; G
.byte $22 ; H
.byte $1C ; I
.byte $0C ; J
.byte $26 ; K
.byte $3E ; L
.byte $22 ; M
.byte $22 ; N
.byte $08 ; O
.byte $0E ; P
.byte $20 ; Q
.byte $26 ; R
.byte $1C ; S
.byte $1C ; T
.byte $1C ; U
.byte $08 ; V
.byte $22 ; W
.byte $22 ; X
.byte $1C ; Y
.byte $3E ; Z
.byte $3C ; [
.byte $00 ; \
.byte $1E ; ]
.byte $00 ; ^
.byte $00 ; _
.byte $00 ; `
.byte $3C ; a
.byte $1C ; b
.byte $1C ; c
.byte $3C ; d
.byte $1C ; e
.byte $0E ; f
.byte $20 ; g
.byte $26 ; h
.byte $1C ; i
.byte $22 ; j
.byte $24 ; k
.byte $1C ; l
.byte $22 ; m
.byte $22 ; n
.byte $1C ; o
.byte $04 ; p
.byte $10 ; q
.byte $0E ; r
.byte $1E ; s
.byte $18 ; t
.byte $2C ; u
.byte $08 ; v
.byte $36 ; w
.byte $22 ; x
.byte $20 ; y
.byte $3E ; z
.byte $30 ; {
.byte $08 ; |
.byte $06 ; }
.byte $00 ; ~
.byte $00 ;
font_1x8_row7:
.byte $00 ;
.byte $08 ;
.byte $08 ;
.byte $36 ;
.byte $36 ;
.byte $14 ;
.byte $14 ;
.byte $00 ;
.byte $00 ;
.byte $14 ;
.byte $14 ;
.byte $00 ;
.byte $14 ;
.byte $00 ;
.byte $00 ; !
.byte $00 ; "
.byte $00 ; #
.byte $00 ; $
.byte $00 ; %
.byte $00 ; &
.byte $00 ; '
.byte $00 ; (
.byte $00 ; )
.byte $00 ; *
.byte $00 ; +
.byte $00 ; ,
.byte $00 ; -
.byte $00 ; .
.byte $00 ; /
.byte $00 ; 0
.byte $00 ; 1
.byte $00 ; 2
.byte $00 ; 3
.byte $00 ; 4
.byte $00 ; 5
.byte $00 ; 6
.byte $00 ; 7
.byte $00 ; 8
.byte $00 ; 9
.byte $00 ; :
.byte $00 ; ;
.byte $00 ; <
.byte $00 ; =
.byte $00 ; >
.byte $00 ; ?
.byte $00 ; @
.byte $00 ; A
.byte $00 ; B
.byte $00 ; C
.byte $00 ; D
.byte $00 ; E
.byte $00 ; F
.byte $00 ; G
.byte $00 ; H
.byte $00 ; I
.byte $00 ; J
.byte $00 ; K
.byte $00 ; L
.byte $00 ; M
.byte $00 ; N
.byte $00 ; O
.byte $00 ; P
.byte $00 ; Q
.byte $00 ; R
.byte $00 ; S
.byte $00 ; T
.byte $00 ; U
.byte $00 ; V
.byte $00 ; W
.byte $00 ; X
.byte $00 ; Y
.byte $00 ; Z
.byte $00 ; [
.byte $00 ; \
.byte $00 ; ]
.byte $00 ; ^
.byte $7F ; _
.byte $00 ; `
.byte $00 ; a
.byte $00 ; b
.byte $00 ; c
.byte $00 ; d
.byte $00 ; e
.byte $00 ; f
.byte $1E ; g
.byte $00 ; h
.byte $00 ; i
.byte $1C ; j
.byte $00 ; k
.byte $00 ; l
.byte $00 ; m
.byte $00 ; n
.byte $00 ; o
.byte $0E ; p
.byte $38 ; q
.byte $00 ; r
.byte $00 ; s
.byte $00 ; t
.byte $00 ; u
.byte $00 ; v
.byte $00 ; w
.byte $00 ; x
.byte $1E ; y
.byte $00 ; z
.byte $00 ; {
.byte $00 ; |
.byte $00 ; }
.byte $00 ; ~
.byte $00 ;

@ -0,0 +1,29 @@
hgr_vertical_scroll:
ldx #0
outer_vscroll_loop:
lda hposn_low,X
sta OUTL
lda hposn_high,X
sta OUTH
inx
lda hposn_low,X
sta INL
lda hposn_high,X
sta INH
ldy #39
inner_vscroll_loop:
lda (INL),Y
sta (OUTL),Y
dey
bpl inner_vscroll_loop
cpx #200
bne outer_vscroll_loop
rts

@ -163,47 +163,46 @@ error_string:
.endif
which_disk_array:
.byte 1,1,1,1 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
.byte 1,1,1,1 ; GORILLA,LEAVES,LENS,PLASMA
.byte 1,1,1,1 ; CUBE,DOTS,SPHERES,OCEAN
.byte 1,1 ; POLAR,FAKE_BIOS
.byte 1,1,1,1 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CREDITS
.byte 1,1,1,1 ;
.byte 1,1,1,1 ;
.byte 1,1 ;
load_address_array:
.byte $D0,$D0,$80,$80 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
.byte $60,$60,$60,$60 ; GORILLA,LEAVES,LENS,PLASMA
.byte $60,$60,$60,$60 ; CUBE,DOTS,SPHERES,OCEAN
.byte $60,$80 ; POLAR,FAKE_BIOS
.byte $D0,$D0,$80,$80 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CREDITS
.byte $60,$60,$60,$60 ;
.byte $60,$60,$60,$60 ;
.byte $60,$80 ;
start_address:
.byte $D0,$D0,$80,$80 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
.byte $60,$60,$60,$80 ; GORILLA,LEAVES,LENS,PLASMA
.byte $80,$80,$80,$60 ; CUBE,DOTS,SPHERES,OCEAN
.byte $80,$80 ; POLAR,FAKE_BIOS
.byte $D0,$D0,$80,$80 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CREDITS
.byte $60,$60,$60,$80 ;
.byte $80,$80,$80,$60 ;
.byte $80,$80 ;
aux_dest:
.byte $D0,$D0,$A0,$A0 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
.byte $70,$50,$40,$30 ; GORILLA,LEAVES,LENS,PLASMA
.byte $20,$10,$80,$20 ; CUBE,DOTS,SPHERES,OCEAN
.byte $10,$A0 ; POLAR,FAKE_BIOS
.byte $D0,$D0,$A0,$A0 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CREDITS
.byte $70,$50,$40,$30 ;
.byte $20,$10,$80,$20 ;
.byte $10,$A0 ;
track_array:
.byte 2,4,10,15 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
.byte 19,21,23,24 ; GORILLA,LEAVES,LENS,PLASMA
.byte 25,26,27,28 ; CUBE,DOTS,SPHERES,OCEAN
.byte 34,9 ; POLAR,FAKE_BIOS
.byte 2,4,9,13 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CREDITS
.byte 19,21,23,24 ;
.byte 25,26,27,28 ;
.byte 34,9 ;
sector_array:
.byte 0,0,0,0 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
.byte 0,0,0,0 ; GORILLA,LEAVES,LENS,PLASMA
.byte 0,0,0,0 ; CUBE,DOTS,SPHERES,OCEAN
.byte 0,0 ; POLAR,FAKE_BIOS
.byte 0,0,0,0 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CREDITS
.byte 0,0,0,0 ;
.byte 0,0,0,0 ;
.byte 0,0 ;
length_array:
.byte 32,48,64,48 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CHESS
.byte 32,32,16,16 ; GORILLA,LEAVES,LENS,PLASMA
.byte 16,16,16,96 ; CUBE,DOTS,SPHERES,OCEAN
.byte 16,16 ; POLAR,FAKE_BIOS
.byte 32,48,48,64 ; MUSIC_INTRO, MUSIC_MAIN, INTRO, CREDITS
.byte 32,32,16,16 ;
.byte 16,16,16,96 ;
.byte 16,16 ;
PT3_ENABLE_APPLE_IIC = 1

@ -148,7 +148,7 @@ load_program_loop:
; load from disk
lda #13 ; INTRO
lda #2 ; INTRO
sta WHICH_LOAD
jsr load_file
@ -161,7 +161,7 @@ load_program_loop:
cli ; start music
jsr $8000
.if 0
;=======================
;=======================
@ -173,70 +173,25 @@ load_program_loop:
jsr mute_ay_both
jsr clear_ay_both ; stop from making noise
; load music
; load credits
lda #1 ; MUSIC_MAIN
lda #3 ; CREDITS
sta WHICH_LOAD
jsr load_file
; load from disk
lda #3 ; CHESS
sta WHICH_LOAD
jsr load_file
; restart music
;============================
; Re-Init the Mockingboard
;============================
; NOTE: I don't know how much of this is actually necessary
; wasted a lot of time debugging, leaving it as-is
; as it seems to be working
lda #0
sta DONE_PLAYING
lda #1
sta LOOP
;========================
; patch mockingboard
lda SOUND_STATUS
beq skip_mbp2
jsr mockingboard_patch ; patch to work in slots other than 4?
skip_mbp2:
jsr mockingboard_init
;=======================
; Set up 50Hz interrupt
;========================
jsr mockingboard_setup_interrupt
jsr reset_ay_both
jsr clear_ay_both
;==================
; init song
;==================
jsr pt3_init_song
cli ; start interrupts (music)
;=======================
;=======================
; Run Chess
; Run Credits
;=======================
;=======================
jsr $8000
.if 0
;==========================
;==========================
; Run 4-9, copy from AUX