From 1dbcb9c9b56b94d3f728f619fe906171053aa7cb Mon Sep 17 00:00:00 2001 From: Hikaru Ikuta Date: Fri, 7 Jan 2022 09:57:40 +0900 Subject: [PATCH] Shave three bytes (469 bytes) --- sectorlisp.S | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/sectorlisp.S b/sectorlisp.S index 7103133..838b2ba 100644 --- a/sectorlisp.S +++ b/sectorlisp.S @@ -53,8 +53,8 @@ begin: mov $0x8000,%sp # uses higher address as stack pop %ss # errata exists but don't care mov $2,%bx main: mov %sp,%cx - call NewLine - mov %dx,%bp # Clear input lookahead cache + mov $'\r',%al + call PutChar call Read call Eval xchg %si,%ax @@ -94,10 +94,10 @@ GetToken: # GetToken():al, dl is g_look 4: mov $')',%al jmp PutChar -Print: test %si,%si - jz NewLine - xchg %di,%si - .byte 0x81 # sub ax, §call Putchar +Print: xchg %di,%si + test %di,%di + jnz PrintObject + mov $'\r',%al .PutObject: # .PutObject(c:al,x:si) .PrintString: # nul-terminated in si call PutChar # preserves si @@ -110,9 +110,6 @@ PrintObject: # PrintObject(x:si) jnz .PrintString # -> ret ret -NewLine:mov $'\r',%al - jmp PutChar - Read: mov %bp,%dx # Get cached character call GetToken GetObject: # called just after GetToken