diff --git a/BIN/T.COM b/BIN/T.COM index 84cda6c..11571cc 100755 Binary files a/BIN/T.COM and b/BIN/T.COM differ diff --git a/README.TXT b/README.TXT index 0846ec4..59e99b3 100644 --- a/README.TXT +++ b/README.TXT @@ -19,7 +19,7 @@ version 9 of the T3X programming language (T3X9). It cross- compiles in 0.1s on modern hardware and self-compiles in about 20 seconds on an emulated 50MHz PC/XT. it is packaged in a - single 25KB COM file and needs no additional programs or + single 29KB COM file and needs no additional programs or libraries. It compiles directly from T3X to 8086 machine code and should work on any x86-based DOS machine. Of course T3X/86 can be set up as a cross compiler to DOS on any system diff --git a/SAMPLES/HELLO.COM b/SAMPLES/HELLO.COM index b7f4dca..7db6631 100755 Binary files a/SAMPLES/HELLO.COM and b/SAMPLES/HELLO.COM differ diff --git a/SRC/T.T b/SRC/T.T index 483b210..166cf7b 100644 --- a/SRC/T.T +++ b/SRC/T.T @@ -1833,8 +1833,7 @@ init(p) do var i, b::10; [ CG_DELFRAME, "5d" ], ! pop bp [ CG_RET, "c3" ], ! ret [ CG_RETF, "cb" ], ! retf - [ CG_IRET, "83f8007403f9eb01f8cf"], ! cmp ax,0;jz +3;stc - ! jmps +1;clc;iret + [ CG_IRET, "cf" ], ! iret [ CG_HALT, "b8004ccd21" ], ! mov ax,4c00h; int 21H [ CG_NEG, "f7d8" ], ! neg ax [ CG_INV, "f7d0" ], ! not ax @@ -1875,7 +1874,12 @@ init(p) do var i, b::10; ! push ax,bx,cx,dx,ds,si,es ! push di,ss;mov ax,sp; ! inc ax;inc ax;push ax - [ CG_POPA,"5b58fa8ed089dcfb5f075e1f5a595b58"], + [ CG_POPA, +"8b5e06539d83f8007403f9eb01f89c5b895e065b58fa8ed089dcfb5f075e1f5a595b58"], + ! mov bx,[bp+6];push bx;popf + ! cmp ax,0;jz +3;stc;jmps+1 + ! clc;pushf;pop bx; + ! mov [bp+6],bx ! pop ax,bx;cli;mov ss,ax ! mov sp,bx;sti;pop di,es ! pop si,ds,dx,cx,bx,ax diff --git a/SRC/TSOURCE.T b/SRC/TSOURCE.T index 562c47a..3f8c5db 100644 --- a/SRC/TSOURCE.T +++ b/SRC/TSOURCE.T @@ -1700,8 +1700,7 @@ init(p) do var i, b::10; [ CG_DELFRAME, "5d" ], ! pop bp [ CG_RET, "c3" ], ! ret [ CG_RETF, "cb" ], ! retf - [ CG_IRET, "83f8007403f9eb01f8cf"], ! cmp ax,0;jz +3;stc - ! jmps +1;clc;iret + [ CG_IRET, "cf" ], ! iret [ CG_HALT, "b8004ccd21" ], ! mov ax,4c00h; int 21H [ CG_NEG, "f7d8" ], ! neg ax [ CG_INV, "f7d0" ], ! not ax @@ -1742,7 +1741,12 @@ init(p) do var i, b::10; ! push ax,bx,cx,dx,ds,si,es ! push di,ss;mov ax,sp; ! inc ax;inc ax;push ax - [ CG_POPA,"5b58fa8ed089dcfb5f075e1f5a595b58"], + [ CG_POPA, +"8b5e06539d83f8007403f9eb01f89c5b895e065b58fa8ed089dcfb5f075e1f5a595b58"], + ! mov bx,[bp+6];push bx;popf + ! cmp ax,0;jz +3;stc;jmps+1 + ! clc;pushf;pop bx; + ! mov [bp+6],bx ! pop ax,bx;cli;mov ss,ax ! mov sp,bx;sti;pop di,es ! pop si,ds,dx,cx,bx,ax