DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦df92225be⟧ TextFile

    Length: 2496 (0x9c0)
    Types: TextFile
    Notes: Mikados_K
    Names: »DOIT.K«

Derivation

└─⟦1f7cb7eb5⟧ Bits:30009019 ARRAY0 + nulfiler
    └─⟦this⟧ »DOIT.K« 

Mikados K File

;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             ;

Mikados K File

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┆

Reduced view