home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
zcpr2
/
zcpr2-xe.lbr
/
RAMINIT.ASM
< prev
next >
Wrap
Assembly Source File
|
1985-02-09
|
3KB
|
119 lines
; 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