From 645e1299320f86070176f6f3196df660378d8ca9 Mon Sep 17 00:00:00 2001 From: Devine Lu Linvega Date: Fri, 21 Apr 2023 11:48:32 -0700 Subject: [PATCH] Output to file --- build.sh | 2 +- etc/hello-dis.tal | 34 -------------------------- src/uxnrea.tal | 61 +++++++++++++++++++++++++++++++---------------- 3 files changed, 42 insertions(+), 55 deletions(-) delete mode 100644 etc/hello-dis.tal diff --git a/build.sh b/build.sh index 647c506..3800a38 100755 --- a/build.sh +++ b/build.sh @@ -21,7 +21,7 @@ case "$*" in *--save*) cp $dst $roms_dir ;; esac # hello.tal -> hello.rom -> hello.tal $asm etc/hello.tal bin/hello.rom -$emu $dst bin/hello.rom bin/hello.dis.tal # > etc/hello-dis.tal +$emu $dst bin/hello.rom bin/hello.dis.tal # $asm etc/hello-dis.tal bin/hello.rom # $emu $dst bin/hello.rom bin/hello.dis.tal > etc/hello-dis.tal diff --git a/etc/hello-dis.tal b/etc/hello-dis.tal deleted file mode 100644 index 3c844d3..0000000 --- a/etc/hello-dis.tal +++ /dev/null @@ -1,34 +0,0 @@ -;hello-word-txt print-text BRK - -@print-text - LDAk #00 EQU ?&skip - &while - LDAk #18 DEO - INC2 LDAk ?&while - &skip - POP2 JMP2r - -@hello-word-txt - "Hello 20 "World! 00 - -@somefile-bin - [ 7364 616a 7364 6a68 6173 6400 ] - -@print - &short - SWP print/byte - &byte - DUP #04 SFT print/char - &char - #0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO - JMP2r - -@dict - &value1-txt - "hey 00 - &value2-txt - "foo 00 - &value3-txt - "bar - - diff --git a/src/uxnrea.tal b/src/uxnrea.tal index 4e3bc19..f275dc4 100644 --- a/src/uxnrea.tal +++ b/src/uxnrea.tal @@ -195,9 +195,9 @@ JMP2r &do-lb ( c -- ) POP emit-lb - #0918 DEO + #09 emit/force .nested LDZ #00 EQU ?&no-pad - #0918 DEO + #09 emit/force &no-pad JMP2r @@ -235,7 +235,7 @@ JMP2r POP LIT "# emit - read-byte phex/b + read-byte emit-byte #20 emit JMP2r @@ -248,7 +248,7 @@ JMP2r LIT "; emit print-ref #20 emit JMP2r &no-label LIT "# emit - SWP phex #20 emit + SWP emit-short #20 emit JMP2r @@ -273,7 +273,7 @@ JMP2r &no-rune DUP is-ascii ?&ascii #20 emit - DUP phex/b #20 emit ,&last STR JMP2r + DUP emit-byte #20 emit ,&last STR JMP2r &ascii DUP emit @@ -288,7 +288,7 @@ JMP2r &s ;&b .File1/read DEO2 .File1/success DEI2 ORA ?&ok !&end &ok - [ LIT &b $1 ] phex/b + [ LIT &b $1 ] emit-byte STHkr #01 AND #00 EQU ?&no-space #20 emit &no-space @@ -306,13 +306,13 @@ JMP2r @print-label ( addr* -- ) - #0a emit-once #0a18 DEO + #0a emit-once #09 emit/force LIT "@ emit - INC2k INC2 pstr + INC2k INC2 emit-str .addr LDZ2 find-definition DUP2 #ffff EQU2 ?&no-def #20 emit - INC2k INC2 pstr + INC2k INC2 emit-str &no-def POP2 .addr LDZ2 find-sublabel #ffff NEQ2 ?&no-lb @@ -325,9 +325,9 @@ JMP2r @print-sublabel ( addr* -- ) - #0a emit-once #0918 DEO + #0a emit-once #09 emit/force LIT "& emit - INC2k INC2 LIT "/ cndx INC2 pstr emit-lb + INC2k INC2 LIT "/ cndx INC2 emit-str emit-lb #09 emit #09 emit handle-style @@ -335,7 +335,7 @@ JMP2r @print-absref ( addr* -- ) - find-anylabel INC2 INC2 pstr + find-anylabel INC2 INC2 emit-str JMP2r @@ -344,9 +344,9 @@ JMP2r find-anylabel INC2 INC2 DUP2 LIT "/ cndx #ffff EQU2 ?&no-sublabel DUP2 .scope LDZ2 INC2 INC2 SWP2 sseg #00 EQU ?&no-sublabel - LIT "/ cndx INC2 LIT "& emit pstr JMP2r + LIT "/ cndx INC2 LIT "& emit emit-str JMP2r &no-sublabel - pstr + emit-str JMP2r @@ -356,7 +356,7 @@ JMP2r DUP #40 EQU ?&jmi DUP #60 EQU ?&jsi DUP #00 EQU ?&brk - #00 OVR #1f AND #20 SFT2 ;opcodes ADD2 pstr + #00 OVR #1f AND #20 SFT2 ;opcodes ADD2 emit-str DUP #20 AND #00 EQU ?&no-2 LIT "2 emit &no-2 DUP #1f AND #00 EQU ?&no-k DUP #80 AND #00 EQU ?&no-k LIT "k emit &no-k @@ -364,10 +364,10 @@ JMP2r POP JMP2r - &brk POP ;opcodes/brk !pstr - &jmi POP ;opcodes/jmi !pstr - &jci POP ;opcodes/jci !pstr - &jsi POP ;opcodes/jsi !pstr + &brk POP ;opcodes/brk !emit-str + &jmi POP ;opcodes/jmi !emit-str + &jci POP ;opcodes/jci !emit-str + &jsi POP ;opcodes/jsi !emit-str @emit-lb ( -- ) @@ -386,12 +386,33 @@ JMP2r JMP2r +@emit-str ( str* -- ) + + LDAk ?&w POP2 JMP2r + &w + LDAk emit + INC2 LDAk ?&w + POP2 + +JMP2r + +@emit-short ( short* -- ) + SWP emit-byte +@emit-byte ( byte -- ) + DUP #04 SFT emit-hex +@emit-hex ( char -- ) + #0f AND DUP #09 GTH #27 MUL ADD #30 ADD emit +JMP2r + @emit ( byte -- ) DUP .last STZ - #18 DEO + &force + ,&b STR + ;&b .File2/write DEO2 JMP2r + &b $1 ( @|utils ) -- 2.45.2