home *** CD-ROM | disk | FTP | other *** search
-
- CP4KER.UPD
- Changes between v4.03 and v4.05 of Kermit-80
- 18-Feb-85
-
- ; edit 12: February 6, 1985
- ; Add extended H89 support (by Paul Milazzo, Rice University),
- ; support for Northstar Horizon with Northstar CP/M and SIO-4 board
- ; (by Joe Smith, Colorodo School of Mines), and support for Lobo
- ; MAX-80 computer (from Hal Hostetler)
- ;
- ; edit 11: 13-Jan-85 by Vanya J.Cooper Pima Commun. College Tel: 602-884-6809
- ;
- ;pcc001 27-Dec-84 vjc modules: cp4sys,cp4typ
- ; Add conditional for Xerox 820. I thought at first I could
- ; live with the kaypro conditional, but it's enough of a pain
- ; that I added it back in. The clear-to-end-of-screen char
- ; is different, breaking many programs in VT52 mode, and the
- ; default escape char control-\, is not at all obvious how
- ; to type on the 820 keyboard. If you muddle through the
- ; key translation table, it turns out to be control-comma.
- ; Rather than OR xer820 all the occurances of kpII conditionals
- ; I added a bbI conditional for all common code for the big
- ; board I based machines that is automatically turned on by
- ; either kpII or xer820. This will also make it easier in
- ; the future if another flavor of bigboard is added.
- ;
- ; edit 10: 5 December 1984 by CJC
- ; Add missing ENDIF (tsk, tsk)
- ;
- ; edit 9: 4 December 1984 by CJC
- ; Add two osborne fixes: missing crlf in outlin:, incorrect opcode in
- ; initialization.
- ;
- ; edit 8: 13 October 1984 by L M Jones, JCC, for New York Botanical Garden
- ; Add support for CPT-85xx series word processors when running CP/M-80.
- ;
-
-
- CP4KER.UPD
- Changes between v3.9 and v4.03 of Kermit-80
- 14-Sep-84
-
- Note: as soon as things stabilize, this file will be frozen; the revision
- history from v4.00 can be obtained from the source files.
-
- The starting point was CPMBASE.M80/CPMBASE.UPD for version 3.9 of Kermit,
- FTP'd from Columbia University. CPMBASE.UPD has not been modified; it is
- now only of historical interest. CPMBASE.M80 was divided two separately
- assembled modules (hereinafter referred to as CP4KER and CP4TYP, after the
- first file in each). The sources consist of 12 files (one of which is
- assembled into both modules):
- CP4KER.ASM - header for system-independent module. Defines assembler
- to be used, and links (LASM) or includes (MAC80, M80)
- the remaining files.
- CP4DEF.ASM - common symbol definitions (for CP4KER and CP4TYP)
- CP4MIT.ASM - main loop and small commands
- CP4PKT.ASM - SEND and RECEIVE commands
- CP4TT.ASM - TRANSMIT and CONNECT commands
- CP4CPM.ASM - DIR and ERA commands
- CP4WLD.ASM - wildcard support
- CP4CMD.ASM - command parser
- CP4UTL.ASM - support routines and data (pure, impure)
-
- CP4TYP.ASM - selects target system and assembler to be used. Links
- or includes the rest of these files:
- CP4LNK.ASM - linkage sections
- CP4DEF.ASM - common symbol definitions (for CP4KER and CP4TYP)
- CP4SYS.ASM - system-dependent code
-
- I started assembling the code with M80, and switched to LASM, to provide
- a system that could be built with a minimum of additional software beyond
- that provided in the basic CP/M system. (ASM could not be used, because
- it has no provision for multiple input files). Version 4.03 assembles
- identically with M80, LASM, and MAC80. All code (and data) is assembled
- for absolute addresses; CP4KER starts at 100H, and CP4TYP starts at the
- first free page following CP4KER. There are two linkage sections used to
- pass control and share data between the two modules: one at 105H, containing
- a block of JMP instructions to routines in CP4KER which may be needed by
- CP4TYP; the other is at the beginning of the system-dependent overlay,
- containing a block of JMP instructions and variables shared by CP4KER and
- CP4TYP. The formats of these areas are defined in CP4UTL and CP4LNK,
- although they really should be defined in only one place; the common subset
- of the assemblers used does not include a mechanism to do this.
-
- CP4KER.ASM contains the following:
- TRUE, FALSE - for selecting options
- M80, MAC80, LASM - select the assembler to be used, since they require
- different directives
- CP4KER - defined TRUE so CP4DEF can link to the correct module
- for LASM, a LINK directive to chain to CP4DEF.ASM
- for MAC80 and M80, INCLUDE directives to include the remainder of
- the files in the module.
-
- CP4DEF.ASM
- Definitions for ASCII characters
- Definitions for BDOS calls
- Definitions for constants used in command tables
-
- CP4MIT.ASM
- entry linkage section (routines needed by CP4TYP: kermit, and nout)
- start - system-independent initialization
- kermit - main command loop
- bye command
- exit command
- help command
- log command
- set command (and all its subcommands)
- show command
- status command
- version command (new - this displays the version strings stored in
- many of the files)
- The command tables and help messages are also here, next to the
- commands which reference them.
-
- CP4UTL.ASM
- utility routines:
- escpr - prints the escape character
- keycmd - parses a keyword; jumps to main loop if error.
- cfmcmd - confirms a command; jumps to main loop if error.
- nout - decimal output of number in HL.
- prtstr - call bdos to output a string.
- rskp - do "skip return" - return to PC on stack plus 3.
- r - do "nonskip return" - return to PC on stack. (This is
- needed because calls to routines with skip returns must
- be followed by a 3-byte instruction, such as a JMP).
- getfil - call bdos to open a file, and set up variables for
- reading it.
- inbuf - read a sector from the file opened by getfil.
- outbuf - output a sector.
- text (99.44% pure storage):
- Kermit's name and version;
- prompts;
- error messages;
- status messages;
- impure storage:
- for parser;
- for just about everybody else (break this down!)
- linkage section (overlaid by CP4TYP):
- consistency check info (3 words); initialized to zero here
- so we can detect absence of CP4TYP.
- jump tables for routines in CP4TYP
- data shared between CP4KER and CP4TYP:
- pointer to VT52 emulation strings
- pointer to command table for SET BAUD
- pointer to help table for SET BAUD
- pointer to command table for SET PORT
- pointer to help table for SET PORT
- various parameters whose defaults are system-dependent
- (including protocol parameters)
- other variables shared between CP4KER and CP4TYP:
- bmax, bmask, bshiftf, nnams
-
- Routine-by-routine changes:
- For each file, the order here more or less follows the order of routines
- in the sources. The primary exceptions are the system-dependent routines,
- which are described with the routines that call them. Other possible
- exceptions are routines that were moved, which may still be described where
- they used to be, due to oversight.
-
- CP4CMD.ASM:
- cmblnk:
- deleted; clrtop is now called directly.
- cmnb12:
- To erase current line, call clrlin instead of printing clrlin.
- Use prtstr instead of setting c=prstr and calling bdos.
- cminb2:
- To adjust for the delete key, call delchr instead of printing delstr.
- Move Kaypro dependency to CP4TYP.
- cmnb32:
- To erase character, call clrspc instead of printing clrspc.
-
- CP4CPM.ASM
- Move definition of NPL into this module.
- Call sysspc to calculate free space; algorithm is different for CPM3.
-
- sysspc:
- Use CPM3 algorithm (supplied by Bruce Tanner) for CPM3 systems, the
- old algorithm for all the others (CPM2 systems).
-
- CP4DEF.ASM:
- Move SOH to ASCII character section.
- Move BDOS next to BDOS calls.
- Separate CPM2-only and CPM3-only calls; add getfs for CPM3
- Delete DIASW, nobody uses it.
-
- CP4MIT.ASM:
- general changes (formatting only)
- blank line added after unconditional transfers of control;
- indent some error (non-skip) returns;
- space or tab added between some labels and instructions.
-
- entry linkage table (new):
- ASEG/ORG moved to immediately before table, so nothing gets in between.
- jump to start, around entry linkage table, added.
-
- start:
- print Kermit's version (Kermit-80 v4.00)
- (we do this as soon as possible, for identification if it quietly
- dies later)
- do consistency checks to see if we have a good configuration loaded.
- if so, call sysinit to do the system-dependent stuff.
- remove reenter label; proper re-entry point is now kermit:
- jump to kermit, instead of call; it never returns.
-
- sysinit:
- the system-dependent code was generalized where possible; this resulted
- in some changes to baud rate handling. Also, this made printing the
- version a bit easier. As with start:, we print the version as soon
- as possible to identify the victim.
-
- print "configured for <system name>" (after Kermit's version).
- if a specific terminal is being supported, print "with <terminal type>".
- for iobyte systems,
- get bios addresses so we can bypass bdos for I/O to console and modem.
- get current iobyte and save as console iobyte.
- for osbrn1, move I/O routines above 4000H, read current baud rate, and
- set comm-line parity.
- for kpII and bbII, output command string to SIO chip to initialize
- comm-line. (correct documentation of SIO chip commands)
- for mikko, copy command string to (memory-mapped) SIO chip to initialize
- comm-line; set data mask to 0ffH (all 8 bits).
- for brain, get current comm-line speed.
-
- kermit:
- reload the stack pointer, as some error handlers jump back to kermit
- without cleaning up the stack. This is now the reentry point used
- when control-C is typed during file transfer. Also re-select the
- console, for iobyt systems.
-
- bye:
- call sysbye to do system-dependent connection termination.
-
- sysbye:
- for apple, drop carrier on modem.
-
- exit:
- call sysexit to do system-dependent program termination
-
- sysexit:
- for mikko, restore comm-line parameters altered in sysinit.
-
- setcom:
- added SET DEBUG ON/OFF command (note: no corresponding display in
- SHOW command (yet))
- Added SET TACTRAP ON/OFF/CHARACTER for TAC support (from Toad Hall).
- Added subroutines onoff and chkkey to simplify SET subcommands.
-
- vt52em:
- if vtflg contains 0FFH, say "(not implemented)" and jump back to command
- loop.
- otherwise, accept an "ON" or "OFF" and set vtflg accordingly.
-
- setdbg:
- Since the debugging code could no longer be conditionally assembled,
- the SET DEBUG ON/OFF command was added. The debugging code is always
- present, and tests dbgflg to see if any debugging output should be
- produced. dbgflg is initialized to 0 (OFF) in CP4LNK.ASM.
-
- baud:
- If spdtab is non-zero, it points to a command table of speed keywords
- to be used to process the speed command, and spdhlp points to the
- corresponding help text. All bits of the value obtained from
- the speed table is stored in 'speed' for the STATUS command, and
- sysspd is called with the 16-bit value in DE.
- If spdtab contains zero, "(not implemented)" is printed.
-
- sysspd:
- The speed selection menus for brain and osbrn1 have been replaced
- with a keyword table. Brain now uses the same table as kpII, allowing
- the selection of 19200 baud; I'm not sure this speed will work, but
- decided to try it anyway. Osbrn1 uses a two-entry command table,
- allowing 300 and 1200 baud; the values returned are OSBR03 and OSBR12,
- simplifying the sysspd routine.
-
- for the brain, get the saved baud rates (stored by the bios?) and
- replace the left nibble with the low 4 bits of DE. Save the
- new value (for the bios?) and output it to the baud rate generator
- port.
- for the osbrn1, reset the ACIA, delay a while, and output the low
- byte of the speed to the ACIA.
- for the bbII, load the specified time constant into the appropriate
- channel of the CTC chip.
- for the kpII, output the speed to the channel A baud rate generator port.
- for the mikko, write the 16-bit baud rate multiplier into both the
- receive clock and transmit clock generators.
-
- prtset:
- SET PORT is handled in the same manner as SET BAUD: if prttab contains
- zero, "(not implemented)" is printed; otherwise, prttab contains a
- pointer to the command table, and prthlp contains a pointer to the
- help text. After getting the keyword from the user, sysprt is
- called with the keyword's value.
-
- sysprt:
- The processing here is essentially unchanged from version 3.9: the
- value is the address of a 3-byte entry which gives the iobyte value,
- the BDOS function, and (for robin) the hardware port address.
-
- status:
- trivial change to command confirmation; it now looks just like the
- SHOW command.
-
- stat01:
- this is the actual status display, called by the SHOW and STATUS
- commands, and by the <escape>S command in terminal mode.
-
- Each parameter is now displayed by a separate routine, so we can
- eventually support a "SHOW <parameter>" command.
-
- if vtflg, the VT52 emulation flag, contains 0FFH (not implemented),
- don't say anything about VT52 emulation; otherwise, report
- VT52-Emulation ON or OFF.
-
- if spdtab is non-zero, baud rate setting is supported, so report
- baud rate: if speed is 0FFFFH, report "speed is indeterminate",
- else look up speed in spdtab. If found, print speed, else report
- "speed is indeterminate". This should now work for all systems with
- SET BAUD capability.
-
- CP4PKT.ASM
- general:
- Calls with prtstr with DE containing one of scrend, screrr, scrfln,
- scrnp, scrnrt, scrst, rppos, and sppos were replaced with calls
- to these routines, which will typically position the cursor to
- the desired place and clear the remainder of the line.
- init:
- Instead of printing outlin and outln2, sysscr is called with DE
- containing the address of Kermit's name and version.
- Move initialization done by init1 to receive command; send command
- doesn't need it (getfil does all necessary file initialization)
-
- sysscr:
- print banner (outlin)
- for systems with cursor positioning support,
- print Kermit's version (from DE)
- print system name (sysver)
- print field names (outln2)
- (the system name is enclosed in square brackets; the open bracket
- is printed here, and the close bracket is in outln2)
- if dbgflg is set, print debug field names (outln3)
-
- spack:
- Delete debug code that terminated packet with a $, as a routine (dmptxt:)
- was added to output the whole packet (null-terminated).
-
- outpkt:
- Replace the sequence:
- IF iobyt
- lda prtiob ;Set up for output to go to the comm port
- sta iobyte ;Switch byte directly
- ENDIF;iobyt
- with:
- call selmdm ; Set up for output to comm port if iobyt
- Likewise, replace
- IF iobyt
- lda coniob ;Set up for output to go to the console port
- sta iobyte ;Switch directly
- ENDIF;iobyt
- with:
- call selcon ; set up for output to console port
- Selmdm and selcon are in CP4SYS.ASM; they contain the loads and stores
- from above, conditionally assembled under IOBYT, followed by a ret.
- At outpk6:, replace conditionally assembled debug code with test of
- dbgflg. Also call dmptxt instead of prtstr, so we print the whole
- packet.
- TACtrap support added: if tacflg is non-zero, it's the TAC intercept
- character, and must be doubled when seen in an outbound packet.
- Replace calls to outchr with calls to outmdm or outcon, depending on
- whether we want to talk to comm line or console. Outmdm and outcon
- are in CP4SYS.ASM. Note that parity must be set before calling
- outmdm; outchr used to do it, but outmdm does not.
-
- inpkt:
- At inpkt6:, replace conditionally assembled debug code with test of
- dbgflg. Also call dmptxt instead of prtstr, so we print the whole
- packet.
-
- inchr:
- Fuzzy timer support has been generalized. The initial value should
- be system-dependent, based on system speed and the time required
- to get an input character from the modem. If we get a control-C,
- jump to kermit instead of reenter.
-
- error:
- changing screrr to a subroutine from a string made error9 unnecessary.
-
- dmptxt:
- this routine is prints the null-terminated string pointed to by HL.
-
- CP4SYS.ASM:
- Integrated ap6551 (ACIA) support from Jon Beeson and Francis Wilson
- and numerous fixes from Bruce Tanner.
- Add delimiters around text in .printx's so M80 is happy too. (Currently,
- the M80/MAC80 assembly flags are used only to decide whether or not
- we should do the .printx's; if either is true, the .printx's are
- included).
- Add definitions for bbII. Although the bbII supports a builtin console,
- I've left that out for now; it looks like a superset of the ADM3A.
- Add support for Digicomp Delphi 100 and Netronics Smartvid terminal.
- (courtesy Bdale Garbee)
- Modify selection of defesc: for systems or terminals where ']' is a shifted
- character, use '\' instead (some of these are just guesses...).
- Define vtval: initial value of VT52 emulation flag. If generic CRT, can't
- do VT52 emulation; if terminal uses VT100 sequences (i.e. Robin, dmII),
- default to VT52 emulation off (but we can do it); for others, default
- VT52 emulation on.
- Things like defesc and vtval probably belong in CP4TYP.ASM, so the user can
- override them without modifying CP4SYS.ASM.
-
- outchr: replaced by outmdm (but parity must be set first):
- inpchr: replaced by inpmdm:
- prtout: replaced by outmdm:
- baudtb: replaced by command table (brain, osbrn1)
- sysexit, syscon, syscls, sysinh, sysint, sysflt, sysbye, sysspd, sysprt,
- sysscr, sysspc:
- described elsewhere (where they are called)
-
- selmdm, selcon:
- For iobyt systems, these routines update IOBYTE appropriately. For
- the Morrow Decision I, they cause the correct port to be selected.
- For the other systems, they do nothing.
-
- inpcon:
- gets a byte from the console, via dconio bdos call for non-iobyte
- systems, or by calling the bios for iobyte systems. Zero is
- returned if no character is available.
-
- outcon:
- outputs a byte to the console.
- For the Kaypro, it uses the bdos conout function for tabs, and dconio
- for all other characters. I haven't looked into this yet, but
- suspect that calling dconio will result in not knowing the current
- column, which in turn will cause the wrong number of spaces to be
- generated for tabs.
- For iobyte systems, we call the bios; for the rest, except the Kaypro,
- we use the dconio bdos function.
-
- outmdm:
- outputs a byte to the modem. This routine preserves bc and hl, although
- outcon doesn't. This will be reconciled eventually; I think we
- ought to make outmdm and outcon the same for iobyte systems.
-
- inpmdm:
- gets a byte from the modem. Returns zero if nothing there yet. Again,
- this ought to be the same as inpcon for iobyte systems.
-
- flsmdm:
- flushes any pending data at the modem.
-
- outlpt:
- outputs a byte to the printer.
-
- csrpos:
- given desired row in B and column in C, moves the cursor. Home position
- is (1,1). Since this routine is referenced by the linkage section,
- a dummy routine is provided for the OSI and CRT systems, although
- it should never be called.
-
- scrnp:
- For systems with cursor positioning, call csrpos with the desired screen
- position. For OSI and CRT systems, just print a space.
-
- scrnrt:
- For systems with cursor positioning, call csrpos with the desired screen
- position. For OSI and CRT systems, just print " %".
-
- scrfln, screrr, scrst, scrend:
- For systems with cursor positioning, these routines call csrpos with the
- desired screen position. For OSI and CRT systems, print a crlf.
-
- rppos, sppos:
- For systems with cursor positioning, these routines call csrpos with the
- desired screen position. For OSI and CRT systems, print a header
- ("RPack:" or "SPack:").
-
- clreos:
- For systems with cursor positioning, print the erase-to-end-of-screen
- string from the VT52 emulation table.
-
- clreol:
- For systems with cursor positioning, print the erase-to-end-of-line
- string from the VT52 emulation table.
-
- delchr:
- If echoing 'del' to the screen does nothing, just print a backspace.
- Otherwise, print delstr to clean the mess off the screen.
-
- clrspc:
- output space,backspace to erase the character at the current cursor
- position.
-
- clrlin:
- print eralin to erase the current line.
-
- clrtop:
- print erascr to clear the screen and move to the home position.
-
- prtstr:
- Duplicate for CP4TYP. We could put prtstr in the linkage section, but
- I was trying to restrict that to JMP instructions, to avoid having
- to calculate where everything is.
- rskp:
- Another duplicate.
-
- Terminal tables:
- general:
- define screen format (outln2, outln3)
- replace outlin + versio with sysver, outlin.
- clrlin becomes eralin.
- clrtop becomes erascr.
- for escape sequences with no translation, print nothing.
-
- brain:
- add curldn.
- remove rppos, sppos.
-
- heath/z100/telcon:
- make vt52-compatible: clear screen is $H$J, not $E$H; erase to EOL is $K,
- not $l.
-
- trs80lb:
- graphics mode?
-
- adm3a, tvi925, vt52, vt100:
- add ttytyp (terminal name string) for initialization
-
- kpii:
- The Kaypro echoes DEL as a printing character; it uses delstr (backspace,
- space, backspace, backspace) to erase it.
- for ti: (reverse linefeed) use insert line rather that cursor up, in the
- hope that it will only be used on the top line. (True for VMS EDT and
- Unix vi)
-
- CP4TT.ASM
- xmit:
- getfil no longer has a skip return: remove following "jmp kermit".
-
- xnext:
- Add calls to selmdm to select proper output port. This allows us to
- use the same output routine for terminal mode and file transfer mode.
- Use inbuf to get next buffer, instead of xbuf.
-
- xbuf:
- deleted; xmit calls inbuf instead.
-
- telnet:
- Drop what appears to be an extra call to ckdial (apple only); ckdial is
- called again as part of the system-dependent code for starting the
- session.
- Replace code for robin, apple, osbrn1 with call to syscon.
-
- syscon:
- For robin, print an extra message about control-S
- For apple, do dial support.
- For the osborne, patch BIOS so back-arrow generates DELETE code.
-
- prtchr:
- made system-independent. To get character, it calls selmdm and inpmdm.
- system-specific code changed to generic: NUL, DEL, XON, and XOFF are
- not sent to the terminal.
- (We should alter this to support HANDSHAKE and TURNAROUND options.)
- added call to sysflt - system-dependent filter to take care of any other
- characters we don't want to send to the terminal.
- If vtflg is positive, VT52 emulation is enabled. (negative means VT52
- emulation is not supported for this system; zero means supported but
- currently disabled)
-
- vt52:
- generalized. we accumulate a whole cursor positioning sequence, and
- evaluate the row and column, then call csrpos to do it for the console.
- If the escape sequence is not recognized, we swallow the escape and the
- following character, just like a real VT52, so as not to screw up the
- console.
- We now respond to 'Z' (query terminal type), claiming to be a VT52 without
- a local printer (I vaguely recall some commands to control the optional
- printer, as well as a different response saying we've got one, but I'll
- leave that to someone who needs to emulate a VT52 with printer).
- Still not supported (besides printer): '>' and '=' (alternate keypad
- support); '[' and '\' (hold-screen support).
-
- logit:
- Use setpar, outmdm instead of prtout. Note that we still assume host does
- XON/XOFF support, and can react to XOFF within a few character times
- (unreasonably fast).
-
- prtout:
- deleted. use outmdm instead (call selmdm and setpar as appropriate).
- other system dependencies are taken care of by sysflt.
-
- conchr:
- Made system-independent - calls I/O routines in CP4TYP.
-
- intchr:
- When <escape>C is seen, call syscls to do system-dependent stuff
- for return to local system.
- While printing help text, call sysinh to print extra system-dependent
- help.
- For <escape>0, send null with proper parity.
-
- syscls:
- For Osborne, re-patch BIOS so backarrow generates backspace.
-
- sysint:
- For apple, 'D' is Disconnect Modem command.
- For robin, dmII, bbII, and kpII, 'B' is Send Break command
-
- CP4TYP.ASM
- Remove DEBUG conditional.
- Add MAC80, M80, and LASM, for those assemblers.
- Add OVLADR, address at which overlay is linked. This is set from the value
- of LNKFLG in CP4KER.
- Set TRS80 equal to TRS80LB OR TRS80PT, so it doesn't need to be set by the
- user.
- Add BBII, for Ferguson Big Board II. If using the built-in terminal of
- the bbII, define ADM3A EQU TRUE.
- Add VT52 and VT100 as supported terminal types for systems without an
- integrated terminal. (I don't know how many micro owners have
- VT52's; I added it for my Heathkit H-19)
-
- CP4UTL.ASM:
- Utility routines:
- compp, countp, ackp, and tryagn were moved to CP4PKT.ASM.
- inbuf and outbuf were modified to support a large buffer used by the
- SEND, RECEIVE, and TRANSMIT commands. The beginning of the buffer
- and the size of the buffer are defined dynamically in sysinit.
-
- Text:
- The string "Kermit-80 Vx.y " was moved from the system version string
- (versio:) to version: in CP4UTL.ASM. I also extended the minor
- version to 2 digits so I can keep track of interim releases during
- testing.
- outln2 was moved to CP4SYS.ASM, as it is used only for systems with
- cursor positioning.
- erms20, erms21 added for consistency checks at initialization.
- infms8 no longer includes TRS-80 help text; that is printed by syscon
- in CP4SYS.ASM
- inms11 was moved to CP4SYS.ASM.
- sethlp was changed to include line for the SET DEBUG command; minimum
- abbreviations changed. (sethlp and tophlp don't follow the same
- conventions...).
- prthlp was moved to CP4SYS.ASM.
- inthlp was modified to remove system-dependent text; sysinh will
- describe the additional commands (including B for dmII).
- vtemst unconditionally generated.
- osbmsg removed; no longer needed.
- spdst, spdust unconditionally generated.
-
- COMND tables:
- SET DEBUG added to SET keyword table
- prttab, spdtab now contain address of SET PORT, SET SPEED command
- tables in CP4SYS.ASM.
-
- Impure data:
- ecoflg moved to linkage section.
- vtvflg, vctccc are no longer needed; replaced by vtyval.
- vtflg moved to linkage section.
- prtfun, prtiob, coniob, prtadr moved to CP4SYS
- flwflg, ibmflg, cpmflg, parity, escchr moved to linkage section.
- spsiz, rpsiz, stime, rtime, spad, rpad, spadch, rpadch, seol, reol,
- squote, rquote, chktyp moved to linkage section.
- curchk, inichk not initialized.
- speed moved to linkage section.
- bmax, bmask, bshiftf, nnams moved to linkage section, for sysspc.
- mfreq, mfflg1, mfflg2 moved to CP4WLD.ASM.
- osbaud replaced by speed.
- osbrn1 I/O routines (starting at osmove) moved to CP4SYS.ASM
- kpstbl, miotbl, mintbl moved to CP4SYS.ASM
- filflg removed; file handling code no longer needs it.
-
- linkage section: (new)
- this section starts at the next available page boundary (to lessen its
- chances of moving from version to version, allowing the same configuration
- overlay to be used). OVLADR in CP4TYP.ASM must be set to the address of
- lnkflg in CP4KER (from the listing). The linkage section contains:
- lnkflg: one word, initialized to zero by CP4UTL.ASM. CP4LNK.ASM
- overwrites this with what it believes is the length of this
- linkage section; CP4KER verifies this value at startup and
- refuses to run if the value is incorrect.
- lnkent: one word, again initialized to zero by CP4MIT.ASM. CP4LNK.ASM
- overwrites this with the expected length of the entry section
- starting at 0103H; CP4KER refuses to run if this value is
- incorrect.
- ovlver: one word, initialized to zero. This is overwritten with the
- address of a string giving the version of the overlay, in
- the same format as the other module version strings.
- The jump table follows the three-word header. After the jump table,
- space is saved for variables used by both CP4KER and CP4TYP.
-
- CP4WLD.ASM:
- mfname:
- Changed a few occurences of 'push a/pop a' to 'push psw/pop psw'.
-