|
|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 2496 (0x9c0)
Types: TextFile
Notes: Mikados_K
Names: »DOIT.K«
└─⟦1f7cb7eb5⟧ Bits:30009019 ARRAY0 + nulfiler
└─⟦this⟧ »DOIT.K«
;ASSEMBLER KLAD HJÆLPE RUTINER 06.07.79
;COASM STORES HL IN TABAD. IT MUST BE CALLED AT THE START
;OF EVERY ASSEMBLER SUBROUTINE.
;
COASM::
SHLD TABAD ;SAVE TABLE ADDRESS FOR LATER
RET ;EXIT
TABAD::DS 2
;
;
;DOIT CALCULATES AN ADDRESS USING AN ADDRESS OFFSET IN A.
;THE ADDRESS IS PLACED ON TOP OF THE STACK AND THE ROUTINE
;IS CALLED USING A RETURN INSTRUCTION. THE RET INSTRUCTION
;EXECUTED IN THE UTILITY ROUTINE ITSELF WILL BRING CONTROL
;BACK TO THE ORIGINAL CALLING ROUTINE.
;
DOIT::
SHLD TEMP ;SAVE HL
PUSH D ;SAVE DE
MVI D,0 ;D=0
MOV E,A ;DE=A=ADDRESS OFFSET
LHLD TABAD ;GET TABLE ADDRESS
DAD D ;POINT AT UTILITY ROUTRINE ADDRESS
DAD D ;REMEMBER OFFSET IS IN BYTES, NOT WORDS
MOV E,M ;ADDRESS OF
INX H ;UTILITY
MOV D,M ;TO DE
POP H ;GET OLD DE BACK
XCHG ;HL=UTILITY ADDRESS, DE=OLD DE
PUSH H ;STACK UTILITY ADDRESS
LHLD TEMP ;GET OLD HL BACK
RET ;EXECUTE UTILITY--RETURN DIRECT
TEMP: DS 2
END ;
0x000…039 Line {l1=0x37, l2=»;ASSEMBLER KLAD HJÆLPE RUTINER 06.07.79«, l3=0x37}
0x039…074 Line {l1=0x39, l2=»;COASM STORES HL IN TABAD. IT MUST BE CALLED AT THE START«, l3=0x39}
0x074…095 Line {l1=0x1f, l2=»;OF EVERY ASSEMBLER SUBROUTINE.«, l3=0x1f}
0x095…098 Line {l1=0x01, l2=»;«, l3=0x01}
0x098…0a1 Line {l1=0x07, l2=»COASM::«, l3=0x07}
0x0a1…0d7 Line {l1=0x34, l2=» SHLD TABAD ;SAVE TABLE ADDRESS FOR LATER«, l3=0x34}
0x0d7…0f5 Line {l1=0x1c, l2=» RET ;EXIT«, l3=0x1c}
0x0f5…107 Line {l1=0x10, l2=»TABAD::DS 2«, l3=0x10}
0x107…10a Line {l1=0x01, l2=»;«, l3=0x01}
[…0x1…]
0x10d…148 Line {l1=0x39, l2=»;DOIT CALCULATES AN ADDRESS USING AN ADDRESS OFFSET IN A.«, l3=0x39}
0x148…184 Line {l1=0x3a, l2=»;THE ADDRESS IS PLACED ON TOP OF THE STACK AND THE ROUTINE«, l3=0x3a}
0x184…1c0 Line {l1=0x3a, l2=»;IS CALLED USING A RETURN INSTRUCTION. THE RET INSTRUCTION«, l3=0x3a}
0x1c0…1fc Line {l1=0x3a, l2=»;EXECUTED IN THE UTILITY ROUTINE ITSELF WILL BRING CONTROL«, l3=0x3a}
0x1fc…224 Line {l1=0x26, l2=»;BACK TO THE ORIGINAL CALLING ROUTINE.«, l3=0x26}
0x224…227 Line {l1=0x01, l2=»;«, l3=0x01}
0x227…22f Line {l1=0x06, l2=»DOIT::«, l3=0x06}
0x22f…250 Line {l1=0x1f, l2=» SHLD TEMP ;SAVE HL«, l3=0x1f}
0x250…271 Line {l1=0x1f, l2=» PUSH D ;SAVE DE«, l3=0x1f}
0x271…28e Line {l1=0x1b, l2=» MVI D,0 ;D=0«, l3=0x1b}
0x28e…2bb Line {l1=0x2b, l2=» MOV E,A ;DE=A=ADDRESS OFFSET«, l3=0x2b}
0x2bb…2e6 Line {l1=0x29, l2=» LHLD TABAD ;GET TABLE ADDRESS«, l3=0x29}
0x2e6…321 Line {l1=0x39, l2=» DAD D ;POINT AT UTILITY ROUTRINE ADDRESS«, l3=0x39}
0x321…361 Line {l1=0x3e, l2=» DAD D ;REMEMBER OFFSET IS IN BYTES, NOT WORDS«, l3=0x3e}
0x361…385 Line {l1=0x22, l2=» MOV E,M ;ADDRESS OF«, l3=0x22}
0x385…3a6 Line {l1=0x1f, l2=» INX H ;UTILITY«, l3=0x1f}
0x3a6…3c5 Line {l1=0x1d, l2=» MOV D,M ;TO DE«, l3=0x1d}
0x3c5…3ee Line {l1=0x27, l2=» POP H ;GET OLD DE BACK«, l3=0x27}
0x3ee…425 Line {l1=0x35, l2=» XCHG ;HL=UTILITY ADDRESS, DE=OLD DE«, l3=0x35}
0x425…454 Line {l1=0x2d, l2=» PUSH H ;STACK UTILITY ADDRESS«, l3=0x2d}
0x454…47d Line {l1=0x27, l2=» LHLD TEMP ;GET OLD HL BACK«, l3=0x27}
0x47d…4b5 Line {l1=0x36, l2=» RET ;EXECUTE UTILITY--RETURN DIRECT«, l3=0x36}
0x4b5…4c7 Line {l1=0x10, l2=»TEMP: DS 2«, l3=0x10}
0x4c7…4e1 Line {l1=0x18, l2=» END ;«, l3=0x18}
0x4e1…500 00 00 53 53 45 4d 42 4c 45 52 20 4b 4c 41 44 20 48 4a 5b 4c 50 45 20 52 55 54 49 4e 45 52 20 ┆ SSEMBLER KLAD HJÆLPE RUTINER ┆
0x500…520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 36 2e 30 37 2e 37 39 37 39 3b 43 4f 41 53 4d ┆ 06.07.7979;COASM┆
0x520…540 20 53 54 4f 52 45 53 20 48 4c 20 49 4e 20 54 41 42 41 44 2e 20 49 54 20 4d 55 53 54 20 42 45 20 ┆ STORES HL IN TABAD. IT MUST BE ┆
0x540…560 43 41 4c 4c 45 44 20 41 54 20 54 48 45 20 53 54 41 52 54 39 1f 3b 4f 46 20 45 56 45 52 59 20 41 ┆CALLED AT THE START9 ;OF EVERY A┆
0x560…580 53 53 45 4d 42 4c 45 52 20 53 55 42 52 4f 55 54 49 4e 45 2e 1f 01 3b 01 07 43 4f 41 53 4d 3a 3a ┆SSEMBLER SUBROUTINE. ; COASM::┆
0x580…5a0 07 34 20 20 20 20 20 20 20 53 48 4c 44 20 20 20 20 54 41 42 41 44 20 20 20 3b 53 41 56 45 20 54 ┆ 4 SHLD TABAD ;SAVE T┆
0x5a0…5c0 41 42 4c 45 20 41 44 44 52 45 53 53 20 46 4f 52 20 4c 41 54 45 52 34 1c 20 20 20 20 20 20 20 52 ┆ABLE ADDRESS FOR LATER4 R┆
0x5c0…5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆
[…0x1e…]
0x9a0…9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63 ┆ c┆