@@ 353,11 353,11 @@ JMP2r
@scpy ( src* dst* -- ) STH2 &w LDAk STH2kr STA INC2r INC2 LDAk ,&w JCN POP2 #00 STH2r STA JMP2r
@mclr ( src* len* -- ) OVR2 ADD2 SWP2 &l STH2k #00 STH2r STA INC2 GTH2k ,&l JCN POP2 POP2 JMP2r
-@print ( short* -- )
+@phex ( short* -- )
- SWP ,&byte JSR
- &byte ( byte -- ) DUP #04 SFT ,&char JSR
- &char ( char -- ) #0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO
+ SWP ,&b JSR
+ &b ( byte -- ) DUP #04 SFT ,&c JSR
+ &c ( char -- ) #0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO
JMP2r
@@ 21,7 21,7 @@
@state &timer $2
@glyph $1
@cursor &x $2 &y $2
-@filepath $40
+@src $40
@pangrams-view &x $2 &y $2 &x2 $2 &y2 $2
@editor-view &x $2 &y $2 &x2 $2 &y2 $2
@collection-view &x $2 &y $2 &x2 $2 &y2 $2
@@ 44,7 44,7 @@
.editor-view/x2 LDZ2 #0020 ADD2 DUP2 .collection-view/x STZ2 #0100 ADD2 .collection-view/x2 STZ2
.editor-view/y LDZ2 DUP2 .collection-view/y STZ2 #0100 ADD2 .collection-view/y2 STZ2
( init )
- ;untitled-txt ;filepath #000c ;mcpy JSR2
+ ;untitled-txt ;src #000c ;mcpy JSR2
;load-theme JSR2
;draw-menu JSR2
;redraw-all JSR2
@@ 56,11 56,12 @@ BRK
@manifest
- 05 "Turye $1
+ 06 "Turye $1
01 "n :file-new "New $1
01 "r :file-rename "Rename $1
01 "o :file-open "Open $1
01 "s :file-save "Save $1
+ 01 "e :file-export "Export $1
01 "q :exit "Exit $1
08 "Edit $1
01 "c :edit-copy "Copy $1
@@ 104,7 105,7 @@ JMP2r
( start )
[ LIT &listening $1 ] ,&no-start JCN
#01 ,&listening STR
- ;filepath #0040 ;mclr JSR2
+ ;src #0040 ;mclr JSR2
&no-start
( end )
.Console/read DEI
@@ 128,11 129,11 @@ BRK
@capture-trap ( button -- )
DUP ,&no-null JCN POP JMP2r &no-null
- [ #08 ] NEQk NIP ,&no-pop JCN ;filepath ;spop JSR2 POP JMP2r &no-pop
+ [ #08 ] NEQk NIP ,&no-pop JCN ;src ;spop JSR2 POP JMP2r &no-pop
[ #0a ] NEQk NIP ,&no-load JCN ;file-open JSR2 &no-load
- [ #7f ] NEQk NIP ,&no-delete JCN ;filepath #0040 ;mclr JSR2 POP JMP2r &no-delete
+ [ #7f ] NEQk NIP ,&no-delete JCN ;src #0040 ;mclr JSR2 POP JMP2r &no-delete
[ #20 ] GTHk NIP ,&no-special JCN ;untrap JSR2 POP JMP2r &no-special
- ;filepath ;slen JSR2 NIP #3f EQU ,&no-push JCN DUP ;filepath ;sput JSR2 &no-push
+ ;src ;slen JSR2 NIP #3f EQU ,&no-push JCN DUP ;src ;sput JSR2 &no-push
POP
JMP2r
@@ 327,7 328,7 @@ JMP2r
#03 ;get-catx JSR2 .Screen/x DEO2
#0004 .Screen/y DEO2
;draw-chr/color STA
- ;filepath ;draw-str JSR2 POP2
+ ;src ;draw-str JSR2 POP2
JMP2r
@@ 523,7 524,7 @@ JMP2r
@file-open ( -- )
;clear-screen JSR2
- ;filepath .File/name DEO2
+ ;src .File/name DEO2
#2100 .File/length DEO2
;font .File/read DEO2
;redraw-all JSR2
@@ 532,13 533,43 @@ JMP2r
@file-save ( -- )
- ;filepath .File/name DEO2
+ ;src .File/name DEO2
#2100 .File/length DEO2
;font .File/write DEO2
#01 ;draw-state JSR2
JMP2r
+@file-export ( -- )
+
+ ;src ;scap JSR2 STH2
+ ;dict/tal-ext STH2kr ;scpy JSR2
+ ;src .File/name DEO2
+ #0001 .File/length DEO2
+ ;dict/font ;fstr JSR2
+ ( sizes )
+ ;font #0080 ;fmem JSR2
+ #0a ;fchr JSR2
+ ( glyphs )
+ ;dict/glyphs ;fstr JSR2
+ ;font/glyphs #0400 ADD2 #1000 ;fmem JSR2
+ #0a ;fchr JSR2
+ #00 STH2r STA
+
+JMP2r
+
+@fmem ( addr* len* -- )
+
+ ADD2k NIP2 SWP2
+ &l
+ SUB2k #000f AND2 NIP #00 EQU
+ #0a20 ROT [ JMP SWP POP ] ;fchr JSR2
+ LDA2k ;fhex JSR2
+ INC2 INC2 GTH2k ,&l JCN
+ POP2 POP2
+
+JMP2r
+
( snarf )
@snarf-txt ".snarf $1
@@ 635,14 666,23 @@ JMP2r
(
@|stdlib )
+@fhex ( short* -- ) SWP ,&b JSR &b DUP #04 SFT ,&c JSR &c #0f AND DUP #09 GTH #27 MUL ADD #30 ADD ,fchr JSR JMP2r
+@fchr ( chr -- ) ,&b STR #0001 .File/length DEO2 ;&b .File/write DEO2 JMP2r &b $1
+@fstr ( str* -- ) DUP2 ;slen JSR2 .File/length DEO2 .File/write DEO2 JMP2r
+
@mcpy ( src* dst* len* -- ) SWP2 STH2 OVR2 ADD2 SWP2 &loop LDAk STH2kr STA INC2r INC2 GTH2k ,&loop JCN POP2 POP2 POP2r JMP2r
@untitled-txt "untitled.uf2 $1
+@dict
+ &font "@font $1
+ &glyphs "&glyphs $1
+ &tal-ext ".tal $1
+
@pangrams-txt
"Gaza 20 "frequens 20 "Lybicum 20 "duxit 20 "Karthago 20 "triumphum. 0a
"Portez 20 "ce 20 "vieux 20 "whisky 20 "au 20 "juge 20 "blond 20 "qui 20 "fume. 0a
- "The 20 "five 20 "boxing 20 "wizards 20 "jump 20 "quickly. $1
+ 09 "The 20 "five 20 "boxing 20 "wizards 20 "jump 20 "quickly. $1
@state-icn
0000 0000 0010 387c