home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols000
/
vol029
/
sigmlog.008
< prev
next >
Wrap
Text File
|
1984-04-29
|
12KB
|
298 lines
SIG/M volume 8 PASCAL and Communications related programs
PASCAL related programs
8.01 BOOT.ASM 1K Sample BOOT for PASCAL
8.02 BOOTER.DOC 3K PASCAL documentation for CP/M
8.03 TEST.ASM 7K Scan and load 8080/Z80 Pascal
interpreter
8.04 PAS2CPM.ASM 8K Format conversion
8.05 PASCAL.ASM 7K Initialization of PASCAL system
8.06 PASCAL.COM 17K
8.07 PASCAL.DOC 1K
8.08 PASTOCPM 12K Format conversion
8.09 PBOOT.ASM 1K Utilities to initialize PASCAL system
8.10 PGEN.ASM 4K
8.11 PGEN.COM 1K
8.12 PINIT.ASM 6K
8.13 READ.ME 2K PASCAL startup documentation
Communications related programs
8.14 CHAT13.ASM 5K 2-way communications with remote caller
8.15 DCHBYE57.ASM 24K Upgrade of remote console DCHBYE55
on SIG/M 7.01
8.16 MODEM5A.ASM 46K Auto-dial and auto re-dial capability
on DC Hayes and PMMI modem boards
8.17 PLNK1018.ASM 21K Upgrade of PLNK925 on SIG/M 7.6 and
CP/M UG 19.4 with more modem types
8.18 NEWBAUD.ASM 4K Switch BAUD rate on a remote PMMI
to readjust modem speed
8.19 RBBS22.ASC 20K Update of RBBS in SIG/M volume 7
8.20 RBBS22.DOC 6K
8.21 RBSUTL22.ASC 9K
8.22 MBOOT3.ASM 8K Compacted version of MODEM for RECV
only usage
8.23 XMODEM38.ASM 24K Update of SIG/M 7.8 - remote CP/M to
CP/M transfer
AFTER THE DOCUMENTATION WAS PRINTED WE DISCOVERED THAT A FARLY LARGE NUMBER
OF PEOPLE HAVE BIOS'S LARGER THAN THE STANDARD 512 BYTES. IF YOU DO...
MSIZE = SIZE OF MEMORY IN KBYTES AS USUAL.
BIOSSZ = SIZE OF BIOS IN BYTES. BIOSSZ MUST BE A MULTIPLE OF 256.
THE ONLY THING AFFECTED IS IS PUTTING A BOOTER ONTO A PASCAL DISK.
THE STEPS TO BE FOLLOWED ARE:
1. COMPUTE LOADP := MSIZE*1024-BIOSSZ-1024;
BIOSORG := MSIZE*1024-BIOSSZ
2. WRITE THE PROGRAM PBOOT AND ASSEMBLE IT.
PBOOT MUST LOAD SECTORS 2 THRU 9 + BIOSSZ/128
IT MUST LOAD THEM STARTING AT LOCATION
LOADP, AND THEN JUMP TO LOADP.
3. CHANGE MSIZE AND BIOSSZ IN PINIT AND ASSEMBLE.
4. CHANGE BIOSSZ IN PGEN AND REASSEMBLE, THEN LOAD.
(THEREBY CREATING PGEN.COM)
5. STITCH TOGETHER THE PIECES
A) TO FIND THE OFFSET PINIT.HEX SHOULD BE READ IN WITH, USE
LOADP RATHER THAN BA00.
B) TO FIND THE OFFSET BIOS.HEX SHOULD BE READ IN WITH, USE
BIOSORG RATHER THAN BE00.
C) SAVE 14 + BIOSSZ/256 RATHER THAN 16 WHEN SAVING
PGEN.COM
Forming a Pascal System Booter
------------------------------
To create an UCSD Pascal system booter you must have the following:
1) A short boot loader that will read in track 0 sectors 2 - 13
2) A copy of PINIT.ASM
3) A hex version of your current BIOS
4) A copy of PGEN.COM
The short boot loader of 1) can be generated from your current system
boot loader if either a source or listing of it is available. This trans-
formation process is simply the reduction of a two track bootstrap into a
single track one. Two programs BOOT.ASM and PBOOT.ASM are provided as inspir-
ation for this proceedure.
NOTE: PBOOT loads its sectors to location (MSIZE-48)*1024+0BA00H
and then jumps to that same point.
If you have no inkling of how your current system boot either loads or
works, you will have to prevail on your system supplier for that information.
PINIT.ASM is the source for the code that boots in and starts
SYSTEM.MICRO, the P-Machine interpreter. A quick edit of PINIT.ASM is needed
to modify the MSIZE equate to match the memory size (in kilobytes) of the
current system BIOS. Once this has been done each of the modules PBOOT, PINIT
and BIOS must be assembled to produce the .HEX files which will be overlayed
into PGEN's data area as follows:
NOTE: In the following we assume a 48k system
A>DDT PGEN.COM ;Read PGEN code into memory
DDT VERS 1.3 ;We will be overlaying PBOOT,
NEXT PC ; PINIT, and BIOS into PGEN's
0300 0100 ; data area, and finally saving
; the memory image.
-IPBOOT.HEX ;Set 'PBOOT.HEX' as the input file
-H900 0 ;PBOOT starts at location 0, we want
0900 0900 ; to compute a bias to read it to loc 900
-R900 ;Using this bias we read PBOOT to PGEN's
NEXT PC ; data area
0980 0000
-IPINIT.HEX ;We will now do the same proceedure with
-H980 BA00 ;PINIT. This object code will go to
C380 4F80 ; location 980, notice PINIT starts at
-R4F80 ; BA00 (HEX) in a 48k system.
NEXT PC
0A7D BA00 ;The value below NEXT will vary with the release
-IBIOS.HEX ;Last we read BIOS to location D80
-HD80 BE00
C380 4F80 ;This should be the same bias value as last time
-R4F80
NEXT PC
0F76 0000 ;The value below NEXT is dependant on BIOS
-^C ;We now leave ddt to save our work
A>SAVE 16 PGEN48.COM ;Our boot writer will be called PGEN48
A>PGEN48 ;The booter may now be put out to Pascal
PGEN VERSION 1.0 ; system disks by executing PGEN48
GET BOOTER?(Y/N)N ; as shown
PUT BOOTER?(Y/N)Y
WRITING BOOTER TO DRIVE A, TYPE RETURN
AGAIN?(Y/N)N
REBOOTING CP/M, TYPE RETURN
Bringing UCSD Pascal up for the first time
------------------------------------------
To bring up Pascal first assure yourself that you have a standard
BIOS area (i.e. all i/o vectors are in order) and that the warm boot
vector is in place. Next if you have a single drive system, make sure that
your BIOS ignors all requests to drive B. Two drive systems will require
diskettes in both drives until you modify your disk drivers to return a
not ready condition (i.e. a 1 in the A register) when the drive has no diskettee.
Now bring up your standard system, and run the program PASCAL.COM supplied
on the 8080/Z80 support diskette. This program will prompt you with a request
for a Pascal system diskette in dirve A. At that time insert the UCSD
distribution Pascal diskette and if you have a second dirve place
any initialized diskette in that drive as well. Type return and enter the
world of pascal.
This is a preliminary documentation file for the 2.0
version of RBBS (Remote Bulletin Board System). More com-
plete documentation, to include a complete overview as well
as more detailed implementation notes, is planned.
============================================================
RBBS PROGRAM
The RBBS software has four new features with the 2.0
implementation:
1) Personal messages: A caller can leave a personal
message to anyone else by entering the password
"*". This causes the message to be invisible in
summary commands, and retrieve and kill, for any-
one but the sender and receiver. An attempt to
Kill a personal message by anyone other than the
sender or receiver (and, of course, the SYSOP),
will result in a "message not found".
2) Re-entry: when a user has exited to the operating
system, RBBS will retain his name in a file called
"LASTCALR". If RBBS is subsequently re-entered
with RBBS P (the "P" was arbitrarily chosen), the
system will retrieve his name from the "LASTCALR"
file, and skip the sign-on printing. Note that if
you are using a loader program to load RBBS from
another user area (under cp/m 2.x), you can make
this function automatic, by having the loader fill
in the "P" immediately before it transfers control
to RBBS. In this case, your BYE program should
store a non-"P" character at location 5DH (default
cp/m file control block).
3) Killed messages will now have additional information
in the record used to store the message number:
0:<#>:<user name>
where 0 indicates a killed message to RBBS, <#> is
the original message number, and <user name> is the
name of the user who killed the message. This should
be helpful in restoring messages improperly killed
by inept/malicious individuals. Note that after
using an editor to restore the message (be careful
here - the editor must not choke on blank-filled
lines), the "BUILDSUM" function of the RBBSUTIL pro-
gram can be used to generate a new summary file.
4) Message passwords, previously only stored in the sum-
mary file, are now duplicated in the message file.
This was necessary to allow the BUILDSUM function of
RBBSUTIL to generate a complete summary file.
==============================================================
RBBS UTILITY PROGRAM (RBBSUTIL)
The utility program has the following changes with the
2.0 upgrade:
1) When transferring a disk file to the message file,
the files must have already been purged. This in-
sures that the files will have been backed up prior
to any messages being added. Note also that the
file "COUNTERS" will also be backed up by purge.
2) The purge function writes deleted messages to an ar-
chive file called <DATE>.ARC, where the date is sup-
plied by the operator when purge is invoked. The
archive file is written sequentially, and lines are
unpacked before writing to conserve space.
3) The purge function allows renumbering of the messages
starting at any number specified when purge is in-
voked. You may choose not to use this option if you
maintain archives, because duplicate message numbers
can be left in the archive files.
4) A new function, "B", will build a summary file from
the message file. This can be useful after editing
the message file. It also allows only the message
file to be saved when doing back-up operations, as
the summary file can now be derived from the message
file. Note that releases of RBBS previous to 2.0 did
not save the passwords in the message file, there-
fore, a summary file, rebuilt from such a message
file will not have password protection.
Ron Fowler
Nov 18, 1980
Westland, Mich.
PREVIOUS DOCUMENTATION OF THE RBBS SYSTEM
=========================================
RBBS.DOC as of 10/23/80
RBBS is short for "Remote Bulletin Board System".
RBBS.ASC is a file that was created with MBASIC 5.2. Do
not try to edit it with a CP/M text editor because some of
the multiple line statements may have special end-of-line
sequences which may mess up a video-oriented editor, making it
impossible to see some of the lines. Use MBASIC 5.2 to edit the
file. This is public-domain software, feel free to use it on
your own system. The best way to run this program is to com-
pile it with the MBASIC compiler, making a COM file out of it.
It will run much faster that way. This is what Bruce Ratoff
did, and it works great on his system.
The POKES to address 0000h change the C3 to a CD during
execution of this program. Bruce Ratoff tests for this in
his DCHBYE55 remote console program. This testing is also done
in the PMMIBY63 remote console program. In the input from modem
port routine a test is made to see if address 0000h is a CD, if
so it causes the input routine to ignore control-C, changing it
to to a null character instead. This makes it impossible for
the user to control-C out of RBBS. When the program is done,
if you are exiting to CP/M for file transfers, it changes the CD
back to a C3 and then jumps to 0000h (warm boot).
RBBSPURG.ASC is a program for purging dead messages out of
the RBBS message files. This should be done periodically to
compactthe message files, since the "Kill" function simply
deletes the pointer to the message, not the message itself.
-------
NOTE: The above RBBSPURG.ASC has been superceded by
RBBSUTIL.ASC rgf
-------