mirror of
https://github.com/a2geek/afscanner.git
synced 2024-09-27 17:54:40 +00:00
Preserving whatever this was just in case someone cares in the future
This commit is contained in:
parent
6f1daaefd9
commit
9c60e6f776
43
NOTES.txt
Normal file
43
NOTES.txt
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
Count:
|
||||||
|
* Enable/disable hilights - data bytes, header bytes, non-zero invalid bytes
|
||||||
|
|
||||||
|
Save/Load Settings?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Memory map:
|
||||||
|
$0000 - $00FF ZP
|
||||||
|
$0200 - $02FF Input
|
||||||
|
$0300 - $03FF Settings?
|
||||||
|
$0400 - $07FF Text
|
||||||
|
$0800 - $1FFF Working buffer
|
||||||
|
$2000 - $3FFF HGR
|
||||||
|
$4000 - $5FFF Track buffer
|
||||||
|
$6000+ Program
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reserved - D5 AA
|
||||||
|
|
||||||
|
13 sector - 32 bytes ("exact" mapping)
|
||||||
|
16 sector - 64 bytes ("additional requirement" to get to 64 bytes)
|
||||||
|
|
||||||
|
Fields:
|
||||||
|
Address Field: D5 AA 96 ... DE AA EB
|
||||||
|
Data Field: D5 AA AD ... DE AA EB
|
||||||
|
|
||||||
|
|
||||||
|
Always:
|
||||||
|
======
|
||||||
|
OA Q = Quit
|
||||||
|
OA * = Monitor
|
||||||
|
OA A,B,C,F,G = Page navigation
|
||||||
|
|
||||||
|
|
||||||
|
Decide per page:
|
||||||
|
===============
|
||||||
|
<-, ->, R, S = track management routine
|
||||||
|
|
||||||
|
Controlled by page init: (embedded in display component)
|
||||||
|
=======================
|
||||||
|
^, v, OA ^, OA v = page navigation routine
|
@ -43,6 +43,9 @@ FAILBYTS = 6656 ; Number of bytes before failure
|
|||||||
|
|
||||||
* 80 column card / print controls:
|
* 80 column card / print controls:
|
||||||
|
|
||||||
|
HTAB = $57B ; set
|
||||||
|
VTAB = $FB5B ; call with Acc.
|
||||||
|
|
||||||
_PRBYTE = 1 ; print byte @ addr
|
_PRBYTE = 1 ; print byte @ addr
|
||||||
_CLS = $8C ; clear screen
|
_CLS = $8C ; clear screen
|
||||||
_INVERSE = $8F
|
_INVERSE = $8F
|
||||||
|
20
page-test.s
20
page-test.s
@ -11,20 +11,22 @@
|
|||||||
*
|
*
|
||||||
|
|
||||||
TestInit
|
TestInit
|
||||||
|
jsr NewPrint
|
||||||
|
asc "%v",$17,"Bottom Line? %m@ (open apple)",$00
|
||||||
|
|
||||||
lda #>535
|
lda #>535
|
||||||
ldy #<535 ; Nice odd number of lines > 256
|
ldy #<535 ; Nice odd number of lines > 256
|
||||||
rts
|
rts
|
||||||
|
|
||||||
TestDisplay
|
TestDisplay
|
||||||
phy
|
sty DATA
|
||||||
pha
|
sta DATA+1
|
||||||
lda #_CLREOL
|
|
||||||
jsr COUT
|
jsr NewPrint
|
||||||
pla
|
asc "%w"
|
||||||
jsr PRHEX
|
da DATA
|
||||||
pla
|
dfb $8D,0
|
||||||
jsr PRHEX
|
rts
|
||||||
jmp PRCR
|
|
||||||
|
|
||||||
TestKeypress
|
TestKeypress
|
||||||
jmp KeyboardWait
|
jmp KeyboardWait
|
||||||
|
120
util.s
120
util.s
@ -187,3 +187,123 @@ HandleKey
|
|||||||
lda TEMP
|
lda TEMP
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
************************* Test Code **************************
|
||||||
|
; Characters - assumption is a character unless % encountered
|
||||||
|
; %(byte < $80) = repeat next character
|
||||||
|
; %w = hex word
|
||||||
|
; %b = hex byte
|
||||||
|
; %% = %
|
||||||
|
; %i = inverse
|
||||||
|
; %n = normal
|
||||||
|
; %mC = C as mouse text (mouse text on, inverse, C, normal, mouse text off)
|
||||||
|
; %h# = HTAB, # is 0..79
|
||||||
|
; %v# = VTAB, # is 0..23
|
||||||
|
; %H = home cursor
|
||||||
|
; %C = clear screen and home cursor
|
||||||
|
; %E = clear to EOL
|
||||||
|
;
|
||||||
|
NewPrint
|
||||||
|
pla
|
||||||
|
sta PTR
|
||||||
|
pla
|
||||||
|
sta PTR+1
|
||||||
|
jsr IncPTR
|
||||||
|
jsr NewPrintX
|
||||||
|
jmp (PTR)
|
||||||
|
|
||||||
|
NewPrintP
|
||||||
|
sta PTR+1
|
||||||
|
stx PTR
|
||||||
|
|
||||||
|
NewPrintX
|
||||||
|
:next jsr FetchPTR
|
||||||
|
cmp #0 ; Fetch loses the status bits
|
||||||
|
beq :exit
|
||||||
|
cmp #"%"
|
||||||
|
beq :specl
|
||||||
|
:cout jsr COUT
|
||||||
|
bra :next
|
||||||
|
|
||||||
|
:exit rts
|
||||||
|
|
||||||
|
:specl jsr FetchPTR
|
||||||
|
bpl :repeat
|
||||||
|
ldx :subcmd
|
||||||
|
:look cmp :subcmd,x
|
||||||
|
beq :dsptch
|
||||||
|
dex
|
||||||
|
bne :look
|
||||||
|
beq :dsptc0 ; X=0 which is %% code as well
|
||||||
|
|
||||||
|
:repeat tax
|
||||||
|
jsr FetchPTR
|
||||||
|
:rep0 jsr COUT
|
||||||
|
dex
|
||||||
|
bne :rep0
|
||||||
|
beq :next
|
||||||
|
|
||||||
|
:dsptch dex ; we're +1 because the lookup table is a STR (length byte at beginning)
|
||||||
|
:dsptc0 txa
|
||||||
|
asl ; times 2
|
||||||
|
tax
|
||||||
|
jmp (:addrs,x)
|
||||||
|
|
||||||
|
:chrout asl ; requires these to be first in :subcmd
|
||||||
|
tax
|
||||||
|
lda :lookup,x
|
||||||
|
bra :cout
|
||||||
|
|
||||||
|
:mtext jsr FetchPTR
|
||||||
|
sta :mt_out+2
|
||||||
|
ldy #0
|
||||||
|
:mtext0 lda :mt_out,y
|
||||||
|
jsr COUT
|
||||||
|
iny
|
||||||
|
cpy #5
|
||||||
|
bne :mtext0
|
||||||
|
bra :next
|
||||||
|
|
||||||
|
:htab jsr FetchPTR
|
||||||
|
sta HTAB
|
||||||
|
bra :next
|
||||||
|
:vtab jsr FetchPTR
|
||||||
|
jsr VTAB
|
||||||
|
bra :next
|
||||||
|
:prbyte jsr SetPTR2
|
||||||
|
:lowb lda (PTR2)
|
||||||
|
jsr PRHEX
|
||||||
|
bra :next
|
||||||
|
:prword jsr SetPTR2
|
||||||
|
ldy #1
|
||||||
|
lda (PTR2),y
|
||||||
|
jsr PRHEX
|
||||||
|
bra :lowb
|
||||||
|
|
||||||
|
; data tables to make relative branches last longer
|
||||||
|
:subcmd str "%inHCEmhvbw"
|
||||||
|
:addrs lup 6 ; 1st set are a character replacement
|
||||||
|
da :lookup
|
||||||
|
--^
|
||||||
|
da :mtext
|
||||||
|
da :htab
|
||||||
|
da :vtab
|
||||||
|
da :prbyte
|
||||||
|
da :prword
|
||||||
|
:lookup asc "%",_NORMAL,_INVERSE,_CLS,_HOME,_CLREOL
|
||||||
|
:mt_out dfb _MT_ON,_INVERSE,0,_NORMAL,_MT_OFF
|
||||||
|
|
||||||
|
SetPTR2 jsr FetchPTR
|
||||||
|
sta PTR2
|
||||||
|
jsr FetchPTR
|
||||||
|
sta PTR2+1
|
||||||
|
rts
|
||||||
|
|
||||||
|
FetchPTR
|
||||||
|
lda (PTR)
|
||||||
|
IncPTR inc PTR
|
||||||
|
bne :exit
|
||||||
|
inc PTR+1
|
||||||
|
:exit rts
|
Loading…
Reference in New Issue
Block a user