mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-07 08:30:20 +00:00
keen1: update story code
This commit is contained in:
parent
28f144664e
commit
f7cd1b2e43
10
games/keen/gr_offsets_split.s
Normal file
10
games/keen/gr_offsets_split.s
Normal file
|
@ -0,0 +1,10 @@
|
|||
gr_offsets_low:
|
||||
.byte <$400,<$480,<$500,<$580,<$600,<$680,<$700,<$780
|
||||
.byte <$428,<$4a8,<$528,<$5a8,<$628,<$6a8,<$728,<$7a8
|
||||
.byte <$450,<$4d0,<$550,<$5d0,<$650,<$6d0,<$750,<$7d0
|
||||
|
||||
gr_offsets_high:
|
||||
.byte >$400,>$480,>$500,>$580,>$600,>$680,>$700,>$780
|
||||
.byte >$428,>$4a8,>$528,>$5a8,>$628,>$6a8,>$728,>$7a8
|
||||
.byte >$450,>$4d0,>$550,>$5d0,>$650,>$6d0,>$750,>$7d0
|
||||
|
|
@ -57,27 +57,112 @@ load_background:
|
|||
bit SET_TEXT
|
||||
bit PAGE1
|
||||
|
||||
ldy #0
|
||||
lda gr_offsets,Y
|
||||
sta INL
|
||||
iny
|
||||
lda gr_offsets,Y
|
||||
sta INH
|
||||
|
||||
lda #<story_data
|
||||
sta OUTL
|
||||
sta START_LINE_L
|
||||
lda #>story_data
|
||||
sta START_LINE_H
|
||||
|
||||
redraw_text:
|
||||
|
||||
ldx #0
|
||||
|
||||
lda START_LINE_L
|
||||
sta INL
|
||||
lda START_LINE_H
|
||||
sta INH
|
||||
|
||||
outer_text_loop:
|
||||
|
||||
lda gr_offsets_low,X
|
||||
sta OUTL
|
||||
lda gr_offsets_high,X
|
||||
sta OUTH
|
||||
|
||||
|
||||
ldy #39
|
||||
inner_text_loop:
|
||||
lda (OUTL),Y
|
||||
sta (INL),Y
|
||||
lda (INL),Y
|
||||
sta (OUTL),Y
|
||||
dey
|
||||
bpl inner_text_loop
|
||||
|
||||
clc
|
||||
lda INL
|
||||
adc #40
|
||||
sta INL
|
||||
lda INH
|
||||
adc #0
|
||||
sta INH
|
||||
|
||||
inx
|
||||
cpx #17
|
||||
bne outer_text_loop
|
||||
|
||||
;==================
|
||||
; draw message
|
||||
;==================
|
||||
|
||||
ldx #18
|
||||
lda gr_offsets_low,X
|
||||
sta OUTL
|
||||
lda gr_offsets_high,X
|
||||
sta OUTH
|
||||
|
||||
ldy #39
|
||||
message_text_loop:
|
||||
lda message,Y
|
||||
and #$3f
|
||||
sta (OUTL),Y
|
||||
dey
|
||||
bpl message_text_loop
|
||||
|
||||
|
||||
jsr wait_until_keypress
|
||||
|
||||
and #$7f ; clear high bit
|
||||
and #$df ; change lower to upper
|
||||
|
||||
cmp #13
|
||||
beq done_with_story
|
||||
cmp #27
|
||||
beq done_with_story
|
||||
|
||||
cmp #'W'
|
||||
beq do_up
|
||||
cmp #$0B
|
||||
beq do_up
|
||||
|
||||
cmp #'S'
|
||||
beq do_down
|
||||
cmp #$0A
|
||||
beq do_down
|
||||
|
||||
jmp redraw_text
|
||||
|
||||
do_up:
|
||||
sec
|
||||
lda START_LINE_L
|
||||
sbc #40
|
||||
sta START_LINE_L
|
||||
lda START_LINE_H
|
||||
sbc #0
|
||||
sta START_LINE_H
|
||||
jmp redraw_text
|
||||
|
||||
do_down:
|
||||
clc
|
||||
lda START_LINE_L
|
||||
adc #40
|
||||
sta START_LINE_L
|
||||
lda START_LINE_H
|
||||
adc #0
|
||||
sta START_LINE_H
|
||||
jmp redraw_text
|
||||
|
||||
|
||||
done_with_story:
|
||||
|
||||
|
||||
lda #LOAD_TITLE
|
||||
sta WHICH_LOAD
|
||||
|
@ -93,9 +178,9 @@ inner_text_loop:
|
|||
.include "gr_copy.s"
|
||||
; .include "wait_a_bit.s"
|
||||
.include "gr_offsets.s"
|
||||
.include "gr_offsets_split.s"
|
||||
.include "zx02_optim.s"
|
||||
|
||||
.include "text_help.s"
|
||||
.include "gr_fast_clear.s"
|
||||
.include "text_print.s"
|
||||
|
||||
|
@ -108,46 +193,6 @@ story_bg:
|
|||
compressed_story_data:
|
||||
.incbin "story/story_data.zx02"
|
||||
|
||||
;====================================
|
||||
; wait for keypress or a few seconds
|
||||
;====================================
|
||||
|
||||
wait_a_bit:
|
||||
|
||||
bit KEYRESET
|
||||
tax
|
||||
|
||||
keyloop:
|
||||
lda #200 ; delay a bit
|
||||
jsr WAIT
|
||||
|
||||
lda KEYPRESS
|
||||
bmi done_keyloop
|
||||
|
||||
; bmi keypress_exit
|
||||
|
||||
dex
|
||||
bne keyloop
|
||||
|
||||
done_keyloop:
|
||||
bit KEYRESET
|
||||
|
||||
cmp #'H'|$80
|
||||
bne really_done_keyloop
|
||||
|
||||
bit SET_TEXT
|
||||
jsr print_help
|
||||
bit SET_GR
|
||||
bit PAGE1
|
||||
|
||||
ldx #100
|
||||
|
||||
jmp keyloop
|
||||
|
||||
really_done_keyloop:
|
||||
|
||||
|
||||
rts
|
||||
|
||||
|
||||
wait_until_keypress:
|
||||
|
@ -157,3 +202,5 @@ wait_until_keypress:
|
|||
rts
|
||||
|
||||
|
||||
message:
|
||||
.byte " ESC TO EXIT / ARROWS TO READ ",0
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
|
||||
|
@ -6,12 +7,51 @@ int main(int argc, char **argv) {
|
|||
char *result;
|
||||
|
||||
int inverse=0;
|
||||
int count,i,length;
|
||||
|
||||
while(1) {
|
||||
|
||||
result=fgets(string,BUFSIZ,stdin);
|
||||
if (result==NULL) break;
|
||||
printf("%s",string);
|
||||
|
||||
if (result[0]=='#') {
|
||||
if (strstr(string,"inverse")) inverse=1;
|
||||
if (strstr(string,"normal")) inverse=0;
|
||||
continue;
|
||||
}
|
||||
|
||||
count=0;
|
||||
|
||||
length=strlen(string);
|
||||
|
||||
if (inverse) {
|
||||
putchar(' '&0x3f);
|
||||
}
|
||||
else {
|
||||
putchar(' '|0x80);
|
||||
}
|
||||
|
||||
for(i=0;i<length;i++) {
|
||||
|
||||
if (string[i]=='\n') continue;
|
||||
|
||||
if (inverse) {
|
||||
putchar(string[i]&0x3f);
|
||||
}
|
||||
else {
|
||||
putchar(string[i]|0x80);
|
||||
}
|
||||
}
|
||||
for(i=0;i<(40-length);i++) {
|
||||
if (inverse) {
|
||||
putchar(' '&0x3f);
|
||||
}
|
||||
else {
|
||||
putchar(' '|0x80);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -24,7 +24,7 @@ JUSTICE WITH AN IRON HAND!
|
|||
|
||||
|
||||
#inverse
|
||||
EPISONE ONE: MAROONED ON MARS
|
||||
EPISODE ONE: MAROONED ON MARS
|
||||
#normal
|
||||
|
||||
|
||||
|
@ -126,7 +126,7 @@ RETURNED HOME, ONLY TO FIND THE
|
|||
VORTICON MOTHERSHIP HOVERING OVER THE
|
||||
EARTH, READY TO DESTROY ALL OF EARTH'S
|
||||
CITIES AND WONDERS! KEEN MUST SNEAK
|
||||
ABOART, STOP THE IMMINENT DESTRUCTION
|
||||
ABOARD, STOP THE IMMINENT DESTRUCTION
|
||||
OF EARTH, AND FIND A WAY TO NEUTRALIZE
|
||||
THE MOTHERSHIP! IF HE FAILS...THE
|
||||
EARTH EXPLODES! (NO PRESSURE.)
|
||||
|
@ -135,7 +135,7 @@ EARTH EXPLODES! (NO PRESSURE.)
|
|||
EPISODE THREE: KEEN MUST DIE!
|
||||
#normal
|
||||
|
||||
KEEN FLIST TO THE PLANET VORTICON VI
|
||||
KEEN FLIES TO THE PLANET VORTICON VI
|
||||
TO ONCE AND FOR ALL RID THE GALAXY OF
|
||||
THE VORTICON MENACE . THE ENTIRE
|
||||
PLANET IS WAITING FOR HIS ARRIVAL,
|
||||
|
|
|
@ -157,6 +157,8 @@ HARDTOP_TILES = $B0
|
|||
ALLHARD_TILES = $B1
|
||||
SOUNDL = $B2
|
||||
SOUNDH = $B3
|
||||
START_LINE_L = $B4 ; story
|
||||
START_LINE_H = $B5 ; story
|
||||
|
||||
WHICH_SLOT = $DA
|
||||
JS_BUTTON_STATE = $DB
|
||||
|
|
Loading…
Reference in New Issue
Block a user