uxn

Varvara Ordinator, written in ANSI C(SDL2)
git clone https://git.eamoncaddigan.net/uxn.git
Log | Files | Refs | README | LICENSE

commit 6cea4d8c4ad64f63606b4836752b092f07a3c0b1
parent 8fd39ecf7e20843a554ce5027a8486abd9fe34e7
Author: neauoire <aliceffekt@gmail.com>
Date:   Sun, 21 Mar 2021 14:16:19 -0700

Ported examples to new devices addr

Diffstat:
Massembler.c | 7+++----
Mbuild.sh | 2+-
Mprojects/examples/dev.console.usm | 15+++++++++------
Mprojects/examples/dev.controller.usm | 21++++++++++++---------
Mprojects/examples/dev.mouse.usm | 24++++++++++++++----------
Mprojects/examples/dev.screen.usm | 19+++++++++++--------
Mprojects/examples/gui.editor.usm | 20+++++++++-----------
Mprojects/examples/gui.hover.usm | 19+++++++++----------
Mprojects/examples/gui.label.usm | 18++++++++----------
Mprojects/examples/gui.picture.usm | 15+++++++--------
Mprojects/examples/gui.shapes.usm | 18++++++++----------
Mprojects/software/nasu.usm | 5++---
12 files changed, 93 insertions(+), 90 deletions(-)

