Preserving whatever this was just in case someone cares in the future

This commit is contained in:
Rob Greene 2021-03-22 18:08:17 -05:00
parent 6f1daaefd9
commit 9c60e6f776
4 changed files with 177 additions and 9 deletions

43
NOTES.txt Normal file
View 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

View File

@ -43,6 +43,9 @@ FAILBYTS = 6656 ; Number of bytes before failure
* 80 column card / print controls:
HTAB = $57B ; set
VTAB = $FB5B ; call with Acc.
_PRBYTE = 1 ; print byte @ addr
_CLS = $8C ; clear screen
_INVERSE = $8F

View File

@ -11,20 +11,22 @@
*
TestInit
jsr NewPrint
asc "%v",$17,"Bottom Line? %m@ (open apple)",$00
lda #>535
ldy #<535 ; Nice odd number of lines > 256
rts
TestDisplay
phy
pha
lda #_CLREOL
jsr COUT
pla
jsr PRHEX
pla
jsr PRHEX
jmp PRCR
sty DATA
sta DATA+1
jsr NewPrint
asc "%w"
da DATA
dfb $8D,0
rts
TestKeypress
jmp KeyboardWait

120
util.s
View File

@ -187,3 +187,123 @@ HandleKey
lda TEMP
sec
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