diff --git a/bin/sectorlisp.bin b/bin/sectorlisp.bin index 733ea50..c276d4b 100755 Binary files a/bin/sectorlisp.bin and b/bin/sectorlisp.bin differ diff --git a/sectorlisp.S b/sectorlisp.S index b698959..c027d01 100644 --- a/sectorlisp.S +++ b/sectorlisp.S @@ -38,7 +38,7 @@ .set boot, 0x7c00 //////////////////////////////////////////////////////////////////////////////// -// Currently requires i686+ in real mode +// Currently requires i386+ in real mode // Can be easily tuned for the IBM PC XT // 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 je .retA .ifCdr: cmp $ATOM_CDR,%al - cmove 2(%di),%ax # i686+ je .retD .ifAtom:cmp $ATOM_ATOM,%al jne .ifCons test ONE,%di jnz .retT .retF: mov ONE,%ax # ax = NIL -.retD: ret + ret .dflt1: push %si # save x push %dx # save a call Eval @@ -304,6 +303,8 @@ Apply: test $1,%al # Apply(fn:ax,x:si:a:dx):ax jmp Apply Cadr: mov 2(%di),%di # contents of decrement register + .byte 0x3C # mask next byte +.retD: scasw .retA: mov (%di),%ax # contents of address register ret