VolksForth/8080/CPM/target.fb

1 line
34 KiB
Plaintext
Raw Normal View History

2017-04-23 22:25:49 +00:00
\ 05Jul86 \ Target compiler loadscr UH 07Jun86\ Idea and first Implementation by ks/bp \ Implemented on 6502 by ks/bp \ ultraFORTH83-Version by bp/we \ Atari 520 ST - Version by we \ CP/M 2.2 Version by UH Onlyforth hex Assembler nonrelocate Vocabulary Ttools Vocabulary Defining 1 10 +thru \ Target compiler 11 13 +thru \ Target Tools 14 16 +thru \ Redefinitions save 17 20 +thru \ Predefinitions Onlyforth \ Target header pointers UH 26Mar88 Create lastname $20 allot Variable tdp : there tdp @ ; Variable displace Variable image Variable ?thead ?thead off Variable tlast tlast off Variable glast' glast' off Variable tdoes> Variable >in: Variable tvoc tvoc off Variable tvoc-link tvoc-link off 0 | Constant <forw> 0 | Constant <res> | : Is> ( cfa -- ) [compile] Does> here 3 - swap >body ! 0 ] ; \ Image and byteorder UH 26Mar88 Code c+! ( 8b addr -- ) H pop D pop E A mov M add A M mov Next end-code Code /block ( addr -- +n blk ) H pop L E mov H A mov 3 ani A D mov H A mov $FC ani rrc rrc A L mov 0 H mvi dpush jmp end-code : >image ( addr1 - addr2 ) displace @ ( - /block image @ + block ) + ; : >heap ( from quan - ) dup hallot heap swap cmove ; \\ : c+! ( 8b addr -- ) dup c@ rot + swap c! ; : /block ( addr -- +n blk ) b/blk /mod ;