91f79d1131
The idea is to consider assemblers as "runtime" apps instead of placing them in the "bootstrap" section of the blocks. These apps will be used for much more than bootstrapping. Moved its documentation to doc/asm.txt and made its code blocks more compact.
17 lines
561 B
Plaintext
17 lines
561 B
Plaintext
( Splits word into msb/lsb, lsb being on TOS )
|
|
: SPLITB
|
|
256 /MOD SWAP
|
|
;
|
|
: PC H@ ORG @ - BIN( @ + ;
|
|
( A, spits an assembled byte, A,, spits an assembled word
|
|
Both increase PC. To debug, change C, to .X )
|
|
: A, C, ; : A,, SPLITB A, A, ;
|
|
: <<3 3 LSHIFT ; : <<4 4 LSHIFT ;
|
|
( As a general rule, IX and IY are equivalent to spitting an
|
|
extra 0xdd / 0xfd and then spit the equivalent of HL )
|
|
: IX 0xdd A, HL ; : IY 0xfd A, HL ;
|
|
: _ix+- 0xff AND 0xdd A, (HL) ;
|
|
: _iy+- 0xff AND 0xfd A, (HL) ;
|
|
: IX+ _ix+- ; : IX- 0 -^ _ix+- ;
|
|
: IY+ _iy+- ; : IY- 0 -^ _iy+- ;
|