diff --git a/cli/uxndis/makefile b/cli/uxndis/makefile index 9c08e29..21e8bd2 100644 --- a/cli/uxndis/makefile +++ b/cli/uxndis/makefile @@ -21,7 +21,7 @@ install: all uninstall: @ rm -f ${DIR}/${ID}.rom archive: all - @ cp src/${ID}.tal ../oscean/etc/${ID}.tal.txt + @ cp src/${ID}.tal ../../../oscean/etc/${ID}.tal.txt .PHONY: all clean lint run install uninstall archive diff --git a/cli/uxndis/src/uxndis.tal b/cli/uxndis/src/uxndis.tal index d0fddc4..b8b5bd2 100644 --- a/cli/uxndis/src/uxndis.tal +++ b/cli/uxndis/src/uxndis.tal @@ -57,6 +57,7 @@ @ ( addr* -- addr* ) ( ) DUP2 ;rom SUB2 ( ) DUP2 #0100 ADD2 find-sym DUP2 #ffff EQU2 ?{ + #0a18 DEO [ LIT2 "@ 18 ] DEO DUP2 #0a18 DEO } @@ -92,7 +93,6 @@ JMP2r @ ( addr* -- addr* ) - ( | print hex ) LDAk ?{ ;opcodes/brk ! } LDAk #9f AND ?{ @@ -104,41 +104,39 @@ LDAk DUP #80 NEQ SWP #c0 NEQ AND ?{ ;opcodes - /no-keep + LDAk #80 EOR #2018 DEO INC2 LDAk !/b } LDAk DUP #a0 NEQ SWP #e0 NEQ AND ?{ ;opcodes - /no-keep + LDAk #80 EOR #2018 DEO - INC2 LDA2k + INC2 LDA2k find-sym DUP2 #ffff EQU2 ?{ + INC2 JMP2r } + POP2 LDA2k INC2 JMP2r } LDAk #1f AND #00 SWP #20 SFT2 ;opcodes ADD2 + LDAk ( >> ) -@ ( addr* -- ) - LDAk #80 AND #00 EQU ?{ - [ LIT2 "k 18 ] DEO } - &no-keep ( addr* -- ) - LDAk #20 AND #00 EQU ?{ +@ ( byte -- ) + DUP #20 AND #00 EQU ?{ [ LIT2 "2 18 ] DEO } - LDAk #40 AND #00 EQU ?{ + DUP #80 AND #00 EQU ?{ + [ LIT2 "k 18 ] DEO } + #40 AND #00 EQU ?{ [ LIT2 "r 18 ] DEO } JMP2r @ ( addr* value* -- ) ( | find sym ) SWP2 ;rom SUB2 #0103 ADD2 OVR2 ADD2 find-sym - ( ) DUP2 #ffff NEQ2 ? - POP2 - ( | resume ) - OVR #80 AND ? - [ LIT2 "+ 18 ] DEO - ! - -@ ( addr* sym* -- ) + ( ) INC2k ORA ?{ + POP2 OVR #80 AND ? + [ LIT2 "+ 18 ] DEO + ! } NIP2 ! @ ( count -- ) @@ -201,7 +199,7 @@ ( name ) "Uxndis 0a ( desc ) "Uxntal 20 "Disassembler 0a ( auth ) "By 20 "Devine 20 "Lu 20 "Linvega 0a - ( date ) "10 20 "Jun 20 "2024 $2 + ( date ) "11 20 "Jun 20 "2024 $2 @opcodes [ "LIT 00 "INC 00 "POP 00 "NIP 00