track ti86 includes; rename to .z80
[wormy.git] / ti86abs.inc
diff --git a/ti86abs.inc b/ti86abs.inc
new file mode 100644 (file)
index 0000000..ec0f64e
--- /dev/null
@@ -0,0 +1,127 @@
+;
+;
+;       TI-86 'Paged Ram' Support routines
+;
+;
+
+;
+;       some ram equates
+;
+_ABS_SRC_ADDR      equ         0C392h   ; 3 byte ABS address pointer
+_ABS_DEST_ADDR     equ         0C395h   ; 3 byte ABS address pointer
+_MM_NUM_BYTES      equ         0C398h   ; 3 byte block move counter
+;
+
+;
+;
+;       'Block' Move Support Routines
+;
+;
+
+;
+; ahl -> (_abs_src_addr)
+;
+_SET_ABS_SRC_ADDR                equ            4647h
+
+;
+; ahl -> (_abs_dest_addr)
+;
+_SET_ABS_DEST_ADDR               equ            5285h
+
+;
+; ahl -> (_mm_num_bytes)
+;
+_SET_MM_NUM_BYTES                equ            464Fh
+
+
+;
+;       This routine mimmicks the Z80's LDIR instruction.
+;
+;
+; INPUTS       - abs_src_addr, abs_dest_addr, mm_num_bytes
+;                Source Address, Destination Address, and # of bytes,
+;                all in 24-bit form.
+; OUTPUTS      - abs_src_addr, abs_dest_addr, mm_num_bytes
+;                Modified exactly as HL, DE, and BC are after LDIR
+;
+;  moves (_mm_num_bytes) bytes starting @ (_abs_src_addr) to (_abs_dest_addr)
+;  incrementing the src/dest pointer after each byte moved
+;
+_mm_ldir           equ         52EDh
+
+;
+;
+;       This routine mimmicks the Z80's LDIR instruction.
+;
+;
+; INPUTS       - abs_src_addr, abs_dest_addr, mm_num_bytes
+;                Source Address, Destination Address, and # of bytes,
+;                all in 24-bit form.
+; OUTPUTS      - abs_src_addr, abs_dest_addr, mm_num_bytes
+;                Modified exactly as HL, DE, and BC are after LDIR
+;
+;  moves (_mm_num_bytes) bytes starting @ (_abs_src_addr) to (_abs_dest_addr)
+;  decrementing the src/dest pointer after each byte moved
+;
+_mm_lddr           equ         52F1h
+;
+
+;
+;  ahl -> (_abs_src_addr). move 10 bytes @ (_abs_src_addr) -> OP1
+;
+_ABS_MOV10TOOP1    equ         5235h
+
+;
+;  move 10 bytes @ (_abs_src_addr) -> OP1
+;
+_ABS_MOV10TOOP1_noset   equ    5239h
+
+;
+; ahl -> (_abs_dest_addr).move 10 bytes from (_abs_src_addr)->(_abs_dest_addr)
+;
+_ABS_MOV10B_SET_D  equ         523Dh
+
+;
+; move 10 bytes from (_abs_src_addr) -> (_abs_dest_addr)
+;
+_ABS_MOV10B        equ         5249h
+
+;
+; ahl -> (_abs_dest_addr). move 10 bytes from OP1 -> (_abs_dest_addr)
+;
+_ABS_MOVFROP1_SET_D    equ     5241h
+
+;
+; move 10 bytes from OP1 -> (_abs_dest_addr)
+;
+_ABS_MOVFROP1      equ         5245h
+
+;
+;
+;       Misc support
+;
+;
+_inc_ptr_ahl    equ    4637h    ; ahl = ahl + 1
+_dec_ptr_ahl    equ    463Bh    ; ahl = ahl - 1
+_inc_ptr_bde    equ    463Fh    ; bde = bde + 1 , ahl & status intact
+_dec_ptr_dbe    equ    4643h    ; bde = bde - 1 , ahl & status intact
+_dec_ptr_ade    equ    46BFh    ; ade = ade - 1
+
+
+;
+; decode ABS ahl and load the RAM page and set hl = offset, (hl) = (ABS ahl)
+;
+_load_ram_ahl   equ    462Fh
+
+_GETB_AHL       equ    46C3h ; acc = (ABS ahl), hl = asic address now
+
+
+_RAM_PAGE_1     equ    47E3h ; load RAM page 1, FPS page
+_RAM_PAGE_7     equ    47F3h ; load RAM page 7, symbol table page
+
+;
+;  write c -> (ABS ahl), ahl = ahl + 1, still ABS address
+;
+_writeb_inc_ahl    equ     5567h
+
+\1a
\ No newline at end of file