(lander) Init
This commit is contained in:
parent
17e12eb5c8
commit
91f6a509b0
|
@ -0,0 +1,25 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
ID="lander"
|
||||
ASM="uxncli $HOME/roms/drifblim.rom"
|
||||
EMU="uxnemu"
|
||||
LIN="uxncli $HOME/roms/uxnlin.rom"
|
||||
SRC="${ID}.tal"
|
||||
DST="${ID}.rom"
|
||||
CPY="$HOME/roms"
|
||||
ARG=""
|
||||
|
||||
if [[ "$*" == *"--lint"* ]]
|
||||
then
|
||||
$LIN $SRC
|
||||
fi
|
||||
|
||||
$ASM $SRC $DST
|
||||
|
||||
if [[ "$*" == *"--save"* ]]
|
||||
then
|
||||
cp $DST $CPY
|
||||
fi
|
||||
|
||||
$EMU $DST $ARG
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
( uxnemu lander.rom )
|
||||
|
||||
|00 @System &vector $2 &wst $1 &rst $1 &pad $4 &r $2 &g $2 &b $2
|
||||
|10 @Console &vector $2 &read $1 &pad $5 &write $1 &error $1
|
||||
|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1
|
||||
|30 @Audio0 &vector $2 &position $2 &output $1 &pad $3 &adsr $2 &length $2 &addr $2 &volume $1 &pitch $1
|
||||
|80 @Controller &vector $2 &button $1 &key $1
|
||||
|90 @Mouse &vector $2 &x $2 &y $2 &state $1 &wheel $1
|
||||
|
||||
|0100 ( -> )
|
||||
|
||||
( theme )
|
||||
#0f0f .System/r DEO2
|
||||
#0f0f .System/g DEO2
|
||||
#0f0f .System/b DEO2
|
||||
( resize )
|
||||
#0190 .Screen/width DEO2
|
||||
#00f0 .Screen/height DEO2
|
||||
( vectors )
|
||||
;on-control .Controller/vector DEO2
|
||||
redraw
|
||||
|
||||
BRK
|
||||
|
||||
(
|
||||
@|vectors )
|
||||
|
||||
@on-control ( -> )
|
||||
|
||||
.Controller/button DEI phex/b #0a18 DEO
|
||||
|
||||
BRK
|
||||
|
||||
(
|
||||
@|drawing )
|
||||
|
||||
@redraw ( -- )
|
||||
|
||||
#0000
|
||||
DUP2 .Screen/x DEO2
|
||||
.Screen/y DEO2
|
||||
#80 .Screen/pixel DEO
|
||||
draw-lander
|
||||
|
||||
JMP2r
|
||||
|
||||
@draw-lander ( -- )
|
||||
|
||||
#4000
|
||||
&l
|
||||
#00 OVR ;sin32 ADD2 LDA2
|
||||
#00 SWP #01 SFT2 .Screen/y DEO2
|
||||
#00 SWP #01 SFT2 .Screen/x DEO2
|
||||
#01 .Screen/pixel DEO
|
||||
INC INC GTHk ?&l
|
||||
POP2
|
||||
|
||||
JMP2r
|
||||
|
||||
@draw-line ( x1* y1* x2* y2* color -- )
|
||||
|
||||
,&color STR
|
||||
,&y STR2
|
||||
,&x STR2
|
||||
,&y2 STR2
|
||||
,&x2 STR2
|
||||
,&x LDR2 ,&x2 LDR2 SUB2 abs2 ,&dx STR2
|
||||
#0000 ,&y LDR2 ,&y2 LDR2 SUB2 abs2 SUB2 ,&dy STR2
|
||||
#ffff [ LIT2 00 _&x2 ] LDR2 ,&x LDR2 lts2 DUP2 ADD2 ADD2 ,&sx STR2
|
||||
#ffff [ LIT2 00 _&y2 ] LDR2 ,&y LDR2 lts2 DUP2 ADD2 ADD2 ,&sy STR2
|
||||
[ LIT2 &dx $2 ] [ LIT2 &dy $2 ] ADD2 STH2
|
||||
&while
|
||||
[ LIT2 &x2 $2 ] DUP2 .Screen/x DEO2 [ LIT2 &x $2 ] EQU2
|
||||
[ LIT2 &y2 $2 ] DUP2 .Screen/y DEO2 [ LIT2 &y $2 ] EQU2
|
||||
[ LIT2 &color $1 -Screen/pixel ] DEO
|
||||
AND ?&end
|
||||
STH2kr DUP2 ADD2 DUP2
|
||||
,&dy LDR2 lts2 ?&skipy
|
||||
STH2r ,&dy LDR2 ADD2 STH2
|
||||
,&x2 LDR2 [ LIT2 &sx $2 ] ADD2 ,&x2 STR2
|
||||
&skipy
|
||||
,&dx LDR2 gts2 ?&while
|
||||
STH2r ,&dx LDR2 ADD2 STH2
|
||||
,&y2 LDR2 [ LIT2 &sy $2 ] ADD2 ,&y2 STR2
|
||||
!&while
|
||||
&end
|
||||
POP2r
|
||||
|
||||
JMP2r
|
||||
|
||||
(
|
||||
@|stdlib )
|
||||
|
||||
@abs2 DUP2 #0f SFT2 EQU ?&end #0000 SWP2 SUB2 &end JMP2r
|
||||
@lts2 #8000 STH2k ADD2 SWP2 STH2r ADD2 GTH2 JMP2r
|
||||
@gts2 #8000 STH2k ADD2 SWP2 STH2r ADD2 LTH2 JMP2r
|
||||
|
||||
@phex ( short* -- )
|
||||
SWP phex/b
|
||||
&b DUP #04 SFT phex/c
|
||||
&c #0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO
|
||||
JMP2r
|
||||
|
||||
@sin32 [
|
||||
8000 9802 b009 c715 da25 ea38 f64f fd67
|
||||
ff80 fd98 f6b0 eac7 dada c7ea b0f6 98fd
|
||||
80ff 67fd 4ff6 38ea 25da 15c7 09b0 0298
|
||||
0080 0267 094f 1538 2525 3815 4f09 6702 ]
|
||||
|
Loading…
Reference in New Issue