diff --git a/blk/811 b/blk/811 index 033d0c5..1ff0d35 100644 --- a/blk/811 +++ b/blk/811 @@ -4,7 +4,7 @@ ORG @ 0x25 + HERE ! ( bypass BPB ) L1 FSET ( start ) CLI, CLD, AX 0x800 MOVxI, DS AX MOVsx, ES AX MOVsx, SS AX MOVsx, STI, -AH 2 MOVri, DX 0 MOVxI, CH 0 MOVri, CL 2 MOVri, AL 1 MOVri, -BX 0 MOVxI, 0x13 INT, ( read 2nd sector of boot floppy ) +AH 2 MOVri, DX 0 MOVxI, CH 0 MOVri, CL 2 MOVri, AL 2 MOVri, +BX 0 MOVxI, 0x13 INT, ( read sectors 2-3 of boot floppy ) 0x800 0 JMPf, ORG @ 0x1fe + HERE ! 0x55 A, 0xaa A, diff --git a/blk/820 b/blk/820 index acb404c..b09d1ac 100644 --- a/blk/820 +++ b/blk/820 @@ -1,4 +1,6 @@ ( native words ) +CODE EXECUTE + DI POPx, JMPs, lblexec @ RPCs, CODE >R BP INCx, BP INCx, [BP] 0 POP[w]+, ;CODE NOP, NOP, NOP, @@ -8,6 +10,7 @@ CODE R> CODE 2R> [BP] -2 PUSH[w]+, [BP] 0 PUSH[w]+, BP 4 SUBxi, ;CODE -CODE I [BP] 0 PUSH[w]+, ;CODE -CODE 1+ DI SP MOVxx, [DI] INC[w], ;CODE -CODE 1- DI SP MOVxx, [DI] DEC[w], ;CODE +CODE ROT ( a b c -- b c a ) + CX POPx, BX POPx, AX POPx, + BX PUSHx, CX PUSHx, AX PUSHx, +;CODE diff --git a/blk/821 b/blk/821 index 7b1f0a9..2b0901c 100644 --- a/blk/821 +++ b/blk/821 @@ -1,6 +1,12 @@ -CODE BYE BEGIN, JMPs, AGAIN, ;CODE -CODE EMIT - AX POPx, AH 0x0e MOVri, ( print char ) 0x10 INT, -;CODE CODE 0 AX AX XORxx, AX PUSHx, ;CODE -: BOOT 'Z' 1+ 'A' DO I EMIT LOOP BYE ; - +CODE DUP AX POPx, AX PUSHx, AX PUSHx, ;CODE +CODE ?DUP AX POPx, AX AX ORxx, IFNZ, AX PUSHx, THEN, ;CODE +CODE DROP AX POPx, ;CODE +CODE SWAP AX POPx, BX POPx, AX PUSHx, BX PUSHx, ;CODE +CODE OVER ( a b -- a b a ) + DI SP MOVxx, AX [DI] 2 MOVx[]+, AX PUSHx, +;CODE +CODE 0 AX AX XORxx, AX PUSHx, ;CODE +CODE 1 AX 1 MOVxI, AX PUSHx, ;CODE +CODE I [BP] 0 PUSH[w]+, ;CODE +CODE 1+ DI SP MOVxx, [DI] INC[w], ;CODE +CODE 1- DI SP MOVxx, [DI] DEC[w], ;CODE diff --git a/blk/822 b/blk/822 new file mode 100644 index 0000000..5b1e035 --- /dev/null +++ b/blk/822 @@ -0,0 +1,6 @@ +CODE BYE BEGIN, JMPs, AGAIN, ;CODE +CODE EMIT + AX POPx, AH 0x0e MOVri, ( print char ) 0x10 INT, +;CODE +: FOO 'A' 'B' 'C' OVER EMIT EMIT EMIT ; +: BOOT ['] FOO EXECUTE BYE ; diff --git a/recipes/pcat/xcomp.fs b/recipes/pcat/xcomp.fs index 88c286d..420dd40 100644 --- a/recipes/pcat/xcomp.fs +++ b/recipes/pcat/xcomp.fs @@ -3,7 +3,7 @@ 750 LOAD ( 8086 asm ) 262 LOAD ( xcomp ) 270 LOAD ( xcomp overrides ) -812 821 LOADR +812 822 LOADR (entry) _ ( Update LATEST ) PC ORG @ 8 + !