mirror of https://git.sr.ht/~rabbits/nasu
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1137 lines
26 KiB
1137 lines
26 KiB
( |
|
app/nasu : spritesheet editor |
|
|
|
arrows - move selection |
|
enter - insert tile |
|
backspace - delete tile |
|
left-click - add pixel |
|
right-click - remove pixel |
|
1 2 3 - select color |
|
q w e - select tool |
|
) |
|
|
|
%+ { ADD } %- { SUB } %* { MUL } %/ { DIV } |
|
%< { LTH } %> { GTH } %= { EQU } %! { NEQ } |
|
%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 } |
|
%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 } |
|
|
|
%HOR { #20 } %VER { #10 } |
|
%WIDTH { HOR TOS #0008 ** } %HEIGHT { VER TOS #0008 ** } |
|
%LENGTH { HOR TOS VER TOS ** #0010 ** } |
|
|
|
%RTN { JMP2r } |
|
%MOD { DUP2 / * - } |
|
%MOD2 { OVR2 OVR2 // ** -- } |
|
%MOD8 { #07 AND } |
|
%ROL { DUP #07 SFT SWP #10 SFT + } |
|
%ROR { DUP #70 SFT SWP #01 SFT + } |
|
%SFL { #40 SFT SFT } |
|
%TOB { SWP POP } %TOS { #00 SWP } |
|
%LTS2 { #8000 ++ SWP2 #8000 ++ >> } |
|
%INCR { SWP #01 + SWP } |
|
%INCR2 { SWP2 #0001 ++ SWP2 } |
|
%DECR2 { SWP2 #0001 -- SWP2 } |
|
%STEP8 { #33 SFT2 } |
|
%TOGGLE { DUP LDZ #00 = SWP STZ } |
|
%GET-ITERATORS { SWP2k POP SWP POP } |
|
|
|
%DEBUG { .Console/byte DEO #0a .Console/char DEO } |
|
%DEBUG2 { .Console/short DEO2 #0a .Console/char DEO } |
|
|
|
%BANK { #2000 } |
|
%GET-COLOR { .settings/color LDZ STHk #02 / + DEI #01 STHr #01 AND - #04 * SFT #0f AND } |
|
%GET-POSITION { .settings/focus LDZ2 BANK -- DUP2 #0002 // WIDTH MOD2 SWP2 WIDTH #0002 ** // #0008 ** } |
|
%ADD-POSITIONS { ROT2 ++ ROT2 ROT2 ++ SWP2 } |
|
%RELEASE-MOUSE { #00 .Mouse/state DEO } |
|
|
|
%SIZE-TO-RECT { |
|
STH2 STH2 OVR2 STH2r ++ OVR2 STH2r ++ |
|
} ( x y w h -- x1 y1 x2 y2 ) |
|
|
|
%SET-RECT { |
|
DUP2 ROT2 SWP2 #0006 ++ STA2 |
|
DUP2 ROT2 SWP2 #0004 ++ STA2 |
|
DUP2 ROT2 SWP2 #0002 ++ STA2 |
|
DUP2 ROT2 SWP2 STA2 |
|
POP2 |
|
} ( x1 y1 x2 y2 addr -- ) |
|
|
|
( devices ) |
|
|
|
|00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ] |
|
|10 @Console [ &vector $2 &pad $6 &char $1 &byte $1 &short $2 &string $2 ] |
|
|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &color $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 &offset $2 &pad $2 &name $2 &length $2 &load $2 &save $2 ] |
|
|
|
( variables ) |
|
|
|
|0000 |
|
|
|
@state |
|
&timer $1 |
|
&trap $1 |
|
&blink $1 |
|
|
|
@settings |
|
&depth $1 |
|
&color $1 |
|
&blending $1 |
|
&ratio $1 |
|
&tool $1 |
|
&focus $2 |
|
&zoom $1 |
|
|
|
@frame [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 &width $2 &height $2 ] |
|
@rect [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
@color $1 |
|
|
|
( interface ) |
|
@toolview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
@colorview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
@blendview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
@dataview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
@preview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
@tileview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
@zoomview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
@pointer [ &x $2 &y $2 ] |
|
|
|
@path |
|
&length $1 |
|
&name $20 |
|
|
|
( program ) |
|
|
|
|0100 ( -> ) |
|
|
|
( theme ) |
|
#0a6f .System/r DEO2 |
|
#05cf .System/g DEO2 |
|
#0caf .System/b DEO2 |
|
|
|
( vectors ) |
|
;on-button .Controller/vector DEO2 |
|
;on-mouse .Mouse/vector DEO2 |
|
;on-transfer .File/vector DEO2 |
|
;on-frame .Screen/vector DEO2 |
|
|
|
( set defaults ) |
|
HOR TOS #0008 ** .frame/width STZ2 |
|
VER TOS #0008 ** #0040 ++ .frame/height STZ2 |
|
#01 .settings/depth STZ |
|
#01 .settings/color STZ |
|
#01 .settings/blending STZ |
|
#32 .settings/ratio STZ |
|
#01 .settings/tool STZ |
|
BANK .settings/focus STZ2 |
|
|
|
.Screen/width DEI2 #01 SFT2 .frame/width LDZ2 #01 SFT2 -- |
|
.Screen/height DEI2 #01 SFT2 .frame/height LDZ2 #01 SFT2 -- |
|
.frame/width LDZ2 .frame/height LDZ2 |
|
SIZE-TO-RECT ;frame SET-RECT |
|
|
|
.frame/x1 LDZ2 .frame/y1 LDZ2 #0030 ++ HOR TOS #0008 ** VER TOS #0008 ** SIZE-TO-RECT ;tileview SET-RECT |
|
.tileview/x1 LDZ2 .tileview/y2 LDZ2 #0008 ++ HOR TOS #0008 ** #0008 SIZE-TO-RECT ;toolview SET-RECT |
|
|
|
.frame/x1 LDZ2 .frame/y1 LDZ2 #0020 #0020 SIZE-TO-RECT ;blendview SET-RECT |
|
.frame/x1 LDZ2 #0030 ++ .frame/y1 LDZ2 #0020 #0020 SIZE-TO-RECT ;preview SET-RECT |
|
.frame/x1 LDZ2 #0060 ++ .frame/y1 LDZ2 #0020 #0020 SIZE-TO-RECT ;colorview SET-RECT |
|
.frame/x1 LDZ2 #0090 ++ .frame/y1 LDZ2 #0020 #0028 SIZE-TO-RECT ;zoomview SET-RECT |
|
.frame/x1 LDZ2 #00c0 ++ .frame/y1 LDZ2 #0048 #0020 SIZE-TO-RECT ;dataview SET-RECT |
|
|
|
;untitled-txt ;new-file JSR2 |
|
;redraw JSR2 |
|
|
|
BRK |
|
|
|
@on-frame ( -> ) |
|
|
|
.state/trap LDZ #00 ! #01 JCN [ BRK ] |
|
|
|
( incr ) .state/timer LDZ #01 + DUP .state/timer STZ |
|
|
|
#08 ! ,&no-toggle JCN |
|
.state/blink TOGGLE |
|
#23 .state/blink LDZ #09 * + ;draw-filepath JSR2 |
|
#00 .state/timer STZ |
|
&no-toggle |
|
|
|
BRK |
|
|
|
@on-transfer ( -> ) |
|
|
|
;redraw JSR2 |
|
|
|
BRK |
|
|
|
@on-button ( -> ) |
|
|
|
.Controller/key DEI .Controller/button DEI #0000 !! #01 JCN [ BRK ] |
|
|
|
.Controller/key DEI #00 ! .state/trap LDZ #0101 == ;on-button-trap JCN2 |
|
|
|
.Controller/key DEI |
|
DUP #31 ! ,&no-1 JCN |
|
( color ) #00 .settings/color STZ ;draw-toolview JSR2 &no-1 |
|
DUP #32 ! ,&no-2 JCN |
|
( color ) #01 .settings/color STZ ;draw-toolview JSR2 &no-2 |
|
DUP #33 ! ,&no-3 JCN |
|
( color ) #02 .settings/color STZ ;draw-toolview JSR2 &no-3 |
|
DUP #34 ! ,&no-4 JCN |
|
( color ) #03 .settings/color STZ ;draw-toolview JSR2 &no-4 |
|
DUP #08 ! ,&no-delete JCN |
|
( delete ) .settings/focus LDZ2 ;op-shift-memory-left JSR2 ;redraw JSR2 &no-delete |
|
DUP #0d ! ,&no-insert JCN |
|
( insert ) .settings/focus LDZ2 ;op-shift-memory-right JSR2 ;redraw JSR2 &no-insert |
|
DUP #20 ! ,&no-zoom JCN |
|
( zoom ) .settings/zoom TOGGLE ;redraw JSR2 &no-zoom |
|
DUP #71 ! ,&no-tool0 JCN |
|
( tool ) #00 .settings/tool STZ ;redraw JSR2 &no-tool0 |
|
DUP #77 ! ,&no-tool1 JCN |
|
( tool ) #01 .settings/tool STZ ;redraw JSR2 &no-tool1 |
|
DUP #65 ! ,&no-tool2 JCN |
|
( tool ) #02 .settings/tool STZ ;redraw JSR2 &no-tool2 |
|
POP |
|
|
|
( release ) #00 .Controller/key DEO |
|
|
|
.Controller/button DEI #f0 AND |
|
DUP #04 SFT #01 AND #01 ! ,&no-up JCN |
|
( clamp ) .settings/focus LDZ2 BANK HOR TOS #0010 ** ++ << ,&no-up JCN |
|
( up ) .settings/focus LDZ2 #0010 HOR TOS ** -- .settings/focus STZ2 &no-up |
|
DUP #05 SFT #01 AND #01 ! ,&no-down JCN |
|
( clamp ) .settings/focus LDZ2 BANK LENGTH HOR TOS #0010 ** -- ++ >> ,&no-down JCN |
|
( down ) .settings/focus LDZ2 #0010 HOR TOS ** ++ .settings/focus STZ2 &no-down |
|
DUP #06 SFT #01 AND #01 ! ,&no-left JCN |
|
( clamp ) .settings/focus LDZ2 BANK #0001 ++ << ,&no-left JCN |
|
( left ) .settings/focus LDZ2 #0010 -- .settings/focus STZ2 &no-left |
|
DUP #07 SFT #01 AND #01 ! ,&no-right JCN |
|
( clamp ) .settings/focus LDZ2 BANK LENGTH #0020 -- ++ >> ,&no-right JCN |
|
( right ) .settings/focus LDZ2 #0010 ++ .settings/focus STZ2 &no-right |
|
POP |
|
|
|
;redraw JSR2 |
|
|
|
BRK |
|
|
|
@on-button-trap ( -> ) |
|
|
|
( enter ) |
|
.Controller/key DEI #0d ! ,&no-edit-enter JCN |
|
#00 .state/trap STZ |
|
#23 ;draw-filepath JSR2 |
|
BRK |
|
&no-edit-enter |
|
( backspace ) |
|
.Controller/key DEI #08 ! ,&no-edit-backspace JCN |
|
.path/length LDZ #00 = ,&edit-end JCN |
|
.path/length LDZ #01 - .path/length STZ |
|
#00 .path/name .path/length LDZ + STZ |
|
#23 ;draw-filepath JSR2 |
|
BRK |
|
&no-edit-backspace |
|
( default ) |
|
.path/length LDZ #1f = ,&edit-end JCN |
|
.Controller/key DEI .path/name .path/length LDZ + STZ |
|
.path/length LDZ #01 + .path/length STZ |
|
&edit-end |
|
#00 .path/name .path/length LDZ + STZ |
|
|
|
BRK |
|
|
|
@on-mouse ( -> ) |
|
|
|
;draw-cursor JSR2 |
|
|
|
( skip ) .Mouse/state DEI #00 ! #01 JCN [ BRK ] |
|
|
|
.Mouse/x DEI2 .Mouse/y DEI2 .tileview ;within-rect JSR2 |
|
;on-touch-tileview JCN2 |
|
.Mouse/x DEI2 .Mouse/y DEI2 .toolview ;within-rect JSR2 |
|
;on-touch-toolview JCN2 |
|
.Mouse/x DEI2 .Mouse/y DEI2 .blendview ;within-rect JSR2 |
|
;on-touch-blendview JCN2 |
|
.Mouse/x DEI2 .Mouse/y DEI2 .colorview ;within-rect JSR2 |
|
;on-touch-colorview JCN2 |
|
.Mouse/x DEI2 .Mouse/y DEI2 .preview ;within-rect JSR2 |
|
;on-touch-preview JCN2 |
|
.Mouse/x DEI2 .Mouse/y DEI2 .zoomview ;within-rect JSR2 |
|
;on-touch-zoomview JCN2 |
|
|
|
BRK |
|
|
|
@on-touch-tileview ( -> ) |
|
|
|
.Mouse/x DEI2 .tileview/x1 LDZ2 -- |
|
.Mouse/y DEI2 .tileview/y1 LDZ2 -- |
|
|
|
.settings/zoom LDZ #01 ! ,&no-zoom JCN |
|
#0008 // SWP2 #0008 // SWP2 |
|
GET-POSITION ADD-POSITIONS |
|
#00 .Mouse/state DEI #10 = ,&do-erase-zoom JCN |
|
POP .settings/color LDZ &do-erase-zoom |
|
;put-pixel JSR2 |
|
;redraw JSR2 |
|
BRK |
|
&no-zoom |
|
|
|
.settings/tool LDZ |
|
DUP #00 ! ,&no-brush JCN |
|
POP |
|
#00 .Mouse/state DEI #10 = ,&do-erase JCN |
|
POP .settings/color LDZ &do-erase |
|
;put-pixel JSR2 |
|
;draw-tileview JSR2 |
|
;draw-preview JSR2 |
|
BRK &no-brush |
|
DUP #01 ! ,&no-selector JCN |
|
POP |
|
;get-tile-addr JSR2 .settings/focus STZ2 |
|
;redraw JSR2 |
|
BRK &no-selector |
|
DUP #02 ! ,&no-copy JCN |
|
POP |
|
;get-tile-addr JSR2 |
|
.settings/focus LDZ2 SWP2 |
|
;op-copy-tile JSR2 |
|
;redraw JSR2 |
|
RELEASE-MOUSE |
|
BRK &no-copy |
|
POP |
|
POP2 POP2 |
|
|
|
BRK |
|
|
|
@on-touch-toolview ( -> ) |
|
|
|
.Mouse/x DEI2 .toolview/x1 LDZ2 -- #0008 // TOB |
|
|
|
DUP HOR SWP - #01 ! ,&no-save JCN |
|
;save-file JSR2 |
|
&no-save |
|
DUP HOR SWP - #03 ! ,&no-load JCN |
|
;load-file JSR2 |
|
;redraw JSR22 |
|
&no-load |
|
DUP HOR SWP - #04 ! ,&no-name JCN |
|
#20 ;draw-filepath JSR2 |
|
;blank-txt ;new-file JSR2 |
|
;redraw JSR2 |
|
&no-name |
|
DUP #07 ! ,&no-zoom JCN |
|
.settings/zoom TOGGLE |
|
;draw-tileview JSR2 |
|
;draw-toolview JSR2 |
|
&no-zoom |
|
DUP #08 > OVR HOR SWP - #05 > #0101 !! ,&no-rename JCN |
|
.state/trap TOGGLE |
|
#00 .state/blink STZ |
|
#23 ;draw-filepath JSR2 |
|
&no-rename |
|
DUP #01 + .settings/color LDZ ! ,&no-eraser JCN |
|
#00 .settings/color STZ |
|
;draw-colorview JSR2 |
|
;draw-toolview JSR2 |
|
POP RELEASE-MOUSE BRK |
|
&no-eraser |
|
DUP #02 > ,&no-color JCN |
|
DUP #01 + .settings/color STZ |
|
;draw-colorview JSR2 |
|
;draw-toolview JSR2 |
|
POP RELEASE-MOUSE BRK |
|
&no-color |
|
DUP #06 > ,&no-tool JCN |
|
DUP #03 = ,&end JCN |
|
DUP #04 - .settings/tool STZ |
|
;draw-toolview JSR2 |
|
POP RELEASE-MOUSE BRK |
|
&no-tool |
|
POP |
|
&end |
|
|
|
RELEASE-MOUSE |
|
|
|
BRK |
|
|
|
@on-touch-zoomview ( -> ) |
|
|
|
.Mouse/y DEI2 .zoomview/y1 LDZ2 -- #0008 // TOB #04 ! ;&no-mod JCN2 |
|
.Mouse/x DEI2 .zoomview/x1 LDZ2 -- #0008 // TOB |
|
DUP #00 = .Mouse/state DEI #01 = #0101 !! ,&no-shiftup JCN |
|
.settings/focus LDZ2 |
|
DUP2 ;op-shift-tile-up JSR2 |
|
#0008 ++ ;op-shift-tile-up JSR2 &no-shiftup |
|
DUP #00 = .Mouse/state DEI #10 = #0101 !! ,&no-shiftdown JCN |
|
.settings/focus LDZ2 |
|
DUP2 ;op-shift-tile-down JSR2 |
|
#0008 ++ ;op-shift-tile-down JSR2 &no-shiftdown |
|
DUP #01 = .Mouse/state DEI #01 = #0101 !! ,&no-shiftright JCN |
|
.settings/focus LDZ2 |
|
DUP2 ;op-shift-tile-right JSR2 |
|
#0008 ++ ;op-shift-tile-right JSR2 &no-shiftright |
|
DUP #01 = .Mouse/state DEI #10 = #0101 !! ,&no-shiftleft JCN |
|
.settings/focus LDZ2 |
|
DUP2 ;op-shift-tile-left JSR2 |
|
#0008 ++ ;op-shift-tile-left JSR2 &no-shiftleft |
|
POP |
|
RELEASE-MOUSE |
|
,&finish JMP |
|
&no-mod |
|
|
|
( paint ) |
|
.Mouse/x DEI2 .zoomview/x1 LDZ2 -- #0004 // |
|
.Mouse/y DEI2 .zoomview/y1 LDZ2 -- #0004 // |
|
.settings/focus LDZ2 ++ |
|
( detect erase ) |
|
#00 .Mouse/state DEI #10 = ,&do-erase JCN |
|
POP .settings/color LDZ &do-erase |
|
STH |
|
OVR2 OVR2 |
|
STHkr #00 ;toggle-pixel JSR2 |
|
#0008 ++ |
|
STHr #01 ;toggle-pixel JSR2 |
|
|
|
&finish |
|
|
|
;redraw JSR2 |
|
|
|
BRK |
|
|
|
@on-touch-blendview ( -> ) |
|
|
|
.Mouse/x DEI2 .blendview/x1 LDZ2 -- #0008 // TOB |
|
.Mouse/y DEI2 .blendview/y1 LDZ2 -- #0008 // TOB #04 * + |
|
.settings/blending STZ |
|
|
|
;redraw JSR2 |
|
|
|
RELEASE-MOUSE |
|
|
|
BRK |
|
|
|
@on-touch-colorview ( -> ) |
|
|
|
.Mouse/y DEI2 .colorview/y1 LDZ2 -- #0008 // TOB |
|
|
|
DUP #00 ! ,&no-r JCN |
|
.System/r STHk ,&set-color JSR |
|
STHr [ .settings/color LDZ #02 / + ] DEO |
|
&no-r |
|
DUP #01 ! ,&no-g JCN |
|
.System/g STHk ,&set-color JSR |
|
STHr [ .settings/color LDZ #02 / + ] DEO |
|
&no-g |
|
DUP #02 ! ,&no-b JCN |
|
.System/b STHk ,&set-color JSR |
|
STHr [ .settings/color LDZ #02 / + ] DEO |
|
&no-b |
|
POP |
|
|
|
;redraw JSR2 |
|
|
|
BRK |
|
|
|
&set-color |
|
.settings/color LDZ STHk #02 / + DEI |
|
STHr #02 MOD STHk |
|
#0f SWP [ #40 * SFT ] AND |
|
STHr #00 = |
|
.Mouse/x DEI2 .colorview/x1 LDZ2 -- #0002 // TOB |
|
( clamp to #0f ) DUP #10 = #01 * - |
|
SWP [ #40 * SFT ] + |
|
RTN |
|
|
|
BRK |
|
|
|
@on-touch-preview ( -> ) |
|
|
|
( y ) .Mouse/y DEI2 .preview/y1 LDZ2 -- #0008 // TOB |
|
( x ) .Mouse/x DEI2 .preview/x1 LDZ2 -- #0008 // TOB |
|
|
|
#40 SFT + #11 + |
|
.settings/ratio STZ |
|
|
|
;redraw JSR2 |
|
|
|
RELEASE-MOUSE |
|
|
|
BRK |
|
|
|
( operations ) |
|
|
|
@op-clear ( addr* length* -- ) |
|
|
|
OVR2 ++ |
|
&loop |
|
OVR2 #00 ROT ROT STA |
|
INCR2 |
|
NEQ2k ,&loop JCN |
|
POP2 POP2 |
|
|
|
RTN |
|
|
|
@op-shift-memory-left ( addr* -- ) |
|
|
|
DUP2 LENGTH ++ |
|
&loop |
|
OVR2 #0010 ++ LDA STH |
|
OVR2 STHr ROT ROT STA |
|
INCR2 |
|
NEQ2k ,&loop JCN |
|
POP2 POP2 |
|
|
|
RTN |
|
|
|
@op-shift-memory-right ( addr* -- ) |
|
|
|
DUP2 LENGTH ++ SWP2 #0001 -- |
|
&loop |
|
OVR2 LDA STH |
|
OVR2 #0010 ++ STHr ROT ROT STA |
|
DECR2 |
|
NEQ2k ,&loop JCN |
|
POP2 POP2 |
|
|
|
RTN |
|
|
|
@op-shift-tile-up ( addr* -- ) |
|
|
|
STH2 |
|
STH2kr LDA |
|
STH2kr #0001 ++ LDA STH2kr STA |
|
STH2kr #0002 ++ LDA STH2kr #0001 ++ STA |
|
STH2kr #0003 ++ LDA STH2kr #0002 ++ STA |
|
STH2kr #0004 ++ LDA STH2kr #0003 ++ STA |
|
STH2kr #0005 ++ LDA STH2kr #0004 ++ STA |
|
STH2kr #0006 ++ LDA STH2kr #0005 ++ STA |
|
STH2kr #0007 ++ LDA STH2kr #0006 ++ STA |
|
STH2r #0007 ++ STA |
|
|
|
RTN |
|
|
|
@op-shift-tile-down ( addr* -- ) |
|
|
|
STH2 |
|
STH2kr #0007 ++ LDA |
|
STH2kr #0006 ++ LDA STH2kr #0007 ++ STA |
|
STH2kr #0005 ++ LDA STH2kr #0006 ++ STA |
|
STH2kr #0004 ++ LDA STH2kr #0005 ++ STA |
|
STH2kr #0003 ++ LDA STH2kr #0004 ++ STA |
|
STH2kr #0002 ++ LDA STH2kr #0003 ++ STA |
|
STH2kr #0001 ++ LDA STH2kr #0002 ++ STA |
|
STH2kr LDA STH2kr #0001 ++ STA |
|
STH2r STA |
|
|
|
RTN |
|
|
|
@op-shift-tile-left ( addr* -- ) |
|
|
|
STH2 |
|
#00 #08 |
|
&loop |
|
OVR TOS STH2kr ++ DUP2 |
|
LDA [ ROL ] ROT ROT STA |
|
INCR |
|
LTHk ,&loop JCN |
|
POP2 |
|
POP2r |
|
|
|
RTN |
|
|
|
@op-shift-tile-right ( addr* -- ) |
|
|
|
STH2 |
|
#00 #08 |
|
&loop |
|
OVR TOS STH2kr ++ DUP2 |
|
LDA [ ROR ] ROT ROT STA |
|
INCR |
|
LTHk ,&loop JCN |
|
POP2 |
|
POP2r |
|
|
|
RTN |
|
|
|
@op-copy-tile ( from* to* -- ) |
|
|
|
STH2 STH2 |
|
#00 #10 |
|
&loop |
|
( get ) |
|
OVR TOS DUP2 STH2kr ++ LDA |
|
( put ) |
|
ROT ROT SWP2r STH2kr SWP2r ++ STA |
|
INCR |
|
LTHk ,&loop JCN |
|
POP2 |
|
POP2r POP2r |
|
|
|
RTN |
|
|
|
@redraw ( -- ) |
|
|
|
;draw-toolview JSR2 |
|
;draw-blendview JSR2 |
|
;draw-colorview JSR2 |
|
;draw-dataview JSR2 |
|
;draw-preview JSR2 |
|
;draw-tileview JSR2 |
|
;draw-zoomview JSR2 |
|
|
|
RTN |
|
|
|
@draw-tileview ( -- ) |
|
|
|
.settings/zoom LDZ ;draw-tileview-zoom JCN2 |
|
|
|
#00 VER |
|
&ver |
|
OVR DUP #08 * TOS .tileview/y1 LDZ2 ++ .Screen/y DEO2 STH |
|
#00 HOR |
|
&hor |
|
OVR DUP #08 * TOS .tileview/x1 LDZ2 ++ .Screen/x DEO2 STHkr |
|
TOS ROT TOS SWP2 |
|
HOR TOS ** ++ #0010 ** |
|
BANK ++ [ DUP2 ] .Screen/addr DEO2 |
|
.settings/focus LDZ2 == ( TODO: Highlight full range ) |
|
.settings/blending LDZ + |
|
.settings/depth LDZ #20 * + |
|
#20 + .Screen/color DEO |
|
INCR |
|
LTHk ,&hor JCN |
|
POP2 |
|
POPr |
|
INCR |
|
LTHk ,&ver JCN |
|
POP2 |
|
|
|
.tileview/x1 LDZ2 #0002 -- |
|
.tileview/y1 LDZ2 #0002 -- |
|
.tileview/x2 LDZ2 #0001 ++ |
|
.tileview/y2 LDZ2 #0001 ++ |
|
#03 ;line-rect JSR2 |
|
|
|
RTN |
|
|
|
@draw-tileview-zoom ( -- ) |
|
|
|
( find focus ) GET-POSITION STH2 STH2 |
|
;pixel-icn .Screen/addr DEO2 |
|
#00 VER |
|
&ver |
|
OVR #08 * TOS .tileview/y1 LDZ2 ++ .Screen/y DEO2 |
|
#00 HOR |
|
&hor |
|
OVR #08 * TOS .tileview/x1 LDZ2 ++ .Screen/x DEO2 |
|
( get pixel offset ) GET-ITERATORS SWP TOS ROT TOS |
|
( add focus ) STH2kr SWP2r STH2kr SWP2r ADD-POSITIONS |
|
,get-pixel JSR #20 + .Screen/color DEO |
|
INCR |
|
LTHk ,&hor JCN |
|
POP2 |
|
INCR |
|
LTHk ,&ver JCN |
|
POP2 |
|
POP2r POP2r |
|
|
|
RTN |
|
|
|
@get-pixel ( x* y* -- color ) |
|
|
|
( channel 1 ) |
|
OVR2 SWP2 ,get-addr JSR [ STH2k ] LDA |
|
ROT ROT TOB MOD8 [ STHk ] |
|
#07 SWP - SFT #01 AND |
|
( channel 2 ) |
|
[ STHr ] [ STH2r ] #0008 ++ LDA SWP |
|
#07 SWP - SFT #01 AND |
|
#02 * |
|
+ |
|
|
|
RTN |
|
|
|
@get-addr ( x* y* -- addr* ) |
|
|
|
( get row ) |
|
DUP2 #0008 MOD2 |
|
( get tile ) |
|
SWP2 #0008 // WIDTH #0002 ** ** ++ |
|
SWP2 STEP8 #0002 ** ++ |
|
BANK ++ |
|
|
|
RTN |
|
|
|
@put-pixel ( x* y* color -- ) |
|
|
|
STH |
|
OVR2 SWP2 ,get-addr JSR |
|
( ch1 ) |
|
OVR2 OVR2 |
|
STHkr #00 ,toggle-pixel JSR |
|
( ch2 ) |
|
#0008 ++ |
|
STHr #01 ,toggle-pixel JSR |
|
|
|
RTN |
|
|
|
@toggle-pixel ( x* addr* color* -- ) |
|
|
|
STH2 |
|
DUP2 LDA |
|
STH SWP2 TOB |
|
STHr SWP |
|
STH2r SFT #01 AND ,&do-set JCN |
|
( mask ) #01 #07 ROT MOD8 - SFL #ff EOR AND |
|
( save ) ROT ROT STA |
|
RTN |
|
&do-set |
|
( mask ) #01 #07 ROT MOD8 - SFL ORA |
|
( save ) ROT ROT STA |
|
|
|
RTN |
|
|
|
@get-tile-addr ( x* y* -- addr* ) |
|
|
|
STEP8 WIDTH ** #0004 // SWP2 |
|
STEP8 #0002 ** ++ |
|
BANK ++ |
|
|
|
RTN |
|
|
|
@draw-toolview ( -- ) |
|
|
|
.toolview/y1 LDZ2 .Screen/y DEO2 |
|
.toolview/x1 LDZ2 .Screen/x DEO2 |
|
|
|
( colors ) |
|
;circle-icns [ .settings/color LDZ #01 = TOS #0008 ** ] ++ .Screen/addr DEO2 |
|
#21 .Screen/color DEO |
|
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
;circle-icns [ .settings/color LDZ #02 = TOS #0008 ** ] ++ .Screen/addr DEO2 |
|
#22 .Screen/color DEO |
|
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
;circle-icns [ .settings/color LDZ #03 = TOS #0008 ** ] ++ .Screen/addr DEO2 |
|
#23 .Screen/color DEO |
|
|
|
( tools ) |
|
.Screen/x DEI2 #0010 ++ .Screen/x DEO2 |
|
;brush-icn .Screen/addr DEO2 |
|
#21 .settings/tool LDZ #00 = + .Screen/color DEO |
|
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
;tool-selector .Screen/addr DEO2 |
|
#21 .settings/tool LDZ #01 = + .Screen/color DEO |
|
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
;tool-hand .Screen/addr DEO2 |
|
#21 .settings/tool LDZ #02 = + .Screen/color DEO |
|
|
|
( misc ) |
|
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
;zoom-icns [ .settings/zoom LDZ TOS #0008 ** ++ ] .Screen/addr DEO2 |
|
#21 .Screen/color DEO |
|
|
|
( file i/o ) |
|
.toolview/x2 LDZ2 #0008 -- .Screen/x DEO2 |
|
;save-icn .Screen/addr DEO2 |
|
#21 .Screen/color DEO |
|
.Screen/x DEI2 #0010 -- .Screen/x DEO2 |
|
;load-icn .Screen/addr DEO2 |
|
#21 .Screen/color DEO |
|
.Screen/x DEI2 #0008 -- .Screen/x DEO2 |
|
;make-icn .Screen/addr DEO2 |
|
#21 .Screen/color DEO |
|
|
|
( filepath ) |
|
#23 ;draw-filepath JSR2 |
|
|
|
RTN |
|
|
|
@draw-blendview ( -- ) |
|
|
|
( value ) |
|
.blendview/x1 LDZ2 .Screen/x DEO2 |
|
.blendview/y2 LDZ2 #0001 ++ .Screen/y DEO2 |
|
( get blending ) .settings/blending LDZ |
|
( get depth ) .settings/depth LDZ #20 * |
|
( draw ) #20 + + #21 ;draw-byte JSR2 |
|
|
|
.settings/focus LDZ2 .Screen/addr DEO2 |
|
#00 #10 |
|
&loop |
|
OVR #04 MOD #00 SWP #0008 ** .blendview/x1 LDZ2 ++ .Screen/x DEO2 |
|
OVR #04 / #00 SWP #0008 ** .blendview/y1 LDZ2 ++ .Screen/y DEO2 |
|
#20 .Screen/color DEO |
|
OVR #20 + .settings/depth LDZ #20 * + .Screen/color DEO |
|
INCR |
|
LTHk ,&loop JCN |
|
POP2 |
|
|
|
RTN |
|
|
|
@draw-filepath ( color -- ) |
|
|
|
STH |
|
.toolview/x1 LDZ2 #0048 ++ .Screen/x DEO2 |
|
.toolview/y1 LDZ2 .Screen/y DEO2 |
|
;path/name |
|
&loop |
|
DUP2 LDA DUP #00 ! #20 * - TOS #0008 ** ;font ++ .Screen/addr DEO2 |
|
STHkr .Screen/color DEO |
|
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
#0001 ++ |
|
LDAk #00 ! ,&loop JCN |
|
POP2 |
|
POPr |
|
( clear last ) |
|
#20 .Screen/color DEO |
|
|
|
RTN |
|
|
|
@draw-preview ( -- ) |
|
|
|
( value ) |
|
.preview/x1 LDZ2 .Screen/x DEO2 |
|
.preview/y2 LDZ2 #0001 ++ .Screen/y DEO2 |
|
.settings/ratio LDZ #22 ;draw-byte JSR2 |
|
|
|
( stash address ) |
|
.settings/focus LDZ2 STH2k .Screen/addr DEO2 |
|
#00 #04 |
|
&ver |
|
OVR #08 * TOS .preview/y1 LDZ2 ++ .Screen/y DEO2 |
|
#00 #04 |
|
&hor |
|
OVR #08 * TOS .preview/x1 LDZ2 ++ .Screen/x DEO2 |
|
( get x,y ) |
|
GET-ITERATORS |
|
( check if within ratio ) |
|
.settings/ratio LDZ #0f AND < STH |
|
.settings/ratio LDZ #04 SFT < STHr |
|
#0101 !! ,&outside JCN |
|
( get tile ) STH2kr .Screen/addr DEO2 |
|
( get blending ) .settings/blending LDZ |
|
( get depth ) .settings/depth LDZ #20 * |
|
( draw ) #20 + + .Screen/color DEO |
|
( incr ) STH2r #0008 [ .settings/depth LDZ #08 * TOS ++ ] ++ STH2 |
|
,&resume JMP |
|
&outside |
|
;halftone-icn .Screen/addr DEO2 |
|
#23 .Screen/color DEO |
|
&resume |
|
( incr ) INCR |
|
LTHk ,&hor JCN |
|
POP2 |
|
( incr ) INCR |
|
LTHk ;&ver JCN2 |
|
POP2 |
|
POP2r |
|
|
|
RTN |
|
|
|
@draw-colorview ( -- ) |
|
|
|
.colorview/y2 LDZ2 #0001 ++ .Screen/y DEO2 |
|
.colorview/x1 LDZ2 .Screen/x DEO2 |
|
;font-hex [ .System/r GET-COLOR ] TOS #0008 ** ++ .Screen/addr DEO2 |
|
#20 .settings/color LDZ + .Screen/color DEO |
|
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
;font-hex [ .System/g GET-COLOR ] TOS #0008 ** ++ .Screen/addr DEO2 |
|
#20 .settings/color LDZ + .Screen/color DEO |
|
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
;font-hex [ .System/b GET-COLOR ] TOS #0008 ** ++ .Screen/addr DEO2 |
|
#20 .settings/color LDZ + .Screen/color DEO |
|
|
|
.colorview/x1 LDZ2 .colorview/y1 LDZ2 |
|
[ .System/r GET-COLOR ] ,draw-slider JSR |
|
.colorview/x1 LDZ2 .colorview/y1 LDZ2 #0008 ++ |
|
[ .System/g GET-COLOR ] ,draw-slider JSR |
|
.colorview/x1 LDZ2 .colorview/y1 LDZ2 #0010 ++ |
|
[ .System/b GET-COLOR ] ,draw-slider JSR |
|
|
|
RTN |
|
|
|
@draw-slider ( x* y* value -- ) |
|
|
|
STH |
|
.Screen/y DEO2 |
|
.Screen/x DEO2 |
|
#00 #10 |
|
&loop |
|
OVR STHkr > #08 * TOS ;slider-icns ++ .Screen/addr DEO2 |
|
#22 .Screen/color DEO |
|
.Screen/x DEI2 #0002 ++ .Screen/x DEO2 |
|
INCR |
|
LTHk ,&loop JCN |
|
POP2 |
|
POPr |
|
|
|
RTN |
|
|
|
@draw-dataview ( -- ) |
|
|
|
( position ) |
|
.dataview/x1 LDZ2 .Screen/x DEO2 |
|
.dataview/y2 LDZ2 #0001 ++ .Screen/y DEO2 |
|
.settings/focus LDZ2 BANK -- #22 ;draw-short JSR2 |
|
|
|
( depth1 ) |
|
#00 #04 |
|
&loop |
|
.dataview/x1 LDZ2 .Screen/x DEO2 |
|
OVR #08 * TOS .dataview/y1 LDZ2 ++ .Screen/y DEO2 |
|
OVR #02 * TOS .settings/focus LDZ2 ++ LDA2 #23 ;draw-short JSR2 |
|
.dataview/x1 LDZ2 #0020 ++ .Screen/x DEO2 |
|
OVR #02 * TOS .settings/focus LDZ2 ++ #0008 ++ LDA2 #23 ;draw-short JSR2 |
|
INCR |
|
LTHk ,&loop JCN |
|
POP2 |
|
|
|
RTN |
|
|
|
@draw-zoomview ( -- ) |
|
|
|
;bigpixel-icn .Screen/addr DEO2 |
|
#00 #08 |
|
&ver |
|
OVR #04 * TOS .zoomview/y1 LDZ2 ++ .Screen/y DEO2 |
|
#00 #08 |
|
&hor |
|
OVR #04 * TOS .zoomview/x1 LDZ2 ++ .Screen/x DEO2 |
|
( get pixel ) |
|
GET-ITERATORS |
|
( ch 1 ) |
|
TOS .settings/focus LDZ2 ++ [ STH2k ] LDA |
|
SWP [ STHk ] #07 SWP - SFT #01 AND |
|
( ch2 ) |
|
[ STHr ] [ STH2r ] #0008 ++ LDA SWP |
|
#07 SWP - SFT #01 AND |
|
#02 * + |
|
#20 + .Screen/color DEO |
|
INCR |
|
LTHk ,&hor JCN |
|
POP2 |
|
INCR |
|
LTHk ,&ver JCN |
|
POP2 |
|
|
|
.zoomview/x1 LDZ2 #0002 -- |
|
.zoomview/y1 LDZ2 #0002 -- |
|
.zoomview/x2 LDZ2 #0001 ++ |
|
.zoomview/y2 LDZ2 #0007 -- |
|
#03 ;line-rect JSR2 |
|
|
|
( effects ) |
|
.zoomview/y1 LDZ2 #0021 ++ .Screen/y DEO2 |
|
.zoomview/x1 LDZ2 .Screen/x DEO2 |
|
;opshift-icn .Screen/addr DEO2 |
|
#21 .Screen/color DEO |
|
|
|
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
;oproll-icn .Screen/addr DEO2 |
|
#21 .Screen/color DEO |
|
|
|
RTN |
|
|
|
@draw-cursor ( -- ) |
|
|
|
( clear last cursor ) |
|
.pointer/x LDZ2 .Screen/x DEO2 |
|
.pointer/y LDZ2 .Screen/y DEO2 |
|
#30 .Screen/color DEO |
|
|
|
( record mouse positions ) |
|
.Mouse/x DEI2 .pointer/x STZ2 |
|
.Mouse/y DEI2 .pointer/y STZ2 |
|
|
|
( draw new cursor ) |
|
.pointer/x LDZ2 .Screen/x DEO2 |
|
.pointer/y LDZ2 .Screen/y DEO2 |
|
;brush-icn #00 .settings/tool LDZ #08 * ++ .Screen/addr DEO2 |
|
#32 .Mouse/state DEI #00 ! + .Screen/color DEO |
|
|
|
RTN |
|
|
|
@draw-byte ( byte color -- ) |
|
|
|
STH STH |
|
;font-hex #00 STHkr #f0 AND #04 SFT #08 * ++ .Screen/addr DEO2 |
|
( draw ) OVRr STHr .Screen/color DEO |
|
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
;font-hex #00 STHr #0f AND #08 * ++ .Screen/addr DEO2 |
|
( draw ) STHr .Screen/color DEO |
|
|
|
RTN |
|
|
|
@draw-short ( short* color -- ) |
|
|
|
STH SWP |
|
DUP #04 SFT TOS #0008 ** ;font-hex ++ .Screen/addr DEO2 |
|
( draw ) STHkr .Screen/color DEO |
|
#0f AND TOS #0008 ** ;font-hex ++ .Screen/addr DEO2 |
|
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
( draw ) STHkr .Screen/color DEO |
|
DUP #04 SFT TOS #0008 ** ;font-hex ++ .Screen/addr DEO2 |
|
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
( draw ) STHkr .Screen/color DEO |
|
#0f AND TOS #0008 ** ;font-hex ++ .Screen/addr DEO2 |
|
.Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
( draw ) STHr .Screen/color DEO |
|
|
|
RTN |
|
|
|
@line-rect ( x1* y1* x2* y2* color -- ) |
|
|
|
( load ) .color STZ DUP2 STH2 .rect/y2 STZ2 .rect/x2 STZ2 DUP2 STH2 .rect/y1 STZ2 .rect/x1 STZ2 |
|
STH2r STH2r |
|
&ver |
|
( save ) OVR2 .Screen/y DEO2 |
|
( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ DUP .Screen/color DEO |
|
( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .Screen/color DEO |
|
( incr ) INCR2 |
|
OVR2 OVR2 LTS2 ,&ver JCN |
|
POP2 POP2 |
|
.rect/x1 LDZ2 .rect/x2 LDZ2 |
|
&hor |
|
( save ) OVR2 .Screen/x DEO2 |
|
( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ DUP .Screen/color DEO |
|
( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .Screen/color DEO |
|
( incr ) INCR2 |
|
OVR2 OVR2 #0001 ++ LTS2 ,&hor JCN |
|
POP2 POP2 |
|
|
|
RTN |
|
|
|
@new-file ( default* -- ) |
|
|
|
BANK LENGTH ;op-clear JSR2 |
|
STH2 |
|
#00 #0c |
|
&loop |
|
OVR DUP TOS STH2kr ++ LDA |
|
SWP .path/name + STZ |
|
INCR |
|
LTHk ,&loop JCN |
|
.path/length STZ POP |
|
POP2r |
|
;load-file JSR2 |
|
|
|
RTN |
|
|
|
@load-file ( -- ) |
|
|
|
BANK LENGTH ;op-clear JSR2 |
|
;path/name .File/name DEO2 |
|
#2000 .File/length DEO2 |
|
BANK .File/load DEO2 |
|
|
|
RTN |
|
|
|
@save-file ( -- ) |
|
|
|
;path/name .File/name DEO2 |
|
#2000 .File/length DEO2 |
|
BANK .File/save DEO2 |
|
|
|
RTN |
|
|
|
@within-rect ( x* y* rect -- flag ) |
|
|
|
STH |
|
( y < rect.y1 ) DUP2 STHkr #02 ADD LDZ2 LTH2 ,&skip JCN |
|
( y > rect.y2 ) DUP2 STHkr #06 ADD LDZ2 GTH2 ,&skip JCN |
|
SWP2 |
|
( x < rect.x1 ) DUP2 STHkr LDZ2 LTH2 ,&skip JCN |
|
( x > rect.x2 ) DUP2 STHkr #04 ADD LDZ2 GTH2 ,&skip JCN |
|
POP2 POP2 POPr |
|
#01 |
|
RTN |
|
&skip |
|
POP2 POP2 POPr |
|
#00 |
|
|
|
RTN |
|
|
|
@brush-icn 8040 e070 381c 0c00 |
|
@tool-selector 80c0 e0f0 f8e0 1000 |
|
@tool-hand 2020 20b8 7c7c 3838 |
|
@halftone-icn aa55 aa55 aa55 aa55 |
|
@pixel-icn 7cfe fefe fefe 7c00 |
|
@bigpixel-icn f0f0 f0f0 0000 0000 |
|
|
|
@opshift-icn 0010 387c fe10 1000 |
|
@oproll-icn 0008 0c0e 7f0e 0c08 |
|
|
|
@save-icn 1054 28c6 2854 1000 |
|
@make-icn fe82 8282 848a f400 |
|
@load-icn feaa d6aa d4aa f400 |
|
|
|
@untitled-txt "untitled.chr $1 |
|
@blank-txt "blank.chr $1 |
|
|
|
@slider-icns |
|
f0f0 f0f0 f0f0 f000 ( full ) |
|
50a0 50a0 50a0 5000 ( empty ) |
|
@circle-icns |
|
3844 8282 8244 3800 ( full ) |
|
387c fefe fe7c 3800 ( line ) |
|
@zoom-icns |
|
3048 8484 4834 0200 ( in ) |
|
3245 8284 4834 0200 ( out ) |
|
@font-hex |
|
007c 8282 8282 827c 0030 1010 1010 1010 |
|
007c 8202 7c80 80fe 007c 8202 1c02 827c |
|
000c 1424 4484 fe04 00fe 8080 7c02 827c |
|
007c 8280 fc82 827c 007c 8202 1e02 0202 |
|
007c 8282 7c82 827c 007c 8282 7e02 827c |
|
007c 8202 7e82 827e 00fc 8282 fc82 82fc |
|
007c 8280 8080 827c 00fc 8282 8282 82fc |
|
007c 8280 f080 827c 007c 8280 f080 8080 |
|
@font ( specter8-frag font ) |
|
0000 0000 0000 0000 0008 0808 0800 0800 |
|
0014 1400 0000 0000 0024 7e24 247e 2400 |
|
0008 1e28 1c0a 3c08 0000 2204 0810 2200 |
|
0030 4832 4c44 3a00 0008 1000 0000 0000 |
|
0004 0808 0808 0400 0020 1010 1010 2000 |
|
0000 2214 0814 2200 0000 0808 3e08 0800 |
|
0000 0000 0000 0810 0000 0000 3e00 0000 |
|
0000 0000 0000 0800 0000 0204 0810 2000 |
|
003c 464a 5262 3c00 0018 0808 0808 1c00 |
|
003c 4202 3c40 7e00 003c 421c 0242 3c00 |
|
000c 1424 447e 0400 007e 407c 0242 3c00 |
|
003c 407c 4242 3c00 007e 0204 0810 1000 |
|
003c 423c 4242 3c00 003c 4242 3e02 3c00 |
|
0000 0010 0000 1000 0000 1000 0010 1020 |
|
0000 0810 2010 0800 0000 003e 003e 0000 |
|
0000 1008 0408 1000 003c 420c 1000 1000 |
|
003c 4232 4a42 3c00 003c 4242 7e42 4200 |
|
007c 427c 4242 7c00 003c 4240 4042 3c00 |
|
007c 4242 4242 7c00 007e 4078 4040 7e00 |
|
007e 4078 4040 4000 003c 4240 4642 3c00 |
|
0042 427e 4242 4200 001c 0808 0808 1c00 |
|
007e 0202 0242 3c00 0042 4478 4442 4200 |
|
0040 4040 4040 7e00 0042 665a 4242 4200 |
|
0042 6252 4a46 4200 003c 4242 4242 3c00 |
|
007c 4242 7c40 4000 003c 4242 4244 3a00 |
|
007c 4242 7c44 4200 003e 403c 0242 3c00 |
|
007e 0808 0808 1000 0042 4242 4244 3a00 |
|
0042 4242 4224 1800 0042 4242 5a66 4200 |
|
0042 423c 4242 4200 0042 423e 0242 3c00 |
|
007e 020c 3040 7e00 000c 0808 0808 0c00 |
|
0040 2010 0804 0200 0030 1010 1010 3000 |
|
0008 1400 0000 0000 0000 0000 0000 7e00 |
|
0008 0400 0000 0000 0000 3c02 3e42 3a00 |
|
0040 407c 4242 7c00 0000 3c42 4042 3c00 |
|
0002 023e 4242 3e00 0000 3c42 7e40 3e00 |
|
0000 3e40 7840 4000 0000 3c42 3e02 3c00 |
|
0040 405c 6242 4200 0008 0018 0808 0400 |
|
0008 0018 0808 4830 0040 4244 7844 4200 |
|
0010 1010 1010 0c00 0000 6c52 5252 5200 |
|
0000 5c62 4242 4200 0000 3c42 4242 3c00 |
|
0000 7c42 427c 4040 0000 3e42 423e 0202 |
|
0000 5c62 4040 4000 0000 3e40 3c02 7c00 |
|
0008 7e08 0808 1000 0000 4242 4244 3a00 |
|
0000 4242 4224 1800 0000 5252 5252 2e00 |
|
0000 4224 1824 4200 0000 4242 3e02 7c00 |
|
0000 7e02 3c40 7e00 000c 0810 1008 0c00 |
|
0008 0808 0808 0800 0030 1008 0810 3000 |
|
0000 0032 4c00 0000 3c42 99a1 a199 423c
|
|
|