; FILE: "RAMINIT.ASM" ; ; THIS PROGRAM INITIALIZES THE XEROX 820-II RAM AREA TO ALLOW ; THE USE OF ZCPR2 WITH FULL FEATURES. ; ; UPON INITIAL BOOT, ONLY THE MULTIPLE COMMAND BUFFER ; IS INITIALIZED DUE TO LACK OF SPACE IN THE CBIOS. ; BUT, 'STAR.COM' IS INVOKED AT COLD BOOT. THIS RUNS ; THIS PROGRAM 'RAMINIT', WHICH FINISHES INITIALIZING ; ALL OF THE BUFFERS. ; DOUG GILBERT 7/83 ; ORG 0100H ;STANDARD CP/M TPA ; ;EQUATES TO SET FREE RAM BUFFER AREAS IN XEROX 820-II ; CLBASE EQU 0EE80H ;128 BYTE MULT CMD BUFFER BUFLEN EQU 128 ;MAX BUFF LENGTH NDBASE EQU 0EF00H ;128 BYTE NAMED DIRECT. BUFFER NDLEN EQU 128 ;MAX BUFF LENGTH PABASE EQU 0EFC0H ;14 BYTE EXT. PATH BUFFER ; ;---------------------------------------------------------------------- ;*SET UP MULTIPLE COMMAND BUFFER AREA (no longer needed) ;* done by CBIOS boot ;* ;*LXI D,CMDSET ;INITIAL COMMAND BUFFER TBL ;*LXI H,CLBASE ;LOCATION OF CMD BUFFER RAM ;*MVI B,BUFMOV ;BUFFER SIZE TO MOVE ;*CALL MOVER ;MOVE INIT. 128 BYTES TO BUFF. ;---------------------------------------------------------------------- ; SET UP NAMED DIRECTORY BUFFER AREA ; LXI D,NDVALS ;INITIAL NAMED DIRECT. VALUES LXI H,NDBASE ;LOCATION OF NAMED DIRECT. BUFF. MVI B,NDMOV ;BUFFER SIZE TO MOVE CALL MOVER ;MOVE INIT. 128 BYTES TO BUFF. ; ; SET UP EXTERNAL SEARCH PATH BUFFER AREA ; LXI D,PATH ;SET UP FOR INITIAL PATH LXI H,PABASE ;LOCATION OF EXT. PATH MVI B,PALEN ;BUFFER SIZE TO MOVE CALL MOVER ;GO AND MOVE THEM ; ; DONE, SO RETURN TO O.S. ; CLEAR EQU 1AH CR EQU 0DH LF EQU 0AH BELL EQU 07H ESC EQU 1BH ; MVI C,9 ;BDOS PRINT STRING FNC LXI D,MESSAGE ;POINTER TO MESSAGE CALL 5 ;DO IT! RET ; ; ; MESSAGE: DB CLEAR ;CLEAR SCREEN, HOME CURSOR DB CR,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF DB ' ' DB ESC,'7' ;SET INVERSE VIDEO MODE DB ESC,')' ;ENABLE ATTRIBUTE DB 'GOOD DAY! ZCPR22 SYSTEM READY' DB ESC,'(' ;DISABLE ATTRIBUTE DB BELL DB CR,LF DB '$' ; ; BYTE MOVE SUBROUTINE ; MOVER: LDAX D MOV M,A INX H INX D DCR B JNZ MOVER RET ; ; INITIALIZATION TABLES ;------------------------------------------------------------------- ; MULTIPLE COMMAND BUFFER INITIALIZATION (no longer needed) ; left over from earlier implementation...reference only ;CMDSET: ;*DW CLBASE+4 ;POINT TO 1st CHAR ;*DB BUFLEN ;*DB 0 ;*DB 'WELCOME' ;INITIAL COMMAND (NONE) ;*DB 0 ;END OF COMMAND ;BUFMOV EQU $-CMDSET ;AMOUNT OF BUFFER TO INIT ;------------------------------------------------------------------- ; NAMED DIRECTORY BUFFER INITIALIZATION ; NDVALS: DB NDLEN ;LENGTH OF BUFFER DB 0 ;NO ENTRIES NOW DB 0 ;DUMMY FOR NO DISK DB 0 ;DUMMY FOR NO USER DB 0 ;DUMMY FOR NO NAME NDMOV EQU $-NDVALS ;AMOUNT OF BUFFER TO INIT ; ; EXTERNAL PATH BUFFER INITIALIZATION ; PATH: DB '$',0 ;CURRENT DISK, USER 0 ; DB 1,0 ;DISK A, USER 0 DB 1,'$' ;DISK A, CURRENT USER DB 1,0 ;ROOT VALUE, DISK A, USER 0 DB 0 PALEN EQU $-PATH ;AMOUNT OF BUFFER TO INIT ; ; END