Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
``
( DOS OBJECT READER )
BASE @ HEX
0 VARIABLE BLOCK# 0 VARIABLE BYTES 0 VARIABLE BYTPTR
0 VARIABLE ADDRSS 0 VARIABLE #BYTES
: GETCOUNT 7F + C@ 7F AND BYTES ! 0 BYTPTR ! ;
: FNEXTBLK 7D + DUP C@ 100 * SWAP 1+ C@ + 3FF AND 1 - ;
: LINKBLOCK FNEXTBLK
DUP BLOCK# ! DUP 0 > IF BLOCK THEN ;
: BLK-CK BYTES @ 0= IF BLOCK# @ BLOCK LINKBLOCK
GETCOUNT THEN ;
: NEXTBYTE BLK-CK -1 BYTES +! BYTPTR @ 1 BYTPTR +!
BLOCK# @ BLOCK + C@ ;
: NEXTWORD NEXTBYTE NEXTBYTE 100 * + ;
: ADRCALC NEXTWORD DUP ADDRSS ! NEXTWORD SWAP - 1+ #BYTES ! ;
: BLOCKSET DUP BLOCK# ! BLOCK GETCOUNT ;
: LOADOBJ BLOCKSET NEXTWORD 1+ IF CR ." Not an Object file"
CR QUIT THEN
BEGIN
ADRCALC
#BYTES @ 0 DO NEXTBYTE ADDRSS @ C! 1 ADDRSS +! LOOP
BLOCK# @ BLOCK FNEXTBLK
1+ 0= BYTES @ 0= AND
END ;
BASE ! ;S
``
10 *=$3000
20 LDA #0
30 STA $02C6
40 .END
ASM
BUG
T3000
1+ IF CR ." Not an Object file"
n LOADOBJ
Od 1 do 5 z 5