Housekeeping

This commit is contained in:
Devine Lu Linvega 2024-05-28 08:52:57 -07:00
parent 8f932bbccc
commit 5ee2d026c6
2 changed files with 866 additions and 9 deletions

856
gui/notepad/bin/res.tal Normal file
View File

@ -0,0 +1,856 @@
( A port of the macintosh classic notepad )
|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 $1 &success-lb $1 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2
|000
@page $1
@collapsed $1
@selection &a $2 &b $2 &length $2
|100
@on-reset ( -> )
( | 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-mouse-body .Mouse/vector DEO2
;on-frame .Screen/vector DEO2
;on-control .Controller/vector DEO2
( | let's go! )
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 ) "May 20 "28, 20 "2024 00 01
( icon ) 83 =appicon
(
@|vectors )
@on-control ( -> )
.Controller/key DEI .Controller/button DEI
( | shortcuts )
DUP2 [ LIT2 "a 01 ] NEQ2 ?{ POP2 <select-all>
BRK }
DUP2 [ LIT2 "x 01 ] NEQ2 ?{ POP2 edit-cut BRK }
DUP2 [ LIT2 "c 01 ] NEQ2 ?{ POP2 edit-copy BRK }
DUP2 [ LIT2 "v 01 ] NEQ2 ?{ POP2 edit-paste BRK }
( | mask shift key )
#fb AND
( | arrows )
DUP #10 NEQ ?{
get-to #0001 SUB2 find-line-start <select-variable> }
DUP #20 NEQ ?{ get-to INC2 find-line-end <select-variable> }
DUP #40 NEQ ?{ <select-left> }
DUP #80 NEQ ?{ <select-right> }
DUP #42 NEQ ?{
.selection/b LDZ2 #0001 SUB2 find-word-start <select-variable> }
DUP #82 NEQ ?{
.selection/b LDZ2 INC2 find-word-end <select-variable> }
( | pagination )
DUP #21 NEQ OVR #81 NEQ AND ?{ next-page }
DUP #11 NEQ OVR #41 NEQ AND ?{ prev-page }
POP
( | key )
DUP #08 NEQ ?{ erase }
DUP #7f NEQ ?{ delete }
DUP #09 LTH ?{ DUP insert }
POP #00 ;on-frame/f STA
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
( exit ) #800f DEO
&unchanged BRK
&toggle-collapse ( -> )
#00f8 #0011 .collapsed LDZ ?{ SWP2 }
POP2 .Screen/height DEO2
[ LIT2 00 -collapsed ] LDZ EQU .collapsed STZ
<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 DUP #02 LTH ?{ get-position <select-word> }
DUP2 #0001 NEQ2 ?{ get-position <select-variable> }
DUP2 #0101 NEQ2 ?{ get-position <select-to> }
,&last STR
POP BRK
@on-mouse-foot ( -> )
[ LIT2 00 -Mouse/state ] DEI NEQ #41 ADD ;mouse-icn <update-cursor>
<trap-mouse>
[ LIT2 00 -Mouse/state ] DEI 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 [ LIT2 18 -Mouse/x ] DEI2 NIP SUB ADD #18 LTH ?&go-next
prev-page BRK &go-next next-page BRK
@on-frame ( -> )
[ LIT2 &last $1 &f $1 ] INCk ,&f STR
#05 SFT DUP ,&last STR
EQU ?{ <draw-note> }
BRK
(
@|editor )
@insert ( char -- )
get-from scap/ get-page #1000 ADD2 LTH2 ?{ POP JMP2r }
( | convert linebreaks )
DUP #0d EQU #03 MUL SUB .selection/length LDZ2 #0000 EQU2 ?{ erase-selection }
get-from STH2k #0001 SUB2 get-eof #0001 <msfr>
STH2kr STA
STH2r INC2 <select-from>
!file-save
@erase ( -- )
.selection/length LDZ2 #0000 EQU2 ?{ erase-selection !<select-reset> }
get-from get-page NEQ2 [ JMP JMP2r ] get-from #0001 SUB2 DUP2 cut-char <select-from>
!file-save
@erase-selection ( -- )
get-from get-eof .selection/length LDZ2 <msfl>
!file-save
@delete ( -- )
get-eof get-from SUB2 ORA #01 [ JCN JMP2r ] .selection/length LDZ2 #0000 EQU2 ?{ erase-selection !<select-reset> }
get-from cut-char <redraw>
!file-save
@get-eof ( -- addr* )
get-page !scap/
@cut-char ( addr* -- )
get-eof #0001 !<msfl>
(
@|selection )
@<select-variable> ( addr* -- )
[ LIT2 04 -Controller/button ] DEI AND ?<select-to>
!<select-from>
@<select-reset> ( -- )
get-from
( >> )
@<select-from> ( addr* -- )
clamp-selection DUP2 .selection/a STZ2
.selection/b STZ2
!select
@<select-to> ( addr* -- )
clamp-selection .selection/b STZ2
!select
@<select-word> ( addr* -- )
DUP2 &back #0001 SUB2 LDAk #20 GTH ?&back
INC2 .selection/a STZ2
&next INC2 LDAk #20 GTH ?&next
.selection/b STZ2
!select
@<select-all> ( -- )
get-page DUP2 .selection/a STZ2
scap/ #0001 SUB2 .selection/b STZ2
( >> )
@select ( -- )
get-to get-from SUB2 .selection/length STZ2
#00 ;on-frame/f STA
!<redraw>
@<select-left> ( -- )
.selection/length LDZ2 #0000 EQU2 [ LIT2 04 -Controller/button ] DEI AND #00 NEQ ORA ?{ get-from !<select-from> }
.selection/b LDZ2 #0001 SUB2 !<select-variable>
@<select-right> ( -- )
.selection/length LDZ2 #0000 EQU2 [ LIT2 04 -Controller/button ] DEI AND #00 NEQ ORA ?{ get-to !<select-from> }
.selection/b LDZ2 INC2 !<select-variable>
@get-from ( -- addr* )
.selection/b LDZ2 .selection/a LDZ2 LTH2k [ JMP SWP2 POP2 ] JMP2r
@get-to ( -- addr* )
.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 ] JMP2r
@is-selected ( addr* -- addr* f )
DUP2 get-from LTH2 ?&false
DUP2 get-to #0001 SUB2 GTH2 ?&false
#01 JMP2r
&false #00 JMP2r
(
@|file )
@file-init ( -- )
;notepad-path file-size #0000 EQU2 ?file-new
( | load file )
;notepad-path .File/name DEO2
#8000 .File/length DEO2
;mem .File/read DEO2
JMP2r
@file-new ( -- )
#0801
&>l ( -- )
#00 OVR #c0 SFT2 ;mem ADD2 STH2
#20 STH2r STA
INC GTHk ?&>l
POP2 JMP2r
@file-save ( -- )
;notepad-path .File/name DEO2
#8000 .File/length DEO2
;mem .File/write DEO2
JMP2r
@file-size ( path* -- size* )
.File/name DEO2
#0001 .File/length DEO2
[ LIT2r 0000 ]
&>s ( -- )
;&b .File/read DEO2
[ LIT2 00 -File/success-lb ] DEI EQU ?&eof
INC2r !&>s
&eof STH2r JMP2r
&b $1
@file-inject ( name* -- )
DUP2 file-size ORAk ?{ POP2 POP2 JMP2r }
STH2
.File/name DEO2
STH2kr .File/length DEO2
( | erase when selection length )
.selection/length LDZ2 #0000 EQU2 ?{
get-from get-eof .selection/length LDZ2 <msfl> }
( push right ) get-from #0001 SUB2 get-eof STH2kr <msfr>
get-from .File/read DEO2
get-from STH2r ADD2 !<select-from>
@edit-cut ( -- )
.selection/length LDZ2 #0001 GTH2 [ JMP JMP2r ] edit-copy erase-selection <select-reset>
!file-save
@edit-copy ( -- )
.selection/length LDZ2 #0001 GTH2 [ JMP JMP2r ] ;snarf-path .File/name DEO2
.selection/length LDZ2 .File/length DEO2
get-from .File/write DEO2
JMP2r
@edit-paste ( -- )
;snarf-path file-inject !file-save
(
@|core )
@<trap-mouse> ( -- )
.Mouse/y DEI2 DUP2 #0018 GTH2 ?{
POP2 ;on-mouse-head .Mouse/vector DEO2
JMP2r }
DUP2 #00d6 LTH2 ?{
POP2 ;on-mouse-foot .Mouse/vector DEO2
JMP2r }
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
( | tabbed )
DUP2 find-line-start LDA2 DUP2 #093e NEQ2 ?{ POP2 #01 #0021 !<draw-linebreak> }
DUP2 #092d NEQ2 ?{ POP2 #01 #0022 !<draw-linebreak> }
POP2 #01 #0008 !<draw-linebreak>
&no-wrap ( char )
LDAk char-width .Screen/x DEI2 ADD2 .Screen/x DEO2
( | tab )
LDAk #09 NEQ ?{ #00 !<draw-tab> }
( | linebreak )
LDAk #0a NEQ ?{ #01 #0008 !<draw-linebreak> }
#00 JMP2r
@get-page ( -- addr* )
;mem [ LIT2 00 -page ] LDZ #c0 SFT2 ADD2 JMP2r
@char-addr ( prev char -- addr* )
DUP #7e GTH ?&missing
DUP #20 LTH ?&blank
DUP2 #0a3e EQU2 ?&marker
DUP2 #093e EQU2 ?&marker
DUP2 #092d EQU2 ?&bullet
NIP #20 SUB #00 SWP #50 SFT2 ;font/glyphs ADD2 JMP2r
&blank POP2 ;font/glyphs JMP2r
&missing POP2 ;error-icn JMP2r
&marker POP2 ;marker-icn JMP2r
&bullet POP2 ;bullet-icn JMP2r
@char-width ( char -- width* )
DUP #7e GTH ?{
#20 SUB #00 SWP ;font ADD2 LDA #00 SWP JMP2r }
POP #0008 JMP2r
@word-width ( str* -- length* )
[ LIT2r 0000 ]
&>w ( -- )
LDAk char-width STH2
ADD2r INC2 LDAk #20 GTH ?&>w
POP2 STH2r JMP2r
@find-line-start ( addr* -- addr* )
;mem SWP2
&>l ( -- )
#0001 SUB2 LDAk DUP #0a EQU SWP #00 EQU ORA ?&end
LTH2k ?&>l
&end NIP2 INC2 JMP2r
@find-line-end ( addr* -- addr* )
get-eof SWP2
&>l ( -- )
LDAk #0a EQU ?&end
LDAk #00 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
(
@|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 [ LIT2 00 -Mouse/state ] DEI 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
&>w ( -- )
( | draw char )
DUP2 #0001 SUB2 LDA2 char-addr .Screen/addr DEO2
is-selected STH
#0701 STHr [ JMP SWP POP ] .Screen/sprite DEOk DEO
.Screen/x DEI2k #0010 SUB2 ROT DEO2
( | draw selector )
get-from get-to NEQ2 ?&block
DUP2 get-from 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 ?&>w
POP2
@<draw-footer> ( -- )
.Screen/height DEI2 #0020 GTH2 ?{ JMP2r }
[ 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 #0010 ADD2 #33 SFT2 ROT DEO2
JMP2r
@<draw-linebreak> ( x* -- )
.Screen/x DEO2
.Screen/y DEI2k #0010 ADD2 ROT DEO2
JMP2r
@<update-cursor> ( color addr* -- )
[ LIT2 15 -Screen/auto ] DEO
;fill-icn .Screen/addr DEO2
#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
(
@|stdlib )
@scap ( str* -- end* )
&>w ( -- )
INC2 & LDAk ?&>w
JMP2r
@<phex> ( short* -: )
SWP /b
&b ( byte -: )
DUP #04 SFT /c
&c ( byte -: )
#0f AND DUP #09 GTH #27 MUL ADD [ LIT "0 ] ADD #18 DEO
JMP2r
@load-theme ( -- )
;theme-path .File/name DEO2
#0002 .File/length DEO2
;&r .File/read DEO2
;&g .File/read DEO2
;&b .File/read DEO2
[ LIT2 00 -File/success-lb ] DEI EQU ?{
[ LIT2 &r $2 ] .System/r DEO2
[ LIT2 &g $2 ] .System/g DEO2
[ LIT2 &b $2 ] .System/b DEO2 }
JMP2r
@<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
(
@|strings )
@snarf-path ".snarf $1
@theme-path ".theme $1
@notepad-path ".notepad $1
@fill-icn [
ffff ffff ffff ffff ffff ffff ffff ffff ]
@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 ]
@marker-icn [
0000 0000 0000 4060 7060 4000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 ]
@bullet-icn [
0000 0000 0000 3078 7830 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 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 ]
@page-icn-next [
0000 00ff 4020 1008 0000 00ff 0000 0000
0000 00fc 0404 0404 0402 0100 0000 0000
0000 0080 4020 1008 0404 0404 0404 0404
0000 0000 0000 0000 0402 0100 0000 0000
0404 0484 4424 140c 0000 ff00 ff00 ffff
0000 ff00 ff00 ffff 0700 ff00 ff00 ffff ]
@page-icn-prev [
0000 0000 00ff 4020 0000 0000 00ff 0000
0000 0000 00f0 1010 1008 0402 0100 0000
0000 0000 0080 4020 1010 1010 1010 1010
0000 0000 0000 0000 1008 0402 0100 0000
1010 1010 1090 5030 0000 ff00 ff00 ffff
0000 ff00 ff00 ffff 1f00 ff00 ff00 ffff ]
@line-icn [ 00ff 0000 0000 0000 ]
@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 ]
@font ( newyork12 - removed 0x20 down )
[
0404 0508 0709 0a03 0505 0606 0306 0307
0807 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
&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 0010 3010 1010 1010 1038 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 2020
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
@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

View File

@ -75,8 +75,17 @@
@on-mouse-head ( -> ) @on-mouse-head ( -> )
[ LIT2 00 -Mouse/state ] DEI NEQ #41 ADD ;mouse-icn <update-cursor> [ 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> <trap-mouse>
.Mouse/y DEI2 #0010 LTH2 ?{ BRK }
( | collapse on mouse2 )
.Mouse/state DEI #02 LTH ?{
#00f8 #0011 .collapsed LDZ ?{ SWP2 }
POP2 .Screen/height DEO2
[ LIT2 00 -collapsed ] LDZ EQU .collapsed STZ
<draw-header>
<redraw>
[ LIT2 00 -Mouse/state ] DEO
BRK }
[ LIT &last $1 ] .Mouse/state DEI DUP ,&last STR [ LIT &last $1 ] .Mouse/state DEI DUP ,&last STR
EQU ?&unchanged EQU ?&unchanged
<draw-header> <draw-header>
@ -84,14 +93,6 @@
.Mouse/x DEI2 #0008 SUB2 #000a GTH2 ?&unchanged .Mouse/x DEI2 #0008 SUB2 #000a GTH2 ?&unchanged
( exit ) #800f DEO ( exit ) #800f DEO
&unchanged BRK &unchanged BRK
&toggle-collapse ( -> )
#00f8 #0011 .collapsed LDZ ?{ SWP2 }
POP2 .Screen/height DEO2
[ LIT2 00 -collapsed ] LDZ EQU .collapsed STZ
<draw-header>
<redraw>
[ LIT2 00 -Mouse/state ] DEO
BRK
@on-mouse-body ( -> ) @on-mouse-body ( -> )
[ LIT2 00 -Mouse/state ] DEI NEQ #41 ADD ;caret-icn <update-cursor> [ LIT2 00 -Mouse/state ] DEI NEQ #41 ADD ;caret-icn <update-cursor>