ALWAYS 23MAR4 INIT ;23MAR4 .MCALL CALLR ;**-1 ;************************************************************************ ;* * ;* MODULE: INIT - INITIALIZE LOGIC, PARAMETERS, VIRTUAL MEMORY * ;* * ;* AUTHOR: KEVIN ANGLEY * ;* * ;* DATE: 30-AUG-82 * ;* * ;* INPUT PARAMETERS: * ;* * ;* R0 POINTS TO COMMAND LINE IN PROCESS * ;* * ;* ALTERNATIVELY, ENTRY POINT INITAL CAN BE CALLED FROM PROGRAM * ;* TO ACCOMPLISH INITIALIZATION * ;* * ;* OUTPUT PARAMETERS: * ;* * ;* FOR COMMAND INITIATED, R0 POINTS JUST BEYOND COMMAND * ;* * ;* DESTROYS: R1,R5 * ;* * ;* REVISED BY: CHRIS DORAN, SIRA LTD * ;* * ;* DATE: 03-JAN-84 * ;* * ;* MODIFICATIONS: * ;* Set program name to spaces. * ;* Add optional fill specification. * ;* * ;* 23MAR4 Scott Smith, Telex Computer Products, Raleigh, NC * ;23MAR4 ;* Included 'USE FOR READ' modifications. * ;23MAR4 ;* * ;23MAR4 ;************************************************************************ .PAGE .SBTTL EDIT HISTORY .ENABL LSB INIT:: CLR CSIFLG ; INDICATE COMMAND INITIATED INIT GETKEY WITH ; See if fill byte given BNE 5$ ; No, go use default FF CALL GETHAS ; Else fetch given one BCS 255$ MOVB %1,%5 ; Put it into value SWAB %5 ; Both bytes CLRB %5 BISB %1,%5 ; For fast whole word set BR 10$ ; JOIN COMMON CODE INITAL:: SETNZ CSIFLG ; INDICATE PROGRAM GENERATED INITIALIZATION 5$: MOV #177777,%5 ; Always to FF 10$: PUSH R0 CLRL TRNSFR ; CLEAR TRANSFER ADDRESS (LONG WORD) CLRL OFFST ; CLEAR OFFSET (LONG WORD) CLR COUNT ; CLEAR COUNT OF DATA READ CLRL HIADDR ; MOVE LOW VALUES TO HIGHEST ADDRESS ; READ SO FAR MOV #177777,LOADDR ; MOVE HIGH VALUES TO LOWEST ADDRESS MOV #177777,LOADDR+2 ; READ SO FAR MOV #MEMORY,R0 ; MEMORY START ADDRESS IN R0 MOV #MEMSIZE,R1 ; MEMSIZE (WORDS) INTO R1 CLR RDDOM ; Clear the domain for read ;23MAR4 MOV #400,RDRAN ; Clear the low byte of the range, set the ;23MAR4 ; high byte to 1 ;23MAR4 20$: MOV %5,(R0)+ ; FILL VIRTUAL MEMORY SOB R1,20$ ; FOR AS LONG AS IT TAKES MOV #PRGNAM,%0 ; Address program name MOV #8.,%1 ; of 8 bytes 30$: MOVB #SPACE,(%0)+ ; Space-fill it SOB %1,30$ POP R0 TST CSIFLG ; COMMAND OR PROGRAM INITIATED? BNE 255$ ; NE: PROGRAM INITIATED; SKIP EXTRA CALLR EXTRA ; PURGE EXTRANEOUS INFO 255$: RETURN .DSABL LSB .PSECT DATA D,RW CSIFLG: .BLKW ; 0 on INIT entry, <>0 on INITAL .END