Browse Source

Improved format

main
Devine Lu Linvega 2 years ago
parent
commit
09ec505047
  1. 375
      src/nasu.tal

375
src/nasu.tal

@ -59,7 +59,7 @@
.tileview/x1 LDZ2 .tileview/y2 LDZ2 #0008 ADD2 .frame/width LDZ2 #0008 ;toolview <set-size>
( | static drawings )
load-theme
draw-once
<draw-once>
( | begin )
file-new
draw-menu
@ -128,7 +128,7 @@ BRK
#0000 .Screen/vector DEO2
;on-button .Controller/vector DEO2
;on-mouse .Mouse/vector DEO2
#01 draw-filepath
#01 <draw-filepath>
( release mouse ) [ LIT2 00 -Mouse/state ] DEO
JMP2r
@ -146,7 +146,7 @@ JMP2r
@on-console ( -> )
#00 draw-filepath
#00 <draw-filepath>
( | start )
[ LIT &listening $1 ] ?&no-start
#01 ,&listening STR
@ -159,15 +159,15 @@ JMP2r
&no-end
( | capture )
capture-trap
#01 draw-filepath
#01 <draw-filepath>
BRK
@on-button-trap ( -> )
#00 draw-filepath
#00 <draw-filepath>
.Controller/key DEI DUP #0d EQU #03 MUL SUB capture-trap
#01 draw-filepath
#01 <draw-filepath>
BRK
@ -198,7 +198,7 @@ BRK
.state/timer LDZ
DUP #07 AND ?&no-blink
DUP #03 SFT #01 AND #30 SFT INC draw-filepath
DUP #03 SFT #01 AND #30 SFT INC <draw-filepath>
&no-blink
INC .state/timer STZ
@ -248,7 +248,7 @@ BRK
( | paint )
.settings/color LDZ .Mouse/state DEI #01 EQU MUL
put-pixel
#01 .state/changed STZ draw-state
#01 .state/changed STZ <draw-state>
<redraw>
BRK
@ -269,7 +269,7 @@ BRK
SWP2 #03 SFT2 #00 .selection/zx LDZ ADD2
SWP2 #03 SFT2 #00 .selection/zy LDZ ADD2
.settings/color LDZ .Mouse/state DEI #01 EQU MUL put-pixel
#01 .state/changed STZ draw-state
#01 .state/changed STZ <draw-state>
<redraw>
BRK
@ -296,8 +296,8 @@ BRK
#0003 MUL2 ;nametable ADD2 STH2
.settings/focus LDZ2 ;spritesheet SUB2 STH2kr STA2
.settings/blend LDZ INC2r INC2r STH2r STA
draw-nametable
#01 .state/changed STZ draw-state
<draw-nametable>
#01 .state/changed STZ <draw-state>
BRK
@ -336,7 +336,7 @@ BRK
.settings/color LDZ .Mouse/state DEI #01 EQU MUL
put-pixel
&finish
#01 .state/changed STZ draw-state
#01 .state/changed STZ <draw-state>
<redraw>
BRK
@ -346,7 +346,7 @@ BRK
( y ) .Mouse/y DEI2 .preview/y1 LDZ2 SUB2 #03 SFT2 NIP #03 AND
( x ) .Mouse/x DEI2 .preview/x1 LDZ2 SUB2 #03 SFT2 NIP
#40 SFT ADD #11 ADD .settings/ratio STZ
draw-preview
<draw-preview>
( release mouse ) [ LIT2 00 -Mouse/state ] DEO
BRK
@ -385,8 +385,8 @@ BRK
[ #03 NEQk NIP ] ?&no-hor .settings/blend STHk LDZ #10 EOR STHr STZ &no-hor
&end
POP
draw-blendview
draw-preview
<draw-blendview>
<draw-preview>
( | release mouse ) [ LIT2 00 -Mouse/state ] DEO
BRK
@ -397,22 +397,22 @@ BRK
@toggle-zoom ( -- )
.settings/zoom LDZk #00 EQU SWP STZ
draw-tileview
<draw-tileview>
!draw-toolview
!<draw-toolview>
@set-color ( color -- )
.settings/color STZ
draw-toolview
<draw-toolview>
!draw-colorview
!<draw-colorview>
@set-tool ( tool -- )
.settings/tool STZ
!draw-toolview
!<draw-toolview>
@clamp-selection ( -- )
@ -495,7 +495,7 @@ JMP2r
.selection/zy LDZ #03 SFT
set-selection-from
!draw-tileview-zoom
!<draw-tileview-zoom>
@scale-selection ( x y -- )
@ -521,21 +521,96 @@ JMP2r
AND
JMP2r
@get-tile-addr ( x y -- addr* )
#40 SFT ADD #00 SWP #40 SFT2 ;spritesheet ADD2
JMP2r
@get-pixel ( x* y* -- color )
( | channel 1 )
OVR2 SWP2 get-pixel-addr [ STH2k ] LDA
ROT ROT NIP #07 AND [ STHk ]
#07 SWP SUB SFT #01 AND
( | channel 2 )
[ STHr ] [ STH2r ] #0008 ADD2 LDA SWP
#07 SWP SUB SFT #01 AND
DUP ADD
ADD
JMP2r
@get-pixel-addr ( x* y* -- addr* )
( | clamp )
#007f AND2 SWP2 #007f AND2 SWP2
( | get row )
DUP2 #0007 AND2
( | get tile )
SWP2 #83 SFT2 ADD2
SWP2 #43 SFT2 ADD2
;spritesheet ADD2
JMP2r
@put-pixel ( x* y* color -- )
STH
OVR2 SWP2 get-pixel-addr
( ch1 ) OVR2 OVR2 STHkr #00 toggle-pixel
( ch2 ) #0008 ADD2 STHr #01
@toggle-pixel ( x* addr* color -- )
STH2
LDAk
STH SWP2 NIP
STHr SWP
STH2r SFT #01 AND ?&do-set
( mask ) #0107 ROT #07 AND SUB #40 SFT SFT #ff EOR AND
( save ) ROT ROT STA
JMP2r
&do-set
( mask ) #0107 ROT #07 AND SUB #40 SFT SFT ORA
( save ) ROT ROT STA
JMP2r
@has-nametable ( -- bool )
;nametable STH2k #0300 ADD2 STH2r
&>loop
LDAk #00 EQU ?&continue
POP2 POP2 #01 JMP2r
&continue
INC2 GTH2k ?&>loop
POP2 POP2
#00
JMP2r
@get-strw ( str* -- width* )
slen #30 SFT2
JMP2r
(
@|filter )
@filter ( op* -- )
,&t STR2
,&fn STR2
.selection/y2 LDZ INC #30 SFT .selection/y1 LDZ #30 SFT
&ver
&>ver ( -- )
STHk
.selection/x2 LDZ INC #30 SFT .selection/x1 LDZ #30 SFT
&hor
#00 OVR #00 STHkr [ LIT2 &t $2 ] JSR2
INC GTHk ?&hor
&>hor ( -- )
#00 OVR #00 STHkr [ LIT2 &fn $2 ] JSR2
INC GTHk ?&>hor
POP2 POPr
INC GTHk ?&ver
INC GTHk ?&>ver
POP2
JMP2r
@ -578,17 +653,16 @@ JMP2r
@run ( op* -- )
STH2
,&fn STR2
.selection/y2 LDZ INC .selection/y1 LDZ
&ver
&>ver ( -- )
.selection/x2 LDZ INC .selection/x1 LDZ
&hor
OVR2 NIP OVR SWP get-tile-addr STH2kr JSR2
INC GTHk ?&hor
&>hor ( -- )
OVR2 NIP OVR SWP get-tile-addr [ LIT2 &fn $2 ] JSR2
INC GTHk ?&>hor
POP2
INC GTHk ?&ver
INC GTHk ?&>ver
POP2
POP2r
JMP2r
@ -602,9 +676,9 @@ JMP2r
,&t STR2
#1000
&loop
&>loop
#00 OVR [ LIT2 &t $2 ] ADD2 LDA2k #ffff EOR2 SWP2 STA2
INC INC GTHk ?&loop
INC INC GTHk ?&>loop
POP2
JMP2r
@ -651,14 +725,14 @@ JMP2r
STH2
#0800
&loop
&>loop
( | ch1 )
#00 OVR STH2kr ADD2
LDAk rol ROT ROT STA
( | ch2 )
#00 OVR STH2kr #0008 ADD2 ADD2
LDAk rol ROT ROT STA
INC GTHk ?&loop
INC GTHk ?&>loop
POP2
POP2r
@ -668,14 +742,14 @@ JMP2r
STH2
#0800
&loop
&>loop
( | ch1 )
#00 OVR STH2kr ADD2
LDAk ror ROT ROT STA
( | ch2 )
#00 OVR STH2kr #0008 ADD2 ADD2
LDAk ror ROT ROT STA
INC GTHk ?&loop
INC GTHk ?&>loop
POP2
POP2r
@ -702,32 +776,32 @@ JMP2r
@<redraw-all> ( -- )
draw-once
<draw-once>
@<redraw> ( -- )
draw-toolview
draw-blendview
draw-colorview
draw-dataview
draw-preview
draw-tileview
draw-nametable
<draw-toolview>
<draw-blendview>
<draw-colorview>
<draw-dataview>
<draw-preview>
<draw-tileview>
<draw-nametable>
!draw-zoomview
!<draw-zoomview>
@draw-tileview ( -- )
@<draw-tileview> ( -- )
.settings/zoom LDZ ?draw-tileview-zoom
.settings/zoom LDZ ?<draw-tileview-zoom>
.tileview/x1 LDZ2 .Screen/x DEO2
.tileview/y1 LDZ2 .Screen/y DEO2
( | draw tiles )
;spritesheet .Screen/addr DEO2
[ LIT2 f6 -Screen/auto ] DEO
#1000
&loop
&>loop
#81 .Screen/sprite DEO
INC GTHk ?&loop
INC GTHk ?&>loop
POP2
( | draw selection )
#06 .selection/x2 LDZ .selection/x1 LDZ SUB #40 SFT ADD .Screen/auto DEO
@ -735,10 +809,10 @@ JMP2r
#00 .selection/y1 LDZ #30 SFT2 .tileview/y1 LDZ2 ADD2 .Screen/y DEO2
.selection LDZ2 get-tile-addr ,&sprite STR2
.selection/y2 LDZ .selection/y1 LDZ SUB INC #00
&loop-sel
&>loop-sel
#00 OVR #80 SFT2 [ LIT2 &sprite $2 ] ADD2 .Screen/addr DEO2
#84 .Screen/sprite DEO
INC GTHk ?&loop-sel
INC GTHk ?&>loop-sel
POP2
[ LIT2 01 -Screen/auto ] DEO
( | draw selection size )
@ -754,7 +828,7 @@ JMP2r
JMP2r
@draw-tileview-zoom ( -- )
@<draw-tileview-zoom> ( -- )
( | clear )
;fill-icn .Screen/addr DEO2
@ -769,18 +843,18 @@ JMP2r
[ LIT2 01 -Screen/auto ] DEO
;pixel-icn .Screen/addr DEO2
#1000
&ver
&>ver ( -- )
#00 OVR #30 SFT .tileview/y1 LDZ2 ADD2 .Screen/y DEO2
.tileview/x1 LDZ2 .Screen/x DEO2
#1000
&hor
&>hor ( -- )
OVR2 NIP OVR SWP
( y ) .selection/zy LDZ ADD #00 SWP
( x ) ROT .selection/zx LDZ ADD #00 SWP SWP2
get-pixel .Screen/sprite DEO
INC GTHk ?&hor
INC GTHk ?&>hor
POP2
INC GTHk ?&ver
INC GTHk ?&>ver
POP2
( | guide hor )
#0007 .selection/zy LDZ SUB #0007 AND2 #30 SFT2 #0001 SUB2 #0008 ADD2 STH2
@ -799,121 +873,54 @@ JMP2r
JMP2r
@draw-nametable ( -- )
@<draw-nametable> ( -- )
[ LIT2 00 -Screen/auto ] DEO
#1000
&ver ( -- )
&>ver ( -- )
( > y ) #00 OVR #30 SFT2 .nametableview/y LDZ2 ADD2 .Screen/y DEO2
STHk
.nametableview/x LDZ2 .Screen/x DEO2
#1000
&hor ( -- )
&>hor ( -- )
( > x ) #00 OVR #30 SFT2 .nametableview/x LDZ2 ADD2 .Screen/x DEO2
( id ) #00 OVR STHkr #40 SFT ADD
( addr* ) #0003 MUL2 ;nametable ADD2
LDA2k ;spritesheet ADD2 .Screen/addr DEO2
( color ) INC2 INC2 LDA .Screen/sprite DEO
INC GTHk ?&hor
INC GTHk ?&>hor
POP2
POPr
.nametableview/x LDZ2 .Screen/x DEO2
draw-lb
INC GTHk ?&ver
INC GTHk ?&>ver
POP2
JMP2r
( tools )
@get-tile-addr ( x y -- addr* )
#40 SFT ADD #00 SWP #40 SFT2 ;spritesheet ADD2
JMP2r
@get-pixel ( x* y* -- color )
( | channel 1 )
OVR2 SWP2 get-pixel-addr [ STH2k ] LDA
ROT ROT NIP #07 AND [ STHk ]
#07 SWP SUB SFT #01 AND
( | channel 2 )
[ STHr ] [ STH2r ] #0008 ADD2 LDA SWP
#07 SWP SUB SFT #01 AND
DUP ADD
ADD
JMP2r
@get-pixel-addr ( x* y* -- addr* )
( | clamp )
#007f AND2 SWP2 #007f AND2 SWP2
( | get row )
DUP2 #0007 AND2
( | get tile )
SWP2 #83 SFT2 ADD2
SWP2 #43 SFT2 ADD2
;spritesheet ADD2
JMP2r
@put-pixel ( x* y* color -- )
STH
OVR2 SWP2 get-pixel-addr
( ch1 ) OVR2 OVR2 STHkr #00 toggle-pixel
( ch2 ) #0008 ADD2 STHr #01
@toggle-pixel ( x* addr* color -- )
STH2
LDAk
STH SWP2 NIP
STHr SWP
STH2r SFT #01 AND ?&do-set
( mask ) #0107 ROT #07 AND SUB #40 SFT SFT #ff EOR AND
( save ) ROT ROT STA
JMP2r
&do-set
( mask ) #0107 ROT #07 AND SUB #40 SFT SFT ORA
( save ) ROT ROT STA
JMP2r
@has-nametable ( -- bool )
;nametable STH2k #0300 ADD2 STH2r
&loop
LDAk #00 EQU ?&continue
POP2 POP2 #01 JMP2r
&continue
INC2 GTH2k ?&loop
POP2 POP2
#00
JMP2r
( panes )
@draw-zoomview ( -- )
@<draw-zoomview> ( -- )
;bigpixel-icn .Screen/addr DEO2
#0800
&ver
&>ver ( -- )
#00 OVRk
#00 .selection/y1 LDZ #30 SFT ADD2 ,&y STR2
#20 SFT .zoomview/y1 LDZ2 ADD2 .Screen/y DEO2
#0800
&hor
&>hor ( -- )
#00 OVRk
#00 .selection/x1 LDZ #30 SFT ADD2 ,&x STR2
#20 SFT .zoomview/x1 LDZ2 ADD2 .Screen/x DEO2
[ LIT2 &x $2 ] [ LIT2 &y $2 ] get-pixel .Screen/sprite DEO
INC GTHk ?&hor
INC GTHk ?&>hor
POP2
INC GTHk ?&ver
INC GTHk ?&>ver
POP2
( | frame )
@ -932,15 +939,15 @@ JMP2r
JMP2r
@draw-preview ( -- )
@<draw-preview> ( -- )
( | stash address )
.settings/focus LDZ2 STH2k .Screen/addr DEO2
#0400
&ver
&>ver ( -- )
#00 OVR #30 SFT .preview/y1 LDZ2 ADD2 .Screen/y DEO2
#0400
&hor
&>hor ( -- )
#00 OVR #30 SFT .preview/x1 LDZ2 ADD2 .Screen/x DEO2
( | get x,y )
OVR2 NIP OVR SWP
@ -956,9 +963,9 @@ JMP2r
;halftone-icn .Screen/addr DEO2
#03 .Screen/sprite DEO
&resume
INC GTHk ?&hor
INC GTHk ?&>hor
POP2
INC GTHk ?&ver
INC GTHk ?&>ver
POP2
POP2r
@ -970,7 +977,7 @@ JMP2r
!draw-byte
@draw-colorview ( -- )
@<draw-colorview> ( -- )
.colorview/y2 LDZ2 #0008 SUB2 .Screen/y DEO2
.colorview/x1 LDZ2 .Screen/x DEO2
@ -992,11 +999,11 @@ JMP2r
.Screen/y DEO2
.Screen/x DEO2
#1000
&loop
&>loop
DUP STHkr GTH #30 SFT #00 SWP ;slider-icns ADD2 .Screen/addr DEO2
#02 .Screen/sprite DEO
.Screen/x DEI2k INC2 INC2 ROT DEO2
INC GTHk ?&loop
INC GTHk ?&>loop
POP2
POPr
@ -1005,18 +1012,18 @@ JMP2r
.settings/color LDZ STHk #01 SFT ADD DEI #01 STHr #01 AND SUB #20 SFT SFT #0f AND
JMP2r
@draw-blendview ( -- )
@<draw-blendview> ( -- )
[ LIT2 00 -Screen/auto ] DEO
#1000
&loop
&>loop
#00 OVR #03 AND #30 SFT2 .blendview/x1 LDZ2 ADD2 .Screen/x DEO2
#00 OVR #32 SFT2 .blendview/y1 LDZ2 ADD2 .Screen/y DEO2
;fill-icn .Screen/addr DEO2
#00 .Screen/sprite DEO
.settings/focus LDZ2 .Screen/addr DEO2
DUP .settings/blend LDZ #b0 AND ADD .Screen/sprite DEO
INC GTHk ?&loop
INC GTHk ?&>loop
POP2
[ LIT2 01 -Screen/auto ] DEO
@ -1040,7 +1047,7 @@ JMP2r
JMP2r
@draw-dataview ( -- )
@<draw-dataview> ( -- )
( | position )
.dataview/x1 LDZ2 .Screen/x DEO2
@ -1049,7 +1056,7 @@ JMP2r
.selection LDZ2 #40 SFT ADD draw-byte
.dataview/y1 LDZ2 .Screen/y DEO2
#0400
&loop
&>loop
.dataview/x1 LDZ2 .Screen/x DEO2
#00 OVR DUP ADD .settings/focus LDZ2 ADD2
#01 ;draw-chr/color STA
@ -1060,12 +1067,12 @@ JMP2r
( | skip line )
.dataview/x1 LDZ2 .Screen/x DEO2
draw-lb
INC GTHk ?&loop
INC GTHk ?&>loop
POP2
JMP2r
@draw-toolview ( -- )
@<draw-toolview> ( -- )
.toolview/y1 LDZ2 .Screen/y DEO2
( | colors )
@ -1085,7 +1092,7 @@ JMP2r
;zoom-icns [ #00 .settings/zoom LDZ #30 SFT2 ADD2 ] .Screen/addr DEO2
#01 .settings/tool LDZ #02 EQU ADD .Screen/sprite DEO
( | file i/o )
draw-state
<draw-state>
.toolview/x2 LDZ2 STH2k #0018 SUB2 .Screen/x DEO2
;load-icn .Screen/addr DEO2
#01 .Screen/sprite DEO
@ -1095,9 +1102,9 @@ JMP2r
( | filepath )
#01
!draw-filepath
!<draw-filepath>
@draw-state ( -- )
@<draw-state> ( -- )
.toolview/x2 LDZ2 #0008 SUB2 .Screen/x DEO2
.toolview/y1 LDZ2 .Screen/y DEO2
@ -1106,12 +1113,12 @@ JMP2r
JMP2r
@draw-filepath ( color -- )
@<draw-filepath> ( color -- )
.toolview/x1 LDZ2 #0040 ADD2 .Screen/x DEO2
.toolview/y1 LDZ2 INC2 .Screen/y DEO2
( | clear )
DUP #00 EQU ?clear-filepath
DUP #00 EQU ?<clear-filepath>
;draw-chr/color STA
;filepath
@ -1122,14 +1129,14 @@ JMP2r
JMP2r
@clear-filepath ( color -- )
@<clear-filepath> ( color -- )
POP
;fill-icn .Screen/addr DEO2
[ LIT2 01 -Screen/auto ] DEO
#1300 &l ( -- )
#1300 &>l ( -- )
#00 .Screen/sprite DEO
INC GTHk ?&l
INC GTHk ?&>l
POP2
JMP2r
@ -1141,15 +1148,15 @@ JMP2r
.Screen/auto DEO
STH
#00
&l2
&>l2
STHkr .Screen/sprite DEO
INC GTHk ?&l2
INC GTHk ?&>l2
POP2
POPr
JMP2r
@draw-once ( -- )
@<draw-once> ( -- )
.tileview/x1 LDZ2 .Screen/x DEO2
.tileview/y1 LDZ2 .Screen/y DEO2
@ -1165,11 +1172,7 @@ JMP2r
( drawing primitives )
@get-strw ( str* -- width* )
slen #30 SFT2
JMP2r
@draw-str-right ( text* -- )
@ -1180,9 +1183,9 @@ JMP2r
LDAk #00 EQU ?&skip
[ LIT2 01 -Screen/auto ] DEO
&while
&>while ( -- )
LDAk draw-chr
INC2 LDAk ?&while
INC2 LDAk ?&>while
&skip
INC2
@ -1228,7 +1231,7 @@ JMP
.Screen/auto DEO
.Screen/addr DEO2
STH
#00 &l STHkr ,&paint JSR INC GTHk ?&l POP2
#00 &>l ( -- ) STHkr /paint INC GTHk ?&>l POP2
POPr
JMP2r
&single ( color addr* auto -- )
@ -1265,13 +1268,13 @@ JMP2r
@file-new ( -- )
#00 draw-filepath
#00 <draw-filepath>
( | clear )
;spritesheet #1300 mclr
( | rename to untitled.txt )
;filepath #0040 mclr
;untitled-txt ;filepath scpy
#00 .state/changed STZ draw-state
#00 .state/changed STZ <draw-state>
!<redraw>
@ -1291,7 +1294,7 @@ JMP2r
;nametable .File/read DEO2
;filepath scap #0004 SUB2 #0004 mclr
#00 .state/changed STZ draw-state
#00 .state/changed STZ <draw-state>
!<redraw>
@ -1303,11 +1306,11 @@ JMP2r
;filepath .File/name DEO2
#0008 .File/length DEO2
#0000
&loop
&>loop
#00 OVR #40 SFT2 ;spritesheet ADD2 .File/read DEO2
INC NEQk ?&loop
INC NEQk ?&>loop
POP2
#00 .state/changed STZ draw-state
#00 .state/changed STZ <draw-state>
!<redraw>
@ -1330,7 +1333,7 @@ JMP2r
#00 .state/changed STZ
!draw-state
!<draw-state>
@file-save-mono ( -- )
@ -1338,13 +1341,13 @@ JMP2r
;filepath .File/name DEO2
#0008 .File/length DEO2
#0000
&loop
&>loop
#00 OVR #40 SFT2 ;spritesheet ADD2 .File/write DEO2
INC NEQk ?&loop
INC NEQk ?&>loop
POP2
#00 .state/changed STZ
!draw-state
!<draw-state>
@save-theme ( -- )
@ -1395,32 +1398,32 @@ JMP2r
@edit-erase ( -- )
;op-erase run
#01 .state/changed STZ draw-state
#01 .state/changed STZ <draw-state>
!<redraw>
@edit-invert ( -- )
;op-invert run
#01 .state/changed STZ draw-state
#01 .state/changed STZ <draw-state>
!<redraw>
@edit-colorize ( -- )
;filter-colorize filter
#01 .state/changed STZ draw-state
#01 .state/changed STZ <draw-state>
!<redraw>
@edit-flipx ( -- )
;filter-flipx filter
#01 .state/changed STZ draw-state
#01 .state/changed STZ <draw-state>
!<redraw>
@edit-flipy ( -- )
;filter-flipy filter
#01 .state/changed STZ draw-state
#01 .state/changed STZ <draw-state>
!<redraw>
@ -1500,7 +1503,7 @@ JMP2r
@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 POP2 POP2 POP2r JMP2r
@mcpy ( src* dst* len* -- ) SWP2 STH2 OVR2 ADD2 SWP2 &>loop LDAk STH2kr STA INC2r INC2 GTH2k ?&>loop POP2 POP2 POP2r JMP2r
(
@|assets )

Loading…
Cancel
Save