| ... | ... |
@@ -20,5 +20,5 @@ cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werr |
| 20 | 20 |
# cc uxn.c emulator.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -L/usr/local/lib -lSDL2 -o bin/emulator |
| 21 | 21 |
|
| 22 | 22 |
# run |
| 23 |
-./bin/assembler examples/paint.usm bin/boot.rom |
|
| 23 |
+./bin/assembler examples/shapes.usm bin/boot.rom |
|
| 24 | 24 |
./bin/emulator bin/boot.rom |
| ... | ... |
@@ -27,11 +27,10 @@ BRK |
| 27 | 27 |
#00 IOR2 =mousex #02 IOR2 =mousey |
| 28 | 28 |
( record mouse state ) |
| 29 | 29 |
#04 IOR #11 ADD =state |
| 30 |
- |
|
| 30 |
+ ( detect click ) |
|
| 31 | 31 |
#04 IOR #01 NEQ ,no-click ROT JMP? POP2 |
| 32 | 32 |
#50 =timer |
| 33 | 33 |
@no-click |
| 34 |
- |
|
| 35 | 34 |
( draw mouse ) |
| 36 | 35 |
~state ,cursor_icn ~mousex ~mousey ,draw-sprite JSR |
| 37 | 36 |
( animate ) |
| 46 | 46 |
deleted file mode 100644 |
| ... | ... |
@@ -1,96 +0,0 @@ |
| 1 |
-( draw routines ) |
|
| 2 |
- |
|
| 3 |
-:dev/r fff8 ( std read port ) |
|
| 4 |
-:dev/w fff9 ( std write port ) |
|
| 5 |
- |
|
| 6 |
-;x_ 2 ;y_ 2 ;x 2 ;y 2 ;w 2 ;h 2 ;color 1 |
|
| 7 |
-;x0 2 ;y0 2 ;x1 2 ;y1 2 ;dx 2 ;dy 2 ;err1 2 ;err2 2 ( line ) |
|
| 8 |
- |
|
| 9 |
-|0100 @RESET |
|
| 10 |
- |
|
| 11 |
- ( set dev/write to screen ) |
|
| 12 |
- #01 =dev/w ( set dev/write to sprite ) |
|
| 13 |
- |
|
| 14 |
- #01 ,color STR |
|
| 15 |
- ( fill rect x y w h ) |
|
| 16 |
- #0020 #0020 #0060 #0040 ,fillrect JSR |
|
| 17 |
- |
|
| 18 |
- #02 ,color STR |
|
| 19 |
- ( fill rect x y w h ) |
|
| 20 |
- #0030 #0030 #0040 #0060 ,fillrect JSR |
|
| 21 |
- |
|
| 22 |
- #03 ,color STR |
|
| 23 |
- ( fill rect x y w h ) |
|
| 24 |
- #0040 #0040 #0060 #0040 ,fillrect JSR |
|
| 25 |
- |
|
| 26 |
- #01 ,color STR |
|
| 27 |
- ( fill rect x y w h ) |
|
| 28 |
- #00a0 #0010 #0020 #0020 ,fillrect JSR |
|
| 29 |
- |
|
| 30 |
- #02 ,color STR |
|
| 31 |
- ( fill rect x y w h ) |
|
| 32 |
- #00b0 #0040 #0020 #0020 ,linerect JSR |
|
| 33 |
- |
|
| 34 |
- #03 ,color STR |
|
| 35 |
- ( fill rect x y w h ) |
|
| 36 |
- #0058 #0028 #0050 #0050 ,linerect JSR |
|
| 37 |
- |
|
| 38 |
- #01 ,color STR |
|
| 39 |
- ( fill rect x y w h ) |
|
| 40 |
- #0028 #0038 #0050 #0030 ,linerect JSR |
|
| 41 |
- |
|
| 42 |
- ,redraw JSR |
|
| 43 |
- |
|
| 44 |
-BRK |
|
| 45 |
- |
|
| 46 |
-@fillrect |
|
| 47 |
- ,h STR2 ,w STR2 ,y STR2 ,x STR2 |
|
| 48 |
- ,x LDR2 ,x_ STR2 ,y LDR2 ,y_ STR2 |
|
| 49 |
- @fillrectrow |
|
| 50 |
- ,x LDR2 ,x_ STR2 |
|
| 51 |
- @fillrectcol |
|
| 52 |
- ( draw ) ,x_ LDR2 ,y_ LDR2 ,putpixel JSR |
|
| 53 |
- ,x_ LDR2 #0001 ADD2 ,x_ STR2 |
|
| 54 |
- ,x_ LDR2 ,w LDR2 ,x LDR2 ADD2 LTH2 ,fillrectcol ROT JMP? POP2 |
|
| 55 |
- ,y_ LDR2 #0001 ADD2 ,y_ STR2 |
|
| 56 |
- ,y_ LDR2 ,h LDR2 ,y LDR2 ADD2 LTH2 ,fillrectrow ROT JMP? POP2 |
|
| 57 |
- RTS |
|
| 58 |
- |
|
| 59 |
-@linerect |
|
| 60 |
- ,h STR2 ,w STR2 ,y STR2 ,x STR2 |
|
| 61 |
- ,x LDR2 ,x_ STR2 ,y LDR2 ,y_ STR2 |
|
| 62 |
- @linerectcol |
|
| 63 |
- ( draw ) ,x LDR2 ,y_ LDR2 ,putpixel JSR |
|
| 64 |
- ( draw ) ,x LDR2 ,w LDR2 ADD2 ,y_ LDR2 ,putpixel JSR |
|
| 65 |
- ,y_ LDR2 #0001 ADD2 ,y_ STR2 |
|
| 66 |
- ,y_ LDR2 ,h LDR2 ,y LDR2 ADD2 LTH2 ,linerectcol ROT JMP? POP2 |
|
| 67 |
- @linerectrow |
|
| 68 |
- ( draw ) ,x_ LDR2 ,y LDR2 ,putpixel JSR |
|
| 69 |
- ( draw ) ,x_ LDR2 ,y LDR2 ,h LDR2 ADD2 ,putpixel JSR |
|
| 70 |
- ,x_ LDR2 #0001 ADD2 ,x_ STR2 |
|
| 71 |
- ,x_ LDR2 ,w LDR2 ,x LDR2 ADD2 #0001 ADD2 LTH2 ,linerectrow ROT JMP? POP2 |
|
| 72 |
- RTS |
|
| 73 |
- |
|
| 74 |
-@diff16 |
|
| 75 |
- OVR2 OVR2 GTH2 ,diff16sub ROT JMP? POP2 |
|
| 76 |
- SWP2 @diff16sub SUB2 |
|
| 77 |
-RTS |
|
| 78 |
- |
|
| 79 |
-@redraw |
|
| 80 |
- #0000 IOW2 |
|
| 81 |
- #0000 IOW2 |
|
| 82 |
- #00 IOW |
|
| 83 |
- #01 IOW |
|
| 84 |
- RTS |
|
| 85 |
- |
|
| 86 |
-@putpixel |
|
| 87 |
- IOW2 ( y short ) |
|
| 88 |
- IOW2 ( x short ) |
|
| 89 |
- ,color LDR IOW ( color byte ) |
|
| 90 |
- #00 IOW ( redraw byte ) |
|
| 91 |
- RTS |
|
| 92 |
- |
|
| 93 |
-|c000 @FRAME BRK |
|
| 94 |
-|d000 @ERROR BRK |
|
| 95 |
-|FFF0 [ f2ac 35bb 2b53 ] ( palette ) |
|
| 96 |
-|FFFA .RESET .FRAME .ERROR |
| 97 | 0 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,79 @@ |
| 1 |
+( draw routines ) |
|
| 2 |
+ |
|
| 3 |
+:dev/r fff8 ( std read port ) |
|
| 4 |
+:dev/w fff9 ( std write port ) |
|
| 5 |
+ |
|
| 6 |
+;x_ 2 ;y_ 2 ;x 2 ;y 2 ;w 2 ;h 2 ;color 1 |
|
| 7 |
+ |
|
| 8 |
+|0100 @RESET |
|
| 9 |
+ |
|
| 10 |
+ #01 =dev/w ( set dev/write to screen ) |
|
| 11 |
+ |
|
| 12 |
+ #01 ,color STR |
|
| 13 |
+ ( fill rect x y w h ) |
|
| 14 |
+ #0020 #0020 #0060 #0040 ,fillrect JSR |
|
| 15 |
+ |
|
| 16 |
+ #02 ,color STR |
|
| 17 |
+ ( fill rect x y w h ) |
|
| 18 |
+ #0030 #0030 #0040 #0060 ,fillrect JSR |
|
| 19 |
+ |
|
| 20 |
+ #03 ,color STR |
|
| 21 |
+ ( fill rect x y w h ) |
|
| 22 |
+ #0040 #0040 #0060 #0040 ,fillrect JSR |
|
| 23 |
+ |
|
| 24 |
+ #01 ,color STR |
|
| 25 |
+ ( fill rect x y w h ) |
|
| 26 |
+ #00a0 #0010 #0020 #0020 ,fillrect JSR |
|
| 27 |
+ |
|
| 28 |
+ #02 ,color STR |
|
| 29 |
+ ( fill rect x y w h ) |
|
| 30 |
+ #00b0 #0040 #0020 #0020 ,linerect JSR |
|
| 31 |
+ |
|
| 32 |
+ #03 ,color STR |
|
| 33 |
+ ( fill rect x y w h ) |
|
| 34 |
+ #0058 #0028 #0050 #0050 ,linerect JSR |
|
| 35 |
+ |
|
| 36 |
+ #01 ,color STR |
|
| 37 |
+ ( fill rect x y w h ) |
|
| 38 |
+ #0028 #0038 #0050 #0030 ,linerect JSR |
|
| 39 |
+ |
|
| 40 |
+BRK |
|
| 41 |
+ |
|
| 42 |
+@fillrect |
|
| 43 |
+ =h =w =y =x |
|
| 44 |
+ ~x =x_ ~y =y_ |
|
| 45 |
+ @fillrectrow |
|
| 46 |
+ ~x =x_ |
|
| 47 |
+ @fillrectcol |
|
| 48 |
+ ( draw ) ~x_ ~y_ ,putpixel JSR |
|
| 49 |
+ ~x_ #0001 ADD2 =x_ |
|
| 50 |
+ ~x_ ~w ~x ADD2 LTH2 ,fillrectcol ROT JMP? POP2 |
|
| 51 |
+ ~y_ #0001 ADD2 =y_ |
|
| 52 |
+ ~y_ ~h ~y ADD2 LTH2 ,fillrectrow ROT JMP? POP2 |
|
| 53 |
+ RTS |
|
| 54 |
+ |
|
| 55 |
+@linerect |
|
| 56 |
+ =h =w =y =x |
|
| 57 |
+ ~x =x_ ~y =y_ |
|
| 58 |
+ @linerectcol |
|
| 59 |
+ ( draw ) ~x ~y_ ,putpixel JSR |
|
| 60 |
+ ( draw ) ~x ~w ADD2 ~y_ ,putpixel JSR |
|
| 61 |
+ ~y_ #0001 ADD2 =y_ |
|
| 62 |
+ ~y_ ~h ~y ADD2 LTH2 ,linerectcol ROT JMP? POP2 |
|
| 63 |
+ @linerectrow |
|
| 64 |
+ ( draw ) ~x_ ~y ,putpixel JSR |
|
| 65 |
+ ( draw ) ~x_ ~y ~h ADD2 ,putpixel JSR |
|
| 66 |
+ ~x_ #0001 ADD2 =x_ |
|
| 67 |
+ ~x_ ~w ~x ADD2 #0001 ADD2 LTH2 ,linerectrow ROT JMP? POP2 |
|
| 68 |
+ RTS |
|
| 69 |
+ |
|
| 70 |
+@putpixel |
|
| 71 |
+ IOW2 ( y short ) |
|
| 72 |
+ IOW2 ( x short ) |
|
| 73 |
+ ,color LDR IOW ( color byte ) |
|
| 74 |
+ RTS |
|
| 75 |
+ |
|
| 76 |
+|c000 @FRAME BRK |
|
| 77 |
+|d000 @ERROR BRK |
|
| 78 |
+|FFF0 [ f2ac 35bb 2b53 ] ( palette ) |
|
| 79 |
+|FFFA .RESET .FRAME .ERROR ( vectors ) |
|
| 0 | 80 |
\ No newline at end of file |