887 lines
25 KiB
Tal
887 lines
25 KiB
Tal
|00 @System &vector $2 &pad $6 &r $2 &g $2 &b $2
|
|
|10 @Console &vector $2 &read $1 &pad $5 &write $1
|
|
|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1
|
|
|80 @Controller &vector $2 &button $1 &key $1
|
|
|90 @Mouse &vector $2 &x $2 &y $2 &state $1 &chord $1
|
|
|a0 @File &vector $2 &success $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2
|
|
|
|
( TODOs:
|
|
> Up and down arrows
|
|
> Save/Load )
|
|
|
|
|0000
|
|
|
|
@page $1
|
|
@selection &from $2 &to $2 &length $2
|
|
|
|
|0100
|
|
|
|
( meta )
|
|
;meta #06 DEO2
|
|
( theme )
|
|
#f00f .System/r DEO2
|
|
#f00f .System/g DEO2
|
|
#f00f .System/b DEO2
|
|
load-theme
|
|
( size )
|
|
#00e0 .Screen/width DEO2
|
|
#00f8 .Screen/height DEO2
|
|
( unlock )
|
|
;on-console .Console/vector DEO2
|
|
;on-mouse-body .Mouse/vector DEO2
|
|
;on-frame .Screen/vector DEO2
|
|
;on-control .Controller/vector DEO2
|
|
|
|
file-init
|
|
draw-header
|
|
#00 change-page
|
|
|
|
BRK
|
|
|
|
@meta 00
|
|
( name ) "Note 20 "Pad 0a
|
|
( details ) "Original 20 "by 20 "Donn 20 "Denman 0a
|
|
( author ) "By 20 "Devine 20 "Lu 20 "Linvega 0a
|
|
( date ) "Apr 20 "27, 20 "2023 00
|
|
01
|
|
( icon ) 83 =appicon
|
|
|
|
(
|
|
@|vectors )
|
|
|
|
@on-control ( -> )
|
|
|
|
.Controller/key DEI .Controller/button DEI
|
|
( shortcuts )
|
|
DUP2 [ LIT2 "a 01 ] NEQ2 ?&no-ca POP2 select-all BRK &no-ca
|
|
DUP2 [ LIT2 "x 01 ] NEQ2 ?&no-cx POP2 edit-cut BRK &no-cx
|
|
DUP2 [ LIT2 "c 01 ] NEQ2 ?&no-cc POP2 edit-copy BRK &no-cc
|
|
DUP2 [ LIT2 "v 01 ] NEQ2 ?&no-cv POP2 edit-paste BRK &no-cv
|
|
( arrows )
|
|
DUP #10 NEQ ?&no-u select-up &no-u
|
|
DUP #20 NEQ ?&no-d select-down &no-d
|
|
DUP #40 NEQ ?&no-l select-left &no-l
|
|
DUP #80 NEQ ?&no-r select-right &no-r
|
|
DUP #44 NEQ ?&no-sl .selection/to LDZ2 #0001 SUB2 select-to &no-sl
|
|
DUP #84 NEQ ?&no-sr .selection/to LDZ2 INC2 select-to &no-sr
|
|
POP
|
|
( key )
|
|
DUP #08 NEQ ?&no-bs erase &no-bs
|
|
DUP #7f NEQ ?&no-del delete &no-del
|
|
DUP #09 LTH ?&no-ascii DUP insert &no-ascii
|
|
POP
|
|
#00 ;on-frame/f STA
|
|
|
|
BRK
|
|
|
|
@on-console ( -> )
|
|
|
|
BRK
|
|
|
|
@on-mouse-head ( -> )
|
|
|
|
[ LIT2 00 -Mouse/state ] DEI NEQ #41 ADD ;mouse-icn update-cursor
|
|
.Mouse/state DEI #01 GTH .Mouse/y DEI2 #0012 LTH2 AND ?&toggle-collapse
|
|
|
|
trap-mouse
|
|
|
|
[ LIT &last $1 ]
|
|
.Mouse/state DEI
|
|
DUP ,&last STR
|
|
EQU ?&unchanged
|
|
draw-header
|
|
( release on close button )
|
|
.Mouse/state DEI ?&unchanged
|
|
.Mouse/x DEI2 #0008 SUB2 #000a GTH2 ?&unchanged
|
|
#010f DEO
|
|
&unchanged
|
|
|
|
BRK
|
|
|
|
&toggle-collapse ( -> )
|
|
|
|
#00e0 .Screen/width DEO2
|
|
|
|
#00f8 #0011
|
|
DUP2 .Screen/height DEI2 EQU2 [ JMP SWP2 POP2 ]
|
|
.Screen/height DEO2
|
|
draw-header
|
|
redraw
|
|
[ LIT2 00 -Mouse/state ] DEO
|
|
|
|
BRK
|
|
|
|
@on-mouse-body ( -> )
|
|
|
|
[ LIT2 00 -Mouse/state ] DEI NEQ #41 ADD ;caret-icn update-cursor
|
|
|
|
trap-mouse
|
|
|
|
[ LIT &last $1 ] .Mouse/state DEI
|
|
DUP2 #0002 NEQ2 ?&no-mouse2
|
|
get-position select-word
|
|
&no-mouse2
|
|
DUP2 #0001 NEQ2 ?&no-down
|
|
get-position select-from
|
|
&no-down
|
|
DUP2 #0101 NEQ2 ?&no-drag
|
|
get-position select-to
|
|
&no-drag
|
|
DUP2 #0100 NEQ2 ?&no-up
|
|
( nothing )
|
|
&no-up
|
|
,&last STR POP
|
|
|
|
BRK
|
|
|
|
@on-mouse-foot ( -> )
|
|
|
|
[ LIT2 00 -Mouse/state ] DEI NEQ #41 ADD ;mouse-icn update-cursor
|
|
|
|
trap-mouse
|
|
|
|
.Mouse/state DEI #00 NEQ .Mouse/x DEI2 #0018 LTH2 AND ?&on-mouse-down
|
|
|
|
BRK
|
|
|
|
&on-mouse-down ( -> )
|
|
|
|
[ LIT2 00 -Mouse/state ] DEO
|
|
|
|
.Mouse/y DEI2 #00d6 SUB2 NIP
|
|
#18 .Mouse/x DEI2 NIP SUB
|
|
ADD #18 LTH ?&go-next
|
|
prev-page
|
|
BRK
|
|
&go-next next-page
|
|
|
|
BRK
|
|
|
|
@on-frame ( -> )
|
|
|
|
[ LIT &last $1 ] [ LIT &f $1 ] INCk ,&f STR
|
|
#05 SFT DUP ,&last STR
|
|
EQU ?&unchanged
|
|
draw-note
|
|
&unchanged
|
|
|
|
BRK
|
|
|
|
(
|
|
@|editor )
|
|
|
|
@insert ( char -- )
|
|
|
|
( move ) #fff0 get-eof SUB2 ORA ?&valid
|
|
POP JMP2r
|
|
&valid
|
|
|
|
( convert linebreaks )
|
|
DUP #0d EQU #03 MUL SUB
|
|
|
|
.selection/length LDZ2 #0001 EQU2 ?&no-block
|
|
erase-selection
|
|
&no-block
|
|
|
|
.selection/from LDZ2 STH2k #0001 SUB2 get-eof #0001 msfr
|
|
STH2kr STA
|
|
STH2r INC2
|
|
|
|
!select-from
|
|
|
|
@erase ( -- )
|
|
|
|
.selection/length LDZ2 #0001 LTH2 ?&no-block
|
|
erase-selection
|
|
!select-reset
|
|
&no-block
|
|
|
|
.selection/from LDZ2 get-page NEQ2 [ JMP JMP2r ]
|
|
|
|
.selection/from LDZ2 #0001 SUB2
|
|
DUP2 cut-char
|
|
|
|
!select-from
|
|
|
|
@erase-selection ( -- )
|
|
|
|
.selection/from LDZ2 get-eof .selection/length LDZ2
|
|
|
|
!msfl
|
|
|
|
@delete ( -- )
|
|
|
|
get-eof .selection/from LDZ2 SUB2 ORA #01 [ JCN JMP2r ]
|
|
|
|
.selection/length LDZ2 #0001 EQU2 ?&no-block
|
|
erase-selection
|
|
!select-reset
|
|
&no-block
|
|
|
|
.selection/from LDZ2 cut-char
|
|
|
|
!redraw
|
|
|
|
@get-eof ( -- addr* )
|
|
|
|
get-page
|
|
|
|
!scap
|
|
|
|
@cut-char ( addr* -- )
|
|
|
|
get-eof #0001
|
|
|
|
!msfl
|
|
|
|
(
|
|
@|selection )
|
|
|
|
@select-reset ( -- )
|
|
|
|
.selection/from LDZ2
|
|
|
|
( >> )
|
|
|
|
@select-from ( addr* -- )
|
|
|
|
( min ) get-page GTH2k [ JMP SWP2 POP2 ]
|
|
( max ) get-eof #0001 SUB2 LTH2k [ JMP SWP2 POP2 ]
|
|
|
|
DUP2 .selection/from STZ2
|
|
.selection/to STZ2
|
|
|
|
.selection/to LDZ2 .selection/from LDZ2 SUB2 .selection/length STZ2
|
|
#00 ;on-frame/f STA
|
|
|
|
!redraw
|
|
|
|
@select-to ( addr* -- )
|
|
|
|
( min ) .selection/from LDZ2 GTH2k [ JMP SWP2 POP2 ]
|
|
( max ) get-eof #0001 SUB2 LTH2k [ JMP SWP2 POP2 ]
|
|
|
|
.selection/to STZ2
|
|
.selection/to LDZ2 .selection/from LDZ2 SUB2 .selection/length STZ2
|
|
#00 ;on-frame/f STA
|
|
|
|
!redraw
|
|
|
|
@select-word ( addr* -- )
|
|
|
|
DUP2
|
|
&back #0001 SUB2 LDAk #20 GTH ?&back INC2 .selection/from STZ2
|
|
&next INC2 LDAk #20 GTH ?&next .selection/to STZ2
|
|
|
|
!redraw
|
|
|
|
@select-all ( -- )
|
|
|
|
get-page
|
|
DUP2 .selection/from STZ2
|
|
scap .selection/to STZ2
|
|
|
|
.selection/to LDZ2 .selection/from LDZ2 SUB2 .selection/length STZ2
|
|
|
|
!redraw
|
|
|
|
@select-up ( -- )
|
|
|
|
( TODO )
|
|
|
|
JMP2r
|
|
|
|
@select-down ( -- )
|
|
|
|
( TODO )
|
|
|
|
JMP2r
|
|
|
|
@select-left ( -- )
|
|
|
|
.selection/length LDZ2 #0000 EQU2 ?&no-block
|
|
.selection/from LDZ2 !select-from
|
|
&no-block
|
|
.selection/from LDZ2 #0001 SUB2
|
|
|
|
!select-from
|
|
|
|
@select-right ( -- )
|
|
|
|
.selection/length LDZ2 #0000 EQU2 ?&no-block
|
|
.selection/to LDZ2 !select-from
|
|
&no-block
|
|
.selection/from LDZ2 INC2
|
|
|
|
!select-from
|
|
|
|
@is-selected ( addr* -- f )
|
|
|
|
DUP2 .selection/from LDZ2 LTH2 ?&false
|
|
DUP2 .selection/to LDZ2 #0001 SUB2 GTH2 ?&false
|
|
POP2 #01
|
|
|
|
JMP2r
|
|
&false POP2 #00 JMP2r
|
|
|
|
(
|
|
@|file )
|
|
|
|
@file-init ( -- )
|
|
|
|
;notepad-txt file-size #0000 EQU2 ?file-new
|
|
|
|
@file-load ( -- )
|
|
|
|
;notepad-txt .File/name DEO2
|
|
#8000 .File/length DEO2
|
|
;mem .File/read DEO2
|
|
|
|
JMP2r
|
|
|
|
@file-new ( -- )
|
|
|
|
( initialize pages )
|
|
#0801
|
|
&l
|
|
#00 OVR #c0 SFT2 ;mem ADD2 STH2 #20 STH2r STA
|
|
INC GTHk ?&l
|
|
POP2
|
|
|
|
JMP2r
|
|
|
|
@file-save ( -- )
|
|
|
|
JMP2r
|
|
|
|
|
|
@notepad-txt ".notepad $1
|
|
|
|
@file-size ( path* -- size* )
|
|
|
|
.File/name DEO2
|
|
#0001 .File/length DEO2
|
|
[ LIT2r 0000 ]
|
|
&s
|
|
;&b .File/read DEO2
|
|
.File/success DEI2 #0000 EQU2 ?&eof
|
|
INC2r !&s &eof
|
|
STH2r
|
|
|
|
JMP2r
|
|
&b $1
|
|
|
|
@file-inject ( name* -- )
|
|
|
|
DUP2 file-size
|
|
ORAk ?&exists
|
|
POP2 POP2 JMP2r
|
|
&exists
|
|
STH2
|
|
.File/name DEO2
|
|
STH2kr .File/length DEO2
|
|
( erase when selection length )
|
|
.selection/length LDZ2 #0001 EQU2 ?&no-selection
|
|
erase-selection
|
|
&no-selection
|
|
( push right ) .selection/from LDZ2 #0001 SUB2
|
|
get-eof STH2kr msfr
|
|
.selection/from LDZ2 .File/read DEO2
|
|
.selection/from LDZ2 STH2r ADD2
|
|
|
|
!select-from
|
|
|
|
@edit-cut ( -- )
|
|
|
|
.selection/length LDZ2 #0001 GTH2 [ JMP JMP2r ]
|
|
|
|
edit-copy
|
|
erase-selection
|
|
|
|
!select-reset
|
|
|
|
@edit-copy ( -- )
|
|
|
|
.selection/length LDZ2 #0001 GTH2 [ JMP JMP2r ]
|
|
|
|
;snarf-txt .File/name DEO2
|
|
.selection/length LDZ2 .File/length DEO2
|
|
.selection/from LDZ2 .File/write DEO2
|
|
|
|
JMP2r
|
|
|
|
@edit-paste ( -- )
|
|
|
|
;snarf-txt
|
|
|
|
!file-inject
|
|
|
|
@snarf-txt ".snarf $1
|
|
|
|
(
|
|
@|core )
|
|
|
|
@trap-mouse ( -- )
|
|
|
|
.Mouse/y DEI2
|
|
DUP2 #0018 GTH2 ?&no-head
|
|
POP2 ;on-mouse-head .Mouse/vector DEO2 JMP2r
|
|
&no-head
|
|
DUP2 #00d6 LTH2 ?&no-foot
|
|
POP2 ;on-mouse-foot .Mouse/vector DEO2 JMP2r
|
|
&no-foot
|
|
POP2
|
|
;on-mouse-body .Mouse/vector DEO2
|
|
|
|
JMP2r
|
|
|
|
@change-page ( id -- )
|
|
|
|
.page STZ
|
|
get-page scap #0001 SUB2
|
|
|
|
!select-from
|
|
|
|
@prev-page ( -- )
|
|
|
|
.page LDZ #01 SUB #07 AND
|
|
|
|
!change-page
|
|
|
|
@next-page ( -- )
|
|
|
|
.page LDZ INC #07 AND
|
|
|
|
!change-page
|
|
|
|
@pos-to-line ( y* -- line )
|
|
|
|
#0012 SUB2 #04 SFT2 NIP
|
|
|
|
JMP2r
|
|
|
|
@get-position ( -- addr* )
|
|
|
|
#0008 .Screen/x DEO2
|
|
#0018 .Screen/y DEO2
|
|
( walk to line )
|
|
.Mouse/y DEI2 pos-to-line ,&line STR
|
|
get-page
|
|
&walk-line
|
|
.Screen/y DEI2 pos-to-line [ LIT &line $1 ] EQU ?&end-line
|
|
walk-char POP
|
|
INC2 LDAk ?&walk-line
|
|
&end-line
|
|
( walk to char )
|
|
.Mouse/x DEI2 #0001 SUB2 ,&x STR2
|
|
&walk-char
|
|
.Screen/x DEI2 [ LIT2 &x $2 ] GTH2 ?&end-char
|
|
walk-char ?&end-char
|
|
INC2 LDAk ?&walk-char
|
|
&end-char
|
|
|
|
JMP2r
|
|
|
|
@walk-char ( addr* -- addr* lb )
|
|
|
|
( wrap )
|
|
LDAk #20 GTH ?&no-wrap
|
|
DUP2 word-width .Screen/x DEI2 ADD2 #00d0 LTH2 ?&no-wrap
|
|
#01 !draw-linebreak
|
|
&no-wrap
|
|
( char )
|
|
LDAk char-width .Screen/x DEI2 ADD2
|
|
.Screen/x DEO2
|
|
( tab )
|
|
LDAk #09 NEQ ?&no-tab
|
|
#00 !draw-tab
|
|
&no-tab
|
|
( linebreak )
|
|
LDAk #0a NEQ ?&no-lb
|
|
#01 !draw-linebreak
|
|
&no-lb
|
|
#00
|
|
|
|
JMP2r
|
|
|
|
@get-page ( -- addr* )
|
|
|
|
;mem #00 .page LDZ #c0 SFT2 ADD2
|
|
|
|
JMP2r
|
|
|
|
@char-addr ( char -- addr* )
|
|
|
|
DUP #7e GTH ?&missing
|
|
#20 SUB #00 SWP #50 SFT2 ;font/glyphs ADD2
|
|
|
|
JMP2r
|
|
&missing POP ;error-icn JMP2r
|
|
|
|
@char-width ( char -- width* )
|
|
|
|
DUP #7e GTH ?&missing
|
|
#20 SUB #00 SWP ;font ADD2 LDA #00 SWP
|
|
|
|
JMP2r
|
|
&missing POP #0008 JMP2r
|
|
|
|
@word-width ( str* -- length* )
|
|
|
|
[ LIT2r 0000 ]
|
|
&while
|
|
LDAk char-width STH2 ADD2r
|
|
INC2 LDAk #20 GTH ?&while
|
|
POP2
|
|
STH2r
|
|
|
|
JMP2r
|
|
|
|
(
|
|
@|drawing )
|
|
|
|
@draw-header ( -- )
|
|
|
|
( a )
|
|
#0000
|
|
DUP2 .Screen/x DEO2
|
|
.Screen/y DEO2
|
|
[ LIT2 15 -Screen/auto ] DEO
|
|
;bar-icn/a .Screen/addr DEO2
|
|
[ LIT2 01 -Screen/sprite ] DEO
|
|
( close )
|
|
;close-icn
|
|
#00 .Mouse/state DEI #00 NEQ .Mouse/x DEI2 #0008 SUB2 #000a LTH2 AND
|
|
#50 SFT2 ADD2 .Screen/addr DEO2
|
|
[ LIT2 01 -Screen/sprite ] DEOk DEO
|
|
( lead )
|
|
#e9 &l
|
|
;bar-icn/b .Screen/addr DEO2
|
|
[ LIT2 01 -Screen/sprite ] DEO
|
|
INC DUP ?&l
|
|
POP
|
|
;bar-icn/b .Screen/addr DEO2
|
|
[ LIT2 01 -Screen/sprite ] DEOk DEO
|
|
( title )
|
|
#004b .Screen/x DEO2
|
|
[ LIT2 86 -Screen/auto ] DEO
|
|
;title-icn .Screen/addr DEO2
|
|
[ LIT2 01 -Screen/sprite ] DEOk DEO
|
|
( line )
|
|
[ LIT2 d2 -Screen/auto ] DEO
|
|
#0000 .Screen/x DEO2
|
|
#0010 .Screen/y DEO2
|
|
;line-icn .Screen/addr DEO2
|
|
[ LIT2 01 -Screen/sprite ] DEO
|
|
#0070 .Screen/x DEO2
|
|
#0010 .Screen/y DEO2
|
|
[ LIT2 01 -Screen/sprite ] DEO
|
|
|
|
JMP2r
|
|
|
|
@redraw ( -- )
|
|
|
|
#0000 .Screen/x DEO2
|
|
#0018 .Screen/y DEO2
|
|
[ LIT2 80 -Screen/pixel ] DEO
|
|
|
|
@draw-note ( -- )
|
|
|
|
[ LIT2 15 -Screen/auto ] DEO
|
|
#0008 .Screen/x DEO2
|
|
#0018 .Screen/y DEO2
|
|
get-page
|
|
&while
|
|
( draw char )
|
|
LDAk char-addr .Screen/addr DEO2
|
|
DUP2 is-selected STH #0701 STHr [ JMP SWP POP ] .Screen/sprite DEOk DEO
|
|
.Screen/x DEI2k #0010 SUB2 ROT DEO2
|
|
( draw selector )
|
|
.selection/from LDZ2 .selection/to LDZ2 NEQ2 ?&block
|
|
DUP2 .selection/from LDZ2 NEQ2 ?&block
|
|
;on-frame/last LDA #01 AND ?&block
|
|
;blink-icn .Screen/addr DEO2
|
|
[ LIT2 05 -Screen/sprite ] DEO
|
|
.Screen/x DEI2k #0008 SUB2 ROT DEO2
|
|
&block
|
|
walk-char POP
|
|
INC2 LDAk ?&while
|
|
POP2
|
|
|
|
@draw-footer ( -- )
|
|
|
|
.Screen/height DEI2 #0020 GTH2 ?&visible
|
|
JMP2r
|
|
&visible
|
|
[ LIT2 26 -Screen/auto ] DEO
|
|
#0000 .Screen/x DEO2
|
|
.Screen/height DEI2 #0020 SUB2 .Screen/y DEO2
|
|
;page-icn .Screen/addr DEO2
|
|
[ LIT2 01 -Screen/sprite ] DEOk DEOk DEOk DEO
|
|
( across )
|
|
[ LIT2 01 -Screen/auto ] DEO
|
|
#0018 .Screen/x DEO2
|
|
.Screen/height DEI2 #0008 SUB2 .Screen/y DEO2
|
|
;page-icn/bottom .Screen/addr DEO2
|
|
#e7 &l
|
|
[ LIT2 01 -Screen/sprite ] DEO
|
|
INC DUP ?&l
|
|
POP
|
|
( page number )
|
|
[ LIT2 15 -Screen/auto ] DEO
|
|
.Screen/width DEI2 #01 SFT2 #0003 SUB2 .Screen/x DEO2
|
|
.Screen/height DEI2 #0020 SUB2 .Screen/y DEO2
|
|
#0011 .page LDZ ADD #50 SFT2 ;font/glyphs ADD2 .Screen/addr DEO2
|
|
[ LIT2 01 -Screen/sprite ] DEOk DEO
|
|
|
|
JMP2r
|
|
|
|
@draw-tab ( -- )
|
|
|
|
.Screen/x DEI2k #0020 ADD2 #33 SFT2 ROT DEO2
|
|
|
|
JMP2r
|
|
|
|
@draw-linebreak ( -- )
|
|
|
|
#0008 .Screen/x DEO2
|
|
.Screen/y DEI2k #0010 ADD2 ROT DEO2
|
|
|
|
JMP2r
|
|
|
|
@update-cursor ( color addr* -- )
|
|
|
|
[ LIT2 15 -Screen/auto ] DEO
|
|
#40 draw-cursor
|
|
.Mouse/x DEI2 ,draw-cursor/x STR2
|
|
.Mouse/y DEI2 ,draw-cursor/y STR2
|
|
.Screen/addr DEO2
|
|
|
|
@draw-cursor ( color -- )
|
|
|
|
[ LIT2 &x $2 ] .Screen/x DEO2
|
|
[ LIT2 &y $2 ] .Screen/y DEO2
|
|
.Screen/sprite DEO
|
|
|
|
JMP2r
|
|
|
|
@load-theme ( -- )
|
|
|
|
;&path .File/name DEO2
|
|
#0002 .File/length DEO2
|
|
;&r .File/read DEO2
|
|
;&g .File/read DEO2
|
|
;&b .File/read DEO2
|
|
.File/success DEI2 ORA [ #01 JCN JMP2r ]
|
|
LIT2 &r $2 .System/r DEO2
|
|
LIT2 &g $2 .System/g DEO2
|
|
LIT2 &b $2 .System/b DEO2
|
|
|
|
JMP2r
|
|
&path ".theme $1
|
|
|
|
|
|
(
|
|
@|stdlib )
|
|
|
|
@msfl ( b* a* len* -- ) STH2 SWP2 EQU2k ?&e &l DUP2k STH2kr ADD2 LDA ROT ROT STA INC2 GTH2k ?&l POP2 POP2 &e POP2r JMP2r
|
|
@msfr ( b* a* len* -- ) STH2 EQU2k ?&e &l DUP2 LDAk ROT ROT STH2kr ADD2 STA #0001 SUB2 LTH2k ?&l POP2 POP2 &e POP2r JMP2r
|
|
@scap ( str* -- end* ) LDAk #00 NEQ [ JMP JMP2r ] &w INC2 LDAk ?&w JMP2r
|
|
@sput ( chr str* -- ) scap INC2k #00 ROT ROT STA STA JMP2r
|
|
@phex ( short* -- ) SWP phex/b &b ( byte -- ) DUP #04 SFT phex/c &c ( char -- ) #0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO JMP2r
|
|
|
|
(
|
|
@|assets )
|
|
|
|
@error-icn [
|
|
aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 ]
|
|
@blink-icn [
|
|
8080 8080 8080 8080 8080 8080 8080 8080 ]
|
|
@caret-icn [
|
|
c628 1010 1010 1010 1010 1010 1010 28c6 ]
|
|
@mouse-icn [
|
|
80c0 e0f0 f8fc feff f8d8 8c0c 0606 0000 ]
|
|
@bar-icn
|
|
&a [
|
|
0000 007e 007e 007e 007e 007e 007e 0000 ]
|
|
&b [
|
|
0000 00ff 00ff 00ff 00ff 00ff 00ff 0000 ]
|
|
&c [
|
|
0000 00fe 00fe 00fe 00fe 00fe 00fe 0000 ]
|
|
@close-icn
|
|
0000 00ff 8080 8080 8080 8080 80ff 0000
|
|
0000 00ef 202f 202f 202f 202f 20ef 0000
|
|
0000 00ff 84a4 9580 f180 95a4 84ff 0000
|
|
0000 00ef 20af 202f e02f 20af 20ef 0000 ]
|
|
@title-icn [
|
|
0000 0080 0080 0080 0000 0000 82c2 e2f2
|
|
0000 0000 0000 3c66 0000 0000 3030 7831
|
|
0000 0000 0000 f098 0000 0000 1f19 1919
|
|
0000 0000 0080 8f91 0000 0000 0101 0f99
|
|
0000 0000 8080 8080 0080 0080 0080 0000
|
|
ba9e 8e86 8200 0000 6666 6666 3c00 0000
|
|
3131 3131 1800 0000 98f8 8088 f000 0000
|
|
1f18 1818 1800 0000 0f19 1919 0f00 0000
|
|
9999 9999 8f00 0000 8080 8080 8000 0000 ]
|
|
@page-icn [
|
|
00ff 4020 1008 0402 00ff 0000 0000 0000
|
|
00ff 0101 0101 0101 0100 0000 0000 0000
|
|
0080 4020 1008 0402 0101 0101 0101 0101
|
|
0000 0000 0000 0000 0100 0000 0000 0000
|
|
0181 4121 1109 0503 0000 ff00 ff00 ffff
|
|
0000 ff00 ff00 ffff 0100 ff00 ff00 ffff ]
|
|
&bottom [
|
|
ff00 ff00 ff00 ffff ]
|
|
@line-icn [
|
|
00ff 0000 0000 0000 ]
|
|
@font ( newyork12 ) [
|
|
0404 0508 0709 0a03 0505 0606 0306 0307 0808 0808 0808 0808 0808 0303 0507 0507
|
|
0a0a 0807 0807 0708 0906 0508 080c 0908 0808 0807 0809 0a0d 0808 0604 0704 0407
|
|
0407 0806 0807 0507 0804 0408 040c 0807 0808 0606 0508 080b 0708 0605 0305 0601
|
|
0a0a 0707 0908 0907 0707 0707 0706 0707 0707 0404 0404 0807 0707 0707 0808 0808
|
|
0405 0708 0708 0907 0909 0904 0400 0c08 0000 0000 0800 0000 0000 0007 0600 0a07
|
|
0704 0000 0000 0007 0709 080a 0a08 0c0b 0509 0505 0303 0009 080a 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 00ff 0000 0000 0000 0000 ffff ffff ffff ffff
|
|
&glyphs
|
|
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0020 2020 2020 2020 0020 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0050 5000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0014 7e28 fc50 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 1038 5450 3010 1814 5438 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 003e 494a 3408 1629 4946 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0018 2428 1029 4542 4539 0000 0000 0000 0000 0000 0080 0000 0080 0000 0000
|
|
0000 0040 4000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 1020 2040 4040 4040 2020 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 4020 2010 1010 1010 2020 4000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 20a8 7070 a820 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 2020 f820 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0040 4080 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 7800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0004 0408 0810 1020 2040 4000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0018 2442 4242 4242 2418 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0008 1808 0808 0808 081c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0038 4404 0408 1020 447c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0018 2404 0818 0402 0202 4438 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0004 0810 2444 7e04 040e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 007c 4040 7804 0202 0204 0870 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 1820 4058 6442 4242 2418 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 007e 4204 0408 0810 1010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0018 2424 1824 4242 4224 1800 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0018 2442 4242 261a 0204 1800 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 4000 0000 0040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 4000 0000 0040 4080 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 1020 4020 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 007c 007c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 4020 1020 4000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0038 4404 0408 1010 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 001e 214c 5252 4d20 1e00 0000 0000 0000 0000 0080 8080 0000 0000 0000
|
|
0000 0008 0814 1422 3e41 41e3 0000 0000 0000 0000 0000 0000 0000 0080 0000 0000
|
|
0000 00f8 4444 7844 4242 44f8 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0038 4480 8080 8080 4438 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 00f8 4442 4242 4242 44f8 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 00fc 4440 4878 4840 44fc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 00fc 4440 4878 4840 40e0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 003c 4480 808e 8484 4438 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 00e7 4242 427e 4242 42e7 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0070 2020 2020 2020 2070 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0070 2020 2020 2020 2020 2020 c000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 00ee 4448 5060 5048 44ee 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0070 2020 2020 2020 227e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 00e0 6060 5151 4a4a 44e4 0000 0000 0000 00e0 c0c0 4040 4040 40e0 0000 0000
|
|
0000 00e7 6252 524a 4a46 46e2 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0038 4482 8282 8282 4438 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 00f8 4442 4244 7840 40e0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0038 4482 8282 8282 4438 100c 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 00f8 4444 4478 5048 44e6 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 003c 4440 2010 0804 4478 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 00fe 9210 1010 1010 1038 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 00e7 4242 4242 4242 2418 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 00e3 4141 2222 1414 0808 0000 0000 0000 0080 0000 0000 0000 0000 0000 0000
|
|
0000 0077 2222 1515 1508 0808 0000 0000 0000 0070 2020 4040 4080 8080 0000 0000
|
|
0000 00ee 4428 2810 2828 44ee 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 00ee 4428 2810 1010 1038 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 00f8 8810 1020 4040 88f8 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 6040 4040 4040 4040 4040 6000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0040 4020 2010 1008 0804 0400 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 6020 2020 2020 2020 2020 6000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0040 a000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 00fe 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0080 4020 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0070 8818 6888 8874 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0040 c058 6442 4242 6458 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0030 4880 8080 4830 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 000c 0434 4c84 8484 4e34 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0030 4884 fc80 4830 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0030 40e0 4040 4040 40e0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0074 8888 8870 8078 8484 7800 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0040 c058 6444 4444 44ee 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0040 0040 c040 4040 40e0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0040 0040 c040 4040 4040 4040 8000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0040 c04c 4850 6050 48ee 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0040 c040 4040 4040 40e0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0059 e644 4444 44ee 0000 0000 0000 0000 0080 4040 4040 40e0 0000 0000
|
|
0000 0000 0058 e444 4444 44ee 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0030 4884 8484 4830 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 00f8 4442 4242 6458 4040 e000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0034 4c84 8484 4c34 0404 0e00 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0058 e040 4040 40e0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0070 8880 7008 8870 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0040 40f0 4040 4040 4830 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 00cc 4444 4444 443a 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 00ee 4444 2828 1010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 00e0 4444 2a2a 1111 0000 0000 0000 0000 00e0 4040 8080 0000 0000 0000
|
|
0000 0000 00ee 4428 1028 44ee 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 00ee 4444 2828 1010 2060 4000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 00f8 8810 2040 88f8 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0010 2020 2020 2040 2020 2020 2010 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0040 4040 4040 4040 4040 4040 4040 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0040 2020 2020 2010 2020 2020 2040 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0068 b000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
|
|
0000 0000 0000 0000 0000 0000 0000 00ff 0000 0000 0000 0000 ffff ffff ffff ffff ] $1
|
|
|
|
@appicon ( 24x24 ) [
|
|
0009 161f 1f1f 1f1f 093f 3f3f 3f3f 3f3f 0024 dbff ffff ffff 24ff ffff ffff ffff
|
|
0090 68f8 f8f8 f8f8 90fc fcfc fcfc fcfc 1f1f 1f1f 1f1f 0016 3f3f 3f3f 3f3f 3f3f
|
|
ffff ffff ffff ffff ffff ffff ffff ffff f8f8 f8f8 f8f8 f8f8 fcfc fcfc fcfc fcfc
|
|
1a1c 1e1f 001f 0000 3f3f 3f3f 3f20 3f00 ffff 00ff 00ff 0000 ffff ffff ff00 ff00
|
|
f8f8 00f8 00f8 0000 fcfc fcfc fc04 fc00 ]
|
|
|
|
@mem ( placeholder )
|
|
"Keep 20 "up 20 "to 20 "eight 20 "pages 20 "of 20 "notes 20 "in 20 "the 20 "Note 20 "Pad. 20
|
|
"Click 20 "on 20 "the 20 "dog-ear 20 "to 20 "turn 20 "to 20 "the 20 "next 20 "following 20 "page. 20
|
|
"Click 20 "in 20 "the 20 "lower 20 "left 20 "corner 20 "to 20 "turn 20 "to 20 "the 20 "next 20 "previous 20 "page. 20 $1
|
|
|