diff --git a/assembler.c b/assembler.c @@ -35,7 +35,7 @@ typedef struct { typedef struct { Uint8 data[256 * 256], llen, mlen; - Uint16 ptr, count; + Uint16 ptr; Label labels[256]; Macro macros[256]; } Program; @@ -69,7 +69,6 @@ pushbyte(Uint8 b, int lit) { if(lit) pushbyte(0x02, 0); p.data[p.ptr++] = b; - p.count++; } void @@ -425,7 +424,7 @@ void cleanup(char *filename) { int i; - printf("Assembled %s(%0.2fkb), %d labels, %d macros.\n\n", filename, p.count / 1000.0, p.llen, p.mlen); + printf("Assembled %s(%0.2fkb), %d labels, %d macros.\n\n", filename, p.ptr / 1000.0, p.llen, p.mlen); for(i = 0; i < p.llen; ++i) if(!p.labels[i].refs) printf("--- Unused label: %s\n", p.labels[i].name); @@ -450,7 +449,7 @@ main(int argc, char *argv[]) error("Assembly", "Failed"); return 1; } - fwrite(p.data, sizeof(p.data), 1, fopen(argv[2], "wb")); + fwrite(p.data, p.ptr, 1, fopen(argv[2], "wb")); fclose(f); cleanup(argv[2]); return 0; diff --git a/build.sh b/build.sh @@ -20,5 +20,5 @@ cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werr # cc uxn.c emulator.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -L/usr/local/lib -lSDL2 -o bin/emulator # run -./bin/assembler projects/software/left.usm bin/boot.rom +./bin/assembler projects/software/nasu.usm bin/boot.rom ./bin/emulator bin/boot.rom diff --git a/projects/examples/dev.console.usm b/projects/examples/dev.console.usm @@ -2,7 +2,15 @@ %RTN { JMP2r } -@RESET +( devices ) + +|0100 ;Console { pad 8 char 1 byte 1 short 2 } +|01F0 .RESET .FRAME .ERROR ( vectors ) +|01F8 [ 13fd 1ef3 1bf2 ] ( palette ) + +( program ) + +|0200 @RESET ,text1 ,print-label JSR2 ,text2 ,print-label JSR2 @@ -27,7 +35,3 @@ RTN |c000 @FRAME |d000 @ERROR -|FF00 ;Console { pad 8 char 1 byte 1 short 2 } - -|FFF0 .RESET .FRAME .ERROR ( vectors ) -|FFF8 [ 13fd 1ef3 1bf2 ] ( palette ) -\ No newline at end of file diff --git a/projects/examples/dev.controller.usm b/projects/examples/dev.controller.usm @@ -4,9 +4,19 @@ %-- { #0001 SUB2 } %2/ { #0002 DIV2 } +( variables ) + ;slime { color 1 } -|0100 @RESET +( devices ) + +|0110 ;Screen { width 2 height 2 pad 4 y 2 x 2 color 1 } +|0120 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } +|0130 ;Controller { buttons 1 } +|01F0 .RESET .FRAME .ERROR ( vectors ) +|01F8 [ 0daf 02ff 035f ] ( palette ) + +|0200 @RESET ( set origin ) ~Screen.width 2/ =Sprite.x @@ -60,11 +70,4 @@ BRK @right_icn [ 3c7e f7f8 f8f7 7e3c ] @slime_icn [ 0000 183c 3c18 0000 ] -|d000 @ERROR BRK - -|FF10 ;Screen { width 2 height 2 pad 4 y 2 x 2 color 1 } -|FF20 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } -|FF30 ;Controller { buttons 1 } - -|FFF0 .RESET .FRAME .ERROR ( vectors ) -|FFF8 [ 0daf 02ff 035f ] ( palette ) +@ERROR BRK diff --git a/projects/examples/dev.mouse.usm b/projects/examples/dev.mouse.usm @@ -8,7 +8,17 @@ ;color { byte 1 } ;timer { byte 1 } -|0100 @RESET +( devices ) + +|0110 ;Screen { width 2 height 2 pad 4 y 2 x 2 color 1 } +|0120 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } +|0150 ;Mouse { x 2 y 2 state 1 chord 1 } +|01F0 .RESET .FRAME .ERROR ( vectors ) +|01F8 [ 0f85 0fd5 0fb5 ] ( palette ) + +( program ) + +|0200 @RESET ( position cat ) ~Screen.width #0002 DIV2 =cat.x @@ -219,12 +229,5 @@ RTN @mouse1_text [ mouse 1_ 00 ] @mouse2_text [ mouse _2 00 ] @mouse12_text [ mouse 12 00 ] - -|d000 @ERROR BRK - -|FF10 ;Screen { width 2 height 2 pad 4 y 2 x 2 color 1 } -|FF20 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } -|FF50 ;Mouse { x 2 y 2 state 1 chord 1 } - -|FFF0 .RESET .FRAME .ERROR ( vectors ) -|FFF8 [ 0f85 0fd5 0fb5 ] ( palette ) + +@ERROR BRK +\ No newline at end of file diff --git a/projects/examples/dev.screen.usm b/projects/examples/dev.screen.usm @@ -3,7 +3,16 @@ ;center { x 2 y 2 } ;timer { byte 1 } -|0100 @RESET +( devices ) + +|0110 ;Screen { width 2 height 2 pad 4 x 2 y 2 color 1 } +|0120 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } +|01F0 .RESET .FRAME .ERROR ( vectors ) +|01F8 [ f0ac f0bb f053 ] ( palette ) + +( program ) + +|0200 @RESET ( find screen center ) ~Screen.width #0002 DIV2 =center.x @@ -60,10 +69,4 @@ BRK @icon [ 3c7e e7c3 c3e7 7e3c ] -|d000 @ERROR BRK - -|FF10 ;Screen { width 2 height 2 pad 4 x 2 y 2 color 1 } -|FF20 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } - -|FFF0 .RESET .FRAME .ERROR ( vectors ) -|FFF8 [ f0ac f0bb f053 ] ( palette ) +@ERROR BRK diff --git a/projects/examples/gui.editor.usm b/projects/examples/gui.editor.usm @@ -10,7 +10,14 @@ ;rect { x1 2 y1 2 x2 2 y2 2 } ;color { byte 1 } -|0100 @RESET +|0110 ;Screen { width 2 height 2 pad 4 x 2 y 2 color 1 } +|0120 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } +|0130 ;Controller { buttons 1 } +|0150 ;Mouse { x 2 y 2 state 1 chord 1 } +|01F0 .RESET .FRAME .ERROR ( vectors ) +|01F8 [ 0fcf 0fc4 0fc4 ] ( palette ) + +|0200 @RESET #0030 =window.x1 #0030 =window.y1 #0090 =window.x2 #0090 =window.y2 @@ -223,12 +230,4 @@ RTN 0008 0808 0808 0800 0030 1008 0810 3000 0000 0032 4c00 0000 3c42 99a1 a199 423c ] -|d000 @ERROR BRK - -|FF10 ;Screen { width 2 height 2 pad 4 x 2 y 2 color 1 } -|FF20 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } -|FF30 ;Controller { buttons 1 } -|FF50 ;Mouse { x 2 y 2 state 1 chord 1 } - -|FFF0 .RESET .FRAME .ERROR ( vectors ) -|FFF8 [ 0fcf 0fc4 0fc4 ] ( palette ) -\ No newline at end of file +@ERROR BRK diff --git a/projects/examples/gui.hover.usm b/projects/examples/gui.hover.usm @@ -9,7 +9,14 @@ ;r2 { x1 2 y1 2 x2 2 y2 2 } ;r3 { x1 2 y1 2 x2 2 y2 2 } -|0100 @RESET +|0110 ;Screen { width 2 height 2 pad 4 x 2 y 2 color 1 } +|0120 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } +|0150 ;Mouse { x 2 y 2 state 1 chord 1 } + +|01F0 .RESET .FRAME .ERROR ( vectors ) +|01F8 [ 0f0f 0fff 0ff0 ] ( palette ) + +|0200 @RESET #0020 #0030 #0060 #0060 =r1.y2 =r1.x2 =r1.y1 =r1.x1 #0058 #0050 #0090 #0080 =r2.y2 =r2.x2 =r2.y1 =r2.x1 @@ -93,11 +100,4 @@ RTN @pointer_icn [ 80c0 e0f0 f8e0 1000 ] @hand_icn [ 4040 4070 f8f8 f870 ] -|d000 @ERROR BRK - -|FF10 ;Screen { width 2 height 2 pad 4 x 2 y 2 color 1 } -|FF20 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } -|FF50 ;Mouse { x 2 y 2 state 1 chord 1 } - -|FFF0 .RESET .FRAME .ERROR ( vectors ) -|FFF8 [ 0f0f 0fff 0ff0 ] ( palette ) -\ No newline at end of file +@ERROR BRK diff --git a/projects/examples/gui.label.usm b/projects/examples/gui.label.usm @@ -7,7 +7,12 @@ ;center { x 2 y 2 } ;i { short 2 } -|0100 @RESET +|0110 ;Screen { width 2 height 2 pad 4 x 2 y 2 color 1 } +|0120 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } +|01F0 .RESET .FRAME .ERROR ( vectors ) +|01F8 [ 0f0f 0fff 0ff0 ] ( palette ) + +|0200 @RESET ( find screen center ) ~Screen.width #0002 DIV2 =center.x @@ -121,11 +126,5 @@ RTN @text4 [ even 00 ] @text5 [ odd 00 ] -|c000 @FRAME BRK -|d000 @ERROR BRK - -|FF10 ;Screen { width 2 height 2 pad 4 x 2 y 2 color 1 } -|FF20 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } - -|FFF0 .RESET .FRAME .ERROR ( vectors ) -|FFF8 [ 0f0f 0fff 0ff0 ] ( palette ) -\ No newline at end of file +@FRAME BRK +@ERROR BRK diff --git a/projects/examples/gui.picture.usm b/projects/examples/gui.picture.usm @@ -4,7 +4,11 @@ ;pict { x 2 y 2 width 2 height 2 color 1 addr 2 } -|0100 @RESET +|0120 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } +|01F0 .RESET .FRAME .ERROR ( vectors ) +|01F8 [ 0ffc 0f0b 0f03 ] ( palette ) + +|0200 @RESET #0000 #0000 #0100 #0100 #01 ,pict_large ,draw-picture JSR2 #0098 #0060 #0080 #0080 #01 ,pict_medium ,draw-picture JSR2 @@ -302,10 +306,5 @@ RTN ] -|c000 @FRAME BRK -|d000 @ERROR BRK - -|FF20 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } - -|FFF0 .RESET .FRAME .ERROR ( vectors ) -|FFF8 [ 0ffc 0f0b 0f03 ] ( palette ) +@FRAME BRK +@ERROR BRK diff --git a/projects/examples/gui.shapes.usm b/projects/examples/gui.shapes.usm @@ -11,7 +11,12 @@ ;line { x 2 y 2 sx 2 sy 2 dx 2 dy 2 e1 2 e2 2 } ;color { byte 1 } -|0100 @RESET +|0110 ;Screen { width 2 height 2 pad 4 x 2 y 2 color 1 } +|0120 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } +|01F0 .RESET .FRAME .ERROR ( vectors ) +|01F8 [ 13fd 1ef3 1bf2 ] ( palette ) + +|0200 @RESET #0010 #0020 #0040 #0060 #01 ,fill-rect JSR2 #0020 #0030 #0050 #0070 #02 ,fill-rect JSR2 @@ -171,11 +176,5 @@ RTN @text [ Label 20 Text 00 ] ( add characters to memory ) -|c000 @FRAME BRK -|d000 @ERROR BRK - -|FF10 ;Screen { width 2 height 2 pad 4 x 2 y 2 color 1 } -|FF20 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } - -|FFF0 .RESET .FRAME .ERROR ( vectors ) -|FFF8 [ 13fd 1ef3 1bf2 ] ( palette ) -\ No newline at end of file +@FRAME BRK +@ERROR BRK diff --git a/projects/software/nasu.usm b/projects/software/nasu.usm @@ -525,6 +525,6 @@ RTN 007c 8280 f080 827c 007c 8280 f080 8080 ] -|E000 @bank [ ] +@ERROR BRK -|FE00 @ERROR BRK -\ No newline at end of file +@bank [ ]