;Alto->8086 small-c compiler rev 2.0 C←CODE SEGMENT $INCLUDE(8086LIB.D) $INCLUDE(osinit.DEC) ASSUME CS:C←CODE, DS:C←DATA ; #include <Env.h> ; extern IntInit(); ; extern InitAnalog(); ; extern Init8274(); ; extern InitEncrypt(); ; extern InitCtxPkg(); ; extern InitFA(); ; static struct ZN *sysZone; ; struct Queue ctxQ; /* main system context queue */ ; static int largest /* Alloc variables */ ; static int ototAv; ; int getsv; /* signaller */ ; int sigid; ; int signame; ; int origLargest /* original Alloc variables */ ; int origTotAv; ; InitOS() ←InitOS: PUSH BP MOV BP,SP ; { ; int *p; PUSH DX ; p = (int *) 0x03fe; MOV WORD PTR [BP-2],03FEX ; *p = (int) &sysZone; ; BX ← ←p POP BX PUSH BX LEA CX,←sysZone MOV [BX],CX ; IntInit(); CALL ←IntInit ; InitIO(); CALL ←InitIO ; InitAnalog(); CALL ←InitAnalog ; Init8274(); CALL ←Init8274 ; InitCtxPkg(); CALL ←InitCtxPkg ; InitEncrypt(); CALL ←InitEncrypt ; InitQueue(&ctxQ); LEA BX,←ctxQ CALL ←InitQueue ; InitFA(); CALL ←InitFA ; SLCInit(EtherHost()); CALL ←EtherHost CALL ←SLCInit ; IntOn(); CALL ←IntOn ; }; MOV SP,BP POP BP RET; ; Externals Declared Here PUBLIC ←ctxQ PUBLIC ←getsv PUBLIC ←sigid PUBLIC ←signame PUBLIC ←origLargest PUBLIC ←origTotAv PUBLIC ←InitOS C←CODE ENDS ; Number of Bytes of Code = 038X, (56)