Compare commits
4 Commits
1871c46614
...
4e18fafe46
Author | SHA1 | Date | |
---|---|---|---|
|
4e18fafe46 | ||
|
210b833c71 | ||
|
749fdf1b18 | ||
|
405444d630 |
2
blk/001
2
blk/001
@ -9,7 +9,7 @@ MASTER INDEX
|
||||
490 TRS-80 Recipe 520 Fonts
|
||||
550 TI-84+ Recipe 580 RC2014 Recipe
|
||||
620 Sega Master System Recipe
|
||||
650 AVR assembler
|
||||
650 AVR assembler 730 8086 assembler
|
||||
|
||||
|
||||
|
||||
|
16
blk/730
Normal file
16
blk/730
Normal file
@ -0,0 +1,16 @@
|
||||
8086 assembler
|
||||
|
||||
Work in progress. Load with "750 LOAD".
|
||||
|
||||
Test code at B731
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
12
blk/731
Normal file
12
blk/731
Normal file
@ -0,0 +1,12 @@
|
||||
H@ ORG !
|
||||
JMP8, L1 FWR8 ( start )
|
||||
L2 BSET ( msg ) ," Hello, World!" 0 A,
|
||||
L1 FSET ( start )
|
||||
CLI, AH 0 MOVri, AL 2 MOVri, 0x10 INT,
|
||||
SI L2 @ ( msg ) MOVrI, AH 0x0e MOVri,
|
||||
L1 BSET ( loop ) LODSB, AL AL ORrr,
|
||||
JZ, L2 FWR8 ( next ) 0x10 INT,
|
||||
JMP8, L1 ( loop ) BWR
|
||||
L2 FSET ( next ) AH 0 MOVri, 0x16 INT,
|
||||
AH 0x0e MOVri, 0x16 INT, HLT,
|
||||
PC ORG @ DUMP
|
6
blk/751
Normal file
6
blk/751
Normal file
@ -0,0 +1,6 @@
|
||||
VARIABLE ORG
|
||||
VARIABLE L1 VARIABLE L2 VARIABLE L3 VARIABLE L4
|
||||
: AL 0 ; : CL 1 ; : DL 2 ; : BL 3 ;
|
||||
: AH 4 ; : CH 5 ; : DH 6 ; : BH 7 ;
|
||||
: AX 8 ; : CX 9 ; : DX 10 ; : BX 11 ;
|
||||
: SP 12 ; : BP 13 ; : SI 14 ; : DI 15 ;
|
8
blk/752
Normal file
8
blk/752
Normal file
@ -0,0 +1,8 @@
|
||||
( Splits word into msb/lsb, lsb being on TOS )
|
||||
: SPLITB
|
||||
256 /MOD SWAP
|
||||
;
|
||||
: PC H@ ORG @ - ;
|
||||
: A, C, ;
|
||||
( dst8 src8 -- modrm )
|
||||
: MODRMrr 0x7 AND 3 LSHIFT SWAP 0x7 AND OR 0xc0 OR ;
|
7
blk/753
Normal file
7
blk/753
Normal file
@ -0,0 +1,7 @@
|
||||
: MOVri, SWAP 0xb0 OR A, A, ;
|
||||
: MOVrI, SWAP 0xb0 OR A, SPLITB A, A, ;
|
||||
: INT, 0xcd A, A, ;
|
||||
( no argument, flow ops are special )
|
||||
: JMP8, 0xeb A, ; : JMP16, 0xe9 A, ; : JZ, 0x74 A, ;
|
||||
: LODSB, 0xac A, ; : CLI, 0xfa A, ; : HLT, 0xf4 A, ;
|
||||
: ORrr, 0x08 A, MODRMrr A, ;
|
16
blk/754
Normal file
16
blk/754
Normal file
@ -0,0 +1,16 @@
|
||||
( Place BEGIN, where you want to jump back and AGAIN after
|
||||
a relative jump operator. Just like BSET and BWR. )
|
||||
: BEGIN, PC ;
|
||||
: BSET PC SWAP ! ;
|
||||
( same as BSET, but we need to write a placeholder )
|
||||
( : FJR, PC 0 A, ;
|
||||
: IFZ, JRNZ, FJR, ;
|
||||
: IFNZ, JRZ, FJR, ;
|
||||
: IFC, JRNC, FJR, ;
|
||||
: IFNC, JRC, FJR, ; )
|
||||
: THEN,
|
||||
DUP PC ( l l pc )
|
||||
-^ 1- ( l off )
|
||||
( warning: l is a PC offset, not a mem addr! )
|
||||
SWAP ORG @ + ( BIN( @ - ) ( off addr )
|
||||
C! ;
|
Loading…
Reference in New Issue
Block a user