|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 1792 (0x700) Types: TextFile Names: »INI3.I86«
└─⟦d6ef3842c⟧ Bits:30002678 Pascal MT+ Version 3.3 Rel 1.2 └─ ⟦this⟧ »INI3.I86«
; 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»