home *** CD-ROM | disk | FTP | other *** search
- ; 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
-