M .clang-format => .clang-format +5 -3
@@ 1,9 1,11 @@
AlignAfterOpenBracket: DontAlign
AlignEscapedNewlines: DontAlign
-AllowShortBlocksOnASingleLine: Empty
+AlignOperands: DontAlign
+AllowShortBlocksOnASingleLine: Always
AllowShortCaseLabelsOnASingleLine: true
-AllowShortIfStatementsOnASingleLine: false
-AllowShortLoopsOnASingleLine: false
+AllowShortEnumsOnASingleLine: true
+AllowShortIfStatementsOnASingleLine: true
+AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterDefinitionReturnType: TopLevel
BinPackArguments: false
BinPackParameters: false
M .gitignore => .gitignore +1 -3
@@ 1,3 1,1 @@
-orca
-cli
-untitled.orca>
\ No newline at end of file
+bin/<
\ No newline at end of file
M README.md => README.md +9 -3
@@ 1,12 1,18 @@
# Orca
-Orca is an [esoteric programming language](https://wiki.xxiivv.com/orca) designed to quickly create procedural sequencers, in which every letter of the alphabet is an operation, where lowercase letters operate on bang, uppercase letters operate each frame.
+[Orca](https://wiki.xxiivv.com/orca) is an esoteric programming language, written in [Uxntal](https://wiki.xxiivv.com/site/uxntal.html).
-This is a minimalist implementation of the basic operators created for educational purposes. To try a complete environment with client and server, see [Orca](https://git.sr.ht/~rabbits/orca).
+In Orca, every letter of the alphabet is an operation, where lowercase letters operate on bang, uppercase letters operate each frame. This repository also contain a ANSI C version.
## Build
-You must have [SDL2](https://wiki.libsdl.org/) and [portmidi](http://portmedia.sourceforge.net/portmidi/).
+You must have the [Uxn](https://git.sr.ht/~rabbits/uxn/) assembler and emulator.
+
+```
+uxnasm orca.tal orca.rom && uxnemu orca.rom
+```
+
+To build the C version(old), you must have [SDL2](https://wiki.libsdl.org/).
```
cc orca.c -std=c89 -O2 -DNDEBUG -g0 -s -Wall -L/usr/local/lib -lSDL2 -o orca
M build.sh => build.sh +16 -14
@@ 1,22 1,24 @@
#!/bin/bash
-clang-format -i orca.c
+echo "Cleaning.."
+rm -rf bin
+mkdir bin
-## Cleanup
-rm -f ./orca
+echo "Assembling.."
+uxnasm orca.tal bin/orca.rom
-# client
-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 -L/usr/local/lib -lSDL2 -lportmidi orca.c -o orca
-# cc -std=c89 -O2 -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -L/usr/local/lib -lSDL2 -lportmidi orca.c -o orca
-
-# Size
-echo "Size: $(du -sk ./orca)"
+echo "Installing.."
+if [ -d "$HOME/roms" ] && [ -e ./bin/orca.rom ]
+then
+ cp ./bin/orca.rom $HOME/roms
+ echo "Installed in $HOME/roms"
+fi
-# Install
-if [ -d "$HOME/bin" ] && [ -e ./orca ]
+if [ "${1}" = '--push' ];
then
- cp ./orca $HOME/bin
- echo "Installed: $HOME/bin"
+ echo "Pushing.."
+ ~/Applications/butler push bin/orca.rom hundredrabbits/orca:uxn
fi
-./orca demo.orca
+echo "Running.."
+uxnemu bin/orca.rom
R default.c => etc/default.c +0 -0
R spectrum.c => etc/spectrum.c +0 -0
R orca.usm => orca.tal +101 -110
@@ 11,61 11,66 @@
- Copy/paste(chorded)
)
+%+ { ADD } %- { SUB } %* { MUL } %/ { DIV }
+%< { LTH } %> { GTH } %= { EQU } %! { NEQ }
+%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 }
+%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 }
+
%RTN { JMP2r }
-%++ { #01 ADD } %-- { #01 SUB }
-%8++ { #0008 ADD2 }
-%8** { #30 SFT2 } %8// { #03 SFT2 }
-%MOD { DUP2 DIV MUL SUB }
+%MOD { DUP2 / * - }
%MOD8 { #07 AND }
-%MOD2 { #01 AND }
+%INCR { SWP #01 + SWP }
%DATA-CELLS { #2000 }
%DATA-LOCKS { #3000 }
%DATA-TYPES { #4000 }
-%LDA-CHAR { #24 MOD #00 SWP ;b36clc ADD2 LDA } ( b36 -- char )
-%LDA-VALUE { #20 SUB #00 SWP ;values ADD2 LDA } ( char -- b36 )
+%LDA-CHAR { #24 MOD #00 SWP ;b36clc ++ LDA } ( b36 -- char )
+%LDA-VALUE { #20 SUB #00 SWP ;values ++ LDA } ( char -- b36 )
-%LDA-INDEX { #00 SWP #00 .grid/width LDZ MUL2 ROT #00 SWP ADD2 } ( x y -- index )
-%LDA-CELL { LDA-INDEX DATA-CELLS ADD2 LDA } ( x y -- char )
-%SET-CELL { ROT ROT LDA-INDEX DATA-CELLS ADD2 STA } ( x y char -- )
-%LDA-TYPE { LDA-INDEX DATA-TYPES ADD2 LDA } ( x y -- type )
-%SET-TYPE { ROT ROT LDA-INDEX DATA-TYPES ADD2 STA } ( x y type -- )
-%LDA-LOCK { LDA-INDEX DATA-TYPES ADD2 LDA } ( x y -- type )
-%SET-LOCK { ROT ROT LDA-INDEX DATA-TYPES ADD2 STA } ( x y type -- )
+%LDA-INDEX { #00 SWP #00 .grid/width LDZ ** ROT #00 SWP ++ } ( x y -- index )
+%LDA-CELL { LDA-INDEX DATA-CELLS ++ LDA } ( x y -- char )
+%SET-CELL { ROT ROT LDA-INDEX DATA-CELLS ++ STA } ( x y char -- )
+%LDA-TYPE { LDA-INDEX DATA-TYPES ++ LDA } ( x y -- type )
+%SET-TYPE { ROT ROT LDA-INDEX DATA-TYPES ++ STA } ( x y type -- )
+%LDA-LOCK { LDA-INDEX DATA-TYPES ++ LDA } ( x y -- type )
+%SET-LOCK { ROT ROT LDA-INDEX DATA-TYPES ++ STA } ( x y type -- )
%LDA-PORT { } ( x y lock -- char )
%SET-PORT { } ( x y char -- )
-
%LDA-CELL-VALUE { LDA-CELL LDA-VALUE } ( x y -- b36 )
( 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 ]
+|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 ]
+|90 @Mouse [ &vector $2 &x $2 &y $2 &state $1 &chord $1 ]
( variables )
-@timer [ &byte $1 &frame $1 &speed $1 ]
-@grid [ &width $1 &height $1 ]
+@timer [ &byte $1 &frame $1 &speed $1 ]
+@grid [ &width $1 &height $1 ]
@selection [ &x1 $1 &y1 $1 &x2 $1 &y2 $1 ]
-@cursor [ &x $2 &y $2 ]
+@cursor [ &x $2 &y $2 ]
|0100
- ( theme ) #08f3 .System/r DEO2 #08fc .System/g DEO2 #08f9 .System/b DEO2
- ( vectors ) ;on-button .Controller/vector DEO2
- ( vectors ) ;on-mouse .Mouse/vector DEO2
- ( vectors ) ;on-frame .Screen/vector DEO2
+ ( theme )
+ #08f3 .System/r DEO2
+ #08fc .System/g DEO2
+ #08f9 .System/b DEO2
+
+ ( vectors )
+ ;on-button .Controller/vector DEO2
+ ;on-mouse .Mouse/vector DEO2
+ ;on-frame .Screen/vector DEO2
( find size )
- .Screen/width DEI2 8// SWP POP .grid/width STZ
- .Screen/height DEI2 8// SWP POP #02 SUB .grid/height STZ
+ .Screen/width DEI2 #03 SFT2 SWP POP .grid/width STZ
+ .Screen/height DEI2 #03 SFT2 SWP POP #02 SUB .grid/height STZ
( fill grid with dots )
-
;start JSR2
;redraw JSR2
@@ 73,11 78,11 @@ BRK
@on-frame
- .timer LDZ ++ DUP .timer STZ
+ .timer LDZ #01 ADD DUP .timer STZ
( skip ) #08 EQU ,&tick JCN BRK &tick
- .timer/frame LDZ ++ .timer/frame STZ
+ .timer/frame LDZ #01 ADD .timer/frame STZ
;run JSR2
@@ 96,20 101,20 @@ BRK
.Controller/button DEI #f0 AND
DUP #04 SFT #01 AND #01 NEQ ,&no-up JCN
.selection/y1 LDZ #00 EQU ,&no-up JCN
- .selection/y1 LDZ -- .selection/y1 STZ
- .selection/y2 LDZ -- .selection/y2 STZ &no-up
+ .selection/y1 LDZ #01 SUB .selection/y1 STZ
+ .selection/y2 LDZ #01 SUB .selection/y2 STZ &no-up
DUP #05 SFT #01 AND #01 NEQ ,&no-down JCN
- .selection/y1 LDZ .grid/height LDZ -- EQU ,&no-down JCN
- .selection/y1 LDZ ++ .selection/y1 STZ
- .selection/y2 LDZ ++ .selection/y2 STZ &no-down
+ .selection/y1 LDZ .grid/height LDZ #01 SUB EQU ,&no-down JCN
+ .selection/y1 LDZ #01 ADD .selection/y1 STZ
+ .selection/y2 LDZ #01 ADD .selection/y2 STZ &no-down
DUP #06 SFT #01 AND #01 NEQ ,&no-left JCN
.selection/x1 LDZ #00 EQU ,&no-left JCN
- .selection/x1 LDZ -- .selection/x1 STZ
- .selection/x2 LDZ -- .selection/x2 STZ &no-left
+ .selection/x1 LDZ #01 SUB .selection/x1 STZ
+ .selection/x2 LDZ #01 SUB .selection/x2 STZ &no-left
DUP #07 SFT #01 AND #01 NEQ ,&no-right JCN
- .selection/x1 LDZ .grid/width LDZ -- EQU ,&no-right JCN
- .selection/x1 LDZ ++ .selection/x1 STZ
- .selection/x2 LDZ ++ .selection/x2 STZ &no-right
+ .selection/x1 LDZ .grid/width LDZ #01 SUB EQU ,&no-right JCN
+ .selection/x1 LDZ #01 ADD .selection/x1 STZ
+ .selection/x2 LDZ #01 ADD .selection/x2 STZ &no-right
POP
.Controller/key DEI #08 NEQ ,&no-backspace JCN
@@ 123,8 128,8 @@ BRK
@on-mouse
.Mouse/state DEI #00 EQU ,&no-touch JCN
- .Mouse/x DEI2 8// SWP POP .selection/x1 STZ
- .Mouse/y DEI2 8// SWP POP .selection/y1 STZ
+ .Mouse/x DEI2 #03 SFT2 SWP POP .selection/x1 STZ
+ .Mouse/y DEI2 #03 SFT2 SWP POP .selection/y1 STZ
;redraw JSR2
&no-touch
@@ 154,10 159,10 @@ BRK
&hor
( get x,y ) SWP2 OVR STH SWP2 OVR STHr
#2e SET-CELL
- ( incr ) SWP ++ SWP
+ INCR
DUP2 LTH ,&hor JCN
POP2
- ( incr ) SWP ++ SWP
+ INCR
DUP2 LTH ,&ver JCN
POP2
@@ 198,11 203,11 @@ RTN
( check if x,y is grid )
POP
DUP2 MOD8 #00 EQU SWP MOD8 #00 EQU #0101 NEQ2 ,&no-marker8 JCN POP2 ;marker8_icn RTN &no-marker8
- DUP2 MOD2 #00 EQU SWP MOD2 #00 EQU #0101 NEQ2 ,&no-marker4 JCN POP2 ;marker4_icn RTN &no-marker4
+ DUP2 #01 AND #00 EQU SWP #01 AND #00 EQU #0101 NEQ2 ,&no-marker4 JCN POP2 ;marker4_icn RTN &no-marker4
POP2 ;font RTN
&no-bar
STH POP2 STHr
- #20 SUB #00 SWP 8** ;font ADD2
+ #20 SUB #00 SWP #30 SFT2 ;font ++
RTN
@@ 211,9 216,9 @@ RTN
@op-a ( x y char -- )
POP
- ( get left ) DUP2 SWP -- SWP LDA-CELL-VALUE STH
- ( get right ) DUP2 SWP ++ SWP LDA-CELL-VALUE STH
- ( incr y ) ++
+ ( get left ) DUP2 SWP #01 SUB SWP LDA-CELL-VALUE STH
+ ( get right ) DUP2 INCR LDA-CELL-VALUE STH
+ ( incr y ) #01 ADD
( get result ) ADDr STHr
LDA-CHAR
SET-CELL
@@ 223,9 228,9 @@ RTN
@op-b ( x y char -- )
POP
- ( get left ) DUP2 SWP -- SWP LDA-CELL-VALUE STH
- ( get right ) DUP2 SWP ++ SWP LDA-CELL-VALUE STH
- ( incr y ) ++
+ ( get left ) DUP2 SWP #01 SUB SWP LDA-CELL-VALUE STH
+ ( get right ) DUP2 INCR LDA-CELL-VALUE STH
+ ( incr y ) #01 ADD
( get result ) SUBr STHr
LDA-CHAR
SET-CELL
@@ 237,7 242,7 @@ RTN
@op-c ( x y char -- )
POP
- ++
+ #01 ADD
#30 .timer/frame LDZ MOD8 ADD SET-CELL
RTN
@@ 310,12 315,12 @@ RTN
#2a SET-CELL POP STHr RTN
¬-edge
( collide )
- DUP2 -- LDA-CELL #2e EQU ,¬-collide JCN
+ DUP2 #01 SUB LDA-CELL #2e EQU ,¬-collide JCN
#2a SET-CELL POP STHr RTN
¬-collide
( move )
DUP2 STHr
- SWP -- SWP SET-CELL
+ SWP #01 SUB SWP SET-CELL
#2e SET-CELL
RTN
@@ 348,7 353,7 @@ RTN
STH
( clear ) DUP2 #2e SET-CELL
- ( move ) ++ DUP2 #01 SET-LOCK
+ ( move ) #01 ADD DUP2 #01 SET-LOCK
STHr SET-CELL
RTN
@@ 379,12 384,12 @@ RTN
#2a SET-CELL POP STHr RTN
¬-edge
( collide )
- DUP2 SWP -- SWP LDA-CELL #2e EQU ,¬-collide JCN
+ DUP2 SWP #01 SUB SWP LDA-CELL #2e EQU ,¬-collide JCN
#2a SET-CELL POP STHr RTN
¬-collide
( move )
DUP2
- SWP -- SWP STHr SET-CELL
+ SWP #01 SUB SWP STHr SET-CELL
#2e SET-CELL
RTN
@@ 453,10 458,10 @@ RTN
&hor
( get x,y ) SWP2 OVR STH SWP2 OVR STHr
( unlock ) #00 SET-LOCK
- ( incr ) SWP ++ SWP
+ INCR
DUP2 LTH ,&hor JCN
POP2
- ( incr ) SWP ++ SWP
+ INCR
DUP2 LTH ,&ver JCN
POP2
@@ 472,10 477,10 @@ RTN
&hor
( get x,y ) SWP2 OVR STH SWP2 OVR STHr
DUP2 LDA-CELL ;run-char JSR2
- ( incr ) SWP ++ SWP
+ INCR
DUP2 LTH ,&hor JCN
POP2
- ( incr ) SWP ++ SWP
+ INCR
DUP2 LTH ,&ver JCN
POP2
;redraw JSR2
@@ 484,24 489,24 @@ RTN
@draw-interface ( -- )
- .Screen/height DEI2 #0008 SUB2 .Screen/y DEO2
+ .Screen/height DEI2 #0008 -- .Screen/y DEO2
( Positionx )
#0000 .Screen/x DEO2
.selection/x1 LDZ
- DUP #04 SFT LDA-CHAR #20 SUB #00 SWP 8** ;font ADD2 .Screen/addr DEO2
+ DUP #04 SFT LDA-CHAR #20 SUB #00 SWP #30 SFT2 ;font ++ .Screen/addr DEO2
#22 .Screen/color DEO
#0008 .Screen/x DEO2
- #0f AND LDA-CHAR #20 SUB #00 SWP 8** ;font ADD2 .Screen/addr DEO2
+ #0f AND LDA-CHAR #20 SUB #00 SWP #30 SFT2 ;font ++ .Screen/addr DEO2
#22 .Screen/color DEO
( Positiony )
#0010 .Screen/x DEO2
.selection/y1 LDZ
- DUP #04 SFT LDA-CHAR #20 SUB #00 SWP 8** ;font ADD2 .Screen/addr DEO2
+ DUP #04 SFT LDA-CHAR #20 SUB #00 SWP #30 SFT2 ;font ++ .Screen/addr DEO2
#22 .Screen/color DEO
#0018 .Screen/x DEO2
- #0f AND LDA-CHAR #20 SUB #00 SWP 8** ;font ADD2 .Screen/addr DEO2
+ #0f AND LDA-CHAR #20 SUB #00 SWP #30 SFT2 ;font ++ .Screen/addr DEO2
#22 .Screen/color DEO
#0020 .Screen/x DEO2
@@ 511,10 516,10 @@ RTN
( Frame )
#0030 .Screen/x DEO2
.timer/frame LDZ
- DUP #04 SFT LDA-CHAR #20 SUB #00 SWP 8** ;font ADD2 .Screen/addr DEO2
+ DUP #04 SFT LDA-CHAR #20 SUB #00 SWP #30 SFT2 ;font ++ .Screen/addr DEO2
#22 .Screen/color DEO
#0038 .Screen/x DEO2
- #0f AND LDA-CHAR #20 SUB #00 SWP 8** ;font ADD2 .Screen/addr DEO2
+ #0f AND LDA-CHAR #20 SUB #00 SWP #30 SFT2 ;font ++ .Screen/addr DEO2
#22 .Screen/color DEO
#0040 .Screen/x DEO2
@@ 524,20 529,20 @@ RTN
( Speed )
#0050 .Screen/x DEO2
.timer/speed LDZ
- DUP #04 SFT LDA-CHAR #20 SUB #00 SWP 8** ;font ADD2 .Screen/addr DEO2
+ DUP #04 SFT LDA-CHAR #20 SUB #00 SWP #30 SFT2 ;font ++ .Screen/addr DEO2
#22 .Screen/color DEO
#0058 .Screen/x DEO2
- #0f AND LDA-CHAR #20 SUB #00 SWP 8** ;font ADD2 .Screen/addr DEO2
+ #0f AND LDA-CHAR #20 SUB #00 SWP #30 SFT2 ;font ++ .Screen/addr DEO2
#22 .Screen/color DEO
( TODO: Signal VU )
( File )
- .Screen/width DEI2 #0028 SUB2 .Screen/x DEO2
- .Screen/x DEI2 8++ .Screen/x DEO2 ;eye_icns .Screen/addr DEO2 #21 .Screen/color DEO
- .Screen/x DEI2 8++ .Screen/x DEO2 ;filestate_icn .Screen/addr DEO2 #21 .Screen/color DEO
- .Screen/x DEI2 8++ .Screen/x DEO2 ;load_icn .Screen/addr DEO2 #21 .Screen/color DEO
- .Screen/x DEI2 8++ .Screen/x DEO2 ;save_icn .Screen/addr DEO2 #21 .Screen/color DEO
+ .Screen/width DEI2 #0028 -- .Screen/x DEO2
+ .Screen/x DEI2 #0008 ++ .Screen/x DEO2 ;eye_icns .Screen/addr DEO2 #21 .Screen/color DEO
+ .Screen/x DEI2 #0008 ++ .Screen/x DEO2 ;filestate_icn .Screen/addr DEO2 #21 .Screen/color DEO
+ .Screen/x DEI2 #0008 ++ .Screen/x DEO2 ;load_icn .Screen/addr DEO2 #21 .Screen/color DEO
+ .Screen/x DEI2 #0008 ++ .Screen/x DEO2 ;save_icn .Screen/addr DEO2 #21 .Screen/color DEO
RTN
@@ 545,17 550,17 @@ RTN
#00 .grid/height LDZ
&ver
- ( pos-y ) OVR #00 SWP 8** .Screen/y DEO2
+ ( pos-y ) OVR #00 SWP #30 SFT2 .Screen/y DEO2
#00 .grid/width LDZ
&hor
- ( pos-x ) OVR #00 SWP 8** .Screen/x DEO2
+ ( pos-x ) OVR #00 SWP #30 SFT2 .Screen/x DEO2
( get x,y ) SWP2 OVR STH SWP2 OVR STHr
( sprite ) DUP2 ;get-cell-sprite JSR2 .Screen/addr DEO2
( draw ) ;is-selected JSR2 #0d MUL #21 ADD .Screen/color DEO
- ( incr ) SWP ++ SWP
+ INCR
DUP2 LTH ,&hor JCN
POP2
- ( incr ) SWP ++ SWP
+ INCR
DUP2 LTH ,&ver JCN
POP2
@@ 563,55 568,42 @@ RTN
RTN
-( char to b36 )
-
-@values [
-
+@values ( char to b36 )
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
-
00 01 02 03 04 05 06 07
08 09 00 00 00 00 00 00
-
00 0a 0b 0c 0d 0e 0f 10
11 12 13 14 15 16 17 18
19 1a 1b 1c 1d 1e 1f 20
21 22 23 00 00 00 00 00
-
00 0a 0b 0c 0d 0e 0f 10
11 12 13 14 15 16 17 18
19 1a 1b 1c 1d 1e 1f 20
21 22 23 00 00 00 00 00
-]
-
-( b36 to char-lc )
-
-@b36clc [
+@b36clc ( b36 to char-lc )
30 31 32 33 34 35 36 37
38 39 61 62 63 64 65 66
67 68 69 6a 6b 6c 6d 6e
6f 70 71 72 73 74 75 76
77 78 79 7a
-]
-
-@cursor_icn [ 80c0 e0f0 f8e0 1000 ]
-@blank_icn [ 0000 0000 0000 0000 ]
-@position_icn [ 0066 4200 0042 6600 ]
-@beat_icn [ 0000 1038 7c38 1000 ]
-@marker8_icn [ 0000 2400 0024 0000 ]
-@marker4_icn [ 0000 0000 0000 1000 ]
-@filestate_icn [ 1054 28c6 2854 1000 ]
-@load_icn [ feaa d6aa d4aa f400 ]
-@save_icn [ fe82 8282 848a f400 ]
-@eye_icns
- [ 0038 4492 2810 0000 ] ( open )
- [ 0000 0082 4438 0000 ] ( closed )
+@cursor_icn 80c0 e0f0 f8e0 1000
+@blank_icn 0000 0000 0000 0000
+@position_icn 0066 4200 0042 6600
+@beat_icn 0000 1038 7c38 1000
+@marker8_icn 0000 2400 0024 0000
+@marker4_icn 0000 0000 0000 1000
+@filestate_icn 1054 28c6 2854 1000
+@load_icn feaa d6aa d4aa f400
+@save_icn fe82 8282 848a f400
+@eye_icns
+ 0038 4492 2810 0000 ( open )
+ 0000 0082 4438 0000 ( closed )
@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
@@ 660,6 652,5 @@ RTN
0000 7e02 3c40 7e00 000c 0810 1008 0c00
0008 0808 0808 0800 0030 1008 0810 3000
0000 0032 4c00 0000 3c42 99a1 a199 423c
-]
-@data [ ]>
\ No newline at end of file
+@data <
\ No newline at end of file
A untitled.orca => untitled.orca +16 -0
@@ 0,0 1,16 @@
+....D....4d6....................
+.....H.....H....................
+....xE....xE....................
+..........E.......E.....E.E.....
+....J..J..J..J..J..J..J..J......
+.....FE.FEEFE.FE.FE.FE.FE.FE....
+...........*....................
+s.X..J..J..J..J..J..J..J..J.....
+p.X..J..J..J..J..J..J..J...:15..
+m.X..J..J..J..J..J..J...:35.....
+j.X..J..J..J..J..J...:35........
+g.X..J..J..J..J...:b4...........
+d.X..J..J..J...:95..............
+a.X..J..J..*:05.................
+7.X..J...:15....................
+......:05.......................