mirror of
https://github.com/samsonjs/sectorlisp.git
synced 2026-04-27 14:57:41 +00:00
back to 386+ CPU
This commit is contained in:
parent
74b20f759e
commit
df9c01c46c
2 changed files with 4 additions and 3 deletions
Binary file not shown.
|
|
@ -38,7 +38,7 @@
|
||||||
.set boot, 0x7c00
|
.set boot, 0x7c00
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Currently requires i686+ in real mode
|
// Currently requires i386+ in real mode
|
||||||
// Can be easily tuned for the IBM PC XT
|
// Can be easily tuned for the IBM PC XT
|
||||||
// Quoth xed -r -isa-set -i sectorlisp.o
|
// Quoth xed -r -isa-set -i sectorlisp.o
|
||||||
|
|
||||||
|
|
@ -288,14 +288,13 @@ Apply: test $1,%al # Apply(fn:ax,x:si:a:dx):ax
|
||||||
.ifCar: cmp $ATOM_CAR,%al
|
.ifCar: cmp $ATOM_CAR,%al
|
||||||
je .retA
|
je .retA
|
||||||
.ifCdr: cmp $ATOM_CDR,%al
|
.ifCdr: cmp $ATOM_CDR,%al
|
||||||
cmove 2(%di),%ax # i686+
|
|
||||||
je .retD
|
je .retD
|
||||||
.ifAtom:cmp $ATOM_ATOM,%al
|
.ifAtom:cmp $ATOM_ATOM,%al
|
||||||
jne .ifCons
|
jne .ifCons
|
||||||
test ONE,%di
|
test ONE,%di
|
||||||
jnz .retT
|
jnz .retT
|
||||||
.retF: mov ONE,%ax # ax = NIL
|
.retF: mov ONE,%ax # ax = NIL
|
||||||
.retD: ret
|
ret
|
||||||
.dflt1: push %si # save x
|
.dflt1: push %si # save x
|
||||||
push %dx # save a
|
push %dx # save a
|
||||||
call Eval
|
call Eval
|
||||||
|
|
@ -304,6 +303,8 @@ Apply: test $1,%al # Apply(fn:ax,x:si:a:dx):ax
|
||||||
jmp Apply
|
jmp Apply
|
||||||
|
|
||||||
Cadr: mov 2(%di),%di # contents of decrement register
|
Cadr: mov 2(%di),%di # contents of decrement register
|
||||||
|
.byte 0x3C # mask next byte
|
||||||
|
.retD: scasw
|
||||||
.retA: mov (%di),%ax # contents of address register
|
.retA: mov (%di),%ax # contents of address register
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue