@@ 1,3 1,75 @@
+@fill-icn
+ ffff ffff ffff ffff
+@bigpixel-icn
+ f0f0 f0f0 0000 0000
+@halftone-icn
+ aa55 aa55 aa55 aa55
+@brush-icn
+ 0070 6844 2211 0906
+@select-icn
+ 0040 6070 787c 7008
+@zoom-icn
+ 0030 4884 8448 3402
+@pixel-icn
+ 7cfe fefe fefe 7c00
+@save-icn
+ 0008 2a14 6314 2a08
+@make-icn
+ 007f 4141 4142 457a
+@load-icn
+ 007f 556b 556a 557a
+@zoom-icns
+ 0030 4884 8448 3402
+ 0032 4582 8448 3402
+@slider-icns
+ f0f0 f0f0 f0f0 f000
+ 50a0 50a0 50a0 5000
+@circle-icns
+ 001c 2241 4141 221c
+ 001c 3e7f 7f7f 3e1c
+@arrow-hor-icns
+ 080c 0e7f 0e0c 0800
+ 0818 387f 3818 0800
+@arrow-ver-icns
+ 081c 3e7f 0808 0800
+ 0808 087f 3e1c 0800
+
+@frame-icns
+ ( tl ) 0000 0000 0000 0102
+ ( tc ) 0000 0000 0000 ff00
+ ( tr ) 0000 0000 0000 8040
+ ( mr ) 4040 4040 4040 4040
+ ( ml ) 0202 0202 0202 0202
+ ( bc ) 0201 0000 0000 0000
+ ( br ) 00ff 0000 0000 0000
+ ( mc ) 4080 0000 0000 0000
+
+@frame1-chr
+ ( e ) 0000 0000 070f 0f0f 0000 0007 0f1f 1f1f
+ ( h ) 0000 0000 ffff ffff 0000 00ff ffff ffff
+ ( v ) f0f0 f0f0 f0f0 f0f0 f8f8 f8f8 f8f8 f8f8
+
+@menu-chr
+ ffff ffff ffff ffff ffff ffff ffff ffff
+ ffff ffff ffff ff00 ffff ffff ffff ffff
+
+@appicon
+0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0304 0000 0000 00e0 1008
+0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000 0c03 0000 0000 0000 0804 8242 2111 7884
+0000 0000 0078 8788 0000 0000 0000 f00c 0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0001 0102 010f 3040 8000 0000 04fa 0601 0000 0000
+90a0 8080 8000 4000 0201 0000 0000 0000 0000 8040 2020 1010 0000 0000 0000 0000
+0000 0000 0000 0000 0204 0404 0404 0404 3040 0020 4000 4040 0000 0000 0001 0307
+0000 0000 c0f0 fcfe 0000 0000 0000 0000 1008 0808 0808 0808 0000 0000 0000 0000
+0000 0000 0000 0000 0404 0404 0202 0101 0000 0000 0080 2018 0f1e 1e3e 3e1f 0703
+1f4f efef 4f1e fcfb 0080 8000 0100 7880 0808 2848 8808 1010 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000 8380 4040 2010 1008 fc00 0000 0000 0000
+7000 0000 0000 0000 0001 0100 0202 0800 1010 2020 4040 4080 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000 0402 0100 0000 0000 0000 0081 4131 0e00
+0000 0000 0080 433c 0001 4244 b880 0000 8000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
+0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
@font ( atari8 )
0000 0000 0000 0000 6060 6060 6000 6000
@@ 47,56 119,7 @@ c060 3018 0c06 0300 3c0c 0c0c 0c0c 3c00
0000 663c 183c 6600 0000 6666 663e 067c
0000 7e0c 1830 7e00 1c30 3060 3030 1c00
1818 1818 1818 1818 380c 0c06 0c0c 3800
-0000 60f2 9e0c 0000 0018 1834 3462 7e00
-
-@bigpixel-icn
- f0f0 f0f0 0000 0000
-@halftone-icn
- aa55 aa55 aa55 aa55
-
-@brush-icn
- 0070 6844 2211 0906
-@select-icn
- 0040 6070 787c 7008
-@zoom-icn
- 0030 4884 8448 3402
-@pixel-icn
- 7cfe fefe fefe 7c00
-@save-icn
- 0008 2a14 6314 2a08
-@make-icn
- 007f 4141 4142 457a
-@load-icn
- 007f 556b 556a 557a
-@zoom-icns
- 0030 4884 8448 3402
- 0032 4582 8448 3402
-@slider-icns
- f0f0 f0f0 f0f0 f000
- 50a0 50a0 50a0 5000
-@circle-icns
- 001c 2241 4141 221c
- 001c 3e7f 7f7f 3e1c
-@arrow-hor-icns
- 080c 0e7f 0e0c 0800
- 0818 387f 3818 0800
-@arrow-ver-icns
- 081c 3e7f 0808 0800
- 0808 087f 3e1c 0800
-
-@frame-icns
- ( tl ) 0000 0000 0000 0102
- ( tc ) 0000 0000 0000 ff00
- ( tr ) 0000 0000 0000 8040
- ( mr ) 4040 4040 4040 4040
- ( ml ) 0202 0202 0202 0202
- ( bc ) 0201 0000 0000 0000
- ( br ) 00ff 0000 0000 0000
- ( mc ) 4080 0000 0000 0000
-
-@menu-chr
- ffff ffff ffff ffff ffff ffff ffff ffff
- ffff ffff ffff ff00 ffff ffff ffff ffff
+0000 60f2 9e0c 0000 3c42 9985 8599 423c
@nametable $300
@spritesheet
@@ 46,9 46,9 @@
#00 .settings/brush STZ
;set-focus JSR2
( place )
- .Screen/width DEI2 #01 SFT2 .frame/width LDZ2 #01 SFT2 SUB2 #001c .frame/width LDZ2 .frame/height LDZ2 ;frame ;set-size JSR2
+ .Screen/width DEI2 #01 SFT2 .frame/width LDZ2 #01 SFT2 SUB2 #001b .frame/width LDZ2 .frame/height LDZ2 ;frame ;set-size JSR2
.frame/x1 LDZ2 #0001 SUB2 .frame/y1 LDZ2 #0038 ADD2 #007f DUP2 ;tileview ;set-size JSR2
- .frame/x1 LDZ2 #0088 ADD2 .frame/y1 LDZ2 #0038 ADD2 #007f DUP2 ;nametableview ;set-size JSR2
+ .frame/x1 LDZ2 #0089 ADD2 .frame/y1 LDZ2 #0038 ADD2 #007f DUP2 ;nametableview ;set-size JSR2
.frame/x1 LDZ2 #0001 SUB2 .frame/y1 LDZ2 #001f #002f ;zoomview ;set-size JSR2
.frame/x1 LDZ2 #002f ADD2 .frame/y1 LDZ2 #001f #002f ;preview ;set-size JSR2
.frame/x1 LDZ2 #005f ADD2 .frame/y1 LDZ2 #0020 #002f ;colorview ;set-size JSR2
@@ 67,7 67,8 @@ BRK
@manifest
- 08 "Nasu $1
+ 09 "Nasu $1
+ 00 00 :about/toggle "About $1
01 "n :file-new "New $1
01 "r :trap "Rename $1
01 "o :file-open "Open $1
@@ 805,7 806,7 @@ JMP2r
INC GTHk ,&ver JCN
POP2
- .zoomview/x1 LDZ2 #0008 SUB2 .zoomview/y1 LDZ2 #0008 SUB2 #0404 ;frame-icns ;draw-frame JSR2
+ .zoomview/x1 LDZ2 #0008 SUB2 .zoomview/y1 LDZ2 #0008 SUB2 #0404 ;frame-icns ;draw-frame-icn JSR2
( label )
.zoomview/y2 LDZ2 #0008 SUB2 .Screen/y DEO2
@@ 1002,10 1003,31 @@ JMP2r
JMP2r
+@draw-fill-fast ( width color auto addr* -- )
+
+ .Screen/addr DEO2
+ &blank
+ .Screen/auto DEO
+ STH
+ #00
+ &l2
+ STHkr .Screen/sprite DEO
+ INC GTHk ,&l2 JCN
+ POP2
+ POPr
+
+JMP2r
+
+@draw-lb ( -- )
+
+ .Screen/y DEI2k #0008 ADD2 ROT DEO2
+
+JMP2r
+
@draw-once ( -- )
- .tileview/x1 LDZ2 #0008 SUB2 .tileview/y1 LDZ2 #0008 SUB2 #1010 ;frame-icns ;draw-frame JSR2
- .nametableview/x LDZ2 #0008 SUB2 .nametableview/y LDZ2 #0008 SUB2 #1010 ;frame-icns ;draw-frame JSR2
+ .tileview/x1 LDZ2 #0008 SUB2 .tileview/y1 LDZ2 #0008 SUB2 #1010 ;frame-icns ;draw-frame-icn JSR2
+ .nametableview/x LDZ2 #0008 SUB2 .nametableview/y LDZ2 #0008 SUB2 #1010 ;frame-icns ;draw-frame-icn JSR2
#01 .Screen/auto DEO
JMP2r
@@ 1291,7 1313,7 @@ JMP2r
JMP2r
-@draw-frame ( x* y* w h sprite* -- )
+@draw-frame-icn ( x* y* w h sprite* -- )
.Screen/addr DEO2
,&h STR ,&w STR
@@ 1328,6 1350,37 @@ JMP2r
POP2
JMP2r
+@draw-frame ( w h chr* -- )
+
+ STH2 ,&h STR ,&w STR
+ .Screen/x DEI2 DUP2 #0008 SUB2 .Screen/x DEO2
+ .Screen/y DEI2 #0008 SUB2 DUP2 .Screen/y DEO2
+ ( ul ) #00 STH2kr #05 ,&single JSR
+ ( uu ) [ LIT &w $1 ] #00 STH2kr #0010 ADD2 #01 ,&repeat JSR
+ ( ur ) #10 STH2kr #06 ,&single JSR
+ ( rr ) [ LIT &h $1 ] #00 STH2kr #0020 ADD2 #02 ,&repeat JSR
+ #0008 ADD2 .Screen/y DEO2
+ #0008 SUB2 .Screen/x DEO2
+ ( ll ) ,&h LDR #10 STH2kr #0020 ADD2 #02 ,&repeat JSR
+ ( dl ) #20 STH2kr #01 ,&single JSR
+ ( bb ) ,&w LDR #20 STH2kr #0010 ADD2 #01 ,&repeat JSR
+ ( dr ) #30 STH2r #00 ,&single ( .. )
+
+JMP
+ &repeat ( times color addr* auto -- )
+ .Screen/auto DEO
+ .Screen/addr DEO2
+ STH
+ #00 &l STHkr ,&paint JSR INC GTHk ,&l JCN POP2
+ POPr
+ JMP2r
+ &single ( color addr* auto -- )
+ .Screen/auto DEO
+ .Screen/addr DEO2
+ &paint ( mask -- )
+ [ LIT &color 8a ] SWP ORA .Screen/sprite DEO
+ JMP2r
+
@line-hor-dashed ( x* y* color -- )
STH .Screen/y DEO2 .Screen/x DEO2
@@ 1352,10 1405,80 @@ JMP2r
(
@|stdlib )
+
@rol ( byte -- byte ) DUP #07 SFT SWP DUP ADD ADD JMP2r
@ror ( byte -- byte ) DUP #70 SFT SWP #01 SFT ADD JMP2r
@mcpy ( src* dst* len* -- ) SWP2 STH2 OVR2 ADD2 SWP2 &loop LDAk STH2kr STA INC2r INC2 GTH2k ,&loop JCN POP2 POP2 POP2r JMP2r
+@|about )
+
+@about
+ ( name ) "Nasu $1
+ ( license ) "Hundred 20 "Rabbits 20 7f 20 "2022 $1
+ ( version ) "Version 20 "1.00 $2
+&on-mouse ( -> )
+ .Mouse/state DEI ,&on-control JCN
+ BRK
+&on-control ( -> )
+ ,&hide JSR
+BRK
+&toggle ( -- )
+ [ LIT &active 00 ] ,&hide JCN
+ #01 ,&active STR
+ ;draw-about JSR2
+ ;&on-mouse .Mouse/vector DEO2
+ ;&on-control .Controller/vector DEO2
+JMP2r
+&hide ( -- )
+ #00 ,&active STR
+ ;clear-about JSR2
+ ;untrap ( .. )
+JMP2
+
+@draw-about ( -- )
+
+ ( frame )
+ .Screen/width DEI2 #01 SFT2 #0080 SUB2 STH2k .Screen/x DEO2
+ .Screen/height DEI2 #01 SFT2 #0020 SUB2 STH2k .Screen/y DEO2
+ #2008 ;frame1-chr ;draw-frame JSR2
+ ( fill )
+ STH2kr .Screen/y DEO2
+ OVR2r STH2r .Screen/x DEO2
+ #20 #0171 ;fill-icn ;draw-fill-fast JSR2
+ ( icon )
+ STH2kr .Screen/y DEO2
+ OVR2r STH2r .Screen/x DEO2
+ #08 #0476 ;appicon ;draw-fill-fast JSR2
+ ( text )
+ STH2r #000c ADD2 .Screen/y DEO2
+ LIT2r 0048 ADD2r
+ #01 .Screen/auto DEO
+ #04 ;draw-chr/color STA
+ STH2kr .Screen/x DEO2
+ ;about
+ &w
+ ;draw-str JSR2
+ ;draw-lb JSR2k JSR2
+ STH2kr .Screen/x DEO2
+ LDAk ,&w JCN
+ POP2
+ POP2r
+
+JMP2r
+
+@clear-about ( -- )
+
+ .Screen/width DEI2 #01 SFT2 #0088 SUB2 .Screen/x DEO2
+ .Screen/height DEI2 #01 SFT2 #0028 SUB2 .Screen/y DEO2
+ #22 #0091 ;draw-fill-fast/blank JSR2
+ ;redraw-all JSR2
+ ;draw-menu ( .. )
+
+JMP2
+
+(
+@|assets )
+
@untitled-txt "untitled10x10.chr $1
@nametable-ext ".nmt $1