Removed nasu from project
This commit is contained in:
parent
7f5c4e25e4
commit
77b9f54738
16
build.sh
16
build.sh
|
@ -15,7 +15,7 @@ clang-format -i src/debugger.c
|
|||
|
||||
echo "Cleaning.."
|
||||
rm -f ./bin/uxnasm
|
||||
rm -f ./bin/emulator
|
||||
rm -f ./bin/uxnemu
|
||||
rm -f ./bin/debugger
|
||||
rm -f ./bin/boot.rom
|
||||
|
||||
|
@ -25,12 +25,20 @@ if [ "${1}" = '--debug' ];
|
|||
then
|
||||
echo "[debug]"
|
||||
cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined src/assembler.c -o bin/uxnasm
|
||||
cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined src/uxn.c src/devices/ppu.c src/devices/apu.c src/devices/mpu.c src/emulator.c -L/usr/local/lib -lSDL2 -lportmidi -o bin/emulator
|
||||
cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined src/uxn.c src/devices/ppu.c src/devices/apu.c src/devices/mpu.c src/emulator.c -L/usr/local/lib -lSDL2 -lportmidi -o bin/uxnemu
|
||||
cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined src/uxn.c src/debugger.c -o bin/debugger
|
||||
else
|
||||
cc src/assembler.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -o bin/uxnasm
|
||||
cc src/uxn.c src/debugger.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -o bin/debugger
|
||||
cc src/uxn.c src/devices/ppu.c src/devices/apu.c src/devices/mpu.c src/emulator.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -L/usr/local/lib -lSDL2 -lportmidi -o bin/emulator
|
||||
cc src/uxn.c src/devices/ppu.c src/devices/apu.c src/devices/mpu.c src/emulator.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -L/usr/local/lib -lSDL2 -lportmidi -o bin/uxnemu
|
||||
fi
|
||||
|
||||
echo "Installing.."
|
||||
if [ -d "$HOME/bin" ] && [ -e ./bin/uxnemu ] && [ -e ./bin/uxnasm ]
|
||||
then
|
||||
cp ./bin/uxnemu $HOME/bin
|
||||
cp ./bin/uxnasm $HOME/bin
|
||||
echo "Installed in $HOME/bin"
|
||||
fi
|
||||
|
||||
echo "Assembling.."
|
||||
|
@ -42,7 +50,7 @@ then
|
|||
echo "[cli]"
|
||||
./bin/debugger bin/boot.rom
|
||||
else
|
||||
./bin/emulator bin/boot.rom
|
||||
./bin/uxnemu bin/boot.rom
|
||||
fi
|
||||
|
||||
echo "Done."
|
|
@ -1,948 +0,0 @@
|
|||
(
|
||||
app/nasu : spritesheet editor
|
||||
|
||||
arrows - move selection
|
||||
ctrl+arrows - change page
|
||||
left-click - add pixel
|
||||
right-click - remove pixel
|
||||
1 2 3 - select brush
|
||||
|
||||
TODO:
|
||||
Copy in 2 bits mode, copies 2 tiles
|
||||
Modify up to 4 pages
|
||||
Save/load/rename
|
||||
Select paint color for 2-bit mode
|
||||
)
|
||||
|
||||
%+ { ADD } %- { SUB } %* { MUL } %/ { DIV }
|
||||
%< { LTH } %> { GTH } %= { EQU } %! { NEQ }
|
||||
%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 }
|
||||
%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 }
|
||||
|
||||
%RTN { JMP2r }
|
||||
%STEP8 { #0033 SFT2 }
|
||||
|
||||
%SFL { #40 SFT SFT }
|
||||
%MOD { DUP2 DIV MUL SUB }
|
||||
|
||||
%TOB { SWP POP } %TOS { #00 SWP }
|
||||
|
||||
%DEBUG { .Console/byte DEO #0a .Console/char DEO }
|
||||
%DEBUG2 { .Console/short DEO2 #0a .Console/char DEO }
|
||||
|
||||
%LTS2 { #8000 ADD2 SWP2 #8000 ADD2 GTH2 }
|
||||
%GTS2 { #8000 ADD2 SWP2 #8000 ADD2 LTH2 }
|
||||
|
||||
%SIZE-TO-RECT {
|
||||
STH2 STH2 OVR2 STH2r ADD2 OVR2 STH2r ADD2
|
||||
} ( x y w h -- x1 y1 x2 y2 )
|
||||
|
||||
%SET-RECT {
|
||||
DUP2 ROT2 SWP2 #0006 ADD2 STA2
|
||||
DUP2 ROT2 SWP2 #0004 ADD2 STA2
|
||||
DUP2 ROT2 SWP2 #0002 ADD2 STA2
|
||||
DUP2 ROT2 SWP2 STA2
|
||||
POP2
|
||||
} ( x1 y1 x2 y2 addr -- )
|
||||
|
||||
%BANK { #2000 }
|
||||
|
||||
( 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
|
||||
|
||||
@settings [
|
||||
&blending $1
|
||||
&depth $1
|
||||
&brush $1
|
||||
&page $2
|
||||
&tile $2
|
||||
&ratio $1 ]
|
||||
|
||||
@frame [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 &width $2 &height $2 ]
|
||||
|
||||
( interface )
|
||||
@bankview [ &x $2 &y $2 &mode $1 &selection $1 ]
|
||||
@tileview [ &x $2 &y $2 ]
|
||||
|
||||
@editview [ &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 ]
|
||||
|
||||
@rect [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ]
|
||||
@mouse [ &x $2 &y $2 ]
|
||||
@pt [ &x $1 &y $1 ]
|
||||
@pos [ &x $2 &y $2 ]
|
||||
|
||||
@color $1
|
||||
@i $1
|
||||
|
||||
( program )
|
||||
|
||||
|0100 ( -> )
|
||||
|
||||
( theme )
|
||||
#0efc .System/r DEO2
|
||||
#03cc .System/g DEO2
|
||||
#03ac .System/b DEO2
|
||||
|
||||
( vectors )
|
||||
;on-button .Controller/vector DEO2
|
||||
;on-mouse .Mouse/vector DEO2
|
||||
;on-transfer .File/vector DEO2
|
||||
|
||||
( set defaults )
|
||||
#0130 .frame/width STZ2
|
||||
#00a8 .frame/height STZ2
|
||||
#01 .settings/brush STZ
|
||||
#32 .settings/ratio STZ
|
||||
|
||||
.Screen/width DEI2 #0001 SFT2 .frame/width LDZ2 #0001 SFT2 SUB2
|
||||
.Screen/height DEI2 #0001 SFT2 .frame/height LDZ2 #0001 SFT2 SUB2 #0010 ADD2
|
||||
.frame/width LDZ2 .frame/height LDZ2
|
||||
SIZE-TO-RECT ;frame SET-RECT
|
||||
|
||||
.frame/x1 LDZ2 #0010 ADD2 .bankview/x STZ2
|
||||
.frame/y1 LDZ2 .bankview/y STZ2
|
||||
BANK .settings/page STZ2
|
||||
|
||||
.frame/x2 LDZ2 #0098 SUB2 .tileview/x STZ2
|
||||
.frame/y1 LDZ2 .tileview/y STZ2
|
||||
BANK #0448 ADD2 .settings/tile STZ2
|
||||
|
||||
.frame/x2 LDZ2 #0010 SUB2 .frame/y1 LDZ2 #0010 #0080 SIZE-TO-RECT ;dataview SET-RECT
|
||||
.frame/x1 LDZ2 #0010 ADD2 .frame/y2 LDZ2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;blendview SET-RECT
|
||||
.frame/x1 LDZ2 #0060 ADD2 .frame/y2 LDZ2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;colorview SET-RECT
|
||||
.frame/x1 LDZ2 #0038 ADD2 .frame/y2 LDZ2 #0020 SUB2 #0020 #0020 SIZE-TO-RECT ;preview SET-RECT
|
||||
.frame/x2 LDZ2 #0098 SUB2 .frame/y1 LDZ2 #0080 #0080 SIZE-TO-RECT ;editview SET-RECT
|
||||
|
||||
#01 .settings/blending STZ
|
||||
|
||||
;filepath1 .File/name DEO2 #0800 .File/length DEO2 BANK .File/load DEO2
|
||||
;filepath2 .File/name DEO2 #0800 .File/length DEO2 BANK #0800 ADD2 .File/load DEO2
|
||||
;filepath3 .File/name DEO2 #1000 .File/length DEO2 BANK #1000 ADD2 .File/load DEO2
|
||||
;filepath4 .File/name DEO2 #1000 .File/length DEO2 BANK #2000 ADD2 .File/load DEO2
|
||||
;filepath5 .File/name DEO2 #1000 .File/length DEO2 BANK #2800 ADD2 .File/load DEO2
|
||||
;filepath6 .File/name DEO2 #1000 .File/length DEO2 BANK #3800 ADD2 .File/load DEO2
|
||||
|
||||
#40 DUP .bankview/selection STZ ;select-tile JSR2
|
||||
|
||||
BRK
|
||||
|
||||
@on-transfer ( -> )
|
||||
|
||||
;redraw JSR2
|
||||
|
||||
BRK
|
||||
|
||||
@on-button ( -> )
|
||||
|
||||
( skip ) .Controller/button DEI #00 NEQ #01 JCN [ BRK ]
|
||||
|
||||
.Controller/button DEI #11 NEQ ,&no-pageup JCN .settings/page LDZ2
|
||||
#0800 SUB2 .settings/page STZ2
|
||||
;redraw JSR2
|
||||
BRK &no-pageup
|
||||
|
||||
.Controller/button DEI #21 NEQ ,&no-pagedown JCN .settings/page LDZ2
|
||||
#0800 ADD2 .settings/page STZ2
|
||||
;redraw JSR2
|
||||
BRK &no-pagedown
|
||||
|
||||
.Controller/button DEI #f0 AND
|
||||
DUP #04 SFT #01 AND #01 NEQ ,&no-up JCN
|
||||
( move ) .bankview/selection LDZ #10 SUB .bankview/selection STZ &no-up
|
||||
DUP #05 SFT #01 AND #01 NEQ ,&no-down JCN
|
||||
( move ) .bankview/selection LDZ #10 ADD .bankview/selection STZ &no-down
|
||||
DUP #06 SFT #01 AND #01 NEQ ,&no-left JCN
|
||||
( move ) .bankview/selection LDZ #01 SUB .bankview/selection STZ &no-left
|
||||
DUP #07 SFT #01 AND #01 NEQ ,&no-right JCN
|
||||
( move ) .bankview/selection LDZ #01 ADD .bankview/selection STZ &no-right
|
||||
POP
|
||||
|
||||
.bankview/selection LDZ ;select-tile JSR2
|
||||
|
||||
BRK
|
||||
|
||||
@on-mouse ( -> )
|
||||
|
||||
;draw-cursor JSR2
|
||||
|
||||
( skip ) .Mouse/state DEI #00 NEQ #01 JCN [ BRK ]
|
||||
|
||||
( toolbar )
|
||||
.Mouse/y DEI2 .bankview/y LDZ2 #0010 SUB2 SUB2 #0008 DIV2 #0000 NEQ2 ;&no-toolbar-click JCN2
|
||||
( brush )
|
||||
.Mouse/x DEI2 .bankview/x LDZ2 SUB2 #0008 DIV2 #000d LTH2 ,&no-brush-click JCN
|
||||
.Mouse/x DEI2 .bankview/x LDZ2 SUB2 #0008 DIV2 #000f GTH2 ,&no-brush-click JCN
|
||||
( select ) .mouse/x LDZ2 .bankview/x LDZ2 SUB2 #0008 DIV2 #000d SUB2 TOB .bankview/mode STZ
|
||||
&no-brush-click
|
||||
.Mouse/x DEI2 .bankview/x LDZ2 SUB2 #0008 DIV2 #0005 NEQ2 ,&no-toggle-depth JCN
|
||||
;toggle-depth JSR2
|
||||
&no-toggle-depth
|
||||
( release ) #00 .Mouse/state DEO
|
||||
;redraw JSR2 BRK
|
||||
&no-toolbar-click
|
||||
|
||||
( bankview )
|
||||
.Mouse/x DEI2 .bankview/x LDZ2 GTH2 .Mouse/x DEI2 .bankview/x LDZ2 #0080 ADD2 LTH2 #0101 EQU2
|
||||
.Mouse/y DEI2 .bankview/y LDZ2 GTH2 .Mouse/y DEI2 .bankview/y LDZ2 #0080 ADD2 LTH2 #0101 EQU2
|
||||
#0101 EQU2 ;on-touch-bankview JCN2
|
||||
|
||||
( tileview )
|
||||
.Mouse/x DEI2 .tileview/x LDZ2 GTH2 .Mouse/x DEI2 .tileview/x LDZ2 #0080 ADD2 LTH2 #0101 EQU2
|
||||
.Mouse/y DEI2 .tileview/y LDZ2 GTH2 .Mouse/y DEI2 .tileview/y LDZ2 #0080 ADD2 LTH2 #0101 EQU2
|
||||
#0101 EQU2 ;on-touch-tileview JCN2
|
||||
|
||||
( editview )
|
||||
.Mouse/x DEI2 DUP2 .editview/x1 LDZ2 GTH2 ROT ROT .editview/x2 LDZ2 LTH2 #0101 EQU2
|
||||
.Mouse/y DEI2 DUP2 .editview/y1 LDZ2 GTH2 ROT ROT .editview/y2 LDZ2 LTH2 #0101 EQU2
|
||||
#0101 EQU2 ;on-touch-editview JCN2
|
||||
|
||||
( dataview )
|
||||
.Mouse/x DEI2 DUP2 .dataview/x1 LDZ2 GTH2 ROT ROT .dataview/x2 LDZ2 LTH2 #0101 EQU2
|
||||
.Mouse/y DEI2 DUP2 .dataview/y1 LDZ2 GTH2 ROT ROT .dataview/y2 LDZ2 LTH2 #0101 EQU2
|
||||
#0101 EQU2 ;on-touch-dataview JCN2
|
||||
|
||||
( blendbiew )
|
||||
.Mouse/x DEI2 DUP2 .blendview/x1 LDZ2 GTH2 ROT ROT .blendview/x2 LDZ2 LTH2 #0101 EQU2
|
||||
.Mouse/y DEI2 DUP2 .blendview/y1 LDZ2 GTH2 ROT ROT .blendview/y2 LDZ2 LTH2 #0101 EQU2
|
||||
#0101 EQU2 ;on-touch-blendview JCN2
|
||||
|
||||
( colorview )
|
||||
.Mouse/x DEI2 DUP2 .colorview/x1 LDZ2 GTH2 ROT ROT .colorview/x2 LDZ2 LTH2 #0101 EQU2
|
||||
.Mouse/y DEI2 DUP2 .colorview/y1 LDZ2 GTH2 ROT ROT .colorview/y2 LDZ2 LTH2 #0101 EQU2
|
||||
#0101 EQU2 ;on-touch-colorview JCN2
|
||||
|
||||
( preview )
|
||||
.Mouse/x DEI2 DUP2 .preview/x1 LDZ2 GTH2 ROT ROT .preview/x2 LDZ2 LTH2 #0101 EQU2
|
||||
.Mouse/y DEI2 DUP2 .preview/y1 LDZ2 GTH2 ROT ROT .preview/y2 LDZ2 LTH2 #0101 EQU2
|
||||
#0101 EQU2 ;on-touch-preview JCN2
|
||||
|
||||
BRK
|
||||
|
||||
@on-touch-bankview ( -> )
|
||||
|
||||
.bankview/mode LDZ #01 NEQ ,¬-copy-mode JCN
|
||||
#00 .i STZ
|
||||
©-loop
|
||||
( load ) .settings/tile LDZ2 .i LDZ ADD LDA
|
||||
( get touch addr )
|
||||
.Mouse/x DEI2 .bankview/x LDZ2 SUB2 STEP8
|
||||
.Mouse/y DEI2 .bankview/y LDZ2 SUB2 STEP8 #0010 MUL2 ADD2
|
||||
( 2-bit mode ) #00 .settings/depth LDZ #01 ADD MUL2
|
||||
.settings/page LDZ2 ADD2 #00 .i LDZ ADD2 STA
|
||||
( incr ) .i LDZ #01 ADD .i STZ
|
||||
.i LDZ #08 LTH ,©-loop JCN
|
||||
;redraw JSR2 BRK
|
||||
¬-copy-mode
|
||||
|
||||
.bankview/mode LDZ #02 NEQ ,¬-erase-mode JCN
|
||||
#00 .i STZ
|
||||
&erase-loop
|
||||
#00
|
||||
( get touch addr )
|
||||
.Mouse/x DEI2 .bankview/x LDZ2 SUB2 STEP8
|
||||
.Mouse/y DEI2 .bankview/y LDZ2 SUB2 STEP8 #0010 MUL2 ADD2
|
||||
( 2-bit mode ) #00 .settings/depth LDZ #01 ADD MUL2
|
||||
.settings/page LDZ2 ADD2 #00 .i LDZ ADD2 STA
|
||||
( incr ) .i LDZ #01 ADD .i STZ
|
||||
.i LDZ #08 LTH ,&erase-loop JCN
|
||||
;redraw JSR2 BRK
|
||||
¬-erase-mode
|
||||
|
||||
( select )
|
||||
|
||||
.Mouse/x DEI2 .bankview/x LDZ2 SUB2 #0008 DIV2 TOB
|
||||
.Mouse/y DEI2 .bankview/y LDZ2 SUB2 #0008 DIV2 TOB #40 SFT ADD
|
||||
DUP .bankview/selection STZ
|
||||
;select-tile JSR2
|
||||
|
||||
BRK
|
||||
|
||||
@on-touch-tileview ( -> )
|
||||
|
||||
|
||||
BRK
|
||||
|
||||
@on-touch-editview ( -> )
|
||||
|
||||
#aa DEBUG
|
||||
|
||||
BRK
|
||||
|
||||
@on-touch-dataview ( -> )
|
||||
|
||||
.Mouse/y DEI2 .dataview/y1 LDZ2 SUB2 STEP8 TOB #60 EQU ,&skip JCN BRK &skip
|
||||
.Mouse/x DEI2 .dataview/x1 LDZ2 SUB2 #0008 DIV2 TOB
|
||||
DUP #00 NEQ ,&no-move-up JCN
|
||||
;op_shiftup JSR2
|
||||
( release ) #00 .Mouse/state DEO
|
||||
;redraw JSR2 POP BRK &no-move-up
|
||||
DUP #01 NEQ ,&no-move-down JCN
|
||||
;op_shiftdown JSR2
|
||||
( release ) #00 .Mouse/state DEO
|
||||
;redraw JSR2 POP BRK &no-move-down
|
||||
POP
|
||||
|
||||
BRK
|
||||
|
||||
@on-touch-blendview ( -> )
|
||||
|
||||
.Mouse/x DEI2 .blendview/x1 LDZ2 SUB2 #0008 DIV2 TOB
|
||||
.Mouse/y DEI2 .blendview/y1 LDZ2 SUB2 #0008 DIV2 TOB #04 MUL ADD
|
||||
.settings/blending STZ
|
||||
( release ) #00 .Mouse/state DEO
|
||||
;redraw JSR2
|
||||
|
||||
BRK
|
||||
|
||||
@on-touch-colorview ( -> )
|
||||
|
||||
( channel ) .Mouse/y DEI2 .colorview/y1 LDZ2 SUB2 #0008 DIV2 TOB STH
|
||||
( rgb ) .Mouse/x DEI2 .colorview/x1 LDZ2 SUB2 #0008 DIV2 TOB
|
||||
DUP #00 NEQ ,&no-brush JCN
|
||||
DUPr STHr .settings/brush STZ &no-brush
|
||||
DUP #01 NEQ ,&no-red JCN
|
||||
DUPr STHr .System/r ;set-color JSR2 &no-red
|
||||
DUP #02 NEQ ,&no-green JCN
|
||||
DUPr STHr .System/g ;set-color JSR2 &no-green
|
||||
DUP #03 NEQ ,&no-blue JCN
|
||||
DUPr STHr .System/b ;set-color JSR2 &no-blue
|
||||
POP POPr
|
||||
( release ) #00 .Mouse/state DEO
|
||||
;redraw JSR2
|
||||
|
||||
BRK
|
||||
|
||||
@on-touch-preview ( -> )
|
||||
|
||||
( y ) .Mouse/y DEI2 .preview/y1 LDZ2 SUB2 #0008 DIV2 TOB
|
||||
( x ) .Mouse/x DEI2 .preview/x1 LDZ2 SUB2 #0008 DIV2 TOB
|
||||
|
||||
#40 SFT ADD #11 ADD
|
||||
.settings/ratio STZ
|
||||
|
||||
( release ) #00 .Mouse/state DEO
|
||||
;redraw JSR2
|
||||
|
||||
BRK
|
||||
|
||||
@set-color ( color rgb -- )
|
||||
|
||||
STH
|
||||
DUP #00 NEQ ,&no-red0 JCN
|
||||
DUPr STHr DEI DUP #04 SFT #01 ADD
|
||||
( add/sub ) .Mouse/state DEI #10 EQU #fe MUL ADD
|
||||
( resume ) #40 SFT SWP #0f AND ADD DUPr STHr DEO
|
||||
&no-red0
|
||||
DUP #01 NEQ ,&no-red1 JCN
|
||||
DUPr STHr DEI DUP #0f AND #01 ADD
|
||||
( add/sub ) .Mouse/state DEI #10 EQU #fe MUL ADD
|
||||
( resume ) #0f AND SWP #f0 AND ADD DUPr STHr DEO
|
||||
&no-red1
|
||||
DUP #02 NEQ ,&no-red2 JCN
|
||||
DUPr STHr #01 ADD DEI DUP #04 SFT #01 ADD
|
||||
( add/sub ) .Mouse/state DEI #10 EQU #fe MUL ADD
|
||||
( resume ) #40 SFT SWP #0f AND ADD DUPr STHr #01 ADD DEO
|
||||
&no-red2
|
||||
DUP #03 NEQ ,&no-red3 JCN
|
||||
DUPr STHr #01 ADD DEI DUP #0f AND #01 ADD
|
||||
( add/sub ) .Mouse/state DEI #10 EQU #fe MUL ADD
|
||||
( resume ) #0f AND SWP #f0 AND ADD DUPr STHr #01 ADD DEO
|
||||
&no-red3
|
||||
POP
|
||||
POPr
|
||||
|
||||
RTN
|
||||
|
||||
@select-tile ( pos -- )
|
||||
|
||||
( x y ) DUP #0f AND SWP #04 SFT
|
||||
( y ) #10 MOD #10 MUL #00 SWP #0008 MUL2
|
||||
( x ) ROT #10 MOD #00 SWP #0008 MUL2 ADD2
|
||||
( 2-bit mode ) #00 .settings/depth LDZ #01 ADD MUL2
|
||||
( offset ) .settings/page LDZ2 ADD2 .settings/tile STZ2
|
||||
;redraw JSR2
|
||||
|
||||
RTN
|
||||
|
||||
@toggle-depth ( -- )
|
||||
|
||||
.bankview/selection LDZ
|
||||
.settings/depth LDZ #00 EQU .settings/depth STZ
|
||||
;select-tile JSR2
|
||||
|
||||
RTN
|
||||
|
||||
@op_shiftup ( -- )
|
||||
|
||||
.settings/tile LDZ2 LDA
|
||||
.settings/tile LDZ2 #0001 ADD2 LDA .settings/tile LDZ2 STA
|
||||
.settings/tile LDZ2 #0002 ADD2 LDA .settings/tile LDZ2 #0001 ADD2 STA
|
||||
.settings/tile LDZ2 #0003 ADD2 LDA .settings/tile LDZ2 #0002 ADD2 STA
|
||||
.settings/tile LDZ2 #0004 ADD2 LDA .settings/tile LDZ2 #0003 ADD2 STA
|
||||
.settings/tile LDZ2 #0005 ADD2 LDA .settings/tile LDZ2 #0004 ADD2 STA
|
||||
.settings/tile LDZ2 #0006 ADD2 LDA .settings/tile LDZ2 #0005 ADD2 STA
|
||||
.settings/tile LDZ2 #0007 ADD2 LDA .settings/tile LDZ2 #0006 ADD2 STA
|
||||
.settings/tile LDZ2 #0007 ADD2 STA
|
||||
|
||||
RTN
|
||||
|
||||
@op_shiftdown ( -- )
|
||||
|
||||
.settings/tile LDZ2 #0007 ADD2 LDA
|
||||
.settings/tile LDZ2 #0006 ADD2 LDA .settings/tile LDZ2 #0007 ADD2 STA
|
||||
.settings/tile LDZ2 #0005 ADD2 LDA .settings/tile LDZ2 #0006 ADD2 STA
|
||||
.settings/tile LDZ2 #0004 ADD2 LDA .settings/tile LDZ2 #0005 ADD2 STA
|
||||
.settings/tile LDZ2 #0003 ADD2 LDA .settings/tile LDZ2 #0004 ADD2 STA
|
||||
.settings/tile LDZ2 #0002 ADD2 LDA .settings/tile LDZ2 #0003 ADD2 STA
|
||||
.settings/tile LDZ2 #0001 ADD2 LDA .settings/tile LDZ2 #0002 ADD2 STA
|
||||
.settings/tile LDZ2 LDA .settings/tile LDZ2 #0001 ADD2 STA
|
||||
.settings/tile LDZ2 STA
|
||||
|
||||
RTN
|
||||
|
||||
@redraw ( -- )
|
||||
|
||||
;draw-bankview JSR2
|
||||
;draw-editview JSR2
|
||||
;draw-blendview JSR2
|
||||
;draw-colorview JSR2
|
||||
;draw-dataview JSR2
|
||||
;draw-preview JSR2
|
||||
|
||||
RTN
|
||||
|
||||
@draw-bankview ( -- )
|
||||
|
||||
.bankview/x LDZ2 #0002 SUB2 .bankview/y LDZ2 #0002 SUB2 .bankview/x LDZ2 #0081 ADD2 .bankview/y LDZ2 #0081 ADD2 #03 ;line-rect JSR2
|
||||
|
||||
( position )
|
||||
|
||||
.bankview/x LDZ2 .Screen/x DEO2
|
||||
.bankview/y LDZ2 #0010 SUB2 .Screen/y DEO2
|
||||
.settings/page LDZ2 #22 ;draw-short JSR2
|
||||
|
||||
( toolbar )
|
||||
|
||||
.bankview/y LDZ2 #0010 SUB2 .Screen/y DEO2
|
||||
|
||||
.bankview/x LDZ2 #0028 ADD2 .Screen/x DEO2
|
||||
;depth_icns #00 .settings/depth LDZ #0008 MUL2 ADD2 .Screen/addr DEO2
|
||||
#23 .Screen/color DEO
|
||||
|
||||
.bankview/x LDZ2 #0068 ADD2 .Screen/x DEO2
|
||||
;tool_selector .Screen/addr DEO2
|
||||
#21 .bankview/mode LDZ #00 EQU ADD .Screen/color DEO
|
||||
|
||||
.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
|
||||
;tool_hand .Screen/addr DEO2
|
||||
#21 .bankview/mode LDZ #01 EQU ADD .Screen/color DEO
|
||||
|
||||
.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
|
||||
;tool_eraser .Screen/addr DEO2
|
||||
#21 .bankview/mode LDZ #02 EQU ADD .Screen/color DEO
|
||||
|
||||
( guides )
|
||||
|
||||
.bankview/x LDZ2 #0010 SUB2 .Screen/x DEO2
|
||||
.bankview/y LDZ2 .Screen/y DEO2
|
||||
;font-hex .Screen/addr DEO2
|
||||
#00 #10
|
||||
&guides
|
||||
( draw ) OVR .bankview/selection LDZ #04 SFT EQU #22 ADD .Screen/color DEO
|
||||
.Screen/addr DEI2 #0008 ADD2 .Screen/addr DEO2
|
||||
.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
|
||||
SWP #01 ADD SWP
|
||||
DUP2 LTH ,&guides JCN
|
||||
POP2
|
||||
|
||||
( draw page )
|
||||
|
||||
( load ) .settings/page LDZ2 .Screen/addr DEO2
|
||||
.bankview/y LDZ2 DUP2 #0080 ADD2
|
||||
&ver
|
||||
( save ) OVR2 .Screen/y DEO2
|
||||
.bankview/x LDZ2 DUP2 #0080 ADD2
|
||||
&hor
|
||||
( save ) OVR2 .Screen/x DEO2
|
||||
( get selected ) .Screen/addr DEI2 .settings/tile LDZ2 EQU2
|
||||
( get blending ) .settings/blending LDZ
|
||||
( get depth ) .settings/depth LDZ #20 MUL
|
||||
( draw ) #20 ADD ADD ADD .Screen/color DEO
|
||||
( incr ) SWP2 #0008 ADD2 SWP2
|
||||
( incr ) .Screen/addr DEI2 #0008 ADD2 #00 .settings/depth LDZ #0008 MUL2 ADD2 .Screen/addr DEO2
|
||||
OVR2 OVR2 LTH2 ,&hor JCN
|
||||
POP2 POP2
|
||||
( incr ) SWP2 #0008 ADD2 SWP2
|
||||
OVR2 OVR2 LTH2 ,&ver JCN
|
||||
POP2 POP2
|
||||
|
||||
RTN
|
||||
|
||||
@draw-tileview ( -- )
|
||||
|
||||
.tileview/x LDZ2 #0002 SUB2 .tileview/y LDZ2 #0002 SUB2 .tileview/x LDZ2 #0080 ADD2 .tileview/y LDZ2 #0081 ADD2 #03 ;line-rect JSR2
|
||||
|
||||
.tileview/x LDZ2 #0028 ADD2 .Screen/x DEO2
|
||||
.tileview/y LDZ2 #0010 SUB2 .Screen/y DEO2
|
||||
.settings/tile LDZ2 .Screen/addr DEO2
|
||||
|
||||
( get blending ) .settings/blending LDZ
|
||||
( get depth ) .settings/depth LDZ #20 MUL
|
||||
( draw ) #20 ADD ADD .Screen/color DEO
|
||||
|
||||
( position )
|
||||
|
||||
.tileview/x LDZ2 .Screen/x DEO2
|
||||
.tileview/y LDZ2 #0010 SUB2 .Screen/y DEO2
|
||||
.settings/tile LDZ2 #22 ;draw-short JSR2
|
||||
|
||||
( body )
|
||||
|
||||
.tileview/x LDZ2 .Screen/x DEO2
|
||||
.tileview/y LDZ2 .Screen/y DEO2
|
||||
.settings/tile LDZ2 .settings/tile STZ2
|
||||
;draw-tileview-icn JSR2
|
||||
|
||||
.tileview/x LDZ2 #0040 ADD2 .Screen/x DEO2
|
||||
.tileview/y LDZ2 .Screen/y DEO2
|
||||
.settings/tile LDZ2 #0008 ADD2 .settings/tile STZ2
|
||||
;draw-tileview-icn JSR2
|
||||
|
||||
.tileview/x LDZ2 .Screen/x DEO2
|
||||
.tileview/y LDZ2 #0040 ADD2 .Screen/y DEO2
|
||||
.settings/tile LDZ2 #0008 ADD2 .settings/tile STZ2
|
||||
;draw-tileview-icn JSR2
|
||||
|
||||
.tileview/x LDZ2 #0040 ADD2 .Screen/x DEO2
|
||||
.tileview/y LDZ2 #0040 ADD2 .Screen/y DEO2
|
||||
.settings/tile LDZ2 #0008 ADD2 .settings/tile STZ2
|
||||
;draw-tileview-icn JSR2
|
||||
|
||||
( line hor )
|
||||
.tileview/y LDZ2 #003f ADD2 .Screen/y DEO2
|
||||
.tileview/x LDZ2 .Screen/x DEO2
|
||||
&line-hor
|
||||
( draw ) #03 .Screen/color DEO
|
||||
( incr ) .Screen/x DEI2 #0002 ADD2 .Screen/x DEO2
|
||||
.Screen/x DEI2 .tileview/x LDZ2 #0082 ADD2 LTH2 ,&line-hor JCN
|
||||
|
||||
( line ver )
|
||||
.tileview/y LDZ2 .Screen/y DEO2
|
||||
.tileview/x LDZ2 #003f ADD2 .Screen/x DEO2
|
||||
&line-ver
|
||||
( draw ) #03 .Screen/color DEO
|
||||
( incr ) .Screen/y DEI2 #0002 ADD2 .Screen/y DEO2
|
||||
.Screen/y DEI2 .tileview/y LDZ2 #0081 ADD2 LTH2 ,&line-ver JCN
|
||||
|
||||
( rewind ) .settings/tile LDZ2 #0018 SUB2 .settings/tile STZ2
|
||||
|
||||
RTN
|
||||
|
||||
@draw-editview ( -- )
|
||||
|
||||
.editview/x1 LDZ2 #0002 SUB2 .editview/y1 LDZ2 #0002 SUB2 .editview/x2 LDZ2 #0001 ADD2 .editview/y2 LDZ2 #0001 ADD2 #03 ;line-rect JSR2
|
||||
|
||||
( position )
|
||||
|
||||
.editview/x1 LDZ2 .Screen/x DEO2
|
||||
.editview/y1 LDZ2 #0010 SUB2 .Screen/y DEO2
|
||||
.settings/tile LDZ2 #22 ;draw-short JSR2
|
||||
|
||||
( tiles )
|
||||
.settings/tile LDZ2 DUP2 STH2 .Screen/addr DEO2
|
||||
#00 #04
|
||||
&ver
|
||||
OVR #08 MUL TOS #0004 MUL2 .editview/y1 LDZ2 ADD2 .Screen/y DEO2
|
||||
#00 #04
|
||||
&hor
|
||||
OVR #08 MUL TOS #0004 MUL2 .editview/x1 LDZ2 ADD2 .Screen/x DEO2
|
||||
( get x,y )
|
||||
SWP2 OVR STH SWP2 OVR STHr
|
||||
( check if within ratio )
|
||||
.settings/ratio LDZ #0f AND LTH STH
|
||||
.settings/ratio LDZ #04 SFT LTH STHr
|
||||
#0101 NEQ2 ,&outside JCN
|
||||
|
||||
( get tile ) DUP2r STH2r .Screen/addr DEO2
|
||||
|
||||
( draw zoomed tile )
|
||||
#01 ;draw-tile JSR2
|
||||
|
||||
( incr ) STH2r #0008 ADD2 STH2
|
||||
,&resume JMP
|
||||
&outside
|
||||
;halftone_icn .Screen/addr DEO2
|
||||
#23 .Screen/color DEO
|
||||
#00 ;draw-tile JSR2
|
||||
&resume
|
||||
( incr ) SWP #01 ADD SWP
|
||||
DUP2 LTH ,&hor JCN
|
||||
POP2
|
||||
( incr ) SWP #01 ADD SWP
|
||||
DUP2 LTH ;&ver JCN2
|
||||
POP2
|
||||
POP2r
|
||||
|
||||
( grid )
|
||||
.editview/x1 LDZ2 DUP2 #0080 ADD2 .editview/y1 LDZ2 #0020 ADD2 #03 ;line-hor JSR2
|
||||
.editview/x1 LDZ2 DUP2 #0080 ADD2 .editview/y1 LDZ2 #0040 ADD2 #03 ;line-hor JSR2
|
||||
.editview/x1 LDZ2 DUP2 #0080 ADD2 .editview/y1 LDZ2 #0060 ADD2 #03 ;line-hor JSR2
|
||||
.editview/x1 LDZ2 #0020 ADD2 .editview/y1 LDZ2 DUP2 #0080 ADD2 #03 ;line-ver JSR2
|
||||
.editview/x1 LDZ2 #0040 ADD2 .editview/y1 LDZ2 DUP2 #0080 ADD2 #03 ;line-ver JSR2
|
||||
.editview/x1 LDZ2 #0060 ADD2 .editview/y1 LDZ2 DUP2 #0080 ADD2 #03 ;line-ver JSR2
|
||||
|
||||
RTN
|
||||
|
||||
@draw-tile ( color -- )
|
||||
|
||||
( TODO: complete )
|
||||
STH
|
||||
#00 #20
|
||||
&ver
|
||||
#00 #20
|
||||
&hor
|
||||
|
||||
( get x,y )
|
||||
SWP2 OVR STH SWP2 OVR STHr
|
||||
|
||||
( get address )
|
||||
.Screen/addr DEI2
|
||||
|
||||
( after this, ADDR XY )
|
||||
SWP2 SWP STH
|
||||
|
||||
|
||||
( got sprite line )
|
||||
#04 DIV TOS ADD2 LDA
|
||||
|
||||
( get pixel )
|
||||
STHr #04 DIV
|
||||
#07 SWP SUB SFT #01 AND
|
||||
|
||||
.Screen/color DEO
|
||||
|
||||
#0001 .Screen/x DEI2 ADD2 .Screen/x DEO2
|
||||
( incr ) SWP #01 ADD SWP
|
||||
DUP2 LTH ,&hor JCN
|
||||
POP2
|
||||
#0001 .Screen/y DEI2 ADD2 .Screen/y DEO2
|
||||
.Screen/x DEI2 #0020 SUB2 .Screen/x DEO2
|
||||
( incr ) SWP #01 ADD SWP
|
||||
DUP2 LTH ,&ver JCN
|
||||
POP2
|
||||
.Screen/y DEI2 #0020 SUB2 .Screen/y DEO2
|
||||
POPr
|
||||
|
||||
RTN
|
||||
|
||||
@draw-tileview-icn ( -- )
|
||||
|
||||
#00 .pt/x STZ #00 .pt/y STZ
|
||||
&ver
|
||||
#00 .pt/x STZ
|
||||
&hor
|
||||
( get bit )
|
||||
;blank_icn #00
|
||||
.settings/tile LDZ2 #00 .pt/y LDZ ADD2 LDA #07 .pt/x LDZ SUB SFT #01 AND ( get bit )
|
||||
#0008 MUL2 ADD2 .Screen/addr DEO2 ( add *8 )
|
||||
( draw ) #21 .Screen/color DEO
|
||||
( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
|
||||
( incr ) .pt/x LDZ #01 ADD .pt/x STZ
|
||||
.pt/x LDZ #08 LTH ;&hor JCN2
|
||||
( incr ) .Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
|
||||
( incr ) .pt/y LDZ #01 ADD .pt/y STZ
|
||||
.Screen/x DEI2 #0040 SUB2 .Screen/x DEO2
|
||||
.pt/y LDZ #08 LTH ;&ver JCN2
|
||||
|
||||
RTN
|
||||
|
||||
@draw-blendview ( -- )
|
||||
|
||||
( .blendview/x1 LDZ2 #0002 SUB2 .blendview/y1 LDZ2 #0002 SUB2 .blendview/x2 LDZ2 #0001 ADD2 .blendview/y2 LDZ2 #0001 ADD2 #03 ;line-rect JSR2 )
|
||||
|
||||
.settings/tile LDZ2 .Screen/addr DEO2
|
||||
#00 #10
|
||||
&loop
|
||||
OVR #04 MOD #00 SWP #0008 MUL2 .blendview/x1 LDZ2 ADD2 .Screen/x DEO2
|
||||
OVR #04 DIV #00 SWP #0008 MUL2 .blendview/y1 LDZ2 ADD2 .Screen/y DEO2
|
||||
#20 .Screen/color DEO
|
||||
OVR #20 ADD .settings/depth LDZ #20 MUL ADD .Screen/color DEO
|
||||
SWP #01 ADD SWP
|
||||
DUP2 LTH ,&loop JCN
|
||||
POP2
|
||||
|
||||
.blendview/x1 LDZ2 .Screen/x DEO2
|
||||
.blendview/y2 LDZ2 #0001 ADD2 .Screen/y DEO2
|
||||
( get blending ) .settings/blending LDZ
|
||||
( get depth ) .settings/depth LDZ #20 MUL
|
||||
( draw ) #20 ADD ADD #21 ;draw-byte JSR2
|
||||
|
||||
RTN
|
||||
|
||||
@draw-dataview ( -- )
|
||||
|
||||
( bytes )
|
||||
|
||||
.tileview/y LDZ2 #0018 ADD2 .Screen/y DEO2
|
||||
#00 .i STZ
|
||||
&bytes
|
||||
.tileview/x LDZ2 #0088 ADD2 .Screen/x DEO2
|
||||
.settings/tile LDZ2 #00 .i LDZ ADD2 LDA #22 ;draw-byte JSR2
|
||||
( incr ) .i LDZ #01 ADD .i STZ
|
||||
( incr ) .Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
|
||||
.i LDZ #08 LTH ;&bytes JCN2
|
||||
|
||||
( operations )
|
||||
|
||||
.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
|
||||
;movedown_icn .Screen/addr DEO2
|
||||
#21 .Screen/color DEO
|
||||
.Screen/x DEI2 #0008 SUB2 .Screen/x DEO2
|
||||
;moveup_icn .Screen/addr DEO2
|
||||
#21 .Screen/color DEO
|
||||
|
||||
( draw tiles 2x2 )
|
||||
.tileview/y LDZ2 .Screen/y DEO2
|
||||
#00 .pt/x STZ #00 .pt/y STZ .settings/tile LDZ2 .Screen/addr DEO2
|
||||
|
||||
&tiles-ver
|
||||
#00 .pt/x STZ
|
||||
.tileview/x LDZ2 #0088 ADD2 .Screen/x DEO2
|
||||
&tiles-hor
|
||||
( draw ) #23 .Screen/color DEO
|
||||
( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
|
||||
( incr ) .Screen/addr DEI2 #0008 ADD2 .Screen/addr DEO2
|
||||
( incr ) .pt/x LDZ #01 ADD .pt/x STZ
|
||||
.pt/x LDZ #02 LTH ;&tiles-hor JCN2
|
||||
( incr ) .pt/y LDZ #01 ADD .pt/y STZ
|
||||
( incr ) .Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
|
||||
.pt/y LDZ #02 LTH ;&tiles-ver JCN2
|
||||
|
||||
RTN
|
||||
|
||||
@draw-colorview ( -- )
|
||||
|
||||
.colorview/y1 LDZ2 #18 ADD .Screen/y DEO2
|
||||
.colorview/x1 LDZ2 #08 ADD .Screen/x DEO2
|
||||
.System/r DEI2 ;draw-color-code JSR2
|
||||
.colorview/y1 LDZ2 #18 ADD .Screen/y DEO2
|
||||
.colorview/x1 LDZ2 #10 ADD .Screen/x DEO2
|
||||
.System/g DEI2 ;draw-color-code JSR2
|
||||
.colorview/y1 LDZ2 #18 ADD .Screen/y DEO2
|
||||
.colorview/x1 LDZ2 #18 ADD .Screen/x DEO2
|
||||
.System/b DEI2 ;draw-color-code JSR2
|
||||
|
||||
.colorview/x1 LDZ2 .Screen/x DEO2
|
||||
;circle_icns .Screen/addr DEO2
|
||||
|
||||
#00 #04
|
||||
&loop
|
||||
OVR .settings/brush LDZ EQU #00 SWP #0008 MUL2 ;circle_icns ADD2 .Screen/addr DEO2
|
||||
OVR .colorview/y1 LDZ2 ROT #00 SWP #0008 MUL2 ADD2 .Screen/y DEO2
|
||||
OVR #20 ADD .Screen/color DEO
|
||||
SWP #01 ADD SWP
|
||||
DUP2 LTH ,&loop JCN
|
||||
POP2
|
||||
|
||||
RTN
|
||||
|
||||
@draw-preview ( -- )
|
||||
|
||||
( stash address )
|
||||
.settings/tile LDZ2 DUP2 STH2 .Screen/addr DEO2
|
||||
#00 #04
|
||||
&ver
|
||||
OVR #08 MUL TOS .preview/y1 LDZ2 ADD2 .Screen/y DEO2
|
||||
#00 #04
|
||||
&hor
|
||||
OVR #08 MUL TOS .preview/x1 LDZ2 ADD2 .Screen/x DEO2
|
||||
( get x,y )
|
||||
SWP2 OVR STH SWP2 OVR STHr
|
||||
( check if within ratio )
|
||||
.settings/ratio LDZ #0f AND LTH STH
|
||||
.settings/ratio LDZ #04 SFT LTH STHr
|
||||
#0101 NEQ2 ,&outside JCN
|
||||
( get tile ) DUP2r STH2r .Screen/addr DEO2
|
||||
( get blending ) .settings/blending LDZ
|
||||
( get depth ) .settings/depth LDZ #20 MUL
|
||||
( draw ) #20 ADD ADD .Screen/color DEO
|
||||
( incr ) STH2r #0008 [ .settings/depth LDZ #08 MUL TOS ADD2 ] ADD2 STH2
|
||||
,&resume JMP
|
||||
&outside
|
||||
;halftone_icn .Screen/addr DEO2
|
||||
#23 .Screen/color DEO
|
||||
&resume
|
||||
( incr ) SWP #01 ADD SWP
|
||||
DUP2 LTH ,&hor JCN
|
||||
POP2
|
||||
( incr ) SWP #01 ADD SWP
|
||||
DUP2 LTH ;&ver JCN2
|
||||
POP2
|
||||
POP2r
|
||||
.preview/x1 LDZ2 #0001 SUB2 .Screen/x DEO2
|
||||
.preview/y2 LDZ2 #0001 ADD2 .Screen/y DEO2
|
||||
.settings/ratio LDZ #23 ;draw-byte JSR2
|
||||
|
||||
RTN
|
||||
|
||||
@draw-color-code ( color* -- )
|
||||
|
||||
DUP ;font-hex ROT #0f AND #08 MUL #00 SWP ADD2 .Screen/addr DEO2
|
||||
( draw ) #22 .Screen/color DEO
|
||||
.colorview/y1 LDZ2 #10 ADD .Screen/y DEO2
|
||||
;font-hex ROT #04 SFT #08 MUL #00 SWP ADD2 .Screen/addr DEO2
|
||||
( draw ) #22 .Screen/color DEO
|
||||
.colorview/y1 LDZ2 #08 ADD .Screen/y DEO2
|
||||
DUP ;font-hex ROT #0f AND #08 MUL #00 SWP ADD2 .Screen/addr DEO2
|
||||
( draw ) #22 .Screen/color DEO
|
||||
.colorview/y1 LDZ2 .Screen/y DEO2
|
||||
;font-hex ROT #04 SFT #08 MUL #00 SWP ADD2 .Screen/addr DEO2
|
||||
( draw ) #22 .Screen/color DEO
|
||||
|
||||
RTN
|
||||
|
||||
@draw-cursor ( -- )
|
||||
|
||||
( clear last cursor )
|
||||
.mouse/x LDZ2 .Screen/x DEO2
|
||||
.mouse/y LDZ2 .Screen/y DEO2
|
||||
#30 .Screen/color DEO
|
||||
|
||||
( record mouse positions )
|
||||
.Mouse/x DEI2 .mouse/x STZ2
|
||||
.Mouse/y DEI2 .mouse/y STZ2
|
||||
|
||||
( draw new cursor )
|
||||
.mouse/x LDZ2 .Screen/x DEO2
|
||||
.mouse/y LDZ2 .Screen/y DEO2
|
||||
;tool_selector #00 .bankview/mode LDZ #08 MUL ADD2 .Screen/addr DEO2
|
||||
#32 .Mouse/state DEI #00 NEQ ADD .Screen/color DEO
|
||||
|
||||
RTN
|
||||
|
||||
@draw-byte ( byte color -- )
|
||||
|
||||
.color STZ STH
|
||||
;font-hex #00 DUPr STHr #f0 AND #04 SFT #08 MUL ADD2 .Screen/addr DEO2
|
||||
( draw ) .color LDZ .Screen/color DEO
|
||||
.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2
|
||||
;font-hex #00 STHr #0f AND #08 MUL ADD2 .Screen/addr DEO2
|
||||
( draw ) .color LDZ .Screen/color DEO
|
||||
|
||||
RTN
|
||||
|
||||
@draw-short ( short* color -- )
|
||||
|
||||
STH SWP
|
||||
DUP #04 SFT TOS #0008 ** ;font-hex ++ .Screen/addr DEO2
|
||||
( draw ) DUPr STHr .Screen/color DEO
|
||||
#0f AND TOS #0008 ** ;font-hex ++ .Screen/addr DEO2
|
||||
.Screen/x DEI2 #0008 ++ .Screen/x DEO2
|
||||
( draw ) DUPr STHr .Screen/color DEO
|
||||
DUP #04 SFT TOS #0008 ** ;font-hex ++ .Screen/addr DEO2
|
||||
.Screen/x DEI2 #0008 ++ .Screen/x DEO2
|
||||
( draw ) DUPr STHr .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
|
||||
|
||||
( Utils )
|
||||
|
||||
@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 ) SWP2 #0001 ADD2 SWP2
|
||||
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 ) SWP2 #0001 ADD2 SWP2
|
||||
OVR2 OVR2 #0001 ADD2 LTS2 ,&hor JCN
|
||||
POP2 POP2
|
||||
|
||||
RTN
|
||||
|
||||
@line-hor ( x0* x1* y* color -- )
|
||||
|
||||
STH .Screen/y DEO2
|
||||
&loop
|
||||
( save ) OVR2 .Screen/x DEO2
|
||||
( draw ) DUPr STHr .Screen/color DEO
|
||||
( incr ) SWP2 #0002 ADD2 SWP2
|
||||
OVR2 OVR2 LTH2 ,&loop JCN
|
||||
POP2 POP2 POPr
|
||||
|
||||
RTN
|
||||
|
||||
@line-ver ( x* y0* y1* color -- )
|
||||
|
||||
STH ROT2 .Screen/x DEO2
|
||||
&loop
|
||||
( save ) OVR2 .Screen/y DEO2
|
||||
( draw ) DUPr STHr .Screen/color DEO
|
||||
( incr ) SWP2 #0002 ADD2 SWP2
|
||||
OVR2 OVR2 LTH2 ,&loop JCN
|
||||
POP2 POP2 POPr
|
||||
|
||||
RTN
|
||||
|
||||
@tool_selector 80c0 e0f0 f8e0 1000
|
||||
@tool_hand 2020 20b8 7c7c 3838
|
||||
@tool_eraser 2050 b87c 3e1c 0800
|
||||
@moveup_icn 0010 387c fe10 1000
|
||||
@movedown_icn 0010 1010 fe7c 3810
|
||||
@halftone_icn aa55 aa55 aa55 aa55
|
||||
|
||||
@circle_icns
|
||||
0038 7cfe fefe 7c38 ( full )
|
||||
0038 4482 8282 4438 ( line )
|
||||
@eye_icns
|
||||
0038 4492 2810 0000 ( open )
|
||||
0000 0082 4438 0000 ( closed )
|
||||
@blank_icn
|
||||
0000 0000 0000 0000
|
||||
7cfe fefe fefe 7c00
|
||||
@depth_icns
|
||||
00fe 8282 fe82 82fe
|
||||
00fe 9292 fe92 92fe
|
||||
@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
|
||||
|
||||
@filepath1 [ "projects/fonts/specter8.bit 00 ]
|
||||
@filepath2 [ "projects/pictures/cyr10x8.chr 00 ]
|
||||
@filepath3 [ "projects/pictures/zerotwo10x10.chr 00 ]
|
||||
@filepath4 [ "projects/fonts/katahira8.bit 00 ]
|
||||
@filepath5 [ "projects/pictures/ako10x10.chr 00 ]
|
||||
@filepath6 [ "projects/pictures/logo1x1.bit 00 ]
|
||||
|
Loading…
Reference in New Issue