msg xerox.msg MSG (29 Mar 83) Type ? for help. Loading binary box ._xerox.msg ............... - Done . 16 messages total. <- headers all 1 3576: 7 Jul 83 Rick Conn Re: ZCPR2 & Xerox 820-II 2 2092: 8 Jul 83 dgilbert.es ZCPR2 ON THE 820-II 3 A 5548: 9 Jul 83 dgilbert.es ZCPR2 on the 820-II...more da 4 1346: 9 Jul 83 dgilbert.es ADDITIONAL ZCPR2 DATA for 820 5 626: 9 Jul 83 Rick Conn Re: ADDITIONAL ZCPR2 DATA for 6 622: 11 Jul 83 DGilbert.ES DU2 on 820-II Error 7 782: 12 Jul 83 ssalzman.es ZCPR2 820-II 8 746: 14 Jul 83 DGilbert.ES ZCPR2 Ram Area 9N 876: 15 Jul 83 Rick Conn Re: ZCPR2 on the 820-II...mor 10N 540: 15 Jul 83 DGilbert.ES Re: ZCPR2 on the 820-II...mor 11N 1827: 15 Jul 83 DGilbert.ES Re: ZCPR2 on the 820-II...mor 12N 657: 15 Jul 83 Rick Conn Re: ZCPR2 on the 820-II...mor 13N 6317: 15 Jul 83 dgilbert.es ZCPR2 INFORMATION FROM DOUG 14N A 1106: 16 Jul 83 DGILBERT.ES ZCPR2 Jmp Results...Doug 15N 404: 16 Jul 83 Rick Conn Re: ZCPR2 Jmp Results...Doug 16N 431: 16 Jul 83 Rick Conn Re: ZCPR2 Jmp Results...Doug <- type all [Confirm] yes (Message # 1: 3576 bytes) Date: 7 Jul 83 9:11:52 EDT (Thu) From: Rick Conn To: ssalzman.es@parc-maxc.arpa cc: DGilbert.ES@Parc-Maxc, rconn@brl Subject: Re: ZCPR2 & Xerox 820-II Isaac, I'm happy to hear that you have resolved the installation problem with ZCPR2 on the XEROX, but sorry to hear that you are having a problem with ZEX. I have recently received a message from Doug Gilbert at XEROX (DGilbert.ES@PARC-MAXC, phone: 213-536-7702), and, while he was only talking about using ZCPR2 utilities, I presume that he is also running ZCPR2 and may be able to help you. From your description of the problem, one key feature of your installation that is in error and is likely to cause problems, including being the source, quite probably, of your ZEX problem is the position of the external buffers. I think you "hit the nail on the head" with your assumption that such is the case. You placed your external buffers in the Transient Program Area (which extends from 100H to just below the BDOS). This area of memory is where the COM files load, and, when they need to allocate buffer space and such in memory, it is a convention that they determine where the BDOS begins from the JMP at locations 5-7. Hence, the area in which you placed the multiple command line buffer and memory-based named directory is fair game to be overwritten, and the effects could be disastrous (potentially even causing files to be erased if the right conditions accidentally occur). This problem has shown itself readily with ZEX because, when ZEX runs, it locates the ZEX monitor and data to that part of the TPA just under ZCPR2. This is where your multiple command line buffer is, among other things. Consequently, when ZCPR2 asks for a BDOS READLN function, ZEX intercepts the BIOS I/O calls, provides its input, and the BDOS turns around and writes those characters into the multiple command line buffer. Since ZEX is residing here, THESE CHARACTERS ARE WRITTEN RIGHT ON TOP OF ZEX! Naturally, overwriting code with data generates unpredictable results and is highly undesirable. I know little about the XEROX 820-II and nothing about the software supplied with it, but, if the right software is there, you can correct the problem. The key is to place all ZCPR2-specific buffers ABOVE the BIOS. You need to open up a 1K (or so, depending on the size of your buffers) window above the BIOS and assign the ZCPR2 equates et al to point there. The easiest way to do this is with MOVCPM. Using a conventional CP/M system, most versions of MOVCPM can be run with the following form: MOVCPM * * This will create a CP/M system which fills all of available memory and, more importantly for this application, print a message like "Creating xxK CP/M", where XX is some number (like 64 or so). To open up the 1K window you need, subtract 1 from XX (getting 63 if XX=64) and issue the command: MOVCPM 63 * (This is where XX-1=63) You now have a CP/M system with a 1K hole at the top. You can now SAVE the image (MOVCPM should have also said to issue "SAVE yy CPMxx.CPM" or something like that, and YY is the value to use in the SAVE command). Now patch the BIOS and overlay ZCPR2 as you did before but with the buffers in the window. You should also check to see that the BIOS moved all of its buffer points and that the window is indeed free. See page 30 of the ZCPR2 Installation Manual for a sample reasonable structure. Good luck. Note: I have sent a CC of this to Doug Gilbert for his info and to help establish communication between you and him. Rick (Message # 2: 2092 bytes) From: dgilbert.es@PARC-MAXC.ARPA Date: 8 Jul 83 17:00:09 EDT Subject: ZCPR2 ON THE 820-II To: SSalzman.ES@PARC-MAXC.ARPA cc: rconn@brl.ARPA I received a copy of your communication to Rick Conn. So far I've had no problem with ZEX or any of the other features of ZCPR2. Everything has been implemented except IO Redirection. I think that the location of the buffers is critical. It must not be used for anything else. While searching around thinking about installation, I found what appears to be unused RAM just below the MONITOR. This is what I use. See Below: ZCPR2 INSTALLATION ON THE XEROX 820-II ====================================== This file documents some of the ZCPR2 installation parameter's I used for the XEROX 820-II computer. The initial main consideration was where to find unused memory for buffers. There appears to be available memory above the CBIOS and I've used this area without any problems so far. This memory is as follows: 0EE80H TO 0EF7FH: 256 BYTES FREE 0EFC0H TO 0EFFFH: 64 BYTES FREE My assignment of this free RAM area for ZCPR2 was as noted below: EXTERNAL STACK AREA FOR ZCPR2 ----------------------------- 0EFCFH TO 0EFFFH (48 BYTES) EXTERNAL SEARCH PATH BUFFER --------------------------- 0EFC0H TO 0EFCEH (14 BYTES) NAMED DIRECTORY BUFFER ---------------------- 0EF00H TO 0EF7FH (128 BYTES) MULTIPLE COMMAND BUFFER ----------------------- 0EE80H TO 0EEFFH (128 BYTES) Thus far, I've encountered no problems with these assignments. Please let me know if any areas above are used for other purposes in the 820-II system. ================================================================== I've communicated this information to Keats Soder at DLOS. He said he would check with the 'Expert' to see if this RAM area is ever used. In the meantime, it works fine for me. Good Luck, Doug Gilbert DGilbert.ES (Message # 3: 5548 bytes, Answered) From: dgilbert.es@PARC-MAXC.ARPA Date: 9 Jul 83 15:22:46 EDT Subject: ZCPR2 on the 820-II...more data To: rconn@brl.ARPA cc: DGilbert.ES@PARC-MAXC.ARPA Here is a copy of a message I just sent to SSalzman.ES regarding the ZCPR2 system I've implemented on the 820-II. It provides some additional data on its implementation. By the way, the sysgen program uses the standard 980 as start of the CCP. I havn't read all of your last message yet, and I'll respond more later.... I'm sending you a copy of the CBIOS modification overlay I got from Pete McAfee and also a copy of the buffer initialization routine I wrote. The buffers must be initialized before ZCPR2 will work. Its a two step process. Pete's modification shortens the title printout on boot and initializes the mult. cmd buffer. My ZCPR2 is set up to run "STAR.COM" upon cold boot. This is just the STARTUP.COM program. It runs my RAMINIT.COM which finishes initializing all the buffers. The programs follow: ;************************************************ ;* * ;* This overlays the BIOS in the * ;* Xerox to provide the Mulitiple * ;* command line buffer. The buffer * ;* is 128 bytes long and starts at * ;* EF00h. I have allowed space for * ;* a 4 character command upon cold * ;* boot, this gives room for MENU or * ;* the such. To do this I have chopped * ;* the logon message down so there * ;* would be room. There might be * ;* problems that I have yet uncovered * ;* so far it has worked for me. * ;* * ;* Pete McAfee * ;* Xerox El Segundo, CA * ;* 8*823-5456 * ;* * ;* ADAPTED TO MY SYSTEM * ;* Doug Gilbert * ;* May 29, 1983 * ;* * ;************************************************ ; base equ 0ea00h ;start of CBIOS buflen equ 128 ;128 byte buffer clbase equ 0EE80h ;where we stick the comd buffer pmsg equ base+115h ;location of pmsg in bios ; ldir macro ; db 0edh,0b0h endm ; org base+0f1h ;start of bios cold boot lxi h,cmdint ;source of buffer init data lxi d,clbase ;destination address lxi b,last-cmdint+1 ;byte count ldir ;and now we move the block ; ;sign on message somewhat shorter ; call pmsg db 26,'ZCPR22 O.S.' db 0 ;end of message ; ; command line data ; cmdint: dw clbase+4 ;point to first character db buflen ;size of buffer db 0 ;dummy db 'STAR' ;autostart command, 0 for none last: db 0 ;terminate command with a 0 END ============================================================================= ; ; 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 Good Luck, Doug (Message # 4: 1346 bytes) From: dgilbert.es@PARC-MAXC.ARPA Date: 9 Jul 83 16:09:43 EDT Subject: ADDITIONAL ZCPR2 DATA for 820-II To: rconn@brl.ARPA cc: SSalzman.ES@PARC-MAXC.ARPA, BArmstrong.ES@PARC-MAXC.ARPA, DGilbert.ES@PARC-MAXC.ARPA Rick, Here is some additional information on the Xerox 820-II implementation. The memory map of the system is: F000-FFFF MONITOR, copied from ROM on boot EA00-EFFF CBIOS DC06-E9FF BDOS D400-DC05 CCP The buffer area I use is in upper CBIOS area. See previous messages. The ZCPR22.ASM file with ZCPRHDR.LIB are assembled and installed as follows: 1. SYSGEN the 'standard CP/M 22' operating system 2. SAVE 34 CPMIMAGE.COM 3. DDT CPMIMAGE.COM 4. IZCPR22.HEX 5. R3580 (offset is 3580 for 980 CCP) In my implementation, the CBIOS cold boot routine is modified with the file MOD820II.ASM. See previous communication. So... 6. IMOD820II.HEX 7. R (offset built into program origin) 8. SAVE 34 ZPRIMAGE.COM 9. SYSGEN new operationg system 10. Include file "STAR.COM" with command line: RAMINIT;DIR 11. Include file "RAMINIT.COM" on operating system disk System should now fly!!!!!!!!!!! The above was strictly from memory, but I don't believe I left anything out. Feel free to distribute this information to help others. Thanks, Doug. (Message # 5: 626 bytes) Date: 9 Jul 83 20:59:17 EDT (Sat) From: Rick Conn To: dgilbert.es@parc-maxc.arpa cc: rconn@brl.arpa, SSalzman.ES@parc-maxc.arpa, BArmstrong.ES@parc-maxc.arpa, lbert.ES@parc-maxc.arpa Subject: Re: ADDITIONAL ZCPR2 DATA for 820-II Doug, Thank you very much for the information. I'll look it over, put together an LBR file of it, and give it to SIG/M so that others may take advantage. I'm sure many others will appreciate your effort here. If you would like a copy of the LBR file, I can (already plan to) leave it on MIT-MC for INFO-CPM. Take care, and thanks again. Rick (Message # 6: 622 bytes) Date: Mon, 11 Jul 83 08:18 PDT From: DGilbert.ES@PARC-MAXC.ARPA Subject: DU2 on 820-II Error To: rconn@brl.ARPA cc: Soder.DLOS@PARC-MAXC.ARPA, Hilgert.WBST@PARC-MAXC.ARPA, DGilbert.ES@PARC-MAXC.ARPA Thinking about the installation instructions I gave to you, I realized I made an error regarding MOD820II.ASM. It is, of course, assembled with the origin at the actual CBIOS address. Therefore when reading it in with DDT, the same offset must be used, as with ZCPR22. Thus, use R3580, not just R. Sorry is this caused any inconvenience, Doug. (Message # 7: 782 bytes) Date: Tue, 12 Jul 83 12:19 PDT From: ssalzman.es@PARC-MAXC.ARPA Subject: ZCPR2 820-II To: dgilbert.es@PARC-MAXC.ARPA cc: rconn@brl.ARPA, ssalzman.es@PARC-MAXC.ARPA Doug, I finally got it working!!!! In your description of the steps take to integrate to CBIOS overlay into the sysgen image, you need to read it in with the offset of 3580: A>ddt cpmsys.com . . . -Izbiosovl.hex <-- CBIOS Overlay (what I called it). -R3580 <-- Read it in at offset. -^c A> . . Everything now seems to be working, including ZEX. Well, Thanks a lot for all your help. I can't tell you how much I appreciate it (both Rick and Doug). Keep me up to date on any more info about ZCPR2. - Isaac Salzman (Message # 8: 746 bytes) Date: Thu, 14 Jul 83 08:14 PDT From: DGilbert.ES@PARC-MAXC.ARPA Subject: ZCPR2 Ram Area To: rconn@brl.ARPA, Hilgert.WBST@PARC-MAXC.ARPA, ssalzman.ES@PARC-MAXC.ARPA, BArmstrong.ES@PARC-MAXC.ARPA cc: DGilbert.ES@PARC-MAXC.ARPA I received this message from Keats Soder regarding my RAM memory assignments on ZCPR2 for the 820-II. Doug --------------------------- From: SODER.DLOS Date: 13-Jul-83 19:41:14 CDT Subject: ZCPR2 To: DGilbert.es My CBIOS expert says you are currently safe, however the 256 bytes are next to a sector deblocking area and will be used when we (if ever) go to a 512 byte sector. Keats ------------------------------------------------------------ (Message # 9: 876 bytes, New) Date: Fri, 15 Jul 83 1:58:49 EDT From: Rick Conn To: dgilbert.es@parc-maxc.arpa cc: rconn@brl.arpa, DGilbert.ES@parc-maxc.arpa Subject: Re: ZCPR2 on the 820-II...more data Doug, I've been putting together the LBR file for the XEROX 820-II, and a question came up about the MOD820II.ASM file. In the message you sent me, the call to PMSG is followed by the message, of course, and then immediately followed by the MCL buffer. If PMSG returns to after the message, execution will procede thru the MCL buffer. Is this the case? Or does PMSG abort when done? Is something missing after the PMSG call? Rick P.S. When this question is resolved, all will be complete. Would you like to see the LBR file before release? It will contain a transcript of all of our major communications, so if any errors exist, the reader can backtrack. (Message # 10: 540 bytes, New) Date: Fri, 15 Jul 83 08:21 PDT From: DGilbert.ES@PARC-MAXC.ARPA Subject: Re: ZCPR2 on the 820-II...more data In-reply-to: "Your message of Fri, 15 Jul 83 1:58:49 EDT" To: Rick Conn cc: dgilbert.ES@PARC-MAXC.ARPA That's a very good question. It does look a bit strange with the message ending in the MCB. I'll find out today. Yes, send me a copy. I'm sure it will be fine, but I'll look it over to see if there anyting I should have told you. Doug. (Message # 11: 1827 bytes, New) Date: Fri, 15 Jul 83 11:33 PDT From: DGilbert.ES@PARC-MAXC.ARPA Subject: Re: ZCPR2 on the 820-II...more data To: Rick Conn cc: DGilbert.ES@PARC-MAXC.ARPA, Eldridge.ES@PARC-MAXC.ARPA, McAfee.ES@PARC-MAXC.ARPA, Hilgert.WBST@PARC-MAXC.ARPA, SSalzman.ES@PARC-MAXC.ARPA, BArmstrong.ES@PARC-MAXC.ARPA, Soder.DLOS@PARC-MAXC.ARPA We've (George Eldridge and I) looked at the operation of the 820-II COLD BOOT to answer your question. The software was written for Xerox by 'Balcone', and detailed description of operation is hard to get. Anyhow, the original setup was as follows: COLDBOOT: CALL pmsg DB 'original sign-on message' DB 0 ; PMSG: print message routine which assumes it was called it 'returns' upon encountering a zero in the message Prior to calling COLDBOOT, the stack was 'prepared' by having the address of the WARMBOOT push on to it, followed by the address of the Serial Number message. Thus, when COLDBOOT is called, it types out the sign on message, then 'falls through' to the PMSG routine itself. Therefore it proceeds to type out the Serial Number (next on the stack). When the zero is encountered, PMSG returns to WARMBOOT! (tricky) Well, the overlay does have a danger, in that the MCB is executed as op codes before dropping through to PMSG. A safer way to do it would be to shorten up the sign on message a bit more (3 bytes) so that a 'JMP' instruction can jump around MCB table directly to PMSG. That way there is no danger of side effects. It works OK the way it is now, so appearantly no op codes are 'executed' which upsets the apple cart. I'll put in the JMP instruction this weekend to verify the correction, and I'll let you know. If you like, I'll send you a corrected listing. Doug. (Message # 12: 657 bytes, New) Date: Fri, 15 Jul 83 16:14:01 EDT From: Rick Conn To: DGilbert.ES@parc-maxc.arpa cc: Rick Conn , DGilbert.ES@parc-maxc.arpa, Eldridge.ES@parc-maxc.arpa, fee.ES@parc-maxc.arpa, Hilgert.WBST@parc-maxc.arpa, lzman.ES@parc-maxc.arpa, BArmstrong.ES@parc-maxc.arpa, er.DLOS@parc-maxc.arpa Subject: Re: ZCPR2 on the 820-II...more data Doug, Yes, that sounds good. Would you send me a corrected listing? I translated the bytes of the buffer into ops to find out what was done, and all it amounted to was a couple of moves and an XRI. Looks like a "luck-out" in this case. Rick (Message # 13: 6317 bytes, New) Date: Fri, 15 Jul 83 14:11 PDT From: dgilbert.es@PARC-MAXC.ARPA Subject: ZCPR2 INFORMATION FROM DOUG To: rconn@brl.ARPA cc: DGilbert.ES@PARC-MAXC.ARPA Rick, I would imagine the modified listing will just have a jump inserted into it. Since its easier for me to send it from Xerox than at home, here is my best guess and I will confirm it tomorrow. The programs follow: ;************************************************ ;* FILE: MOD820II.ASM * ;* * ;* This overlays the BIOS in the * ;* Xerox to provide the Mulitiple * ;* command line buffer. The buffer * ;* is 128 bytes long and starts at * ;* EF00h. I have allowed space for * ;* a 4 character command upon cold * ;* boot, this gives room for MENU or * ;* the such. To do this I have chopped * ;* the logon message down so there * ;* would be room. There might be * ;* problems that I have yet uncovered * ;* so far it has worked for me. * ;* * ;* Pete McAfee * ;* Xerox El Segundo, CA * ;* 8*823-5456 * ;* * ;* ADAPTED TO MY SYSTEM * ;* Doug Gilbert * ;* May 29, 1983 * ;* July 15, 1983 Rev. 2 * ;* 8*823-7702 * ;************************************************ ; base equ 0ea00h ;start of CBIOS buflen equ 128 ;128 byte buffer clbase equ 0EE80h ;where we stick the comd buffer pmsg equ base+115h ;location of pmsg in bios ; ldir macro ; db 0edh,0b0h endm ; org base+0f1h ;start of bios cold boot lxi h,cmdint ;source of buffer init data lxi d,clbase ;destination address lxi b,last-cmdint+1 ;byte count ldir ;and now we move the block ; ;sign on message somewhat shorter ; call pmsg db 26,'ZCPR22' ;shortened message (7-15-83) db 0 ;end of message jmp pmsg ;revision 2 (7-15-83) ; ; command line data ; cmdint: dw clbase+4 ;point to first character db buflen ;size of buffer db 0 ;dummy db 'STAR' ;autostart command, 0 for none last: db 0 ;terminate command with a 0 END ============================================================================= ; 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 ------------------------------------------------------------------------ Here is some additional information on the Xerox 820-II implementation. The memory map of the system is: F000-FFFF MONITOR, copied from ROM on boot EA00-EFFF CBIOS DC06-E9FF BDOS D400-DC05 CCP The buffer area I use is in upper CBIOS area. See previous messages. The ZCPR22.ASM file with ZCPRHDR.LIB are assembled and installed as follows: 1. SYSGEN the 'standard CP/M 22' operating system 2. SAVE 34 CPMIMAGE.COM 3. DDT CPMIMAGE.COM 4. IZCPR22.HEX 5. R3580 (offset is 3580 for 980 CCP) In my implementation, the CBIOS cold boot routine is modified with the file MOD820II.ASM. See previous communication. So... 6. IMOD820II.HEX 7. R3580 8. SAVE 34 ZPRIMAGE.COM 9. SYSGEN new operationg system 10. Include file "STAR.COM" with command line: RAMINIT;DIR 11. Include file "RAMINIT.COM" on operating system disk System should now fly!!!!!!!!!!! The above was strictly from memory, but I don't believe I left anything out. Feel free to distribute this information to help others. Thanks, Good luck, Doug. ------------------------------------------------------------ ------------------------------------------------------------ (Message # 14: 1106 bytes, New, Answered) From: DGILBERT.ES@PARC-MAXC.ARPA Date: 16 Jul 83 12:36:55 PDT Subject: ZCPR2 Jmp Results...Doug To: rconn@brl.ARPA cc: DGilbert.ES@PARC-MAXC.ARPA Rick, I've checked the modification of adding 'JMP' into the file MOD820II.ASM and it works fine. Yes, we lucked out on that one. Nothing in the MCB was causing any problems when 'executed'. However, the addition of the JMP works and is much more satisfactory. Unfortunately, 'BALCONES COMPUTER CORPORATION' does a lot of things like this in the 'MONITOR' and 'CBIOS' written for the 820-II. Possibly to help thwart disassembly of their code. It makes things hard to understand. I know that at one point they 'execute' their copyright name. Anyhow, all should be well now. Did I copy you on Keats answer regarding the RAM area? He said that the area is unused at present. But it lies near the sector deblocking area. Future upgrades, if they use 512 byte sector, may use some of this area for this purpose. Thanks again for your documentation and distribution efforts. Doug. (Message # 15: 404 bytes, New) Date: Sat, 16 Jul 83 18:21:31 EDT From: Rick Conn To: DGILBERT.ES@parc-maxc.arpa cc: rconn@brl.arpa, DGilbert.ES@parc-maxc.arpa Subject: Re: ZCPR2 Jmp Results...Doug Doug, Thank you for your efforts also. I will record the messages to date for inclusion in the LBR file and put it together now. All is looking well. Will let you know when it is on MIT-MC. Rick (Message # 16: 431 bytes, New) Date: Sat, 16 Jul 83 18:40:11 EDT From: Rick Conn To: DGILBERT.ES@parc-maxc.arpa cc: rconn@brl.arpa, DGilbert.ES@parc-maxc.arpa Subject: Re: ZCPR2 Jmp Results...Doug Doug, I also noted that you were hitting A0 twice in your path. I have eliminated the first occurance. It is customary to save the root directory until last in a path search, so that is how I left it. Very minor point. Rick