|
@@ -116,11 +116,9 @@ Print: test %si,%si
|
|
NewLine:mov $'\r',%al
|
|
NewLine:mov $'\r',%al
|
|
jmp PutChar
|
|
jmp PutChar
|
|
|
|
|
|
-Read: push %dx
|
|
|
|
- mov %fs,%dx # Get cached character
|
|
|
|
|
|
+Read: mov %fs,%dx # Get cached character
|
|
call GetToken
|
|
call GetToken
|
|
call GetObject
|
|
call GetObject
|
|
- pop %dx
|
|
|
|
ret
|
|
ret
|
|
|
|
|
|
GetObject: # called just after GetToken
|
|
GetObject: # called just after GetToken
|
|
@@ -232,6 +230,8 @@ Pairlis:test %di,%di # Pairlis(x:di,y:si,a:dx):dx
|
|
je .ifAtom
|
|
je .ifAtom
|
|
cmp $kPrint,%al
|
|
cmp $kPrint,%al
|
|
je Print
|
|
je Print
|
|
|
|
+ cmp $kRead,%al
|
|
|
|
+ je Read
|
|
cmp $kCons,%al
|
|
cmp $kCons,%al
|
|
jae .ifCons
|
|
jae .ifCons
|
|
.ifCar: cmp $kCar,%al
|
|
.ifCar: cmp $kCar,%al
|
|
@@ -279,8 +279,6 @@ Eval: test %ax,%ax # Eval(e:ax,a:dx):ax
|
|
jns Assoc # lookup val if atom
|
|
jns Assoc # lookup val if atom
|
|
xchg %ax,%si # di = e
|
|
xchg %ax,%si # di = e
|
|
lodsw # ax = Car(e)
|
|
lodsw # ax = Car(e)
|
|
- cmp $kRead,%ax
|
|
|
|
- je Read
|
|
|
|
cmp $kQuote,%ax # maybe CONS
|
|
cmp $kQuote,%ax # maybe CONS
|
|
mov (%si),%di # di = Cdr(e)
|
|
mov (%si),%di # di = Cdr(e)
|
|
je Car
|
|
je Car
|