mirror of
https://github.com/a2-4am/passport.git
synced 2025-01-03 08:33:18 +00:00
backscroll log
This commit is contained in:
parent
79e30dda0e
commit
481e61cd0b
1
Makefile
1
Makefile
@ -58,6 +58,7 @@ asm:
|
||||
grep "OpenFile=" build/vars.log | cut -d":" -f3 | cut -d"(" -f1 >> build/vars.a
|
||||
grep "ReadFile=" build/vars.log | cut -d":" -f3 | cut -d"(" -f1 >> build/vars.a
|
||||
grep "CloseFile=" build/vars.log | cut -d":" -f3 | cut -d"(" -f1 >> build/vars.a
|
||||
grep "CheckCache=" build/vars.log | cut -d":" -f3 | cut -d"(" -f1 >> build/vars.a
|
||||
$(EXOMIZER) -b build/passport.tmp -o build/passport.pak
|
||||
cd src && $(ACME) -DFORWARD_DECRUNCHING=0 wrapper.a
|
||||
cp res/work.po "$(BUILDDISK)".po
|
||||
|
@ -170,8 +170,11 @@ Reaction
|
||||
sta gSector
|
||||
sta gPatchCount
|
||||
sta jCallRWTS+1
|
||||
sta CacheDst+1
|
||||
lda #$08
|
||||
sta gAddress+1
|
||||
lda #$D4
|
||||
sta CacheDst+2
|
||||
jsr ShowInitialProgressScreen
|
||||
|
||||
lda gMode
|
||||
@ -226,6 +229,7 @@ TheEnd
|
||||
beq HandleRedo
|
||||
cmp #k_redo_with_ignore
|
||||
beq HandleRedoWithIgnore
|
||||
jsr CheckLogKeys
|
||||
jmp MainMenu
|
||||
|
||||
HandleRedoWithIgnore
|
||||
@ -462,4 +466,5 @@ LastMover
|
||||
!warn "DiskIIArray=",DiskIIArray
|
||||
!warn "HardDiskArray=",HardDiskArray
|
||||
!warn "ThisSlot=",ThisSlot
|
||||
!warn "CheckCache=",CheckCache
|
||||
}
|
||||
|
195
src/print.a
195
src/print.a
@ -183,3 +183,198 @@ ClearScreen
|
||||
bne @begin
|
||||
@home
|
||||
jmp HOME
|
||||
|
||||
;-------------------------------
|
||||
; CheckCache
|
||||
; Intercept text about to be scrolled off the screen
|
||||
; Cache it in spare LC space for viewing later
|
||||
;-------------------------------
|
||||
CheckCache
|
||||
ldx $25
|
||||
cpx #$17
|
||||
bne .nocache
|
||||
ldx $24
|
||||
cpx #$27
|
||||
beq .docache
|
||||
cmp #$8D
|
||||
bne .nocache
|
||||
.docache
|
||||
pha
|
||||
cmp #$8D
|
||||
beq .skipcr
|
||||
sta $7F7
|
||||
.skipcr
|
||||
bit $C081
|
||||
bit $C081
|
||||
ldx #$27
|
||||
cachesrc
|
||||
lda $700, x
|
||||
CacheDst
|
||||
sta $D400, x
|
||||
dex
|
||||
bpl cachesrc
|
||||
lda CacheDst+1
|
||||
adc #$27
|
||||
sta CacheDst+1
|
||||
bcc .skiphi
|
||||
inc CacheDst+2
|
||||
.skiphi
|
||||
pla
|
||||
|
||||
.nocache
|
||||
jmp $FDF0
|
||||
|
||||
;-------------------------------
|
||||
; CheckLogKeys
|
||||
; Enable scrolling of log, if more than once screen worth
|
||||
; Left/Right (all)
|
||||
; Up/Down (not II or II+)
|
||||
;-------------------------------
|
||||
|
||||
CheckLogKeys
|
||||
ldx CacheDst+1
|
||||
ldy CacheDst+2
|
||||
cpy #$D4
|
||||
bne .yeslog
|
||||
cpx #0
|
||||
beq .nolog
|
||||
|
||||
.yeslog
|
||||
stx .startline1+1
|
||||
sty .startline1+2
|
||||
stx .startline2+1
|
||||
sty .startline2+2
|
||||
pha
|
||||
jsr .substart
|
||||
pla
|
||||
bmi .skipkey
|
||||
|
||||
.checkkey
|
||||
jsr WaitForKey
|
||||
.skipkey
|
||||
cmp #k_left
|
||||
beq .checkup
|
||||
cmp #k_up
|
||||
beq .checkup
|
||||
cmp #k_right
|
||||
beq .checkdown
|
||||
cmp #k_down
|
||||
beq .checkdown
|
||||
.nolog
|
||||
rts
|
||||
|
||||
.checkup
|
||||
lda .startline1+2
|
||||
cmp #$D4
|
||||
bne .scrollup
|
||||
lda .startline1+1
|
||||
beq .checkkey
|
||||
|
||||
.scrollup
|
||||
jsr .substart
|
||||
bit $C081
|
||||
bit $C081
|
||||
ldx #$27
|
||||
.copyend1
|
||||
lda $7D0,x
|
||||
.endline1
|
||||
sta $D428,x
|
||||
dex
|
||||
bpl .copyend1
|
||||
|
||||
ldx #22
|
||||
.scrollscreen
|
||||
txa
|
||||
jsr $FBC1 ;BASCALC
|
||||
lda $28
|
||||
sta $2A
|
||||
lda $29
|
||||
sta $2B
|
||||
inx
|
||||
txa
|
||||
jsr $FBC1 ;BASCALC
|
||||
ldy #$27
|
||||
.copyline
|
||||
lda ($2A),y
|
||||
sta ($28),y
|
||||
dey
|
||||
bpl .copyline
|
||||
dex
|
||||
dex
|
||||
cpx #5
|
||||
bne .scrollscreen
|
||||
bit $C083
|
||||
ldx #$27
|
||||
.copystart1
|
||||
.startline1
|
||||
lda $D400,x
|
||||
sta $700,x
|
||||
dex
|
||||
bpl .copystart1
|
||||
bit $C081
|
||||
jmp .checkkey
|
||||
|
||||
.checkdown
|
||||
lda .endline1+2
|
||||
cmp CacheDst+2
|
||||
bne .scrolldown
|
||||
lda .endline1+1
|
||||
cmp CacheDst+1
|
||||
beq .checkkey
|
||||
|
||||
.scrolldown
|
||||
bit $C081
|
||||
bit $C081
|
||||
ldx #$27
|
||||
.copystart2
|
||||
lda $700,x
|
||||
.startline2
|
||||
sta $D400,x
|
||||
dex
|
||||
bpl .copystart2
|
||||
lda #$8D
|
||||
jsr $FDF0
|
||||
bit $C083
|
||||
bit $C083
|
||||
ldx #$27
|
||||
.copyend2
|
||||
.endline2
|
||||
lda $D428,x
|
||||
sta $7D0,x
|
||||
dex
|
||||
bpl .copyend2
|
||||
bit $C081
|
||||
jsr .addstart
|
||||
jmp .checkkey
|
||||
|
||||
.substart
|
||||
sec
|
||||
lda .startline1+1
|
||||
sta .endline1+1
|
||||
sta .endline2+1
|
||||
sbc #$28
|
||||
sta .startline1+1
|
||||
sta .startline2+1
|
||||
lda .startline1+2
|
||||
sta .endline1+2
|
||||
sta .endline2+2
|
||||
sbc #0
|
||||
sta .startline1+2
|
||||
sta .startline2+2
|
||||
rts
|
||||
|
||||
.addstart
|
||||
clc
|
||||
lda .endline1+1
|
||||
sta .startline1+1
|
||||
sta .startline2+1
|
||||
adc #$28
|
||||
sta .endline1+1
|
||||
sta .endline2+1
|
||||
lda .endline1+2
|
||||
sta .startline1+2
|
||||
sta .startline2+2
|
||||
adc #0
|
||||
sta .endline1+2
|
||||
sta .endline2+2
|
||||
rts
|
||||
|
@ -10,6 +10,10 @@ k_slot = "S"
|
||||
k_quit = "Q"
|
||||
k_redo = "2" ;for some side 'B'
|
||||
k_redo_with_ignore = $92; <Ctrl-R>
|
||||
k_left = $88
|
||||
k_right = $95
|
||||
k_up = $8B
|
||||
k_down = $8A
|
||||
; <Esc> will also quit
|
||||
|
||||
!source "strings/enid.a"
|
||||
|
@ -49,6 +49,10 @@ OneTimeSetup
|
||||
jsr ScanForRAMAndHardDisks; scan for things that look like RAM disks or hard disks
|
||||
jsr LoadPrefs ; load preferences (if available)
|
||||
jsr ThisSlot
|
||||
lda #<CheckCache
|
||||
sta $36
|
||||
lda #>CheckCache
|
||||
sta $37
|
||||
lda $FE
|
||||
sta $03F2
|
||||
lda $FF
|
||||
|
@ -50,6 +50,7 @@ for /f "tokens=4,* delims=:(" %%q in ('find "mliparam=" ..\build\out.txt') do ec
|
||||
for /f "tokens=4,* delims=:(" %%q in ('find "OpenFile=" ..\build\out.txt') do echo %%q >> ..\build\vars.a
|
||||
for /f "tokens=4,* delims=:(" %%q in ('find "ReadFile=" ..\build\out.txt') do echo %%q >> ..\build\vars.a
|
||||
for /f "tokens=4,* delims=:(" %%q in ('find "CloseFile=" ..\build\out.txt') do echo %%q >> ..\build\vars.a
|
||||
for /f "tokens=4,* delims=:(" %%q in ('find "CheckCache=" ..\build\out.txt') do echo %%q > ..\build\vars.a
|
||||
cd ..\build
|
||||
%EXOMIZER% raw -q -P23 -T4 -b passport.tmp -o passport.pak
|
||||
cd ..\src
|
||||
|
Loading…
Reference in New Issue
Block a user