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             ;

Full view