DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

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

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦505d3c619⟧ TextFile

    Length: 1792 (0x700)
    Types: TextFile
    Names: »INI3.I86«

Derivation

└─⟦d6ef3842c⟧ Bits:30002678 Pascal MT+ Version 3.3 Rel 1.2
    └─ ⟦this⟧ »INI3.I86« 

TextFile

;   VERSION 0002
        NAME    INIT3
        
        ASSUME  CS:CODE,DS:DATA
        
DATA    SEGMENT PUBLIC
DATA    ENDS

CODE    SEGMENT PUBLIC
        PUBLIC  @INI3
        
@INI3   PROC    NEAR

        MOV     AX,DS
        MOV     ES,AX   ;NOW ES:0 IS START OF DATA AREA
        MOV     DI,6    ;6 IS OFFSET OF DSEG LENGTH
        MOV     CX,ES:WORD PTR ÆDIÅ
;* these two instructions must be modified to pass data through chaining *)
;* please see your user's guide for details *)
        SUB     CX,100H ;SEGMENT LENGTH IS IN BYTES
        MOV     DI,100H ;START ADDRESS OF FILL
;* end of instructions to modify for chaining *)
        XOR     AX,AX   ;DATA TO FILL WITH
        REP
        STOSB           ;ZERO IT ALL
        
;
;       NOW IF OVERLAYS ARE LINKED INTO THE ROOT ZERO THE FIRST
;       BYTE OF THE OVERLAY AREAS
;
        MOV     AX,CS
        MOV     ES,AX   ;NOW CS:0 IS START OF CODE
        MOV     DI,0CH  ;0C IS OFFSET OF NAME CONTROL BLOCK
        MOV     AX,ES:WORD PTR ÆDIÅ
        MOV     BX,ES:WORD PTR 2ÆDIÅ
;
;       IF AX=BX THEN OVERLAYS WERE NOT LINKED INTO THIS PROGRAM
;
        CMP     AX,BX
        JZ      XIT
        
        MOV     DI,BX   ;ELSE EI:DI NOW POINTS TO OVERLAY AREA TABLE
        MOV     CX,16   ;NUMBER OF ENTRIES IN THE TABLE

LP:     MOV     SI,ES:WORD PTR ÆDIÅ ;GET OFFSET OF OVERLAY AREA
        MOV     ES:BYTE PTR ÆSIÅ,0  ;PUT A ZERO THERE
        INC     DI                  ;AND BUMP TO NEXT OFFSET IN TABLE
        INC     DI
        LOOP    LP                  ;DO IT 16 TIMES

XIT:    RET
        
@INI3   ENDP

CODE    ENDS

        END
        

«eof»