uxn-utils/gui/notepad/notepad.tal

935 lines
25 KiB
Tal
Raw Normal View History

2023-04-26 00:20:12 -04:00
|00 @System &vector $2 &pad $6 &r $2 &g $2 &b $2
|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
2023-04-26 12:58:33 -04:00
|0000
@page $1
2023-04-28 12:09:30 -04:00
@selection &a $2 &b $2 &length $2
2023-04-26 12:58:33 -04:00
2023-04-26 00:20:12 -04:00
|0100
2023-04-27 12:53:18 -04:00
( meta )
;meta #06 DEO2
2023-04-26 00:20:12 -04:00
( theme )
2023-04-26 12:58:33 -04:00
#f00f .System/r DEO2
#f00f .System/g DEO2
2023-04-26 00:20:12 -04:00
#f00f .System/b DEO2
2023-04-27 00:06:23 -04:00
load-theme
2023-04-26 00:20:12 -04:00
( size )
#00e0 .Screen/width DEO2
2023-04-26 00:32:24 -04:00
#00f8 .Screen/height DEO2
2023-04-26 00:20:12 -04:00
( unlock )
2023-04-26 00:44:57 -04:00
;on-mouse-body .Mouse/vector DEO2
2023-04-26 13:50:26 -04:00
;on-frame .Screen/vector DEO2
;on-control .Controller/vector DEO2
2023-04-27 14:25:05 -04:00
( let's go! )
2023-04-27 13:44:42 -04:00
file-init
2023-04-26 00:20:12 -04:00
draw-header
2023-04-27 13:32:29 -04:00
#00 change-page
2023-04-26 13:50:26 -04:00
BRK
2023-04-27 12:53:18 -04:00
@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 "28, 20 "2023 00
2023-04-27 12:53:18 -04:00
01
( icon ) 83 =appicon
2023-04-27 13:32:29 -04:00
(
@|vectors )
2023-04-26 13:50:26 -04:00
@on-control ( -> )
2023-04-27 00:22:31 -04:00
.Controller/key DEI .Controller/button DEI
( shortcuts )
2023-04-27 00:54:55 -04:00
DUP2 [ LIT2 "a 01 ] NEQ2 ?&no-ca POP2 select-all BRK &no-ca
2023-04-27 00:22:31 -04:00
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
( mask shift key )
#fb AND
2023-04-27 00:22:31 -04:00
( arrows )
DUP #10 NEQ ?&no-u get-to #0001 SUB2 find-line-start select-variable &no-u
DUP #20 NEQ ?&no-d get-to INC2 find-line-end select-variable &no-d
2023-04-27 12:38:51 -04:00
DUP #40 NEQ ?&no-l select-left &no-l
DUP #80 NEQ ?&no-r select-right &no-r
DUP #42 NEQ ?&no-sbl .selection/b LDZ2 #0001 SUB2 find-word-start select-variable &no-sbl
DUP #82 NEQ ?&no-sbr .selection/b LDZ2 INC2 find-word-end select-variable &no-sbr
2023-04-26 15:40:48 -04:00
POP
2023-04-27 00:22:31 -04:00
( 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
2023-04-26 17:10:39 -04:00
POP
2023-04-26 14:56:11 -04:00
#00 ;on-frame/f STA
2023-04-26 00:20:12 -04:00
BRK
2023-04-26 00:44:57 -04:00
@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
2023-04-26 00:44:57 -04:00
trap-mouse
2023-04-26 13:27:36 -04:00
[ LIT &last $1 ]
.Mouse/state DEI
DUP ,&last STR
EQU ?&unchanged
draw-header
( release on close button )
2023-04-27 00:13:05 -04:00
.Mouse/state DEI ?&unchanged
2023-04-26 13:27:36 -04:00
.Mouse/x DEI2 #0008 SUB2 #000a GTH2 ?&unchanged
2023-05-01 18:32:57 -04:00
( exit ) #800f DEO
2023-04-26 13:27:36 -04:00
&unchanged
2023-04-26 00:44:57 -04:00
BRK
2023-04-26 15:10:37 -04:00
&toggle-collapse ( -> )
#00e0 .Screen/width DEO2
#00f8 #0011
2023-04-27 00:13:05 -04:00
DUP2 .Screen/height DEI2 EQU2 [ JMP SWP2 POP2 ]
2023-04-26 15:10:37 -04:00
.Screen/height DEO2
draw-header
redraw
2023-04-27 13:44:42 -04:00
[ LIT2 00 -Mouse/state ] DEO
2023-04-26 15:10:37 -04:00
BRK
2023-04-26 00:44:57 -04:00
@on-mouse-body ( -> )
2023-04-26 00:20:12 -04:00
2023-04-26 00:32:24 -04:00
[ LIT2 00 -Mouse/state ] DEI NEQ #41 ADD ;caret-icn update-cursor
2023-04-26 15:10:37 -04:00
trap-mouse
2023-04-26 14:56:11 -04:00
[ LIT &last $1 ] .Mouse/state DEI
2023-04-28 12:47:57 -04:00
DUP #02 LTH ?&no-mouse2
2023-04-27 13:08:50 -04:00
get-position select-word
&no-mouse2
2023-04-26 14:56:11 -04:00
DUP2 #0001 NEQ2 ?&no-down
get-position select-variable
2023-04-26 14:56:11 -04:00
&no-down
DUP2 #0101 NEQ2 ?&no-drag
get-position select-to
&no-drag
,&last STR POP
2023-04-26 00:44:57 -04:00
BRK
@on-mouse-foot ( -> )
[ LIT2 00 -Mouse/state ] DEI NEQ #41 ADD ;mouse-icn update-cursor
trap-mouse
2023-04-26 12:07:09 -04:00
.Mouse/state DEI #00 NEQ .Mouse/x DEI2 #0018 LTH2 AND ?&on-mouse-down
2023-04-26 00:32:24 -04:00
BRK
&on-mouse-down ( -> )
2023-04-27 13:44:42 -04:00
[ LIT2 00 -Mouse/state ] DEO
2023-04-26 12:58:33 -04:00
2023-04-26 12:07:09 -04:00
.Mouse/y DEI2 #00d6 SUB2 NIP
#18 .Mouse/x DEI2 NIP SUB
2023-04-26 12:58:33 -04:00
ADD #18 LTH ?&go-next
2023-04-27 14:25:05 -04:00
prev-page BRK
&go-next
next-page
2023-04-26 12:07:09 -04:00
2023-04-26 00:20:12 -04:00
BRK
2023-04-26 13:50:26 -04:00
@on-frame ( -> )
2023-04-27 14:25:05 -04:00
[ LIT2 &last $1 &f $1 ] INCk ,&f STR
2023-04-26 13:50:26 -04:00
#05 SFT DUP ,&last STR
EQU ?&unchanged
draw-note
&unchanged
BRK
2023-04-26 15:53:20 -04:00
(
@|editor )
@insert ( char -- )
2023-04-28 12:09:30 -04:00
get-from scap get-page #1000 ADD2 LTH2 ?&has-space
2023-04-26 15:53:20 -04:00
POP JMP2r
&has-space
2023-04-26 15:53:20 -04:00
( convert linebreaks )
DUP #0d EQU #03 MUL SUB
2023-04-27 14:25:05 -04:00
.selection/length LDZ2 #0000 EQU2 ?&no-block
2023-04-26 15:53:20 -04:00
erase-selection
&no-block
2023-04-28 12:09:30 -04:00
get-from STH2k #0001 SUB2 get-eof #0001 msfr
2023-04-26 15:53:20 -04:00
STH2kr STA
STH2r INC2 select-from
2023-04-26 15:53:20 -04:00
!file-save
2023-04-26 15:53:20 -04:00
@erase ( -- )
2023-04-27 14:25:05 -04:00
.selection/length LDZ2 #0000 EQU2 ?&no-block
2023-04-26 15:53:20 -04:00
erase-selection
2023-04-26 23:08:31 -04:00
!select-reset
2023-04-26 15:53:20 -04:00
&no-block
2023-04-28 12:09:30 -04:00
get-from get-page NEQ2 [ JMP JMP2r ]
2023-04-26 15:53:20 -04:00
2023-04-28 12:09:30 -04:00
get-from #0001 SUB2
2023-04-26 15:53:20 -04:00
DUP2 cut-char
select-from
2023-04-26 15:53:20 -04:00
!file-save
2023-04-26 15:53:20 -04:00
2023-04-27 00:54:55 -04:00
@erase-selection ( -- )
2023-04-28 12:09:30 -04:00
get-from get-eof .selection/length LDZ2 msfl
2023-04-27 00:54:55 -04:00
!file-save
2023-04-27 00:54:55 -04:00
2023-04-26 15:53:20 -04:00
@delete ( -- )
2023-04-28 12:09:30 -04:00
get-eof get-from SUB2 ORA #01 [ JCN JMP2r ]
2023-04-26 15:53:20 -04:00
2023-04-27 14:25:05 -04:00
.selection/length LDZ2 #0000 EQU2 ?&no-block
2023-04-26 15:53:20 -04:00
erase-selection
2023-04-26 23:08:31 -04:00
!select-reset
2023-04-26 15:53:20 -04:00
&no-block
2023-04-28 12:09:30 -04:00
get-from cut-char
redraw
2023-04-26 15:53:20 -04:00
!file-save
2023-04-26 15:53:20 -04:00
@get-eof ( -- addr* )
2023-04-27 12:38:51 -04:00
get-page
2023-04-26 15:53:20 -04:00
2023-04-27 12:38:51 -04:00
!scap
2023-04-26 15:53:20 -04:00
@cut-char ( addr* -- )
2023-04-27 12:38:51 -04:00
get-eof #0001
2023-04-26 17:10:39 -04:00
2023-04-27 12:38:51 -04:00
!msfl
2023-04-26 15:53:20 -04:00
2023-04-27 00:54:55 -04:00
(
@|selection )
@select-variable ( addr* -- )
.Controller/button DEI #04 AND ?select-to
!select-from
2023-04-26 23:08:31 -04:00
@select-reset ( -- )
2023-04-26 15:53:20 -04:00
2023-04-28 12:09:30 -04:00
get-from
2023-04-26 15:53:20 -04:00
2023-04-27 00:13:05 -04:00
( >> )
2023-04-26 15:53:20 -04:00
2023-04-26 23:08:31 -04:00
@select-from ( addr* -- )
2023-04-28 12:47:57 -04:00
clamp-selection
2023-04-28 12:09:30 -04:00
DUP2 .selection/a STZ2
.selection/b STZ2
2023-04-26 23:08:31 -04:00
!select
2023-04-26 23:08:31 -04:00
@select-to ( addr* -- )
2023-04-28 12:47:57 -04:00
clamp-selection
2023-04-28 12:09:30 -04:00
.selection/b STZ2
2023-04-26 23:08:31 -04:00
!select
2023-04-26 23:08:31 -04:00
2023-04-27 13:08:50 -04:00
@select-word ( addr* -- )
DUP2
2023-04-28 12:09:30 -04:00
&back #0001 SUB2 LDAk #20 GTH ?&back INC2 .selection/a STZ2
&next INC2 LDAk #20 GTH ?&next .selection/b STZ2
2023-04-27 13:08:50 -04:00
!select
2023-04-27 13:08:50 -04:00
2023-04-27 00:22:31 -04:00
@select-all ( -- )
2023-04-27 01:06:09 -04:00
get-page
2023-04-28 12:09:30 -04:00
DUP2 .selection/a STZ2
scap #0001 SUB2 .selection/b STZ2
2023-04-27 00:22:31 -04:00
( >> )
@select ( -- )
2023-04-28 12:09:30 -04:00
get-to get-from SUB2 .selection/length STZ2
#00 ;on-frame/f STA
2023-04-27 00:22:31 -04:00
!redraw
2023-04-27 12:38:51 -04:00
@select-left ( -- )
.selection/length LDZ2 #0000 EQU2
.Controller/button DEI #04 AND #00 NEQ
ORA ?&no-block
2023-04-28 12:09:30 -04:00
get-from !select-from
2023-04-27 12:38:51 -04:00
&no-block
.selection/b LDZ2 #0001 SUB2
2023-04-27 12:38:51 -04:00
!select-variable
2023-04-27 12:38:51 -04:00
@select-right ( -- )
.selection/length LDZ2 #0000 EQU2
.Controller/button DEI #04 AND #00 NEQ
ORA ?&no-block
2023-04-28 12:09:30 -04:00
get-to !select-from
2023-04-27 12:38:51 -04:00
&no-block
.selection/b LDZ2 INC2
2023-04-27 12:38:51 -04:00
!select-variable
2023-04-27 12:38:51 -04:00
2023-04-28 12:09:30 -04:00
@get-from ( -- addr* )
2023-04-28 12:47:57 -04:00
.selection/b LDZ2 .selection/a LDZ2 LTH2k [ JMP SWP2 POP2 ]
2023-04-28 12:09:30 -04:00
JMP2r
@get-to ( -- addr* )
2023-04-28 12:47:57 -04:00
.selection/a LDZ2 .selection/b LDZ2 GTH2k [ JMP SWP2 POP2 ]
JMP2r
@clamp-selection ( addr* -- addr* )
( min ) get-page GTH2k [ JMP SWP2 POP2 ]
( max ) get-eof #0001 SUB2 LTH2k [ JMP SWP2 POP2 ]
2023-04-28 12:09:30 -04:00
JMP2r
2023-04-29 00:02:02 -04:00
@is-selected ( addr* -- addr* f )
2023-04-26 23:08:31 -04:00
2023-04-28 12:09:30 -04:00
DUP2 get-from LTH2 ?&false
DUP2 get-to #0001 SUB2 GTH2 ?&false
2023-04-29 00:02:02 -04:00
#01
2023-04-26 23:08:31 -04:00
JMP2r
2023-04-29 00:02:02 -04:00
&false #00 JMP2r
2023-04-26 23:08:31 -04:00
2023-04-27 00:54:55 -04:00
(
@|file )
2023-04-27 13:44:42 -04:00
@file-init ( -- )
;notepad-txt file-size #0000 EQU2 ?file-new
2023-04-29 00:02:02 -04:00
( load file )
2023-04-27 13:44:42 -04:00
;notepad-txt .File/name DEO2
#8000 .File/length DEO2
;mem .File/read DEO2
2023-04-27 13:32:29 -04:00
JMP2r
2023-04-27 13:44:42 -04:00
@file-new ( -- )
#0801
&l
#00 OVR #c0 SFT2 ;mem ADD2 STH2 #20 STH2r STA
INC GTHk ?&l
POP2
2023-04-27 13:32:29 -04:00
JMP2r
2023-04-27 13:44:42 -04:00
@file-save ( -- )
2023-04-27 13:32:29 -04:00
;notepad-txt .File/name DEO2
#8000 .File/length DEO2
;mem .File/write DEO2
2023-04-27 13:44:42 -04:00
JMP2r
2023-04-27 13:32:29 -04:00
@notepad-txt ".notepad $1
2023-04-27 00:34:36 -04:00
@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
2023-04-27 00:22:31 -04:00
JMP2r
2023-04-27 00:34:36 -04:00
&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 )
2023-04-27 14:25:05 -04:00
.selection/length LDZ2 #0000 EQU2 ?&no-selection
2023-04-28 13:06:07 -04:00
get-from get-eof .selection/length LDZ2 msfl
2023-04-27 00:34:36 -04:00
&no-selection
2023-04-28 12:09:30 -04:00
( push right ) get-from #0001 SUB2
2023-04-27 00:34:36 -04:00
get-eof STH2kr msfr
2023-04-28 12:09:30 -04:00
get-from .File/read DEO2
get-from STH2r ADD2
2023-04-27 00:34:36 -04:00
!select-from
@edit-cut ( -- )
.selection/length LDZ2 #0001 GTH2 [ JMP JMP2r ]
edit-copy
erase-selection
2023-04-28 13:06:07 -04:00
select-reset
2023-04-27 00:34:36 -04:00
2023-04-28 13:06:07 -04:00
!file-save
2023-04-27 00:22:31 -04:00
@edit-copy ( -- )
2023-04-27 00:34:36 -04:00
.selection/length LDZ2 #0001 GTH2 [ JMP JMP2r ]
;snarf-txt .File/name DEO2
.selection/length LDZ2 .File/length DEO2
2023-04-28 12:09:30 -04:00
get-from .File/write DEO2
2023-04-27 00:34:36 -04:00
2023-04-27 00:22:31 -04:00
JMP2r
@edit-paste ( -- )
2023-04-28 13:06:07 -04:00
;snarf-txt file-inject
2023-04-27 00:34:36 -04:00
2023-04-28 13:06:07 -04:00
!file-save
2023-04-27 13:32:29 -04:00
@snarf-txt ".snarf $1
2023-04-27 00:22:31 -04:00
2023-04-26 00:44:57 -04:00
(
@|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
2023-04-27 13:32:29 -04:00
@change-page ( id -- )
2023-04-26 12:07:09 -04:00
2023-04-27 13:32:29 -04:00
.page STZ
2023-04-27 12:08:55 -04:00
get-page scap #0001 SUB2
2023-04-26 12:07:09 -04:00
2023-04-27 12:08:55 -04:00
!select-from
2023-04-26 12:07:09 -04:00
2023-04-27 13:32:29 -04:00
@prev-page ( -- )
.page LDZ #01 SUB #07 AND
!change-page
2023-04-26 12:07:09 -04:00
@next-page ( -- )
2023-04-27 13:32:29 -04:00
.page LDZ INC #07 AND
2023-04-26 12:07:09 -04:00
2023-04-27 13:32:29 -04:00
!change-page
2023-04-26 12:07:09 -04:00
2023-04-26 23:44:04 -04:00
@pos-to-line ( y* -- line )
#0012 SUB2 #04 SFT2 NIP
2023-04-26 23:44:04 -04:00
JMP2r
2023-04-26 14:56:11 -04:00
@get-position ( -- addr* )
#0008 .Screen/x DEO2
#0018 .Screen/y DEO2
2023-04-26 23:44:04 -04:00
( walk to line )
.Mouse/y DEI2 pos-to-line ,&line STR
2023-04-27 01:06:09 -04:00
get-page
2023-04-26 23:52:44 -04:00
&walk-line
.Screen/y DEI2 pos-to-line [ LIT &line $1 ] EQU ?&end-line
walk-char POP
INC2 LDAk ?&walk-line
&end-line
2023-04-26 23:44:04 -04:00
( walk to char )
2023-04-26 23:52:44 -04:00
.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
2023-04-26 23:44:04 -04:00
JMP2r
2023-04-26 23:52:44 -04:00
@walk-char ( addr* -- addr* lb )
2023-04-26 23:44:04 -04:00
( wrap )
LDAk #20 GTH ?&no-wrap
DUP2 word-width .Screen/x DEI2 ADD2 #00d0 LTH2 ?&no-wrap
2023-04-26 23:52:44 -04:00
#01 !draw-linebreak
2023-04-26 23:44:04 -04:00
&no-wrap
( char )
LDAk char-width .Screen/x DEI2 ADD2
2023-04-26 23:44:04 -04:00
.Screen/x DEO2
( tab )
LDAk #09 NEQ ?&no-tab
2023-04-27 00:14:27 -04:00
#00 !draw-tab
2023-04-26 23:44:04 -04:00
&no-tab
( linebreak )
LDAk #0a NEQ ?&no-lb
2023-04-26 23:52:44 -04:00
#01 !draw-linebreak
2023-04-26 23:44:04 -04:00
&no-lb
2023-04-26 23:52:44 -04:00
#00
2023-04-26 14:56:11 -04:00
JMP2r
@get-page ( -- addr* )
2023-04-27 13:44:42 -04:00
;mem #00 .page LDZ #c0 SFT2 ADD2
JMP2r
2023-04-27 11:52:51 -04:00
@char-addr ( char -- addr* )
2023-04-27 11:52:51 -04:00
DUP #7e GTH ?&missing
DUP #20 LTH ?&blank
#20 SUB
#00 SWP #50 SFT2 ;font/glyphs ADD2
JMP2r
&blank POP ;font/glyphs JMP2r
2023-04-27 11:52:51 -04:00
&missing POP ;error-icn JMP2r
@char-width ( char -- width* )
2023-04-27 11:52:51 -04:00
DUP #7e GTH ?&missing
#20 SUB #00 SWP ;font ADD2 LDA #00 SWP
JMP2r
2023-04-27 11:52:51 -04:00
&missing POP #0008 JMP2r
@word-width ( str* -- length* )
2023-04-26 14:56:11 -04:00
2023-04-26 23:08:31 -04:00
[ LIT2r 0000 ]
&while
LDAk char-width STH2 ADD2r
2023-04-26 23:08:31 -04:00
INC2 LDAk #20 GTH ?&while
POP2
STH2r
2023-04-26 14:56:11 -04:00
JMP2r
@find-line-start ( addr* -- addr* )
;mem SWP2
&l
#0001 SUB2 LDAk #0a EQU ?&end
LTH2k ?&l
&end
NIP2 INC2
JMP2r
@find-line-end ( addr* -- addr* )
get-eof SWP2
&l
LDAk #0a EQU ?&end
INC2 GTH2k ?&l
&end
NIP2
JMP2r
@find-word-start ( addr* -- addr* )
;mem SWP2
&l
#0001 SUB2 LDAk #21 LTH ?&end
LTH2k ?&l
&end
NIP2 INC2
JMP2r
@find-word-end ( addr* -- addr* )
get-eof SWP2
&l
LDAk #21 LTH ?&end
INC2 GTH2k ?&l
&end
NIP2
JMP2r
2023-04-26 00:20:12 -04:00
(
@|drawing )
@draw-header ( -- )
2023-04-26 00:32:24 -04:00
( a )
2023-04-26 00:20:12 -04:00
#0000
DUP2 .Screen/x DEO2
.Screen/y DEO2
2023-04-27 12:38:51 -04:00
[ LIT2 15 -Screen/auto ] DEO
2023-04-26 00:20:12 -04:00
;bar-icn/a .Screen/addr DEO2
2023-04-27 00:13:05 -04:00
[ LIT2 01 -Screen/sprite ] DEO
2023-04-26 00:20:12 -04:00
( close )
2023-04-27 00:13:05 -04:00
;close-icn
2023-04-26 13:27:36 -04:00
#00 .Mouse/state DEI #00 NEQ .Mouse/x DEI2 #0008 SUB2 #000a LTH2 AND
#50 SFT2 ADD2 .Screen/addr DEO2
2023-04-27 00:13:05 -04:00
[ LIT2 01 -Screen/sprite ] DEOk DEO
2023-04-26 00:20:12 -04:00
( lead )
#e9 &l
;bar-icn/b .Screen/addr DEO2
2023-04-27 00:13:05 -04:00
[ LIT2 01 -Screen/sprite ] DEO
2023-04-26 00:20:12 -04:00
INC DUP ?&l
POP
;bar-icn/b .Screen/addr DEO2
2023-04-27 00:13:05 -04:00
[ LIT2 01 -Screen/sprite ] DEOk DEO
2023-04-26 00:20:12 -04:00
( title )
#004b .Screen/x DEO2
2023-04-27 12:38:51 -04:00
[ LIT2 86 -Screen/auto ] DEO
2023-04-26 00:20:12 -04:00
;title-icn .Screen/addr DEO2
2023-04-27 00:13:05 -04:00
[ LIT2 01 -Screen/sprite ] DEOk DEO
2023-04-26 00:20:12 -04:00
( line )
2023-04-27 12:38:51 -04:00
[ LIT2 d2 -Screen/auto ] DEO
2023-04-26 00:20:12 -04:00
#0000 .Screen/x DEO2
#0010 .Screen/y DEO2
;line-icn .Screen/addr DEO2
2023-04-27 00:13:05 -04:00
[ LIT2 01 -Screen/sprite ] DEO
2023-04-26 00:20:12 -04:00
#0070 .Screen/x DEO2
#0010 .Screen/y DEO2
2023-04-27 00:13:05 -04:00
[ LIT2 01 -Screen/sprite ] DEO
2023-04-26 00:20:12 -04:00
JMP2r
2023-04-27 12:38:51 -04:00
@redraw ( -- )
#0000 .Screen/x DEO2
#0018 .Screen/y DEO2
[ LIT2 80 -Screen/pixel ] DEO
2023-04-26 12:40:50 -04:00
@draw-note ( -- )
2023-04-27 12:38:51 -04:00
[ LIT2 15 -Screen/auto ] DEO
2023-04-26 12:40:50 -04:00
#0008 .Screen/x DEO2
#0018 .Screen/y DEO2
2023-04-27 01:06:09 -04:00
get-page
2023-04-26 14:56:11 -04:00
&while
2023-04-27 00:03:54 -04:00
( draw char )
2023-04-27 11:52:51 -04:00
LDAk char-addr .Screen/addr DEO2
2023-04-29 00:02:02 -04:00
is-selected STH #0701 STHr [ JMP SWP POP ] .Screen/sprite DEOk DEO
2023-04-27 00:03:54 -04:00
.Screen/x DEI2k #0010 SUB2 ROT DEO2
( draw selector )
2023-04-28 12:09:30 -04:00
get-from get-to NEQ2 ?&block
DUP2 get-from NEQ2 ?&block
;on-frame/last LDA #01 AND ?&block
;blink-icn .Screen/addr DEO2
2023-04-27 00:13:05 -04:00
[ LIT2 05 -Screen/sprite ] DEO
2023-04-27 00:03:54 -04:00
.Screen/x DEI2k #0008 SUB2 ROT DEO2
&block
2023-04-27 00:03:54 -04:00
walk-char POP
2023-04-26 14:56:11 -04:00
INC2 LDAk ?&while
POP2
2023-04-26 12:40:50 -04:00
2023-04-26 00:32:24 -04:00
@draw-footer ( -- )
2023-04-26 15:10:37 -04:00
.Screen/height DEI2 #0020 GTH2 ?&visible
JMP2r
&visible
2023-04-27 12:38:51 -04:00
[ LIT2 26 -Screen/auto ] DEO
2023-04-26 00:32:24 -04:00
#0000 .Screen/x DEO2
.Screen/height DEI2 #0020 SUB2 .Screen/y DEO2
;page-icn .Screen/addr DEO2
2023-04-27 00:13:05 -04:00
[ LIT2 01 -Screen/sprite ] DEOk DEOk DEOk DEO
2023-04-26 00:32:24 -04:00
( across )
2023-04-27 12:38:51 -04:00
[ LIT2 01 -Screen/auto ] DEO
2023-04-26 00:32:24 -04:00
#0018 .Screen/x DEO2
.Screen/height DEI2 #0008 SUB2 .Screen/y DEO2
;page-icn/bottom .Screen/addr DEO2
#e7 &l
2023-04-27 00:13:05 -04:00
[ LIT2 01 -Screen/sprite ] DEO
2023-04-26 00:32:24 -04:00
INC DUP ?&l
POP
2023-04-26 12:58:33 -04:00
( page number )
2023-04-27 12:38:51 -04:00
[ LIT2 15 -Screen/auto ] DEO
2023-04-26 12:58:33 -04:00
.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
2023-04-27 00:13:05 -04:00
[ LIT2 01 -Screen/sprite ] DEOk DEO
2023-04-26 12:40:50 -04:00
JMP2r
2023-04-26 19:12:50 -04:00
@draw-tab ( -- )
2023-04-27 14:15:52 -04:00
.Screen/x DEI2k #0010 ADD2 #33 SFT2 ROT DEO2
2023-04-26 19:12:50 -04:00
JMP2r
2023-04-26 18:53:03 -04:00
@draw-linebreak ( -- )
#0008 .Screen/x DEO2
.Screen/y DEI2k #0010 ADD2 ROT DEO2
JMP2r
2023-04-26 23:08:31 -04:00
@update-cursor ( color addr* -- )
2023-04-26 12:40:50 -04:00
2023-04-26 23:08:31 -04:00
[ 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
2023-04-26 12:40:50 -04:00
2023-04-26 23:08:31 -04:00
@draw-cursor ( color -- )
2023-04-26 12:40:50 -04:00
2023-04-26 23:08:31 -04:00
[ LIT2 &x $2 ] .Screen/x DEO2
[ LIT2 &y $2 ] .Screen/y DEO2
.Screen/sprite DEO
2023-04-26 12:40:50 -04:00
JMP2r
2023-04-28 12:47:57 -04:00
(
@|stdlib )
2023-04-27 00:06:23 -04:00
@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
2023-04-26 15:53:20 -04:00
@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
2023-04-26 13:50:26 -04:00
@scap ( str* -- end* ) LDAk #00 NEQ [ JMP JMP2r ] &w INC2 LDAk ?&w JMP2r
2023-04-26 00:44:57 -04:00
2023-04-26 00:20:12 -04:00
(
@|assets )
2023-04-27 11:52:51 -04:00
@error-icn [
aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 ]
2023-04-26 13:50:26 -04:00
@blink-icn [
8080 8080 8080 8080 8080 8080 8080 8080 ]
2023-04-26 00:32:24 -04:00
@caret-icn [
c628 1010 1010 1010 1010 1010 1010 28c6 ]
2023-04-26 00:44:57 -04:00
@mouse-icn [
80c0 e0f0 f8fc feff f8d8 8c0c 0606 0000 ]
2023-04-26 00:20:12 -04:00
@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
2023-04-27 00:13:05 -04:00
0000 00ef 202f 202f 202f 202f 20ef 0000
2023-04-26 00:20:12 -04:00
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 ]
2023-04-27 14:15:52 -04:00
@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 ]
2023-04-26 12:40:50 -04:00
@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
2023-04-27 12:38:51 -04:00
0000 0000 0000 0000 0000 0000 0000 00ff 0000 0000 0000 0000 ffff ffff ffff ffff ] $1
2023-04-27 12:08:55 -04:00
@mem ( placeholder )
2023-04-26 12:40:50 -04:00
"Keep 20 "up 20 "to 20 "eight 20 "pages 20 "of 20 "notes 20 "in 20 "the 20 "Note 20 "Pad. 20
2023-04-26 15:40:48 -04:00
"Click 20 "on 20 "the 20 "dog-ear 20 "to 20 "turn 20 "to 20 "the 20 "next 20 "following 20 "page. 20
2023-04-27 12:08:55 -04:00
"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
2023-04-27 01:06:09 -04:00