mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-09 02:54:25 +00:00
ootw: intro: split off console
This commit is contained in:
parent
0d1e97c966
commit
f042f3ba6d
@ -1,11 +1,5 @@
|
||||
include ../../../Makefile.inc
|
||||
|
||||
#DOS33 = ../../utils/dos33fs-utils/dos33
|
||||
#PNG2RLE = ../../utils/gr-utils/png2rle
|
||||
#PNG2LZ4 = ../../utils/gr-utils/png2lz4
|
||||
#TOKENIZE = ../../utils/asoft_basic-utils/tokenize_asoft
|
||||
#LZSA = ~/research/lzsa/lzsa/lzsa
|
||||
|
||||
COMMON = ..
|
||||
LINKER_SCRIPTS = ../../../linker_scripts
|
||||
|
||||
@ -33,6 +27,7 @@ intro.o: intro.s \
|
||||
intro_03_elevator.s \
|
||||
intro_04_keypad.s \
|
||||
intro_05_scanner.s \
|
||||
intro_06_console.s \
|
||||
graphics/01_building/intro_car.inc \
|
||||
graphics/01_building/intro_building.inc \
|
||||
graphics/01_building/intro_building_car.inc \
|
||||
|
@ -1,7 +1,5 @@
|
||||
include ../../../../../Makefile.inc
|
||||
|
||||
#PNG2RLE = ../../../gr-utils/png2rle
|
||||
#PNG2LZ4 = ../../../gr-utils/png2lz4
|
||||
PNG2GR = ../../../../../utils/gr-utils/png2gr
|
||||
LZSA = ~/research/lzsa/lzsa/lzsa
|
||||
|
||||
@ -52,85 +50,7 @@ intro_cursor.inc: desktop_bg.lzsa \
|
||||
%.lzsa: %.gr
|
||||
$(LZSA) -r -f2 $< $@
|
||||
|
||||
|
||||
|
||||
#
|
||||
#intro_collider.inc: collider_bg.png \
|
||||
# collider_phase2_00.png collider_phase2_01.png \
|
||||
# collider_phase2_02.png collider_phase2_03.png
|
||||
# $(PNG2RLE) asm collider_bg.png collider_rle > intro_collider.inc
|
||||
# $(PNG2RLE) asm collider_phase2_00.png collider_p200_rle >> intro_collider.inc
|
||||
# $(PNG2RLE) asm collider_phase2_01.png collider_p201_rle >> intro_collider.inc
|
||||
# $(PNG2RLE) asm collider_phase2_02.png collider_p202_rle >> intro_collider.inc
|
||||
# $(PNG2RLE) asm collider_phase2_03.png collider_p203_rle >> intro_collider.inc
|
||||
#
|
||||
#
|
||||
######
|
||||
#
|
||||
#intro_desktop.inc: $(PNG2RLE) intro_desktop.png \
|
||||
# powerup01.png powerup02.png powerup03.png
|
||||
# $(PNG2RLE) asm intro_desktop.png desktop_rle > intro_desktop.inc
|
||||
# $(PNG2RLE) asm powerup01.png powerup01_rle >> intro_desktop.inc
|
||||
# $(PNG2RLE) asm powerup02.png powerup02_rle >> intro_desktop.inc
|
||||
# $(PNG2RLE) asm powerup03.png powerup03_rle >> intro_desktop.inc
|
||||
#
|
||||
######
|
||||
#
|
||||
#intro_cursor.inc: $(PNG2RLE) desktop_bg.png \
|
||||
# cursor01.png cursor02.png cursor03.png cursor04.png \
|
||||
# cursor05.png cursor06.png cursor07.png cursor08.png
|
||||
# $(PNG2RLE) asm desktop_bg.png desktop_bg_rle > intro_cursor.inc
|
||||
# $(PNG2RLE) asm cursor01.png cursor01_rle >> intro_cursor.inc
|
||||
# $(PNG2RLE) asm cursor02.png cursor02_rle >> intro_cursor.inc
|
||||
# $(PNG2RLE) asm cursor03.png cursor03_rle >> intro_cursor.inc
|
||||
# $(PNG2RLE) asm cursor04.png cursor04_rle >> intro_cursor.inc
|
||||
# $(PNG2RLE) asm cursor05.png cursor05_rle >> intro_cursor.inc
|
||||
# $(PNG2RLE) asm cursor06.png cursor06_rle >> intro_cursor.inc
|
||||
# $(PNG2RLE) asm cursor07.png cursor07_rle >> intro_cursor.inc
|
||||
# $(PNG2RLE) asm cursor08.png cursor08_rle >> intro_cursor.inc
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
|
||||
#####
|
||||
#####
|
||||
|
||||
#intro_collider_lz4.inc: $(PNG2LZ4) collider_bg.png \
|
||||
# collider_phase2_00.png collider_phase2_01.png \
|
||||
# collider_phase2_02.png collider_phase2_03.png
|
||||
# $(PNG2LZ4) asm collider_bg.png collider_rle > intro_collider_lz4.inc
|
||||
# $(PNG2LZ4) asm collider_phase2_00.png collider_p200_rle >> intro_collider_lz4.inc
|
||||
# $(PNG2LZ4) asm collider_phase2_01.png collider_p201_rle >> intro_collider_lz4.inc
|
||||
# $(PNG2LZ4) asm collider_phase2_02.png collider_p202_rle >> intro_collider_lz4.inc
|
||||
# $(PNG2LZ4) asm collider_phase2_03.png collider_p203_rle >> intro_collider_lz4.inc
|
||||
|
||||
|
||||
#####
|
||||
|
||||
#intro_desktop_lz4.inc: $(PNG2LZ4) intro_desktop.png \
|
||||
# powerup01.png powerup02.png powerup03.png
|
||||
# $(PNG2LZ4) asm intro_desktop.png desktop_rle > intro_desktop_lz4.inc
|
||||
# $(PNG2LZ4) asm powerup01.png powerup01_rle >> intro_desktop_lz4.inc
|
||||
# $(PNG2LZ4) asm powerup02.png powerup02_rle >> intro_desktop_lz4.inc
|
||||
# $(PNG2LZ4) asm powerup03.png powerup03_rle >> intro_desktop_lz4.inc
|
||||
|
||||
#####
|
||||
|
||||
#intro_cursor_lz4.inc: $(PNG2LZ4) desktop_bg.png \
|
||||
# cursor01.png cursor02.png cursor03.png cursor04.png \
|
||||
# cursor05.png cursor06.png cursor07.png cursor08.png
|
||||
# $(PNG2LZ4) asm desktop_bg.png desktop_bg_rle > intro_cursor_lz4.inc
|
||||
# $(PNG2LZ4) asm cursor01.png cursor01_rle >> intro_cursor_lz4.inc
|
||||
# $(PNG2LZ4) asm cursor02.png cursor02_rle >> intro_cursor_lz4.inc
|
||||
# $(PNG2LZ4) asm cursor03.png cursor03_rle >> intro_cursor_lz4.inc
|
||||
# $(PNG2LZ4) asm cursor04.png cursor04_rle >> intro_cursor_lz4.inc
|
||||
# $(PNG2LZ4) asm cursor05.png cursor05_rle >> intro_cursor_lz4.inc
|
||||
# $(PNG2LZ4) asm cursor06.png cursor06_rle >> intro_cursor_lz4.inc
|
||||
# $(PNG2LZ4) asm cursor07.png cursor07_rle >> intro_cursor_lz4.inc
|
||||
# $(PNG2LZ4) asm cursor08.png cursor08_rle >> intro_cursor_lz4.inc
|
||||
|
||||
|
||||
###
|
||||
|
||||
clean:
|
||||
rm -f *~ *.inc *.gr *.lzsa
|
||||
|
@ -53,525 +53,10 @@ repeat_intro:
|
||||
|
||||
jsr intro_05_scanner
|
||||
|
||||
;===============================
|
||||
; Nuclear Physics, part 1
|
||||
|
||||
;===============================
|
||||
; Sitting at Desk
|
||||
;===============================
|
||||
|
||||
;======================
|
||||
; load bg
|
||||
|
||||
lda #<(desktop_lzsa)
|
||||
sta getsrc_smc+1 ; LZSA_SRC_LO
|
||||
lda #>(desktop_lzsa)
|
||||
sta getsrc_smc+2 ; LZSA_SRC_HI
|
||||
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr decompress_lzsa2_fast
|
||||
|
||||
jsr gr_copy_to_current
|
||||
|
||||
bit FULLGR ; back to full graphics
|
||||
|
||||
jsr page_flip
|
||||
|
||||
;=================================
|
||||
; Display rises up
|
||||
;=================================
|
||||
|
||||
lda #<powerup_sequence
|
||||
sta INTRO_LOOPL
|
||||
lda #>powerup_sequence
|
||||
sta INTRO_LOOPH
|
||||
|
||||
jsr run_sequence
|
||||
|
||||
ldx #80 ; pause a bit
|
||||
jsr long_wait
|
||||
|
||||
;=================================
|
||||
; Zoom in, mouse move
|
||||
;=================================
|
||||
; FIXME: shimmery edges to display?
|
||||
|
||||
lda #<(desktop_bg_lzsa)
|
||||
sta getsrc_smc+1 ; LZSA_SRC_LO
|
||||
lda #>(desktop_bg_lzsa)
|
||||
sta getsrc_smc+2 ; LZSA_SRC_HI
|
||||
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr decompress_lzsa2_fast
|
||||
|
||||
jsr gr_copy_to_current
|
||||
jsr page_flip
|
||||
|
||||
lda #<cursor_sequence
|
||||
sta INTRO_LOOPL
|
||||
lda #>cursor_sequence
|
||||
sta INTRO_LOOPH
|
||||
|
||||
jsr run_sequence
|
||||
|
||||
ldx #40 ; pause a bit
|
||||
jsr long_wait
|
||||
|
||||
|
||||
;===============================
|
||||
; Peanut OS
|
||||
;===============================
|
||||
|
||||
peanutos:
|
||||
|
||||
; 1 2 3
|
||||
; 0123456789012345678901234567890123456789
|
||||
;
|
||||
; Copyright (c) 1977 Peanut Computer, Inc.
|
||||
; All rights reserved.
|
||||
;
|
||||
; CDOS Version 5.01
|
||||
;
|
||||
; > #
|
||||
|
||||
lda #$a0
|
||||
jsr clear_top_a
|
||||
jsr clear_bottom
|
||||
|
||||
lda #<peanut
|
||||
sta OUTL
|
||||
lda #>peanut
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list
|
||||
|
||||
jsr page_flip
|
||||
|
||||
bit SET_TEXT
|
||||
|
||||
; wait 1s
|
||||
|
||||
ldx #60
|
||||
jsr long_wait
|
||||
|
||||
lda #1
|
||||
sta CURSOR_COUNT
|
||||
|
||||
project_23_loop:
|
||||
; RUN PROJECT 23# (typed)
|
||||
; #
|
||||
|
||||
lda #$a0
|
||||
jsr clear_top_a
|
||||
jsr clear_bottom
|
||||
|
||||
lda #<peanut
|
||||
sta OUTL
|
||||
lda #>peanut
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list
|
||||
|
||||
; $550
|
||||
|
||||
lda #$5
|
||||
clc
|
||||
adc DRAW_PAGE
|
||||
sta OUTH
|
||||
lda #$52
|
||||
sta OUTL
|
||||
|
||||
ldy #0
|
||||
print_project23_loop:
|
||||
|
||||
lda project_23,Y
|
||||
eor #$80
|
||||
sta (OUTL),Y
|
||||
|
||||
iny
|
||||
cpy CURSOR_COUNT
|
||||
bne print_project23_loop
|
||||
|
||||
lda #' '
|
||||
sta (OUTL),Y
|
||||
|
||||
jsr page_flip
|
||||
|
||||
ldx #10
|
||||
jsr long_wait
|
||||
|
||||
inc CURSOR_COUNT
|
||||
lda CURSOR_COUNT
|
||||
cmp #15
|
||||
bne project_23_loop
|
||||
|
||||
ldx #20 ; brief pasue at end of line
|
||||
jsr long_wait
|
||||
|
||||
lda #(' '|$80) ; clear out last cursor
|
||||
sta (OUTL),Y
|
||||
|
||||
lda #' ' ; put cursor on next line
|
||||
sta $5d2 ; both pages
|
||||
sta $9d2
|
||||
|
||||
|
||||
; wait 1s
|
||||
|
||||
ldx #100
|
||||
jsr long_wait
|
||||
|
||||
|
||||
|
||||
;===============================
|
||||
; Particle Accelerator Screen
|
||||
;===============================
|
||||
|
||||
; MODIFICATION OF PARAMETERS
|
||||
; RELATING TO PARTICLE
|
||||
; ACCELERATOR (SYNCHOTRON).
|
||||
;____________ E: 23%
|
||||
; ROOM 3 X:\ g: .005
|
||||
; : :
|
||||
; : : RK: 77.2L
|
||||
; : :
|
||||
;___________:_: opt: g+
|
||||
; ROOM 1 X: :
|
||||
; : : Shield:
|
||||
; : : 1: OFF
|
||||
; : : 2: ON
|
||||
; : : 3: ON
|
||||
; : :
|
||||
; : : P^: 1
|
||||
; __________: :
|
||||
;/__________|/
|
||||
|
||||
; the actual intro draws background 3-d stuff first, gradually
|
||||
; then writes text
|
||||
|
||||
|
||||
lda #$a0
|
||||
jsr clear_top_a
|
||||
jsr clear_bottom
|
||||
|
||||
lda #<accelerator
|
||||
sta OUTL
|
||||
lda #>accelerator
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list
|
||||
|
||||
jsr page_flip
|
||||
|
||||
ldx #50
|
||||
jsr long_wait
|
||||
|
||||
; Cusrsor starts at E
|
||||
; Down to .005 (pauses)
|
||||
; End of RK
|
||||
; End of g+ (pauses)
|
||||
; erase +
|
||||
; change to - (pauses)
|
||||
; down to 1 (pauses)
|
||||
; down to 2
|
||||
; down to 3
|
||||
; down to P (pause)
|
||||
|
||||
ldy #0
|
||||
lda #<accel_paramaters
|
||||
sta INL
|
||||
lda #>accel_paramaters
|
||||
sta INH
|
||||
accel_input_loop:
|
||||
lda (INL),Y ; get X
|
||||
cmp #$ff
|
||||
beq done_accel_input
|
||||
sta accel_smc+1
|
||||
sta accel_smc+4
|
||||
iny
|
||||
lda (INL),Y ; get Y
|
||||
sta accel_smc+2
|
||||
clc
|
||||
adc #$4
|
||||
sta accel_smc+5
|
||||
iny
|
||||
lda (INL),Y ; get char
|
||||
iny
|
||||
accel_smc:
|
||||
sta $400
|
||||
sta $800
|
||||
|
||||
lda (INL),Y ; get time
|
||||
tax
|
||||
jsr long_wait
|
||||
iny
|
||||
jmp accel_input_loop
|
||||
done_accel_input:
|
||||
|
||||
|
||||
; FLASH: RUN EXPERIMENT ? (pause)
|
||||
; Y
|
||||
lda #2
|
||||
sta CURSOR_COUNT
|
||||
flash_loop:
|
||||
|
||||
lda #<run_experiment
|
||||
sta OUTL
|
||||
lda #>run_experiment
|
||||
sta OUTH
|
||||
jsr print_both_pages
|
||||
|
||||
ldx #75
|
||||
jsr long_wait
|
||||
|
||||
lda #<run_blank
|
||||
sta OUTL
|
||||
lda #>run_blank
|
||||
sta OUTH
|
||||
jsr print_both_pages
|
||||
|
||||
ldx #75
|
||||
jsr long_wait
|
||||
|
||||
lda CURSOR_COUNT
|
||||
cmp #1
|
||||
bne not_yes
|
||||
|
||||
lda #'Y'|$80
|
||||
sta $670
|
||||
sta $A70
|
||||
|
||||
not_yes:
|
||||
dec CURSOR_COUNT
|
||||
bpl flash_loop
|
||||
|
||||
|
||||
;======================
|
||||
; Accelerate
|
||||
;======================
|
||||
bit SET_GR
|
||||
|
||||
lda #<(collider_lzsa)
|
||||
sta getsrc_smc+1 ; LZSA_SRC_LO
|
||||
lda #>(collider_lzsa)
|
||||
sta getsrc_smc+2 ; LZSA_SRC_HI
|
||||
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr decompress_lzsa2_fast
|
||||
|
||||
jsr gr_copy_to_current
|
||||
jsr page_flip
|
||||
|
||||
bit TEXTGR
|
||||
jsr clear_bottoms
|
||||
|
||||
; --- Theoretical Study ---
|
||||
; make this inverse?
|
||||
|
||||
lda #<theoretical_study
|
||||
sta OUTL
|
||||
lda #>theoretical_study
|
||||
sta OUTH
|
||||
|
||||
jsr print_both_pages
|
||||
|
||||
;==========================
|
||||
; - Phase 0:
|
||||
; INJECTION of particles
|
||||
; into synchrotron
|
||||
|
||||
lda #0
|
||||
sta PARTICLE_COUNT
|
||||
|
||||
lda #<phase0
|
||||
sta OUTL
|
||||
lda #>phase0
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list_both_pages
|
||||
|
||||
jsr gr_copy_to_current_40x40
|
||||
jsr plot_particle
|
||||
jsr page_flip
|
||||
ldx #40
|
||||
jsr long_wait
|
||||
|
||||
jsr gr_copy_to_current_40x40
|
||||
jsr plot_particle
|
||||
jsr page_flip
|
||||
ldx #40
|
||||
jsr long_wait
|
||||
|
||||
|
||||
;===========================
|
||||
; - Phase 1:
|
||||
; Particle ACCELERATION.
|
||||
|
||||
|
||||
; Note: goes around at least 4 times
|
||||
|
||||
jsr clear_bottoms
|
||||
|
||||
; --- Theoretical Study ---
|
||||
lda #<theoretical_study
|
||||
sta OUTL
|
||||
lda #>theoretical_study
|
||||
sta OUTH
|
||||
|
||||
jsr print_both_pages
|
||||
|
||||
lda #<phase1
|
||||
sta OUTL
|
||||
lda #>phase1
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list_both_pages
|
||||
|
||||
; 5 times around? (total = 39)
|
||||
|
||||
particle_loop:
|
||||
jsr gr_copy_to_current_40x40
|
||||
jsr plot_particle
|
||||
jsr page_flip
|
||||
ldx #20
|
||||
jsr long_wait
|
||||
|
||||
lda PARTICLE_COUNT
|
||||
cmp #38
|
||||
bne particle_loop
|
||||
|
||||
;=====================================
|
||||
; - Phase 2:
|
||||
; EJECTION of particles
|
||||
; on the shield.
|
||||
|
||||
; Note: goes around once more, then does shield animation
|
||||
|
||||
jsr clear_bottoms
|
||||
|
||||
; --- Theoretical Study ---
|
||||
lda #<theoretical_study
|
||||
sta OUTL
|
||||
lda #>theoretical_study
|
||||
sta OUTH
|
||||
|
||||
jsr print_both_pages
|
||||
|
||||
lda #<phase2
|
||||
sta OUTL
|
||||
lda #>phase2
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list_both_pages
|
||||
|
||||
|
||||
jsr gr_copy_to_current_40x40
|
||||
jsr plot_particle
|
||||
jsr page_flip
|
||||
ldx #20
|
||||
jsr long_wait
|
||||
|
||||
lda #<shield_sequence
|
||||
sta INTRO_LOOPL
|
||||
lda #>shield_sequence
|
||||
sta INTRO_LOOPH
|
||||
|
||||
jsr run_sequence_40x40
|
||||
|
||||
ldx #30
|
||||
jsr long_wait
|
||||
|
||||
;=============================
|
||||
; A N A L Y S I S
|
||||
|
||||
jsr clear_bottoms
|
||||
|
||||
; --- Theoretical Study ---
|
||||
lda #<theoretical_study
|
||||
sta OUTL
|
||||
lda #>theoretical_study
|
||||
sta OUTH
|
||||
|
||||
jsr print_both_pages
|
||||
|
||||
lda #<analysis
|
||||
sta OUTL
|
||||
lda #>analysis
|
||||
sta OUTH
|
||||
|
||||
jsr print_both_pages
|
||||
|
||||
ldx #200
|
||||
jsr long_wait
|
||||
|
||||
;=============================
|
||||
; - RESULT:
|
||||
; Probability of creating:
|
||||
; ANTIMATTER: 91.V %
|
||||
; NEUTRINO 27: 0.04 %
|
||||
; NEUTRINO 424: 18 %
|
||||
|
||||
jsr clear_bottoms
|
||||
|
||||
lda #<result
|
||||
sta OUTL
|
||||
lda #>result
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list_both_pages
|
||||
|
||||
ldx #200
|
||||
jsr long_wait
|
||||
|
||||
|
||||
;================================
|
||||
; Practical verification Y/N ?"
|
||||
|
||||
jsr clear_bottoms
|
||||
|
||||
lda #<practical_verification
|
||||
sta OUTL
|
||||
lda #>practical_verification
|
||||
sta OUTH
|
||||
|
||||
jsr print_both_pages
|
||||
|
||||
ldx #200
|
||||
jsr long_wait
|
||||
|
||||
;==========================================
|
||||
; THE EXPERIMENT WILL BEGIN IN 20 SECONDS
|
||||
; 19, 18, 17
|
||||
|
||||
jsr gr_copy_to_current_40x40
|
||||
jsr page_flip
|
||||
|
||||
jsr clear_bottoms
|
||||
|
||||
lda #<experiment
|
||||
sta OUTL
|
||||
lda #>experiment
|
||||
sta OUTH
|
||||
|
||||
; 20
|
||||
jsr print_both_pages
|
||||
ldx #100
|
||||
jsr long_wait
|
||||
|
||||
; 19
|
||||
jsr print_both_pages
|
||||
ldx #100
|
||||
jsr long_wait
|
||||
|
||||
; 18
|
||||
jsr print_both_pages
|
||||
ldx #100
|
||||
jsr long_wait
|
||||
|
||||
; 17
|
||||
jsr print_both_pages
|
||||
ldx #100
|
||||
jsr long_wait
|
||||
|
||||
|
||||
jsr intro_06_console_part1
|
||||
|
||||
;===============================
|
||||
;===============================
|
||||
@ -635,157 +120,10 @@ soda:
|
||||
; bit KEYRESET
|
||||
|
||||
|
||||
;===============================
|
||||
;===============================
|
||||
; More crazy screen
|
||||
;===============================
|
||||
;===============================
|
||||
;===============================
|
||||
; Nuclear Physics, part 2
|
||||
|
||||
lda #<(collider_lzsa)
|
||||
sta getsrc_smc+1 ; LZSA_SRC_LO
|
||||
lda #>(collider_lzsa)
|
||||
sta getsrc_smc+2 ; LZSA_SRC_HI
|
||||
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr decompress_lzsa2_fast
|
||||
|
||||
bit TEXTGR
|
||||
jsr clear_bottoms
|
||||
|
||||
; THE EXPERIMENT WILL BEGIN IN 5 SECONDS
|
||||
jsr gr_copy_to_current_40x40
|
||||
jsr page_flip
|
||||
|
||||
lda #<experiment
|
||||
sta OUTL
|
||||
lda #>experiment
|
||||
sta OUTH
|
||||
jsr print_both_pages
|
||||
|
||||
lda #<five
|
||||
sta OUTL
|
||||
lda #>five
|
||||
sta OUTH
|
||||
jsr print_both_pages
|
||||
|
||||
lda #0
|
||||
sta MESSAGE_COUNT
|
||||
sta MESSAGE_CURRENT
|
||||
sta TIME_COUNT
|
||||
message_loop:
|
||||
|
||||
; Shield 9A.5F Ok
|
||||
; Flux % 5.0177 Ok
|
||||
; CDI Vector ok
|
||||
; %%%ddd ok
|
||||
; Race-Track ok
|
||||
; -----REPEAT ; 10
|
||||
|
||||
ldx MESSAGE_CURRENT
|
||||
lda message_list,X
|
||||
sta OUTL
|
||||
lda message_list+1,X
|
||||
sta OUTH
|
||||
jsr print_both_pages
|
||||
|
||||
inc MESSAGE_CURRENT
|
||||
inc MESSAGE_CURRENT
|
||||
lda MESSAGE_CURRENT
|
||||
cmp #10
|
||||
bne not_ten
|
||||
lda #0
|
||||
sta MESSAGE_CURRENT
|
||||
not_ten:
|
||||
|
||||
; 4 SECONDS
|
||||
; Shield "
|
||||
; -----REPEAT ; 10
|
||||
|
||||
; 3 SECONDS
|
||||
; Sheild "
|
||||
; -----REPEAT ; 10
|
||||
|
||||
; 2 SECONDS ; 10
|
||||
|
||||
; 1 SECONDS (at CDI Vector) ; 10
|
||||
; 0 SECONDS (at %%%) ; 10
|
||||
|
||||
ldx #10
|
||||
jsr long_wait
|
||||
|
||||
inc CURSOR_COUNT
|
||||
|
||||
lda CURSOR_COUNT
|
||||
and #$07
|
||||
bne not_time_oflo
|
||||
|
||||
inc TIME_COUNT
|
||||
inc TIME_COUNT
|
||||
|
||||
; update seconds
|
||||
|
||||
ldx TIME_COUNT
|
||||
lda times,X
|
||||
sta OUTL
|
||||
lda times+1,X
|
||||
sta OUTH
|
||||
jsr print_both_pages
|
||||
|
||||
not_time_oflo:
|
||||
|
||||
lda CURSOR_COUNT
|
||||
cmp #42
|
||||
bne not_time_gone
|
||||
|
||||
; clear out when near end
|
||||
jsr clear_bottoms
|
||||
|
||||
not_time_gone:
|
||||
|
||||
lda CURSOR_COUNT
|
||||
cmp #48
|
||||
bne message_loop
|
||||
|
||||
;=============================
|
||||
; EXPERIMENT LINES GOES AWAY
|
||||
; Stop printing at race track
|
||||
; dark blue going around track
|
||||
|
||||
; Note: goes around at least 4 times
|
||||
|
||||
jsr clear_bottoms
|
||||
|
||||
ldx #30
|
||||
jsr long_wait
|
||||
|
||||
;collider_ui_loop:
|
||||
; lda KEYPRESS
|
||||
; bpl collider_ui_loop
|
||||
; bit KEYRESET
|
||||
|
||||
|
||||
|
||||
; 1 times around? (total = 8)
|
||||
|
||||
lda #0
|
||||
sta PARTICLE_COUNT
|
||||
|
||||
particle_loop2:
|
||||
jsr gr_copy_to_current_40x40
|
||||
jsr plot_particle
|
||||
jsr page_flip
|
||||
ldx #20
|
||||
jsr long_wait
|
||||
|
||||
lda PARTICLE_COUNT
|
||||
cmp #10
|
||||
bne particle_loop2
|
||||
|
||||
|
||||
;collider_ui_loop:
|
||||
; lda KEYPRESS
|
||||
; bpl collider_ui_loop
|
||||
; bit KEYRESET
|
||||
jsr intro_06_console_part2
|
||||
|
||||
|
||||
|
||||
@ -1005,70 +343,8 @@ done_intro:
|
||||
.include "gr_run_sequence.s"
|
||||
|
||||
|
||||
|
||||
|
||||
;======================
|
||||
; Plot particle
|
||||
;======================
|
||||
plot_particle:
|
||||
; Xcoord in X
|
||||
; Ycoord in A
|
||||
; color in COLOR
|
||||
|
||||
lda #$22
|
||||
sta COLOR
|
||||
|
||||
lda PARTICLE_COUNT
|
||||
and #7
|
||||
asl
|
||||
tay
|
||||
ldx particles,Y
|
||||
lda particles+1,Y
|
||||
|
||||
jsr plot
|
||||
|
||||
inc PARTICLE_COUNT
|
||||
|
||||
rts
|
||||
|
||||
|
||||
|
||||
|
||||
DATA_LOCATION = $9000
|
||||
|
||||
; intro6,intro7
|
||||
|
||||
.if 0
|
||||
experiment = (DATA_LOCATION+$0D2C)
|
||||
practical_verification = (DATA_LOCATION+$0D0D)
|
||||
result = (DATA_LOCATION+$0CA6)
|
||||
analysis = (DATA_LOCATION+$0C8D)
|
||||
shield_sequence = (DATA_LOCATION+$0D75)
|
||||
phase2 = (DATA_LOCATION+$0C56)
|
||||
phase1 = (DATA_LOCATION+$0C2F)
|
||||
phase0 = (DATA_LOCATION+$0BF5)
|
||||
particles = (DATA_LOCATION+$0D65)
|
||||
theoretical_study = (DATA_LOCATION+$0BD9)
|
||||
collider_lzsa = (DATA_LOCATION+$06D8)
|
||||
run_blank = (DATA_LOCATION+$0BC6)
|
||||
run_experiment = (DATA_LOCATION+$0BB3)
|
||||
accel_paramaters = (DATA_LOCATION+$0B62)
|
||||
accelerator = (DATA_LOCATION+$09C1)
|
||||
project_23 = (DATA_LOCATION+$09B2)
|
||||
peanut = (DATA_LOCATION+$0955)
|
||||
cursor_sequence = (DATA_LOCATION+$0947)
|
||||
desktop_bg_lzsa = (DATA_LOCATION+$0242)
|
||||
powerup_sequence = (DATA_LOCATION+$093E)
|
||||
desktop_lzsa = (DATA_LOCATION+$0000)
|
||||
|
||||
times = (DATA_LOCATION+$0E0C)
|
||||
message_list = (DATA_LOCATION+$0DE4)
|
||||
five = (DATA_LOCATION+$0DEE)
|
||||
drinking_sequence = (DATA_LOCATION+$1C29)
|
||||
drinking02_lzsa = (DATA_LOCATION+$1705)
|
||||
soda_sequence = (DATA_LOCATION+$1C1A)
|
||||
soda_bg_lzsa = (DATA_LOCATION+$0E1A)
|
||||
.endif
|
||||
|
||||
intro6_data_lzsa:
|
||||
; .incbin "intro_data_06.lzsa"
|
||||
@ -1110,3 +386,4 @@ intro9_data_lzsa:
|
||||
.include "intro_03_elevator.s"
|
||||
.include "intro_04_keypad.s"
|
||||
.include "intro_05_scanner.s"
|
||||
.include "intro_06_console.s"
|
||||
|
943
games/ootw/intro/intro_06_console.s
Normal file
943
games/ootw/intro/intro_06_console.s
Normal file
@ -0,0 +1,943 @@
|
||||
;==============================
|
||||
; OOTW -- Intro -- The Console
|
||||
;==============================
|
||||
|
||||
intro_06_console_part1:
|
||||
|
||||
;===============================
|
||||
; Sitting at Desk
|
||||
;===============================
|
||||
|
||||
;======================
|
||||
; load bg
|
||||
|
||||
lda #<(desktop_lzsa)
|
||||
sta getsrc_smc+1 ; LZSA_SRC_LO
|
||||
lda #>(desktop_lzsa)
|
||||
sta getsrc_smc+2 ; LZSA_SRC_HI
|
||||
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr decompress_lzsa2_fast
|
||||
|
||||
jsr gr_copy_to_current
|
||||
|
||||
bit FULLGR ; back to full graphics
|
||||
|
||||
jsr page_flip
|
||||
|
||||
;=================================
|
||||
; Display rises up
|
||||
;=================================
|
||||
|
||||
lda #<powerup_sequence
|
||||
sta INTRO_LOOPL
|
||||
lda #>powerup_sequence
|
||||
sta INTRO_LOOPH
|
||||
|
||||
jsr run_sequence
|
||||
|
||||
ldx #80 ; pause a bit
|
||||
jsr long_wait
|
||||
|
||||
;=================================
|
||||
; Zoom in, mouse move
|
||||
;=================================
|
||||
; FIXME: shimmery edges to display?
|
||||
|
||||
lda #<(desktop_bg_lzsa)
|
||||
sta getsrc_smc+1 ; LZSA_SRC_LO
|
||||
lda #>(desktop_bg_lzsa)
|
||||
sta getsrc_smc+2 ; LZSA_SRC_HI
|
||||
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr decompress_lzsa2_fast
|
||||
|
||||
jsr gr_copy_to_current
|
||||
jsr page_flip
|
||||
|
||||
lda #<cursor_sequence
|
||||
sta INTRO_LOOPL
|
||||
lda #>cursor_sequence
|
||||
sta INTRO_LOOPH
|
||||
|
||||
jsr run_sequence
|
||||
|
||||
ldx #40 ; pause a bit
|
||||
jsr long_wait
|
||||
|
||||
|
||||
;===============================
|
||||
; Peanut OS
|
||||
;===============================
|
||||
|
||||
peanutos:
|
||||
|
||||
; 1 2 3
|
||||
; 0123456789012345678901234567890123456789
|
||||
;
|
||||
; Copyright (c) 1977 Peanut Computer, Inc.
|
||||
; All rights reserved.
|
||||
;
|
||||
; CDOS Version 5.01
|
||||
;
|
||||
; > #
|
||||
|
||||
lda #$a0
|
||||
jsr clear_top_a
|
||||
jsr clear_bottom
|
||||
|
||||
lda #<peanut
|
||||
sta OUTL
|
||||
lda #>peanut
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list
|
||||
|
||||
jsr page_flip
|
||||
|
||||
bit SET_TEXT
|
||||
|
||||
; wait 1s
|
||||
|
||||
ldx #60
|
||||
jsr long_wait
|
||||
|
||||
lda #1
|
||||
sta CURSOR_COUNT
|
||||
|
||||
project_23_loop:
|
||||
; RUN PROJECT 23# (typed)
|
||||
; #
|
||||
|
||||
lda #$a0
|
||||
jsr clear_top_a
|
||||
jsr clear_bottom
|
||||
|
||||
lda #<peanut
|
||||
sta OUTL
|
||||
lda #>peanut
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list
|
||||
|
||||
; $550
|
||||
|
||||
lda #$5
|
||||
clc
|
||||
adc DRAW_PAGE
|
||||
sta OUTH
|
||||
lda #$52
|
||||
sta OUTL
|
||||
|
||||
ldy #0
|
||||
print_project23_loop:
|
||||
|
||||
lda project_23,Y
|
||||
eor #$80
|
||||
sta (OUTL),Y
|
||||
|
||||
iny
|
||||
cpy CURSOR_COUNT
|
||||
bne print_project23_loop
|
||||
|
||||
lda #' '
|
||||
sta (OUTL),Y
|
||||
|
||||
jsr page_flip
|
||||
|
||||
ldx #10
|
||||
jsr long_wait
|
||||
|
||||
inc CURSOR_COUNT
|
||||
lda CURSOR_COUNT
|
||||
cmp #15
|
||||
bne project_23_loop
|
||||
|
||||
ldx #20 ; brief pasue at end of line
|
||||
jsr long_wait
|
||||
|
||||
lda #(' '|$80) ; clear out last cursor
|
||||
sta (OUTL),Y
|
||||
|
||||
lda #' ' ; put cursor on next line
|
||||
sta $5d2 ; both pages
|
||||
sta $9d2
|
||||
|
||||
|
||||
; wait 1s
|
||||
|
||||
ldx #100
|
||||
jsr long_wait
|
||||
|
||||
|
||||
|
||||
;===============================
|
||||
; Particle Accelerator Screen
|
||||
;===============================
|
||||
|
||||
; MODIFICATION OF PARAMETERS
|
||||
; RELATING TO PARTICLE
|
||||
; ACCELERATOR (SYNCHOTRON).
|
||||
;____________ E: 23%
|
||||
; ROOM 3 X:\ g: .005
|
||||
; : :
|
||||
; : : RK: 77.2L
|
||||
; : :
|
||||
;___________:_: opt: g+
|
||||
; ROOM 1 X: :
|
||||
; : : Shield:
|
||||
; : : 1: OFF
|
||||
; : : 2: ON
|
||||
; : : 3: ON
|
||||
; : :
|
||||
; : : P^: 1
|
||||
; __________: :
|
||||
;/__________|/
|
||||
|
||||
; the actual intro draws background 3-d stuff first, gradually
|
||||
; then writes text
|
||||
|
||||
|
||||
lda #$a0
|
||||
jsr clear_top_a
|
||||
jsr clear_bottom
|
||||
|
||||
lda #<accelerator
|
||||
sta OUTL
|
||||
lda #>accelerator
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list
|
||||
|
||||
jsr page_flip
|
||||
|
||||
ldx #50
|
||||
jsr long_wait
|
||||
|
||||
; Cusrsor starts at E
|
||||
; Down to .005 (pauses)
|
||||
; End of RK
|
||||
; End of g+ (pauses)
|
||||
; erase +
|
||||
; change to - (pauses)
|
||||
; down to 1 (pauses)
|
||||
; down to 2
|
||||
; down to 3
|
||||
; down to P (pause)
|
||||
|
||||
ldy #0
|
||||
lda #<accel_paramaters
|
||||
sta INL
|
||||
lda #>accel_paramaters
|
||||
sta INH
|
||||
accel_input_loop:
|
||||
lda (INL),Y ; get X
|
||||
cmp #$ff
|
||||
beq done_accel_input
|
||||
sta accel_smc+1
|
||||
sta accel_smc+4
|
||||
iny
|
||||
lda (INL),Y ; get Y
|
||||
sta accel_smc+2
|
||||
clc
|
||||
adc #$4
|
||||
sta accel_smc+5
|
||||
iny
|
||||
lda (INL),Y ; get char
|
||||
iny
|
||||
accel_smc:
|
||||
sta $400
|
||||
sta $800
|
||||
|
||||
lda (INL),Y ; get time
|
||||
tax
|
||||
jsr long_wait
|
||||
iny
|
||||
jmp accel_input_loop
|
||||
done_accel_input:
|
||||
|
||||
|
||||
; FLASH: RUN EXPERIMENT ? (pause)
|
||||
; Y
|
||||
lda #2
|
||||
sta CURSOR_COUNT
|
||||
flash_loop:
|
||||
|
||||
lda #<run_experiment
|
||||
sta OUTL
|
||||
lda #>run_experiment
|
||||
sta OUTH
|
||||
jsr print_both_pages
|
||||
|
||||
ldx #75
|
||||
jsr long_wait
|
||||
|
||||
lda #<run_blank
|
||||
sta OUTL
|
||||
lda #>run_blank
|
||||
sta OUTH
|
||||
jsr print_both_pages
|
||||
|
||||
ldx #75
|
||||
jsr long_wait
|
||||
|
||||
lda CURSOR_COUNT
|
||||
cmp #1
|
||||
bne not_yes
|
||||
|
||||
lda #'Y'|$80
|
||||
sta $670
|
||||
sta $A70
|
||||
|
||||
not_yes:
|
||||
dec CURSOR_COUNT
|
||||
bpl flash_loop
|
||||
|
||||
|
||||
;======================
|
||||
; Accelerate
|
||||
;======================
|
||||
bit SET_GR
|
||||
|
||||
lda #<(collider_lzsa)
|
||||
sta getsrc_smc+1 ; LZSA_SRC_LO
|
||||
lda #>(collider_lzsa)
|
||||
sta getsrc_smc+2 ; LZSA_SRC_HI
|
||||
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr decompress_lzsa2_fast
|
||||
|
||||
jsr gr_copy_to_current
|
||||
jsr page_flip
|
||||
|
||||
bit TEXTGR
|
||||
jsr clear_bottoms
|
||||
|
||||
; --- Theoretical Study ---
|
||||
; make this inverse?
|
||||
|
||||
lda #<theoretical_study
|
||||
sta OUTL
|
||||
lda #>theoretical_study
|
||||
sta OUTH
|
||||
|
||||
jsr print_both_pages
|
||||
|
||||
;==========================
|
||||
; - Phase 0:
|
||||
; INJECTION of particles
|
||||
; into synchrotron
|
||||
|
||||
lda #0
|
||||
sta PARTICLE_COUNT
|
||||
|
||||
lda #<phase0
|
||||
sta OUTL
|
||||
lda #>phase0
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list_both_pages
|
||||
|
||||
jsr gr_copy_to_current_40x40
|
||||
jsr plot_particle
|
||||
jsr page_flip
|
||||
ldx #40
|
||||
jsr long_wait
|
||||
|
||||
jsr gr_copy_to_current_40x40
|
||||
jsr plot_particle
|
||||
jsr page_flip
|
||||
ldx #40
|
||||
jsr long_wait
|
||||
|
||||
|
||||
;===========================
|
||||
; - Phase 1:
|
||||
; Particle ACCELERATION.
|
||||
|
||||
|
||||
; Note: goes around at least 4 times
|
||||
|
||||
jsr clear_bottoms
|
||||
|
||||
; --- Theoretical Study ---
|
||||
lda #<theoretical_study
|
||||
sta OUTL
|
||||
lda #>theoretical_study
|
||||
sta OUTH
|
||||
|
||||
jsr print_both_pages
|
||||
|
||||
lda #<phase1
|
||||
sta OUTL
|
||||
lda #>phase1
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list_both_pages
|
||||
|
||||
; 5 times around? (total = 39)
|
||||
|
||||
particle_loop:
|
||||
jsr gr_copy_to_current_40x40
|
||||
jsr plot_particle
|
||||
jsr page_flip
|
||||
ldx #20
|
||||
jsr long_wait
|
||||
|
||||
lda PARTICLE_COUNT
|
||||
cmp #38
|
||||
bne particle_loop
|
||||
|
||||
;=====================================
|
||||
; - Phase 2:
|
||||
; EJECTION of particles
|
||||
; on the shield.
|
||||
|
||||
; Note: goes around once more, then does shield animation
|
||||
|
||||
jsr clear_bottoms
|
||||
|
||||
; --- Theoretical Study ---
|
||||
lda #<theoretical_study
|
||||
sta OUTL
|
||||
lda #>theoretical_study
|
||||
sta OUTH
|
||||
|
||||
jsr print_both_pages
|
||||
|
||||
lda #<phase2
|
||||
sta OUTL
|
||||
lda #>phase2
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list_both_pages
|
||||
|
||||
|
||||
jsr gr_copy_to_current_40x40
|
||||
jsr plot_particle
|
||||
jsr page_flip
|
||||
ldx #20
|
||||
jsr long_wait
|
||||
|
||||
lda #<shield_sequence
|
||||
sta INTRO_LOOPL
|
||||
lda #>shield_sequence
|
||||
sta INTRO_LOOPH
|
||||
|
||||
jsr run_sequence_40x40
|
||||
|
||||
ldx #30
|
||||
jsr long_wait
|
||||
|
||||
;=============================
|
||||
; A N A L Y S I S
|
||||
|
||||
jsr clear_bottoms
|
||||
|
||||
; --- Theoretical Study ---
|
||||
lda #<theoretical_study
|
||||
sta OUTL
|
||||
lda #>theoretical_study
|
||||
sta OUTH
|
||||
|
||||
jsr print_both_pages
|
||||
|
||||
lda #<analysis
|
||||
sta OUTL
|
||||
lda #>analysis
|
||||
sta OUTH
|
||||
|
||||
jsr print_both_pages
|
||||
|
||||
ldx #200
|
||||
jsr long_wait
|
||||
|
||||
;=============================
|
||||
; - RESULT:
|
||||
; Probability of creating:
|
||||
; ANTIMATTER: 91.V %
|
||||
; NEUTRINO 27: 0.04 %
|
||||
; NEUTRINO 424: 18 %
|
||||
|
||||
jsr clear_bottoms
|
||||
|
||||
lda #<result
|
||||
sta OUTL
|
||||
lda #>result
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list_both_pages
|
||||
|
||||
ldx #200
|
||||
jsr long_wait
|
||||
|
||||
|
||||
;================================
|
||||
; Practical verification Y/N ?"
|
||||
|
||||
jsr clear_bottoms
|
||||
|
||||
lda #<practical_verification
|
||||
sta OUTL
|
||||
lda #>practical_verification
|
||||
sta OUTH
|
||||
|
||||
jsr print_both_pages
|
||||
|
||||
ldx #200
|
||||
jsr long_wait
|
||||
|
||||
;==========================================
|
||||
; THE EXPERIMENT WILL BEGIN IN 20 SECONDS
|
||||
; 19, 18, 17
|
||||
|
||||
jsr gr_copy_to_current_40x40
|
||||
jsr page_flip
|
||||
|
||||
jsr clear_bottoms
|
||||
|
||||
lda #<experiment
|
||||
sta OUTL
|
||||
lda #>experiment
|
||||
sta OUTH
|
||||
|
||||
; 20
|
||||
jsr print_both_pages
|
||||
ldx #100
|
||||
jsr long_wait
|
||||
|
||||
; 19
|
||||
jsr print_both_pages
|
||||
ldx #100
|
||||
jsr long_wait
|
||||
|
||||
; 18
|
||||
jsr print_both_pages
|
||||
ldx #100
|
||||
jsr long_wait
|
||||
|
||||
; 17
|
||||
jsr print_both_pages
|
||||
ldx #100
|
||||
jsr long_wait
|
||||
|
||||
|
||||
rts
|
||||
|
||||
|
||||
|
||||
|
||||
intro_06_console_part2:
|
||||
|
||||
|
||||
|
||||
;===============================
|
||||
;===============================
|
||||
; More crazy screen
|
||||
;===============================
|
||||
;===============================
|
||||
|
||||
lda #<(collider_lzsa)
|
||||
sta getsrc_smc+1 ; LZSA_SRC_LO
|
||||
lda #>(collider_lzsa)
|
||||
sta getsrc_smc+2 ; LZSA_SRC_HI
|
||||
|
||||
lda #$c ; load to off-screen $c00
|
||||
jsr decompress_lzsa2_fast
|
||||
|
||||
bit TEXTGR
|
||||
jsr clear_bottoms
|
||||
|
||||
; THE EXPERIMENT WILL BEGIN IN 5 SECONDS
|
||||
jsr gr_copy_to_current_40x40
|
||||
jsr page_flip
|
||||
|
||||
lda #<experiment
|
||||
sta OUTL
|
||||
lda #>experiment
|
||||
sta OUTH
|
||||
jsr print_both_pages
|
||||
|
||||
lda #<five
|
||||
sta OUTL
|
||||
lda #>five
|
||||
sta OUTH
|
||||
jsr print_both_pages
|
||||
|
||||
lda #0
|
||||
sta MESSAGE_COUNT
|
||||
sta MESSAGE_CURRENT
|
||||
sta TIME_COUNT
|
||||
message_loop:
|
||||
|
||||
; Shield 9A.5F Ok
|
||||
; Flux % 5.0177 Ok
|
||||
; CDI Vector ok
|
||||
; %%%ddd ok
|
||||
; Race-Track ok
|
||||
; -----REPEAT ; 10
|
||||
|
||||
ldx MESSAGE_CURRENT
|
||||
lda message_list,X
|
||||
sta OUTL
|
||||
lda message_list+1,X
|
||||
sta OUTH
|
||||
jsr print_both_pages
|
||||
|
||||
inc MESSAGE_CURRENT
|
||||
inc MESSAGE_CURRENT
|
||||
lda MESSAGE_CURRENT
|
||||
cmp #10
|
||||
bne not_ten
|
||||
lda #0
|
||||
sta MESSAGE_CURRENT
|
||||
not_ten:
|
||||
|
||||
; 4 SECONDS
|
||||
; Shield "
|
||||
; -----REPEAT ; 10
|
||||
|
||||
; 3 SECONDS
|
||||
; Sheild "
|
||||
; -----REPEAT ; 10
|
||||
|
||||
; 2 SECONDS ; 10
|
||||
|
||||
; 1 SECONDS (at CDI Vector) ; 10
|
||||
; 0 SECONDS (at %%%) ; 10
|
||||
|
||||
ldx #10
|
||||
jsr long_wait
|
||||
|
||||
inc CURSOR_COUNT
|
||||
|
||||
lda CURSOR_COUNT
|
||||
and #$07
|
||||
bne not_time_oflo
|
||||
|
||||
inc TIME_COUNT
|
||||
inc TIME_COUNT
|
||||
|
||||
; update seconds
|
||||
|
||||
ldx TIME_COUNT
|
||||
lda times,X
|
||||
sta OUTL
|
||||
lda times+1,X
|
||||
sta OUTH
|
||||
jsr print_both_pages
|
||||
|
||||
not_time_oflo:
|
||||
|
||||
lda CURSOR_COUNT
|
||||
cmp #42
|
||||
bne not_time_gone
|
||||
|
||||
; clear out when near end
|
||||
jsr clear_bottoms
|
||||
|
||||
not_time_gone:
|
||||
|
||||
lda CURSOR_COUNT
|
||||
cmp #48
|
||||
bne message_loop
|
||||
|
||||
;=============================
|
||||
; EXPERIMENT LINES GOES AWAY
|
||||
; Stop printing at race track
|
||||
; dark blue going around track
|
||||
|
||||
; Note: goes around at least 4 times
|
||||
|
||||
jsr clear_bottoms
|
||||
|
||||
ldx #30
|
||||
jsr long_wait
|
||||
|
||||
;collider_ui_loop:
|
||||
; lda KEYPRESS
|
||||
; bpl collider_ui_loop
|
||||
; bit KEYRESET
|
||||
|
||||
|
||||
|
||||
; 1 times around? (total = 8)
|
||||
|
||||
lda #0
|
||||
sta PARTICLE_COUNT
|
||||
|
||||
particle_loop2:
|
||||
jsr gr_copy_to_current_40x40
|
||||
jsr plot_particle
|
||||
jsr page_flip
|
||||
ldx #20
|
||||
jsr long_wait
|
||||
|
||||
lda PARTICLE_COUNT
|
||||
cmp #10
|
||||
bne particle_loop2
|
||||
|
||||
|
||||
;collider_ui_loop:
|
||||
; lda KEYPRESS
|
||||
; bpl collider_ui_loop
|
||||
; bit KEYRESET
|
||||
|
||||
rts
|
||||
|
||||
|
||||
;======================
|
||||
; Plot particle
|
||||
;======================
|
||||
plot_particle:
|
||||
; Xcoord in X
|
||||
; Ycoord in A
|
||||
; color in COLOR
|
||||
|
||||
lda #$22
|
||||
sta COLOR
|
||||
|
||||
lda PARTICLE_COUNT
|
||||
and #7
|
||||
asl
|
||||
tay
|
||||
ldx particles,Y
|
||||
lda particles+1,Y
|
||||
|
||||
jsr plot
|
||||
|
||||
inc PARTICLE_COUNT
|
||||
|
||||
rts
|
||||
|
||||
|
||||
|
||||
;=================================
|
||||
;=================================
|
||||
; Intro Segment 06 Data (Console)
|
||||
;=================================
|
||||
;=================================
|
||||
|
||||
.include "graphics/06_console/intro_desktop.inc"
|
||||
.include "graphics/06_console/intro_cursor.inc"
|
||||
.include "graphics/06_console/intro_collider.inc"
|
||||
|
||||
|
||||
; Power-up sequence
|
||||
|
||||
powerup_sequence:
|
||||
.byte 20
|
||||
.word powerup01_lzsa
|
||||
.byte 128+60 ; .word powerup02_lzsa
|
||||
.byte 128+20 ; .word powerup03_lzsa
|
||||
.byte 20
|
||||
.word powerup03_lzsa
|
||||
.byte 0
|
||||
|
||||
|
||||
; Cursor sequence
|
||||
|
||||
cursor_sequence:
|
||||
.byte 60
|
||||
.word cursor01_lzsa
|
||||
.byte 128+40 ; .word cursor02_lzsa
|
||||
.byte 128+20 ; .word cursor03_lzsa
|
||||
.byte 128+20 ; .word cursor04_lzsa
|
||||
.byte 128+20 ; .word cursor05_lzsa
|
||||
.byte 128+20 ; .word cursor06_lzsa
|
||||
.byte 128+20 ; .word cursor07_lzsa
|
||||
.byte 128+20 ; .word cursor08_lzsa
|
||||
.byte 60
|
||||
.word cursor08_lzsa
|
||||
.byte 0
|
||||
|
||||
|
||||
peanut:
|
||||
.byte 0,2,"COPYRIGHT (C) 1977 PEANUT COMPUTER, INC.",0
|
||||
.byte 0,3,"ALL RIGHTS RESERVED.",0
|
||||
.byte 0,5,"CDOS VERSION 5.01",0
|
||||
.byte 0,18,"> ",(' '|$80),0
|
||||
.byte 255
|
||||
project_23:
|
||||
.byte "RUN PROJECT 23",0
|
||||
|
||||
accelerator:
|
||||
.byte 0,0, "MODIFICATION OF PARAMETERS",0
|
||||
.byte 0,1, "RELATING TO PARTICLE",0
|
||||
.byte 0,2, "ACCELERATOR (SYNCHOTRON).",0
|
||||
.byte 0,3, " ___________",0
|
||||
.byte 0,4, ":ROOM 3 ",('+'|$80),":\ E: 23%",0
|
||||
.byte 0,5, ": : : G: .005",0
|
||||
.byte 0,6, ": : : : RK: 77.2L",0
|
||||
.byte 0,7, ": : :",0
|
||||
.byte 0,8, ": : : OPT: G+",0
|
||||
.byte 0,9, ": : : :",0
|
||||
.byte 0,10, ":__________:_: SHIELD:",0
|
||||
.byte 0,11, ":ROOM 1 ",('+'|$80),": : 1: OFF",0
|
||||
.byte 0,12, ": : : : 2: ON",0
|
||||
.byte 0,13, ": : : 3: ON",0
|
||||
.byte 0,14, ": : : :",0
|
||||
.byte 0,15, ": : : P^: 1",0
|
||||
.byte 0,16, ": : : :",0
|
||||
.byte 0,17, ": _________:_:",0
|
||||
.byte 0,18, ":/_________:/",0
|
||||
.byte 255
|
||||
|
||||
accel_paramaters:
|
||||
.byte $15,$6,' ',20 ; 21,4 = $615 Cursor starts at E
|
||||
.byte $15,$6,' '|$80,1 ; Cusrsor off at E
|
||||
.byte $96,$6,' ',100 ; 22,5 = $696 Down to .005 (pauses)
|
||||
.byte $96,$6,' '|$80,1 ; off
|
||||
.byte $18,$7,' ',20 ; 24,6 = $718 End of RK
|
||||
.byte $18,$7,' '|$80,1 ; off
|
||||
.byte $3E,$4,' ',100 ; 22,8 = $43E End of g+ (pauses)
|
||||
.byte $3E,$4,' '|$80,1 ; off
|
||||
.byte $3D,$4,' ',20 ; 21,8 = $43D erase +
|
||||
.byte $3D,$4,'-'|$80,1 ; change to - (pauses)
|
||||
.byte $3E,$4,' ',100 ; 22,8 = $43e change to - (pauses)
|
||||
.byte $3E,$4,' '|$80,1 ; off
|
||||
.byte $BD,$5,' ',100 ; 22,11= $5bd down to 1 (pauses)
|
||||
.byte $BD,$5,' '|$80,1 ; off
|
||||
.byte $3C,$6,' ',20 ; 21,12= $63c down to 2
|
||||
.byte $3C,$6,' '|$80,1 ; off
|
||||
.byte $BC,$6,' ',20 ; 21,13= $6bc down to 3
|
||||
.byte $BC,$6,' '|$80,1 ; off
|
||||
.byte $BC,$7,' ',20 ; 21,15= $7bc down to P (pause)
|
||||
.byte $BC,$7,' '|$80,1 ; off
|
||||
.byte $ff
|
||||
|
||||
|
||||
; FLASH: RUN EXPERIMENT ? (pause)
|
||||
run_experiment:
|
||||
.byte 10,20,"RUN EXPERIMENT ?",0
|
||||
run_blank:
|
||||
.byte 10,20," ",0
|
||||
|
||||
;'R'|$80,'U'|$80,'N'|$80,' '|$80
|
||||
; .byte 10,20,'R'|$80,'U'|$80,'N'|$80,' '|$80
|
||||
; .byte 'E'|$80,'X'|$80,'P'|$80,'E'|$80,'R'|$80,'I'|$80
|
||||
; .byte 'M'|$80,'E'|$80,'N'|$80,'T'|$80,' '|$80,'?'|$80,0
|
||||
|
||||
|
||||
|
||||
|
||||
; --- Theoretical Study ---
|
||||
; make this inverse?
|
||||
theoretical_study:
|
||||
.byte 7,20,"--- THEORETICAL STUDY ---",0
|
||||
|
||||
; - Phase 0:
|
||||
; INJECTION of particles
|
||||
; into synchrotron
|
||||
phase0:
|
||||
.byte 0,21,"- PHASE 0:",0
|
||||
.byte 0,22,"INJECTION OF PARTICLES",0
|
||||
.byte 0,23,"INTO SYNCHROTRON",0
|
||||
.byte $ff
|
||||
|
||||
; - Phase 1:
|
||||
; Particle ACCELERATION.
|
||||
phase1:
|
||||
.byte 0,21,"- PHASE 1:",0
|
||||
.byte 0,22,"PARTICLE ACCELERATION.",0
|
||||
.byte $ff
|
||||
|
||||
; - Phase 2:
|
||||
; EJECTION of particles
|
||||
; on the shield.
|
||||
phase2:
|
||||
.byte 0,21,"- PHASE 2:",0
|
||||
.byte 0,22,"EJECTION OF PARTICLES",0
|
||||
.byte 0,23,"ON THE SHIELD.",0
|
||||
.byte $ff
|
||||
|
||||
; A N A L Y S I S
|
||||
analysis:
|
||||
.byte 8,22,"A N A L Y S I S",0
|
||||
|
||||
; - RESULT:
|
||||
; Probability of creating:
|
||||
; ANTIMATTER: 91.V %
|
||||
; NEUTRINO 27: 0.04 %
|
||||
; NEUTRINO 424: 18 %
|
||||
result:
|
||||
.byte 0,20,"- RESULT, PROBABILITY OF CREATING:",0
|
||||
.byte 10,21,"ANTIMATTER: 91.V %",0
|
||||
.byte 10,22,"NEUTRINO 27: 0.04 %",0
|
||||
.byte 10,23,"NEUTRINO 424: 18 %",0
|
||||
.byte $ff
|
||||
|
||||
; Practical verification Y/N ?"
|
||||
practical_verification:
|
||||
.byte 6,21,"PRACTICAL VERIFICATION Y/N ?",0
|
||||
|
||||
; THE EXPERIMENT WILL BEGIN IN 20 SECONDS
|
||||
experiment:
|
||||
.byte 0,20,"THE EXPERIMENT WILL BEGIN IN 20 SECONDS",0
|
||||
.byte 29,20,"19",0
|
||||
.byte 29,20,"18",0
|
||||
.byte 29,20,"17",0
|
||||
|
||||
|
||||
; Particle co-ordinates
|
||||
particles:
|
||||
.byte 21,23 ; 0
|
||||
.byte 21,15 ; 1
|
||||
.byte 22,7 ; 2
|
||||
.byte 27,2 ; 3
|
||||
.byte 32,6 ; 4
|
||||
.byte 34,13 ; 5
|
||||
.byte 31,26 ; 6
|
||||
.byte 27,28 ; 7
|
||||
|
||||
|
||||
shield_sequence:
|
||||
.byte 30
|
||||
.word collider_p200_lzsa
|
||||
.byte 30
|
||||
.word collider_p201_lzsa
|
||||
.byte 30
|
||||
.word collider_p202_lzsa
|
||||
.byte 30
|
||||
.word collider_p203_lzsa
|
||||
.byte 30
|
||||
.word collider_p200_lzsa
|
||||
.byte 0
|
||||
|
||||
|
||||
message0:
|
||||
.byte 8,22,"SHIELD 9A.5F OK ",0
|
||||
message1:
|
||||
.byte 8,22,"FLUX % 5.0177 OK",0
|
||||
message2:
|
||||
.byte 8,22,"CDI VECTOR OK ",0
|
||||
message3:
|
||||
.byte 8,22,"%%%DDD OK ",0
|
||||
message4:
|
||||
.byte 8,22,"RACE-TRACK OK ",0
|
||||
|
||||
message_list:
|
||||
.word message0
|
||||
.word message1
|
||||
.word message2
|
||||
.word message3
|
||||
.word message4
|
||||
|
||||
|
||||
five:
|
||||
.byte 29,20,"5 ",0
|
||||
four:
|
||||
.byte 29,20,"4 ",0
|
||||
three:
|
||||
.byte 29,20,"3 ",0
|
||||
two:
|
||||
.byte 29,20,"2 ",0
|
||||
one:
|
||||
.byte 29,20,"1 ",0
|
||||
zero:
|
||||
.byte 29,20,"0 ",0
|
||||
|
||||
times:
|
||||
; note, the second zero is there because we get a TIME_COUNT
|
||||
; of 6 even though it is printed then erased (but never displayed)
|
||||
.word five,four,three,two,one,zero,zero
|
@ -1,234 +1,3 @@
|
||||
;=================================
|
||||
;=================================
|
||||
; Intro Segment 06 Data (Console)
|
||||
;=================================
|
||||
;=================================
|
||||
|
||||
.include "graphics/06_console/intro_desktop.inc"
|
||||
.include "graphics/06_console/intro_cursor.inc"
|
||||
.include "graphics/06_console/intro_collider.inc"
|
||||
|
||||
|
||||
; Power-up sequence
|
||||
|
||||
powerup_sequence:
|
||||
.byte 20
|
||||
.word powerup01_lzsa
|
||||
.byte 128+60 ; .word powerup02_lzsa
|
||||
.byte 128+20 ; .word powerup03_lzsa
|
||||
.byte 20
|
||||
.word powerup03_lzsa
|
||||
.byte 0
|
||||
|
||||
|
||||
; Cursor sequence
|
||||
|
||||
cursor_sequence:
|
||||
.byte 60
|
||||
.word cursor01_lzsa
|
||||
.byte 128+40 ; .word cursor02_lzsa
|
||||
.byte 128+20 ; .word cursor03_lzsa
|
||||
.byte 128+20 ; .word cursor04_lzsa
|
||||
.byte 128+20 ; .word cursor05_lzsa
|
||||
.byte 128+20 ; .word cursor06_lzsa
|
||||
.byte 128+20 ; .word cursor07_lzsa
|
||||
.byte 128+20 ; .word cursor08_lzsa
|
||||
.byte 60
|
||||
.word cursor08_lzsa
|
||||
.byte 0
|
||||
|
||||
|
||||
peanut:
|
||||
.byte 0,2,"COPYRIGHT (C) 1977 PEANUT COMPUTER, INC.",0
|
||||
.byte 0,3,"ALL RIGHTS RESERVED.",0
|
||||
.byte 0,5,"CDOS VERSION 5.01",0
|
||||
.byte 0,18,"> ",(' '|$80),0
|
||||
.byte 255
|
||||
project_23:
|
||||
.byte "RUN PROJECT 23",0
|
||||
|
||||
accelerator:
|
||||
.byte 0,0, "MODIFICATION OF PARAMETERS",0
|
||||
.byte 0,1, "RELATING TO PARTICLE",0
|
||||
.byte 0,2, "ACCELERATOR (SYNCHOTRON).",0
|
||||
.byte 0,3, " ___________",0
|
||||
.byte 0,4, ":ROOM 3 ",('+'|$80),":\ E: 23%",0
|
||||
.byte 0,5, ": : : G: .005",0
|
||||
.byte 0,6, ": : : : RK: 77.2L",0
|
||||
.byte 0,7, ": : :",0
|
||||
.byte 0,8, ": : : OPT: G+",0
|
||||
.byte 0,9, ": : : :",0
|
||||
.byte 0,10, ":__________:_: SHIELD:",0
|
||||
.byte 0,11, ":ROOM 1 ",('+'|$80),": : 1: OFF",0
|
||||
.byte 0,12, ": : : : 2: ON",0
|
||||
.byte 0,13, ": : : 3: ON",0
|
||||
.byte 0,14, ": : : :",0
|
||||
.byte 0,15, ": : : P^: 1",0
|
||||
.byte 0,16, ": : : :",0
|
||||
.byte 0,17, ": _________:_:",0
|
||||
.byte 0,18, ":/_________:/",0
|
||||
.byte 255
|
||||
|
||||
accel_paramaters:
|
||||
.byte $15,$6,' ',20 ; 21,4 = $615 Cursor starts at E
|
||||
.byte $15,$6,' '|$80,1 ; Cusrsor off at E
|
||||
.byte $96,$6,' ',100 ; 22,5 = $696 Down to .005 (pauses)
|
||||
.byte $96,$6,' '|$80,1 ; off
|
||||
.byte $18,$7,' ',20 ; 24,6 = $718 End of RK
|
||||
.byte $18,$7,' '|$80,1 ; off
|
||||
.byte $3E,$4,' ',100 ; 22,8 = $43E End of g+ (pauses)
|
||||
.byte $3E,$4,' '|$80,1 ; off
|
||||
.byte $3D,$4,' ',20 ; 21,8 = $43D erase +
|
||||
.byte $3D,$4,'-'|$80,1 ; change to - (pauses)
|
||||
.byte $3E,$4,' ',100 ; 22,8 = $43e change to - (pauses)
|
||||
.byte $3E,$4,' '|$80,1 ; off
|
||||
.byte $BD,$5,' ',100 ; 22,11= $5bd down to 1 (pauses)
|
||||
.byte $BD,$5,' '|$80,1 ; off
|
||||
.byte $3C,$6,' ',20 ; 21,12= $63c down to 2
|
||||
.byte $3C,$6,' '|$80,1 ; off
|
||||
.byte $BC,$6,' ',20 ; 21,13= $6bc down to 3
|
||||
.byte $BC,$6,' '|$80,1 ; off
|
||||
.byte $BC,$7,' ',20 ; 21,15= $7bc down to P (pause)
|
||||
.byte $BC,$7,' '|$80,1 ; off
|
||||
.byte $ff
|
||||
|
||||
|
||||
; FLASH: RUN EXPERIMENT ? (pause)
|
||||
run_experiment:
|
||||
.byte 10,20,"RUN EXPERIMENT ?",0
|
||||
run_blank:
|
||||
.byte 10,20," ",0
|
||||
|
||||
;'R'|$80,'U'|$80,'N'|$80,' '|$80
|
||||
; .byte 10,20,'R'|$80,'U'|$80,'N'|$80,' '|$80
|
||||
; .byte 'E'|$80,'X'|$80,'P'|$80,'E'|$80,'R'|$80,'I'|$80
|
||||
; .byte 'M'|$80,'E'|$80,'N'|$80,'T'|$80,' '|$80,'?'|$80,0
|
||||
|
||||
|
||||
|
||||
|
||||
; --- Theoretical Study ---
|
||||
; make this inverse?
|
||||
theoretical_study:
|
||||
.byte 7,20,"--- THEORETICAL STUDY ---",0
|
||||
|
||||
; - Phase 0:
|
||||
; INJECTION of particles
|
||||
; into synchrotron
|
||||
phase0:
|
||||
.byte 0,21,"- PHASE 0:",0
|
||||
.byte 0,22,"INJECTION OF PARTICLES",0
|
||||
.byte 0,23,"INTO SYNCHROTRON",0
|
||||
.byte $ff
|
||||
|
||||
; - Phase 1:
|
||||
; Particle ACCELERATION.
|
||||
phase1:
|
||||
.byte 0,21,"- PHASE 1:",0
|
||||
.byte 0,22,"PARTICLE ACCELERATION.",0
|
||||
.byte $ff
|
||||
|
||||
; - Phase 2:
|
||||
; EJECTION of particles
|
||||
; on the shield.
|
||||
phase2:
|
||||
.byte 0,21,"- PHASE 2:",0
|
||||
.byte 0,22,"EJECTION OF PARTICLES",0
|
||||
.byte 0,23,"ON THE SHIELD.",0
|
||||
.byte $ff
|
||||
|
||||
; A N A L Y S I S
|
||||
analysis:
|
||||
.byte 8,22,"A N A L Y S I S",0
|
||||
|
||||
; - RESULT:
|
||||
; Probability of creating:
|
||||
; ANTIMATTER: 91.V %
|
||||
; NEUTRINO 27: 0.04 %
|
||||
; NEUTRINO 424: 18 %
|
||||
result:
|
||||
.byte 0,20,"- RESULT, PROBABILITY OF CREATING:",0
|
||||
.byte 10,21,"ANTIMATTER: 91.V %",0
|
||||
.byte 10,22,"NEUTRINO 27: 0.04 %",0
|
||||
.byte 10,23,"NEUTRINO 424: 18 %",0
|
||||
.byte $ff
|
||||
|
||||
; Practical verification Y/N ?"
|
||||
practical_verification:
|
||||
.byte 6,21,"PRACTICAL VERIFICATION Y/N ?",0
|
||||
|
||||
; THE EXPERIMENT WILL BEGIN IN 20 SECONDS
|
||||
experiment:
|
||||
.byte 0,20,"THE EXPERIMENT WILL BEGIN IN 20 SECONDS",0
|
||||
.byte 29,20,"19",0
|
||||
.byte 29,20,"18",0
|
||||
.byte 29,20,"17",0
|
||||
|
||||
|
||||
; Particle co-ordinates
|
||||
particles:
|
||||
.byte 21,23 ; 0
|
||||
.byte 21,15 ; 1
|
||||
.byte 22,7 ; 2
|
||||
.byte 27,2 ; 3
|
||||
.byte 32,6 ; 4
|
||||
.byte 34,13 ; 5
|
||||
.byte 31,26 ; 6
|
||||
.byte 27,28 ; 7
|
||||
|
||||
|
||||
shield_sequence:
|
||||
.byte 30
|
||||
.word collider_p200_lzsa
|
||||
.byte 30
|
||||
.word collider_p201_lzsa
|
||||
.byte 30
|
||||
.word collider_p202_lzsa
|
||||
.byte 30
|
||||
.word collider_p203_lzsa
|
||||
.byte 30
|
||||
.word collider_p200_lzsa
|
||||
.byte 0
|
||||
|
||||
|
||||
message0:
|
||||
.byte 8,22,"SHIELD 9A.5F OK ",0
|
||||
message1:
|
||||
.byte 8,22,"FLUX % 5.0177 OK",0
|
||||
message2:
|
||||
.byte 8,22,"CDI VECTOR OK ",0
|
||||
message3:
|
||||
.byte 8,22,"%%%DDD OK ",0
|
||||
message4:
|
||||
.byte 8,22,"RACE-TRACK OK ",0
|
||||
|
||||
message_list:
|
||||
.word message0
|
||||
.word message1
|
||||
.word message2
|
||||
.word message3
|
||||
.word message4
|
||||
|
||||
|
||||
five:
|
||||
.byte 29,20,"5 ",0
|
||||
four:
|
||||
.byte 29,20,"4 ",0
|
||||
three:
|
||||
.byte 29,20,"3 ",0
|
||||
two:
|
||||
.byte 29,20,"2 ",0
|
||||
one:
|
||||
.byte 29,20,"1 ",0
|
||||
zero:
|
||||
.byte 29,20,"0 ",0
|
||||
|
||||
times:
|
||||
; note, the second zero is there because we get a TIME_COUNT
|
||||
; of 6 even though it is printed then erased (but never displayed)
|
||||
.word five,four,three,two,one,zero,zero
|
||||
|
||||
|
||||
;=================================
|
||||
;=================================
|
||||
; Intro Segment 07 Data (Soda)
|
||||
|
Loading…
Reference in New Issue
Block a user