| 1 | 1 |
deleted file mode 100644 |
| ... | ... |
@@ -1,131 +0,0 @@ |
| 1 |
-( |
|
| 2 |
- converts a binary file to a series of shorts as strings |
|
| 3 |
- usage: uxncli binstr.rom file.bin ) |
|
| 4 |
- |
|
| 5 |
-%+ { ADD } %- { SUB } %* { MUL } %/ { DIV }
|
|
| 6 |
-%< { LTH } %> { GTH } %= { EQU } %! { NEQ }
|
|
| 7 |
-%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 }
|
|
| 8 |
-%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 }
|
|
| 9 |
- |
|
| 10 |
-%HALT { #010f DEO }
|
|
| 11 |
- |
|
| 12 |
-( devices ) |
|
| 13 |
- |
|
| 14 |
-|10 @Console &vector $2 &read $1 &pad $5 &write $1 &error $1 |
|
| 15 |
-|a0 @File &vector $2 &success $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2 |
|
| 16 |
- |
|
| 17 |
-( variables ) |
|
| 18 |
- |
|
| 19 |
-|0000 |
|
| 20 |
- |
|
| 21 |
- @length $2 |
|
| 22 |
- @src $30 |
|
| 23 |
- |
|
| 24 |
-|0100 ( -> ) |
|
| 25 |
- |
|
| 26 |
- ;on-console .Console/vector DEO2 |
|
| 27 |
- |
|
| 28 |
-BRK |
|
| 29 |
- |
|
| 30 |
-@on-console ( -> ) |
|
| 31 |
- |
|
| 32 |
- ( starting ) |
|
| 33 |
- [ LIT &trap $1 ] ,&started JCN |
|
| 34 |
- ;src #0020 ;mclr JSR2 |
|
| 35 |
- #01 ,&trap STR |
|
| 36 |
- &started |
|
| 37 |
- ( append ) |
|
| 38 |
- .Console/read DEI #20 < ,&validate JCN |
|
| 39 |
- ;src ;slen JSR2 #0030 == ,&validate JCN |
|
| 40 |
- ;src .Console/read DEI ;sput JSR2 BRK |
|
| 41 |
- &validate |
|
| 42 |
- ,parse JSR |
|
| 43 |
- #00 ,&trap STR |
|
| 44 |
- |
|
| 45 |
-BRK |
|
| 46 |
- |
|
| 47 |
-@parse ( -- ) |
|
| 48 |
- |
|
| 49 |
- ( load ) |
|
| 50 |
- ;src .File/name DEO2 |
|
| 51 |
- #fff0 ;data -- .File/length DEO2 |
|
| 52 |
- ;data .File/read DEO2 |
|
| 53 |
- ( save length ) |
|
| 54 |
- .File/success DEI2 .length STZ2 |
|
| 55 |
- ( export path ) |
|
| 56 |
- ;tal-ext ;src ;scat JSR2 |
|
| 57 |
- ( save ) |
|
| 58 |
- ;src .File/name DEO2 |
|
| 59 |
- #0001 .File/length DEO2 |
|
| 60 |
- ( stream ) |
|
| 61 |
- .length LDZ2 ;data ++ ;data |
|
| 62 |
- &loop |
|
| 63 |
- LDAk #04 SFT ,&parse JSR ,&write JSR |
|
| 64 |
- LDAk #0f AND ,&parse JSR ,&write JSR |
|
| 65 |
- ( formatting ) |
|
| 66 |
- DUP2 ;data -- |
|
| 67 |
- DUP2 #000f AND2 #000f !! ,&no-linebreak JCN |
|
| 68 |
- #0a ,&write JSR ,&end JMP &no-linebreak |
|
| 69 |
- DUP2 #0001 AND2 #0001 !! ,&no-space JCN |
|
| 70 |
- #20 ,&write JSR &no-space |
|
| 71 |
- &end |
|
| 72 |
- POP2 |
|
| 73 |
- INC2 GTH2k ,&loop JCN |
|
| 74 |
- POP2 POP2 |
|
| 75 |
- HALT |
|
| 76 |
- |
|
| 77 |
-JMP2r |
|
| 78 |
- &write ;&b STA ;&b .File/write DEO2 JMP2r |
|
| 79 |
- &parse DUP #09 GTH ,&above JCN #30 + JMP2r &above #57 + JMP2r |
|
| 80 |
- &b $1 |
|
| 81 |
- |
|
| 82 |
-@tal-ext ".tal $1 |
|
| 83 |
- |
|
| 84 |
-@scat ( src* dst* -- ) |
|
| 85 |
- |
|
| 86 |
- DUP2 ,slen JSR ++ ,scpy JSR |
|
| 87 |
- |
|
| 88 |
-JMP2r |
|
| 89 |
- |
|
| 90 |
-@slen ( str* -- len* ) |
|
| 91 |
- |
|
| 92 |
- DUP2 ,scap JSR SWP2 -- |
|
| 93 |
- |
|
| 94 |
-JMP2r |
|
| 95 |
- |
|
| 96 |
-@scap ( str* -- end* ) |
|
| 97 |
- |
|
| 98 |
- LDAk #00 ! JMP JMP2r |
|
| 99 |
- &while |
|
| 100 |
- INC2 LDAk ,&while JCN |
|
| 101 |
- |
|
| 102 |
-JMP2r |
|
| 103 |
- |
|
| 104 |
-@scpy ( src* dst* -- ) |
|
| 105 |
- |
|
| 106 |
- STH2 |
|
| 107 |
- &while |
|
| 108 |
- LDAk STH2kr STA INC2r |
|
| 109 |
- INC2 LDAk ,&while JCN |
|
| 110 |
- POP2 |
|
| 111 |
- #00 STH2r STA |
|
| 112 |
- |
|
| 113 |
-JMP2r |
|
| 114 |
- |
|
| 115 |
-@sput ( str* char -- ) |
|
| 116 |
- |
|
| 117 |
- ROT ROT ,scap JSR STA |
|
| 118 |
- |
|
| 119 |
-JMP2r |
|
| 120 |
- |
|
| 121 |
-@mclr ( addr* len* -- ) |
|
| 122 |
- |
|
| 123 |
- OVR2 ++ SWP2 |
|
| 124 |
- &loop |
|
| 125 |
- STH2k #00 STH2r STA |
|
| 126 |
- INC2 GTH2k ,&loop JCN |
|
| 127 |
- POP2 POP2 |
|
| 128 |
- |
|
| 129 |
-JMP2r |
|
| 130 |
- |
|
| 131 |
-@data |
| 132 | 0 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,66 @@ |
| 1 |
+( usage: uxncli hexdump.rom file.bin ) |
|
| 2 |
+ |
|
| 3 |
+|10 @Console &vector $2 &read $1 &pad $5 &write $1 &error $1 |
|
| 4 |
+|a0 @File &vector $2 &success $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2 |
|
| 5 |
+ |
|
| 6 |
+|0000 |
|
| 7 |
+ |
|
| 8 |
+ @src $40 |
|
| 9 |
+ |
|
| 10 |
+|0100 ( -> ) |
|
| 11 |
+ |
|
| 12 |
+ ;on-console .Console/vector DEO2 |
|
| 13 |
+ |
|
| 14 |
+BRK |
|
| 15 |
+ |
|
| 16 |
+@on-console ( -> ) |
|
| 17 |
+ |
|
| 18 |
+ ;src STH2 |
|
| 19 |
+ ( read input ) |
|
| 20 |
+ .Console/read DEI |
|
| 21 |
+ DUP #20 LTH OVR #7f GTH ORA ,&end JCN |
|
| 22 |
+ STH2kr ,slen JSR #003f GTH2 ,&end JCN |
|
| 23 |
+ STH2kr ,scap JSR STA POP2r BRK |
|
| 24 |
+ &end |
|
| 25 |
+ POP |
|
| 26 |
+ STH2r .File/name DEO2 |
|
| 27 |
+ #0002 .File/length DEO2 |
|
| 28 |
+ LIT2r 0000 |
|
| 29 |
+ &stream |
|
| 30 |
+ #0000 ,&buf STR2 |
|
| 31 |
+ ;&buf |
|
| 32 |
+ DUP2 .File/read DEO2 |
|
| 33 |
+ LDA2 ,print JSR #2018 DEO |
|
| 34 |
+ INC2r |
|
| 35 |
+ ( linebreak ) |
|
| 36 |
+ STH2kr #0007 AND2 ORA ,&no-lb JCN |
|
| 37 |
+ #0a18 DEO |
|
| 38 |
+ &no-lb |
|
| 39 |
+ .File/success DEI2 ORA ,&stream JCN |
|
| 40 |
+ POP2r |
|
| 41 |
+ #010f DEO |
|
| 42 |
+ |
|
| 43 |
+BRK |
|
| 44 |
+ &buf $2 |
|
| 45 |
+ |
|
| 46 |
+@slen ( str* -- len* ) |
|
| 47 |
+ |
|
| 48 |
+ DUP2 ,scap JSR SWP2 SUB2 |
|
| 49 |
+ |
|
| 50 |
+JMP2r |
|
| 51 |
+ |
|
| 52 |
+@scap ( str* -- end* ) |
|
| 53 |
+ |
|
| 54 |
+ LDAk #00 NEQ JMP JMP2r |
|
| 55 |
+ &while |
|
| 56 |
+ INC2 LDAk ,&while JCN |
|
| 57 |
+ |
|
| 58 |
+JMP2r |
|
| 59 |
+ |
|
| 60 |
+@print ( short* -- ) |
|
| 61 |
+ |
|
| 62 |
+ &short ( short* -- ) SWP ,&byte JSR |
|
| 63 |
+ &byte ( byte -- ) DUP #04 SFT ,&char JSR |
|
| 64 |
+ &char ( char -- ) #0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO |
|
| 65 |
+ |
|
| 66 |
+JMP2r |