home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols000
/
vol020
/
sysmon.doc
< prev
next >
Wrap
Text File
|
1985-02-09
|
105KB
|
2,409 lines
.HE ZUG VOL.2 Page #
.PO 0
.MB 3
.OP
PCE SYSTEMS SOFTWARE
PRELIMINARY USER'S MANUAL
for
PCE SYSTEM MONITOR
Releases A and B
by
PCE SYSTEMS
JUNE 1979
COPYRIGHT 1979 PCE SYSTEMS INC.
4782 Dewey Drive, Fair Oaks, CA 95628
PC┼á SYSTEM╙ INC«á iε thσ persoε oµ Mikσ Colson¼á ha≤ kindl∙ ì
donateΣá thσá completσá sourcσ fo≥ thi≤ Monito≥á Prograφá t∩á thσ ì
Pascal/┌ User≤ Group« I⌠ caε bσ copied¼ altered¼ anΣ useΣ b∙ an∙ ì
member¼ a⌠ thei≥ discretion¼ jus⌠ a≤ lonτ a≤ i⌠ i≤ non-commercia∞ ì
no≥á profitable«á Iεá al∞ othe≥ case≤ thσ followinτá Cop∙righ⌠ ì
applies.
COPYRIGH╘á π 197╣ b∙ PC┼ SYSTEM╙ INC«á Al∞ right≤ reserved«á N∩ par⌠ oµá thi≤ ì
publicatioε ma∙ bσ reproduced¼ storeΣ iε ß retrieva∞ systeφ o≥ transmitteΣ iε ì
an∙ forφ o≥ b∙ an∙ mean≤ -- electronic¼á mechanical¼ photocopying¼ recording¼ ì
o≥á otherwisσá -- withou⌠á thσ prio≥ writteε permissioε oµ PC┼á SYSTEM╙á INC« ì
witΦá thσá exceptioεá tha⌠á thσ encloseΣ softwarσá ma∙á bσá copieΣá int∩á thσ ì
purchaser'≤ owε compute≥ systeφ fo≥ hi≤ owε use.
PC┼ SYSTEM╙ INC« assume≤ n∩ responsibilit∙ fo≥ thσ usσ oµ an∙ oµ thσ encloseΣ ì
softwarσ iε thσ user'≤ system.
CREDITS: Software written by Richard Lerseth of LEPAC SERVICES.
┴á numbe≥ oµ companie≤ anΣ thei≥ tradσ mark≤ arσ mentioneΣ iε thi≤á document« ì
Thesσ are:
DAJEN, TELETEK - TM of Teletek inc., Rancho Cordova, Ca.
CP/M - TM of Digital Research, Pacific Grove, Ca.
TARBELL - TM of Tarbell Electronics, Carson, Ca.
ZAPPLE - TM of Xitan Inc. (formerly TDL Inc.)
CONTENTS
========
1.0 Introduction
2.0 Monitor command subsystem
3.0 Console subsystem
4.0 Cassette subsystem
5.0 Disk subsystem
6.0 I/O vector subsystem
7.0 Implementation
8.0 User written commands
APPENDICES
A Monitor Source listings
B Monitor Symbol table
C Sample Routine listings
.HE USER'S MANUAL ** PCE SYSTEM MONITOR ** Releases A and B ** Page #
1.0 -- INTRODUCTION
===================
PC┼á SYSTE═á MONITO╥á i≤á ßá completσ Z-8░ baseΣá monito≥á whicΦá support≤á ß ì
keyboard¼á ß vide∩ display¼ ß printer¼ cassettσ I/O¼ anΣ Flopp∙ disδ I/O« Thσ ì
monito≥ come≤ iε tw∩ configurations¼á Releasσ ┴ anΣ Releasσ B«á Releasσ ┴á i≤ ì
supplieΣá oεá ßá cassettσ tapσ anΣ ha≤ residen⌠ cassettσ tapσá I/╧á routines« ì
Releasσ ┬ i≤ supplieΣ oε ß CP/═ compatiblσ diskettσ anΣ ha≤ it≤ cassettσ tapσ ì
I/╧ routine≤ callablσ a≤ transien⌠ command≤ whicΦ residσ oε ßá diskette«á Thσ ì
monito≥á i≤á ßá modula≥á softwarσá packagσá whicΦá ha≤á separatσá independen⌠ ì
subsytems«á Thesσ are║á thσ monito≥ commanΣ subsystem¼ thσ consolσ subsystem¼ ì
thσ disδ I/╧ subsystem¼á anΣ thσ I/╧ vecto≥ subsystem« Iε addition¼ Releasσ ┴ ì
contain≤ thσ cassettσ I/╧ subsystem« EacΦ oµ thσ separatσ section≤ havσ fron⌠ ì
enΣá vecto≥ linkage≤ whicΦ providσ thσ communicatioε path≤ t∩ onσ anothe≥á a≤ ì
wel∞á a≤ entrie≤ fo≥ use≥ writteε programs«á Iε particula≥ thσ Monito≥ Vecto≥ ì
I/╧ subsyteφ provide≤ INTE╠ standarΣ I/╧ vecto≥ linkage≤ fo≥ thσ fou≥ logica∞ ì
devices║ console¼ reader¼ punch¼ anΣ list.
Thσ monito≥ ha≤ ß "buffereΣ commanΣ processoró whicΦ allow≤ thσ use≥ t∩ builΣ ì
hi≤ commanΣ oε thσ vide∩ displa∙ usinτ ful∞ tex⌠ editinτ capabilitie≤ througΦ ì
keyboarΣ contro∞ commands.
Excludinτá thσá CP/═ BIOS¼á Releasσ ┴ oµ thσ monito≥ occupie≤ 6╦á oµá memory╗ ì
Releasσá ┬ occupie≤ 5╦ oµ memory«á Thσ majo≥ portioε oµ thσá monito≥á commanΣ ì
routine≤ residσ iε thi≤ memory«á Thσ res⌠ arσ transient¼á o≥ virtua∞ command≤ ì
whicΦá residσá oεá disδá memory¼á anΣ arσ calleΣ u≡ wheεá needeΣá iεá overla∙ ì
fashion« Thσ transien⌠ command≤ arσ accesseΣ viß thσ COP┘ anΣ VERIF┘ command≤ ì
whicΦ loaΣ thσ specifieΣ filσ anΣ vector≤ t∩ it«á Thσ filσ namσ mus⌠á conforφ ì
t∩ thσ followinτ format:
COPYSD.SMC - for copy commands.
VRFYSD.SMC - for verify commands.
ááááááááwherσá [S▌ anΣ [D▌ arσ thσ sourcσ anΣ destinatioε code≤ a≤ defineΣ iε ì
ááááááááthσá detaileΣ descriptioε oµ thesσ command≤ iε sectioε 2«á Notσá tha⌠ ì
ááááááááthσá filσá namσ mus⌠ conforφ t∩ thσ abovσ forma⌠ bu⌠ yo⌡á ma∙á desigε ì
ááááááááyou≥ custoφ routine≤ t∩ d∩ othe≥ thaε cop∙ o≥ verify.
Thi≤ manua∞ wil∞ givσ thσ instruction≤ needeΣ t∩ implemen⌠ anΣ usσ you≥ newl∙ ì
acquireΣ monitor«á Thσ difference≤ betweeε Release≤ ┴ anΣ ┬ wil∞ bσ explaineΣ ì
iεá thσá appropiatσá section≤á oµ thi≤ manua∞ wheε anΣá iµá the∙á affec⌠á thσ ì
operatioε oµ you≥ monitor.
Wσá hopσ yo⌡ likσ thi≤ packagσ anΣ tha⌠ i⌠ wil∞ improvσá you≥á human/compute≥ ì
communicatioεá linkage≤ anΣ al∞ thosσ gooΣ things«áì
2.0 -- MONITOR COMMAND SUBSYSTEM
================================
2.1 -- GENERAL DESCRIPTION
==========================
Thσá monito≥ ha≤ thσ capabilit∙ oµ havinτ 2╢ primar∙ command≤ - onσ fo≥á eacΦ ì
lette≥á oµ thσ alphabet«á Iε addition¼á eacΦ primar∙ commanΣ allow≤ secondar∙ ì
option≤á whicΦ expanΣ thσ commanΣ se⌠ t∩ ß mucΦ greate≥ number«á Withiεá thi≤ ì
sectioεá i≤á ß commanΣ processo≥ whicΦ allow≤ yo⌡ t∩ builΣá command≤á oεá thσ ì
vide∩ display« Thσ monito≥ firs⌠ wil∞ promp⌠ yo⌡ fo≥ ß ne≈ commanΣ b∙ sendinτ ì
thσá messagσ "ENTE╥ COMMANDó t∩ thσ vide∩ display«á Theε i⌠ place≤ thσ curso≥ ì
a⌠á thσ beginninτ oµ thσ nex⌠ vide∩ line«á Iµ yo⌡ madσ aε erro≥ iεá thσá las⌠ ì
command¼á thσá monito≥ wil∞ senΣ aε erro≥ messagσ defininτ thσ erro≥ anΣ theε ì
promp⌠ yo⌡ fo≥ anothe≥ commanΣ entry«á Yo⌡ havσ aε optioε oµ movinτ u≡ t∩ thσ ì
prio≥ commanΣ usinτ curso≥ control≤ anΣ correctinτ you≥ mistake¼á o≥ yo⌡á caε ì
ente≥ ß ne≈ commanΣ a⌠ thσ presen⌠ curso≥ position.
A≤ thσ commanΣ i≤ beinτ entereΣ yo⌡ havσ ß numbe≥ oµ editinτ command≤ a⌠ you≥ ì
disposal«á Somσ oµ thesσ are║ movσ curso≥ right¼ left¼ up¼ o≥ down╗ clea≥ thσ ì
line╗á deletσá ßá character╗á bacδ spacσ anΣ deletσ ß character╗á anΣá inser⌠ ì
spaces«á T∩á enΣ thσ entr∙ proces≤ anΣ initiatσ thσ command¼á jus⌠ pres≤á thσ ì
RETUR╬ ke∙ fo≥ ß onσ linσ commanΣ o≥ thσ CTRL-╥ fo≥ ß tw∩ linσá command«á Thσ ì
curso≥á caε bσ an∙ positioε oε thσ linσ (to≡ linσ fo≥ tw∩ linσá command)«á Iε ì
processinτ thσ commanΣ thσ monito≥ firs⌠ find≤ whicΦ vide∩ linσ thσ curso≥ i≤ ì
on¼á turn≤á ofµá thσá cursor¼á transfer≤ thσ tota∞ line(s⌐ int∩á thσá commanΣ ì
buffer¼á theε turn≤ oε thσ curso≥ again« Thσ monito≥ theε proceed≤ t∩ analyzσ ì
commanΣá iε thσ buffer«á Firs⌠ i⌠ determine≤ thσ significan⌠ portioεá oµá thσ ì
command« Leadinτ anΣ trailinτ blank≤ (spaces⌐ arσ stripped¼ anΣ thσ remainde≥ ì
i≤ deblockeΣ int∩ subfield≤ whicΦ arσ delimiteΣ b∙ imbeddeΣ spaces¼á periods¼ ì
commas¼á semicolons¼á colons¼á plu≤ anΣ minu≤ signs¼á asterisks¼ slashes¼ anΣ ì
equa∞ signs.
Whilσá thσ monito≥ i≤ processinτ anΣ executinτ length∙ commands¼á thσ ESCAP┼ ì
ke∙á caε bσ presseΣ t∩ escapσ froφ thσ commanΣ bacδ int∩ commanΣ entr∙á mode« ì
A≤á aε example¼á ente≥ thσ commanΣ "─ - "«á Thi≤ commanΣ wil∞ displa∙ al∞á oµ ì
memor∙ iε hexadecima∞ forma⌠ anΣ wil∞ takσ somσ timσ t∩ complete«á Pres≤á thσ ì
ESCAP┼á ke∙á whilσ thi≤ i≤ happeninτ anΣ yo⌡ wil∞ escapσ froφ thσ proces≤á oµ ì
displayinτ memory.
2.2 -- SUBSYSTEM INTERFACE
==========================
Thσá subsysteφá interfacσá organizatioε a⌠ thσ fron⌠á oµá thσá subsysteφ ì
contains¼á iε order¼á threσ entr∙ jum≡ vectors¼ tw∩ addres≤ pointer≤ fo≥ worδ ì
areß anΣ stack¼ ß tablσ oµ 2╢ primar∙ commanΣ vecto≥ addresses¼ ß tablσ oµ 3╢ ì
cop∙ commanΣ vecto≥ addresses¼ anΣ ß tablσ oµ 1╢ verif∙ commanΣ addresses.
Entry jump table:
ORG MBASE ;BASE OF MONITOR
ENTRY1 JP START ;COLD START OF MONITOR
ENTRY2 JP RESTRT ;WARM START OF MONITOR
ENTRY3 JP FMEM ;MEMORY TEST FOR ZAPPLE
Variable work area and monitor stack pointer addresses:
MWORK DEFW WBASE ;VARIABLE WORK AREA POINTER
STACK DEFW SBASE ;MONITOR STACK POINTER
Primary Command vector address table of 26 addresses:
MJUMP DEFW ASSIGN ;PRIMARY COMMAND A
: : : : :
DEFW NAVAIL ;PRIMARY COMMAND Z
Copy Command vector address table of 36 addresses:
CJUMP DEFW CPM ;COPYTT COMMAND
: : : :
DEFW CPM ;COPYUU COMMAND
Verify Command vector address table of 16 addresses:
VJUMP DEFW CPM ;VRFYTT COMMAND
: : : :
DEFW CPM ;VRFYUU COMMAND
Thσá variablσ worδ spacσ pointe≥ define≤ thσ monito≥á worδá space«á Thi≤ ì
pointe≥á mus⌠ bσ thσ samσ fo≥ al∞ thσ subsystems«á Thσ monito≥ worδ spacσá i≤ ì
defineΣ a≤ follows:
WBASE-77 -- IOBYTE ASSIGNMENT
WBASE-76 -- SUBFIELD PARAMETER TABLE
TEN FOUR BYTE BLOCKS,
WHERE FOR THE KTH BLOCK:
K+0 -- DELIMITER CHAR
K+1 -- SUBFIELD ADDR
K+3 -- NO. OF BYTES IN SUBFIELD
WBASE-12 -- DECODED ADDRESS #1
WBASE-10 -- DECODED ADDRESS #2
WBASE-8 -- DECODED ADDRESS #3
WBASE-6 -- NUMBER OF ADDRESSES DECODED
WBASE-5 -- SUBFIELD BLOCK POINTER
WBASE-4 -- TOTAL NO. OF SUBFIELDS DEBLOCKED
WBASE-3 -- NO. OF SIGNIFICANT BYTES IN COMMAND
WBASE-2 -- ADDR OF 1ST SIGNIFICANT BYTE IN BUFFER
WBASE -- START OF COMMAND LINE BUFFER AREA
WBASE+127 -- END OF COMMAND LINE BUFFER AREA
2.3 -- COMMAND FORMATS
======================
The generalized form of the monitor command set is:
P####[.SD][.K####] [AAAA[-BBBB[-CCCC]]] [F..F]
------------------ -------------------- ------
// // //
command field 1st parameter 2nd parameter
field field
Thσá commanΣá i≤ composeΣ oµ threσ subfield≤ whicΦ arσ separateΣ b∙á imbeddeΣ ì
spaces╗á thσ commanΣ field¼á thσ 1s⌠ paramente≥ field¼á anΣ thσ 2nΣ paramete≥ ì
field«á Subfield≤á encloseΣ iε bracket≤ [▌ arσ optiona∞ a≤ specifieΣá b∙á thσ ì
individua∞ commands.
2.3.▒ -- COMMAN─ FIELD║á Thσ commanΣ fielΣ i≤ composeΣ oµ thσ primar∙ ì
commanΣá characte≥ [P▌ anΣ tw∩ optiona∞ optioε subfield≤ [.SD▌ anΣ [.K]«á Thσ ì
primar∙ commanΣ characte≥ mus⌠ bσ aε alphabetiπ characte≥ [A..Z]« Thi≤ allow≤ ì
2╢á primar∙ commands«á Thσ presen⌠ versioε oµ thσ monito≥ doe≤ no⌠á implemen⌠ ì
al∞ oµ these«á UnuseΣ primar∙ command≤ caε bσ useΣ b∙ yo⌡ fo≥ you≥ owε custoφ ì
routines«á Seσá sectioε 8.░ oε ho≈ yo⌡ caε makσ usσ oµ them«á An∙á numbe≥á oµ ì
arbitrar∙ alphanumeriπ character≤ (designateΣ b∙ ####⌐ caε follo≈ thσ primar∙ ì
commanΣ character«á Tw∩ type≤ oµ optioε subfield≤ arσ availablσ t∩ expanΣ thσ ì
commanΣ set«á Thesσ arσ delimiteΣ b∙ ß perioΣ iε thσ commanΣ field« Thσ firs⌠ ì
optioε fielΣ [.SD▌ i≤ useΣ onl∙ a≤ par⌠ oµ thσ COP┘ anΣ VERIF┘ command≤ whicΦ ì
requirσá ß SOURCE/DESTINATIO╬ codσ t∩ allo≈ 3╢ type≤ oµ cop∙ anΣ 1╢ type≤á oµ ì
verif∙á commands.Thi≤á subfielΣá i≤ explaineΣ iε detai∞á unde≥á thσá detaileΣ ì
explanatioε oµ thσ tw∩ commands¼á COP┘ anΣ VERIFY«á Thσ seconΣ typσ oµ optioε ì
subfielΣá [.K▌á act≤á a≤á secondar∙ commanΣ fielΣ t∩á multipl∙á eacΦá primar∙ ì
commanΣ int∩ 2╢ additiona∞ commands« A≤ witΦ thσ primar∙ commanΣ subfielΣ an∙ ì
numbe≥ oµ arbitrar∙ alphanumeriπ character≤ caε follo≈ thσ secondar∙á commanΣ ì
character«á Cop∙ anΣ verif∙ command≤ requirσ thσ [.SD▌ optioε beforσ thσ [.K▌ ì
option.
2.3.▓ -- FIRS╘ PARAMETE╥ FIELD║ Thi≤ fielΣ mus⌠ bσ separateΣ froφ thσ ì
commanΣá fielΣ b∙ onσ spacσ anΣ onσ spacσ only«á Man∙ oµ thσ monito≥ command≤ ì
requirσá 1,2¼á o≥á │á addres≤ o≥ bytσ field≤ t∩ bσ entereΣá a≤á par⌠á oµá thσ ì
command« Thesσ field≤ arσ expecteΣ t∩ bσ iε hexadecima∞ forma⌠ [0-9,A-F]« Thσ ì
monito≥á processe≤ eacΦ addres≤ (byte⌐ fielΣ unti∞ i⌠ encounter≤ ßá delimite≥ ì
o≥á ßá hexadecima∞á error«á Iµá thσ addres≤ i≤ greate≥ thaεá fou≥á lega∞á he° ì
character≤ [ex║á 10FEA2]¼ thσ monito≥ use≤ thσ leas⌠ significan⌠ ┤ character≤ ì
[FEA2]« ┴ bytσ fielΣ woulΣ reducσ t∩ thσ leas⌠ significan⌠ ▓ character≤ [A2]« ì
Iµá morσ thaε onσ addres≤ (byte⌐ i≤ entered¼á eacΦ additiona∞ addres≤á (byte⌐ ì
fielΣ mus⌠ bσ delimiteΣ froφ thσ prio≥ b∙ ß dasΦ (minu≤ sign)« Therσ mus⌠ no⌠ ì
bσá an∙ othe≥ typσ oµ embeddeΣ delimite≥ iε thσ field«á Yo⌡ ma∙á defaul⌠á thσ ì
addresse≤á (bytes⌐ b∙ usinτ thσ dasΦ b∙ itselµ o≥ iε fron⌠ oµ o≥ bacδ oµá thσ ì
addres≤á field«á Thσá firs⌠ addres≤ fielΣ default≤ t∩ 0000H«á Thσ seconΣá anΣ ì
thirΣ default≤ t∩ FFFFH« Thi≤ lead≤ t∩ ß shorthanΣ wa∙ oµ enterinτ addresses.
Examples: 1. [--] = [0000-FFFF-FFFF]
2. [-BBBB-] = [0000-BBBB-FFFF]
3. [AAAA-] = [AAAA-FFFF]
Thσá presen⌠ versioε oµ thσ monito≥ wil∞ onl∙ proces≤ u≡ t∩ threσá addresses« ì
Thesσá addresse≤á arσá storeΣ awa∙ iε thσ monito≥ RA═ worδá spacσá fo≥á late≥ ì
processing«á Yo⌡ caε acces≤ thesσ b∙ knowinτ wherσ t∩ looδ fo≥ them«á Seσ thσ ì
sourcσá listinτ oµ thσ monito≥ iε Appendi° A¼á anΣ sectioε 8.░ fo≥ idea≤á iε ì
thσ usσ oµ these.
2.3.│ -- SECON─ PARAMETE╥ FIELD║ Thi≤ fielΣ i≤ requireΣ b∙ thσ SEARC╚ ì
command«á ┴á detaileΣá descriptioε oµ thi≤ fielΣ a≤ useΣ b∙á thσá commanΣá i≤ ì
containeΣ iε thσ explanatioε oµ thσ SEARC╚ command.
2.4 -- PRIMARY COMMAND LIST
===========================
ALPHA COMMAND DESCRIPTION.
A A#### AA ááAssigεá Inte∞á StandarΣá I/╧á Device¼áá (Inte∞ ì
ááááááááááááááááááááááááááááááácompatiblσ IOBYTE).
B B#### AA ááLocku≡á systeφ witΦ ke∙ codσ AA«á A┴ mus⌠á bσ ì
áááááááááááááááááááááááááááááááentereΣ agaiε t∩ unlocδ thσ system.
C C####.SD[.K] [F..F] ááCop∙á froφá sourcσá ╙ t∩ destinatioεá ─á usinτ ì
áááááááááááááááááááááááááááááááparamete≥ [.K▌ o≥ fielΣ [F..F▌ wherσ required.
D D####.K AAAA-BBBB ááDispla∙ memor∙ froφ AAA┴ t∩ BBB┬ usinτá optioε ì
ááááááááááááááááááááááááááááááá.╦á wherσá .╦ i≤ .╚ fo≥á hexadecimal¼á .┴á fo≥ ì
áááááááááááááááááááááááááááááááASCII¼ .├ fo≥ combineΣ ASCI╔ ª hex¼ anΣ .╘ fo≥ ì
áááááááááááááááááááááááááááááááText.
E E####.K AAAA ááEnte≥ t∩ memor∙ startinτ a⌠ addres≤ AAA┴ usinτ ì
áááááááááááááááááááááááááááááááoptioε .╦ wherσ .╦ i≤ .╚ fo≥ hexadecimal¼á anΣ ì
ááááááááááááááááááááááááááááááá.╘ fo≥ TEXT.
F F#### AAAA-BBBB[-CC] ááFil∞ memor∙ froφ AAA┴ t∩ BBB┬ witΦ CC,[00╚á iµ ì
ááááááááááááááááááááááááááááááá-C├ no⌠ present].
G G#### AAAA ááJum≡á t∩á addres≤ AAA┴ witΦ returε addres≤á t∩ ì
áááááááááááááááááááááááááááááááthσ monito≥ pusheΣ oε thσ stack.
H H#### AAAA-BBBB ááHexadecima∞ add/subtrac⌠ BBB┬ to/froφ AAAA
I I#### AA ááInpu⌠ froφ por⌠ AA
J J#### AAAA ááJum≡á t∩ addres≤ AAA┴ witΦ returε jum≡á vecto≥ ì
ááááááááááááááááááááááááááááááát∩ thσ monito≥ placeΣ a⌠ addres≤ a⌠ 0000
K *** ááUndefined
L L####.K AAAA-BBBB ááLis⌠ oε printer¼ memor∙ froφ AAA┴ t∩ BBB┬ witΦ ì
áááááááááááááááááááááááááááááááoptioεá .K«á Option≤ arσ samσ a≤ ╦ iεá Displa∙ ì
ááááááááááááááááááááááááááááááácommand.
M M#### AAAA-BBBB-CCCC ááMovσ memor∙ blocδ AAAA-BBB┬ t∩ CCCC.
N *** ááUndefined.
O O#### AA-BB ááOutpu⌠ t∩ por⌠ A┴ witΦ bytσ BB.
P P#### AAAA-BBBB-CCCC ááPrograφá EPRO═ startinτ a⌠ addres≤á CCC├á witΦ ì
ááááááááááááááááááááááááááááááámemor∙ blocδ AAAA-BBBB.
Q *** ááUndefined.
R Release A only - Release B uses C####.TM
R#### ááReaΣ cassettσ absolute.
R#### AAAA ááReaΣ cassettσ biased.
R#### AAAA-BBBB ááReaΣ cassettσ specific.è
S S#### AAAA-BBBB F..F ááSearcΦá memor∙á blocδ AAAA-BBB┬ fo≥ he°á fielΣ ì
áááááááááááááááááááááááááááááááF..F.
S#### AAAA-BBBB 'F..F SearcΦ memor∙ blocδ AAAA-BBB┬ fo≥ ASCI╔á fielΣ ì
áááááááááááááááááááááááááááááááF..F.
T T#### ááFinΣ firs⌠ contiguou≤ blocδ oµ RA═ memory.
T####.K AAAA-BBBB ááTes⌠á RA═ memor∙ blocδ AAAA-BBB┬ witΦ tes⌠á .╦ ì
áááááááááááááááááááááááááááááááwherσá .╦ i≤ .╤ fo≥ quicδ tes⌠ fo≥ harΣ memor∙ ì
áááááááááááááááááááááááááááááááerrors¼á anΣá ├á fo≥á completσá tes⌠á fo≥á bi⌠ ì
ááááááááááááááááááááááááááááááápatterε sensitivity
U *** ááUndefined.
V V####.SD [F..F] ááVerif∙á sourcσá ╙á witΦá destinatioεá ─á usinτ ì
áááááááááááááááááááááááááááááááparamente≥ fielΣ [F..F▌ wherσ required.
W Realease A only - Release B uses C####.MT
W#### AAAA-BBBB ááWritσá t∩á cassettσá memor∙á blocδá AAAA-BBBB« ì
áááááááááááááááááááááááááááááááChecksummeΣ Teleteδ [Dajen▌ format.
X *** ááUndefined.
Y *** ááUndefined.
Z *** ááUndefined.
2.5 -- DETAILED DESCRIPTION OF THE COMMANDS
===========================================
.CP 15
============
2.5.1 A : ASSIGN
============
FORMAT: A#### AA
EXAMPLES: ASSIGN 00
A 34
Assigεá IOBYTE«á [AA▌á i≤ thσ ne≈ [IOBYTE▌ bytσá assignment«á Thi≤á bytσ ì
define≤á thσ logica∞ t∩ physica∞ devicσ mappinτ whicΦ follow≤ thσá INTE╠á I/╧ ì
vecto≥ standarΣ fo≥ fou≥ logica∞ I/╧ devices║á console¼á reader¼á punch¼á anΣ ì
list«á EacΦá logica∞á devicσá caεá bσ assigneΣ t∩ onσ oµá fou≥á physica∞á I/╧ ì
devices«á Completσá descriptioεá oµá thσ IOBYT┼ assignmen⌠á i≤á explaineΣá iε ì
sectioε 6.0¼ "I/╧ VECTO╥ SUBSYSTEM."
.CP 19
=========
2.5.2 B : BYE
=========
FORMAT: B#### AA
EXAMPLES: BYE 34
BYEBYE
B 3FCD2
Locδá u≡á thσ systeφ unde≥ powe≥ t∩ kee≡ thσ compute≥á froφá beinτá useΣ ì
temporaril∙á t∩á savσ an∙ prograφ iε memor∙ froφ beinτá disturbeΣá accidentl∙ ì
durinτá interruptions«á [AA▌á i≤á thσ hexadecima∞ ke∙ whicΦ wil∞á unlocδá thσ ì
systeφ a⌠ ß late≥ time«á Thσ systeφ wil∞ wai⌠ iε ß loo≡ unti∞ i⌠ see≤ thσ ke∙ ì
again«á Thσ ke∙ i≤ onσ singlσ byte«á So¼ iµ yo⌡ ente≥ ß strinτ oµ hexadecima∞ ì
character≤á greate≥á thaεá tw∩á character≤á long¼á theεá onl∙á thσá las⌠á tw∩ ì
character≤á iε thσ strinτ arσ useΣ fo≥ thσ key«á Iε thσ thirΣá examplσá abovσ ì
[D2H▌á i≤ thσ key«á Iµ yo⌡ senΣ thσ commanΣ iε thσ seconΣ examplσ above¼á thσ ì
monito≥ wil∞ assumσ thσ ke∙ i≤ [00H].
.CP 26è ==========
2.5.3 C : COPY
==========
FORMAT: C####[.SD][.K####][F..F]
EXAMPLES: C.MM 1000-2000-3000
COPY.MC 1000-2000
Cop∙ froφ ß sourcσ t∩ ß destination«á Thi≤ commanΣ i≤ ß generalizeΣ movσ ì
oµ datß t∩ anΣ froφ si° defineΣ mediums«á Thesσ are║á [T▌ - Tapσ drive¼ [D▌ - ì
Disδ drive¼á [M▌ - Memory¼á [C▌ - Consolσ I/O¼á [P▌ - Printer¼ anΣ [U▌ - Use≥ ì
defineΣ medium«á Thσ source/destinatioε codσ [SD▌ define≤ thσ mediß involved« ì
Thirt∙ si° combination≤ arσ possible«á Thesσ caε mos⌠ readil∙ bσ showε a≤ ß ╢ ì
╪ ╢ matrix.
T - TT DT MT CT PT UT
D - TD DD MD CD PD UD
DESTINATION M - TM DM MM CM PM UM
C - TC DC MC CC PC UC
P - TP DP MP CP PP UP
U - TU DU MU CU PU UU
: : : : : :
T D M C P U
SOURCE
.CP 16
Thσ tw∩ characte≥ [SD▌ codσ i≤ decodeΣ int∩ aε inde° t∩ thσ cop∙á vecto≥ ì
table«á Thσ monito≥ theε obtain≤ thσ vecto≥ addres≤ iε thσ tablσ anΣ jump≤ t∩ ì
tha⌠ address« Thσ tablσ reside≤ jus⌠ afte≥ thσ primar∙ commanΣ vecto≥ table.
Onl∙á somσ oµ thσ cop∙ routine≤ residσ permanentl∙ iε memor∙ a≤ par⌠á oµ ì
thσ monito≥ commanΣ subsystem«á Thσ res⌠ oµ thσ cop∙ routine≤ arσ expecteΣ t∩ ì
residσá iεá CP/═ file≤ a≤ transien⌠ commands«á ┴ CP/═ filσ routinσ i≤á loadeΣ ì
int∩ memor∙ a⌠ [0100H▌ anΣ theε executed«á Thσ transien⌠ commanΣ wil∞á vecto≥ ì
bacδ t∩ thσ monito≥ wheε i⌠ i≤ finished«á Thσ cop∙ command≤ whicΦ arσ defineΣ ì
a≤á resident¼á vecto≥á t∩ routine≤ whicΦ arσ pointeΣ t∩ b∙ alternatσá primar∙ ì
commanΣ vectors«á Additiona∞ parameter≤ arσ needeΣ fo≥ eacΦ residen⌠á commanΣ ì
a≤á specifieΣ b∙ it≤ alternatσ primar∙ command«á Thi≤ i≤ supplieΣ througΦ thσ ì
fielΣá [F..F]«á Thσ fielΣ [F..F▌ mus⌠ bσ identica∞ t∩ thσá relateΣá alternatσ ì
primar∙á command«á Thσá transien⌠ command≤ usuall∙ d∩ no⌠ requirσá additiona∞ ì
parameter≤ a≤ par⌠ oµ thσ commanΣ line«á Thesσ routine≤ normall∙ wil∞á promp⌠ ì
yo⌡ fo≥ thσ additiona∞ informatioε required.
.CP 19è The resident copy commands are:
1. COPY.TM [AAAA[-BBBB]] READ Command (Release A only)
2. COPY.MT AAAA-BBBB WRITE Command (Release B only)
3. COPY[.MM] AAAA-BBBB-CCCC MOVE Command
4. COPY.MC[.K] AAAA-BBBB DISPLAY Command
5. COPY.MP[.K] AAAA-BBBB LIST Command
6. COPY.CM[.K] AAAA ENTER Command
Subfield≤á encloseΣá iε [▌ arσ optiona∞ anΣá arσ ì
ááááááááexplaineΣ unde≥ thσ specifieΣ residen⌠ command.
Man∙á oµá thσá transien⌠ cop∙ command≤ wil∞á bσá availablσá a≤á optiona∞ ì
routine≤á fo≥á thσá monitor«á Thσá remainde≥á oµ thσá cop∙á command≤á ma∙á bσ ì
implementeΣ b∙ you«á Sectioε 8.░ outline≤ thσ procedure≤ needeΣ t∩á implemen⌠ ì
residen⌠á anΣá CP/═ filσ routine≤ fo≥ ne≈ commands«á Iε addition¼á sincσá thσ ì
residen⌠ cop∙ command≤ poin⌠ t∩ thσ READ¼á WRITE¼á MOVE¼á DISPLAY¼á LIS╘á AN─ ì
ENTE╥á routines╗á theεá thσ Alphß primar∙ command≤ [R,W,M,D,L,E▌á whicΦá als∩ ì
poin⌠ t∩ thesσ routine≤ caε bσ useΣ fo≥ you≥ owε custoφ commands.
.CP 40è =============
2.5.4 D : DISPLAY
=============
FORMATS: D####[.K] AAAA-BBBB
C####.MC[.K] AAAA-BBBB
EXAMPLES: DISPLAY 0000-2000
D.A -
DUMP.COMBINED 200-
COPY.MC.TEXT 7000-7100
Displa∙á memor∙ usinτ forma⌠ optioε [.K]«á Thi≤ commanΣ wil∞ displa∙á oε ì
thσá vide∩á screeεá thσá specifieΣ memor∙ blocδ [AAAA-BBBB▌ iεá onσá oµá fou≥ ì
format≤á [H,A,C,o≥ T]«á Iµ forma⌠ fielΣ [.K▌ i≤ no⌠ presen⌠ iεá thσá command¼ ì
theεá thσá monito≥á default≤á t∩ [.H]«á ┴ COP┘ commanΣá i≤á availablσá a≤á aε ì
alternativσ t∩ thσ DISPLA┘ command.
Thσ displa∙ format≤ arσ a≤ follows:
áááááááá[.H▌ - Hexadecima∞ format« Content≤ oµ memor∙ i≤ displayeΣ 1╢ byte≤ ì
áááááááápe≥ line¼ headeΣ b∙ thσ addres≤ oµ thσ firs⌠ bytσ oµ thσ line.
áááááááá[.A▌á - ASCI╔ format«á Thσ content≤ oµ memor∙ i≤ displayeΣ 3▓ byte≤ ì
áááááááápe≥ line¼á headeΣ b∙ thσ addres≤ oµ thσ firs⌠ bytσ oµ thσ line« ASCI╔ ì
áááááááácontro∞á character≤á arσá displayeΣá a≤á period≤á [.]«á Iµá thσá mos⌠ ì
áááááááásignifican⌠á bi⌠ i≤ higΦ theε thσ ASCI╔ equivalen⌠ wil∞ bσá displayeΣ ì
ááááááááiε reversσ vide∩ mode.
áááááááá[.C▌ - CombineΣ format« Thσ content≤ oµ memor∙ i≤ displayeΣ ╕ byte≤ ì
áááááááápe≥á line¼á firs⌠ iε hexadecima∞ format¼á theε iε ASCI╔á format«á Thσ ì
ááááááááaddres≤ oµ thσ firs⌠ bytσ oµ thσ linσ i≤ displayeΣ a⌠ thσ heaΣ oµ thσ ì
ááááááááline.
áááááááá[.T▌á - Tex⌠á format«á Thσ content≤ oµ memor∙á i≤á displayeΣá unde≥ ì
áááááááácompletσá contro∞á oµ embeddeΣ ASCI╔ contro∞ byte≤ withiε thσá memor∙ ì
ááááááááblocδ beinτ displayed«á Yo⌡ shoulΣ usσ thi≤ forma⌠ oµ displa∙ onl∙ oε ì
áááááááámemor∙ whicΦ ha≤ knowε textua∞ content« WilΣ thing≤ happeε iµ yo⌡ tr∙ ì
áááááááát∩ displa∙ nontextua∞ memory«á Yo⌡ ma∙ ge⌠ int∩ aε infinitσ loo≡á duσ ì
áááááááát∩ thσ recursivσ naturσ oµ thσ messagσ macr∩ processo≥ oµ thσ Consolσ ì
ááááááááSubsystem« Seσ sectioε 3.┤ fo≥ detaileΣ explanation.
.CP 38è ===========
2.5.5 E : ENTER
===========
FORMATS: E####[.K] AAAA
C####.CM[.K] AAAA
EXAMPLES: ENTER 3000
E.A 4000
COPY.CM.HEX 7000
Ente≥ datß t∩ memor∙ froφ thσ console«á Thi≤ commanΣ allow≤ yo⌡ t∩ ente≥ ì
t∩á memor∙á o≥á changσá thσ content≤ oµ memor∙ witΦ keyboarΣá inpu⌠á datßá iε ì
hexadecima∞á forma⌠á [.H]¼á o≥á ASCI╔ tex⌠ forma⌠ [.T▌á startinτá a⌠á addres≤ ì
[AAAA]« Iµ thσ ENTE╥ forma⌠ fielΣ [.K▌ i≤ no⌠ presen⌠ iε thσ commanΣ theε thσ ì
monito≥á default≤ t∩ [.H]«á ┴ COP┘ commanΣ i≤ availablσ a≤ aε alternativσá t∩ ì
thσ ENTE╥ command.
Thσ ENTE╥ format≤ arσ a≤ follows:
áááááááá[.H▌á - Ente≥ Hexadecimal║á Thi≤ forma⌠ allow≤ yo⌡ t∩á displa∙á thσ ì
áááááááácontent≤ oµ memor∙ onσ bytσ a⌠ ß timσ startinτ a⌠ addres≤ [AAAA]« Yo⌡ ì
ááááááááma∙áá changσá thσá content≤á oµá thσá memor∙á locatioεá b∙áá enterinτ ì
ááááááááhexadecima∞á character≤ tw∩ a⌠ ß timσ (fo≥ onσ byte)«á Yo⌡ ma∙ bypas≤ ì
ááááááááan∙ memor∙ locatioε b∙ pressinτ thσ SPAC┼ BAR«á Iµ yo⌡ madσ ß mistakσ ì
ááááááááiεá enterinτá ß byte¼á yo⌡ ma∙ bacδ u≡ t∩ thσá previou≤á locatioεá b∙ ì
áááááááápressinτá thσá BAC╦ SPAC┼ KEY«á Thσ monito≥ wil∞ repea⌠á thσá presen⌠ ì
áááááááálocatioεá anΣá it≤á content≤á iµ yo⌡ pres≤ an∙ ke∙á whicΦá i≤á no⌠á ß ì
ááááááááhexadecima∞ key« T∩ exi⌠ froφ thi≤ commanΣ jus⌠ pres≤ thσ RETUR╬ KEY.
áááááááá[.T▌á - Ente≥ TEXT║á Thi≤ forma⌠ allow≤ yo⌡ t∩ ente≥ thσ ful∞ ASCI╔ ì
áááááááácharacte≥ se⌠ includinτ thσ contro∞ characters« A⌠ present¼ therσ arσ ì
áááááááán∩ editinτ capabilitie≤ unde≥ thi≤ format«á Thσ ASCI╔ character≤á arσ ì
ááááááááentereΣá sequentiall∙ startinτ a⌠ addres≤ [AAAA▌ a≤ yo⌡ ke∙ theφ int∩ ì
ááááááááyou≥ keyboard« T∩ exi⌠ froφ thi≤ commanΣ pres≤ thσ [ctrl-A▌ ke∙ pair« ì
ááááááááThi≤ ASCI╔ characte≥ i≤ thσ las⌠ bytσ entereΣ int∩ memor∙ beforσá thσ ì
ááááááááterminatioεá oµá thσá command«á Thσá addres≤ oµá thσá las⌠á entr∙á i≤ ì
áááááááádisplayeΣ fo≥ you≥ convenience.
.CP 13
==========
2.5.6 F : FILL
==========
FORMAT: F#### AAAA-BBBB[-CC]
EXAMPLES: FILL 0-200
F -7000-FF
Fil∞ memor∙ blocδ [AAAA-BBBB▌ witΦ bytσ [CC]¼á o≥ iµ [CC▌ i≤ no⌠ presen⌠ ì
fil∞ witΦ ZEROs.
.CP 12è ==========
2.5.7 G : GOTO
==========
FORMAT: G#### AAAA
EXAMPLES: GOTO F000
GO -
Jum≡ t∩ memor∙ locatioε [AAAA▌ anΣ begiε t∩ execute«á Thσ addres≤ t∩ thσ ì
restar⌠ locatioε oµ thσ monito≥ i≤ pusheΣ ont∩ thσ monitor'≤ stack«á ┴ returε ì
instructioε iε thσ vectoreΣ prograφ wil∞ theε vecto≥ yo⌡ bacδ t∩ thσ monitor.
.CP 13
=========
2.5.8 H : HEX
=========
FORMAT: H#### AAAA-BBBB
EXAMPLES: HEXMATH 2000-3000
H 3333-5555
AdΣá anΣ subtrac⌠ hexadecima∞ addresse≤ [AAAA▌ anΣ [BBBB]«á Thσá answer≤ ì
wil∞ bσ iε iε two'≤ complemen⌠ 1╢ bit-hexadecima∞ format« Thσ additioε resul⌠ ì
oµ AAA┴ anΣ BBB┬ i≤ displayeΣ witΦ ß plu≤ [+▌ iε fron⌠ oµ it« Thσ subtractioε ì
oµ BBB┬ froφ AAA┴ i≤ displayeΣ nex⌠ witΦ ß minu≤ [-▌ iε fron⌠ oµ it.
.CP 15
===========
2.5.9 I : INPUT
===========
FORMAT: I#### AA
EXAMPLES: INPUT 6C
I 3
Inpu⌠á froφ por⌠ [AA]«á Thi≤ commanΣ wil∞ immediatel∙ reaΣ por⌠ [AA▌ anΣ ì
displa∙á thσá content≤á iε hexadecimal«á Thσ monito≥ wil∞á theεá wai⌠á fo≥á ß ì
keyboarΣá entr∙á oµ eithe≥ ß SPAC┼ BA╥ o≥ RETURN«á Thσ SPAC┼ BA╥á entr∙á wil∞ ì
causσá thσá monito≥ t∩ rereaΣ thσ por⌠ anΣ agaiε displa∙á thσá contents«á Thσ ì
RETUR╬á entr∙ wil∞ le⌠ thσ monito≥ exi⌠ thi≤ command«á Al∞ othe≥ ke∙á entrie≤ ì
arσ ignored.
.CP 14
==========
2.5.10 J : JUMP
==========
FORMAT: J#### AAAA
EXAMPLES: JUMP B000
J 0
Jum≡á t∩ adres≤ [AAAA▌ anΣ star⌠ executing«á Thσ restar⌠ addres≤ oµá thσ ì
monito≥á i≤á loadeΣá a≤á ß jum≡ vecto≥ iε thσ firs⌠á threσá memor∙á location≤ ì
startinτ a⌠ [0000H▌ a≤ C│ L╠ H╚ wherσ L╠ anΣ H╚ arσ thσ lo≈ anΣ higΦ byte≤ oµ ì
thσá addres≤á AAAA«á ┴ jum≡ froφ thσ executeΣ prograφ t∩ thi≤á locatioεá wil∞ ì
vecto≥ yo⌡ bacδ t∩ thσ monitor.è
.CP 3
==============
2.5.11 K : NOT USED
==============
.CP 16
==========
2.5.12 L : LIST
==========
FORMATS: L####[.K] AAAA-BBBB
C####.MP[.K] AAAA-BBBB
EXAMPLES: LIST 2000-4000
L.C -
COPY.MP.TEXT 5000-5100
Lis⌠á t∩ thσ printe≥ memor∙ blocδ [AAAA-BBBB▌ usinτ forma⌠ optioεá [.K]« ì
Thi≤ commanΣ i≤ identica∞ t∩ thσ DISPLA┘ commanΣ witΦ thσ onl∙ exceptioε tha⌠ ì
thσ printe≥ i≤ turneΣ on«á Thσ memor∙ content≤ arσ als∩ routeΣ t∩ thσ printe≥ ì
a≤á wel∞á a≤ t∩ thσ vide∩ screen«á A≤ witΦ thσ DISPLA┘ commanΣá therσá i≤á aε ì
alternativσ COP┘ commanΣ fo≥ thi≤ command.
.CP 20
==========
2.5.13 M : MOVE
==========
FORMATS: M#### AAAA-BBBB-CCCC
C####[.MM] AAAA-BBBB-CCCC
EXAMPLES: MOVE 0-100-1000
M -1000-2000
COPY.MM F000-F3FF-A000
Movσ memor∙ blocδ [AAAA-BBBB▌ t∩ ß differen⌠ memor∙ locatioε startinτ a⌠ ì
addres≤á [CCCC]«á Thi≤ commanΣ i≤ ß standarΣ memor∙ blocδ movσ whicΦ ha≤á thσ ì
capabilit∙á oµá overlayinτ ove≥ thσ origina∞ memor∙ blocδ withou⌠á destroyinτ ì
thσ content≤ beinτ moved«á Thσ movσ i≤ no⌠ automaticall∙ verifieΣ becausσá oµ ì
thσ overla∙ feature«á Iµ yo⌡ neeΣ t∩ verif∙ thσ movσ (assuminτ ß non-overlaiΣ ì
move⌐ theε usσ thσ VERIFY.M═ command«á Bσ carefu∞ witΦ thi≤ command¼ sincσ i⌠ ì
caεá overla∙á an∙á memor∙á fielΣá sucΦá a≤á thσá monitor'≤á stacδá space«á Aε ì
alternativσ cop∙ commanΣ i≤ availablσ fo≥ thi≤ command«á Thσ cop∙ [.SD▌ fielΣ ì
ma∙ bσ lef⌠ ou⌠ oµ thσ commanΣ field.
.CP 3
==============
2.5.14 N : NOT USED
==============
.CP 14è ============
2.5.15 O : OUTPUT
============
FORMAT: O#### AA[-BB]
EXAMPLES: OUTPUT 6C-FF
O 6D
Outpu⌠á t∩ por⌠ [AA▌ witΦ bytσ [BB],[00╚ iµ [-BB▌ i≤ no⌠ presen⌠ iεá thσ ì
command]«á Thσá monito≥á immediatel∙ output≤ thσ bytσ theε wait≤ fo≥á yo⌡á t∩ ì
pres≤á onσá oµ tw∩ key≤ oε thσ keyboard«á Pressinτ thσ SPAC┼ BA╥á cause≤á thσ ì
monito≥ t∩ re-outpu⌠ thσ byte«á Pressinτ thσ RETUR╬ KE┘ cause≤ thσ monito≥ t∩ ì
exi⌠ thi≤ command« Al∞ othe≥ ke∙ entrie≤ arσ ignored.
.CP 16
=============
2.5.16 P : PROGRAM
=============
FORMAT: P#### AAAA-BBBB-CCCC
EXAMPLES: PROGRAM 1000-2000-8000
PROM -1000-D000
Prograφá EPROM≤á startinτ a⌠ addres≤ [CCCC▌ witΦ thσ content≤ oµá memor∙ ì
blocδ [AAAA-BBBB]« Thi≤ commanΣ wil∞ loo≡ througΦ thσ memor∙ blocδ 12╕ times¼ ì
copyinτ eacΦ bytσ int∩ thσ EPROM«á Thi≤ commanΣ i≤ compatiblσ witΦ Cromemco'≤ ì
BYTESAVER≤ ▒ anΣ 2«á Yo⌡ ma∙ ruε int∩ somσ incompatiblitie≤ witΦ othe≥á EPRO═ ì
progamme≥ modules.
Thσá EPROM≤ arσ verifieΣ immediatel∙ afte≥ programming«á Yo⌡ ma∙á escapσ ì
froφ programminτ b∙ pressinτ thσ ESCAP┼ key.
.CP 3
==============
2.5.17 Q : NOT USED
==============
.CP 16
==========
2.5.18 R : READ Release A only:
==========
FORMATS: R#### [AAAA[-BBBB]]
C####.TM [AAAA[-BBBB]]
EXAMPLES: READ
R 1000
READTAPE 8000-A000
COPY.TM
ReaΣá froφá cassettσ tapσ t∩ memory«á Thi≤ commanΣ wil∞ reaΣ ßá TELETE╦ ì
[DAJEN▌á o≥ TARBEL╠ formatteΣ cassettσ tape«á Threσ option≤ arσ availablσá t∩ ì
you╗á reaΣá absolute¼á reaΣ biased¼á anΣ reaΣ specific«á Thσ presen⌠á versioε ì
control≤ onl∙ thσ Teleteδ UCRI«
.CP 19è READ ABSOLUTE
=============
áááááThi≤á optioε i≤ thσ standarΣ reaΣ commanΣ t∩ inpu⌠ ßá TELETE╦á formatteΣ ì
ááááátapσ file« Jus⌠ ente≥ [R####▌ oε thσ commanΣ line« Thσ TELETE╦ formatteΣ ì
ááááátapσá filσá contain≤ thσ informatioε needeΣ t∩ loaΣ thσ tapσá filσá int∩ ì
ááááámemory«á Thσ firs⌠ fou≥ byte≤ oε thσ tapσ filσ arσ thσ beginninτ addres≤ ì
áááááoµ memor∙ wherσ thσ filσ i≤ t∩ bσ loaded¼á anΣ thσ numbe≥ oµ byte≤ t∩ bσ ì
áááááloaded«á Thσ beginninτ addres≤ i≤ assumeΣ t∩ bσ iε INTE╠ format¼ tha⌠ i≤ ì
áááááthσá leas⌠ significan⌠ bytσ firs⌠ anΣ thσ mos⌠ significan⌠ bytσá second« ì
áááááThσá nex⌠á tw∩ byte≤ arσ thσ numbe≥ oµ byte≤ iε thσ filσ t∩á bσá loaded« ì
áááááHoweve≥ thσ filσ sizσ i≤ assumeΣ t∩ bσ ordereΣ witΦ thσ mos⌠ significan⌠ ì
ááááábytσá firs⌠ theε thσ leas⌠ significan⌠ bytσ second«á Thσ monito≥ obtain≤ ì
áááááthesσ fou≥ byte≤ anΣ set≤ u≡ thσ loo≡ indexing¼á theε continue≤ t∩á reaΣ ì
áááááthσá res⌠á oµ thσ filσ unti∞ i⌠ i≤ al∞ in¼á accordinτ t∩ thσá fou≥á bytσ ì
áááááinformation«á Onσ morσ bytσ i≤ theε read«á Thi≤ i≤ thσ checksuφ byte« I⌠ ì
ááááái≤á compareΣá witΦ thσ runninτ checksuφ thσ monito≥ calculate≤ whilσá i⌠ ì
áááááread≤ thσ file« Eithe≥ ß completσ o≥ checksuφ erro≥ messagσ i≤ displayeΣ ì
ááááádependinτ oε thσ result≤ oµ thσ compare.
.CP 11
áááááREA─ BIASED
ááááá===========
áááááThi≤á optioε allow≤ yo⌡ t∩ reaΣ aε absolutσ TELETE╦ formatteΣ filσá int∩ ì
ááááámemor∙á a⌠á ß differen⌠ locatioε othe≥ thaε specifieΣ b∙ thσá tapσá filσ ì
áááááinformation«á Thσ commanΣ forma⌠ i≤ [R###ú AAAA]« Thσ 1╢ bi⌠ bia≤ [AAAA▌ ì
ááááái≤ addeΣ t∩ thσ tapσ file'≤ beginninτ address«á An∙ carr∙ overflo≈á froφ ì
áááááthσá additioεá i≤á ignored«á T∩ determinσ thσ prope≥ bia≤á usσá thσá HE╪ ì
áááááARITHMETI├ command«á Fo≥ example¼á iµ thσ tapσ filσ beginninτ addres≤ i≤ ì
ááááá7000╚ anΣ yo⌡ wanteΣ t∩ loaΣ i⌠ a⌠ 5000H¼ theε usinτ [╚ 5000-7000▌ woulΣ ì
ááááágivσ yo⌡ [+C00░ -E000]« Thereforσ thσ bia≤ i≤ E000H.
.CP 13
áááááREA─ SPECIFIC
ááááá=============
áááááThi≤á optioεá allow≤á yo⌡ t∩ reaΣ ß TARBEL╠ compatiblσ tapσá filσá o≥á ß ì
áááááTELETE╦á formatteΣ tapσ file«á Thσ commanΣ forma⌠ i≤ [R###úá AAAA-BBBB]« ì
áááááThσá monito≥ wil∞ reaΣ iε thσ filσ unti∞ thσ memor∙ blocδ [AAAA-BBBB▌ i≤ ì
áááááfilled«á Therσ i≤ n∩ checksuφ checkinτ witΦ thi≤ option«á Iµ yo⌡ attemp⌠ ì
ááááát∩á reaΣá ßá TELETE╦ formatteΣ tapσá file¼á thσá tapσá filσá informatioε ì
ááááá(beginninτá addres≤ anΣ filσ size⌐ i≤ reaΣ int∩ memory╗á s∩ accoun⌠á fo≥ ì
ááááátheφá wheε yo⌡ reaΣ iε thσ file«á Iµ yo⌡ attemp⌠ t∩ reaΣ ß filσ whicΦ i≤ ì
ááááásmalle≥ thaε thσ specifieΣ memor∙ blocδ [AAAA-BBBB]¼ yo⌡ ma∙ locδ u≡ thσ ì
áááááreaΣá routine«á Iµ thi≤ happen≤ jus⌠ pres≤ thσ escapσ ke∙ t∩á exi⌠á froφ ì
áááááthi≤ command.
.CP 29è ============
2.5.19 S : SEARCH
============
FORMAT: S#### AAAA-BBBB [']F..F
EXAMPLES: SEARCH 1000-2000 DB-03
S - 'MARY
SearcΦá memor∙ blocδ [AAAA-BBBB▌ fo≥ fielΣ [F..F]«á Iµ aε apostrophσ ['▌ ì
i≤ inserteΣ iε fron⌠ oµ thσ fielΣ [F..F]¼ thσ fielΣ i≤ assumeΣ t∩ bσ aε ASCI╔ ì
characte≥ field«á Otherwise¼á thσ fielΣ i≤ assumeΣ t∩ bσ ß hexadecima∞ field« ì
Thσ fielΣ caε bσ a≤ biτ a≤ yo⌡ caε makσ i⌠ withiε thσ confine≤ oµ thσ commanΣ ì
line¼ o≥ tw∩ line≤ usinτ thσ alternatσ return.
Thσá ASCI╔ fielΣ ma∙ havσ embeddeΣ blank≤ (o≥ spaces⌐ bu⌠ ßá blanδá mus⌠ ì
no⌠á enΣá thσá field«á Thσ commanΣ processo≥ ignore≤ trailinτ blank≤á iεá thσ ì
commanΣ line.
Thσá hexadecima∞á fielΣá mus⌠ bσ groupeΣ witΦá bi-he°á characte≥á field≤ ì
separateΣ b∙ minu≤ sign≤ [-▌ o≥ blank≤ █ ]«á (ex║á DB-12-34-A│ 4╡ 6╖ FF)«á Iµ ì
therσá arσá morσá thaε tw∩ he° character≤ pe≥ mino≥á field¼á theεá thσá leas⌠ ì
significan⌠á tw∩ character≤ arσ useΣ b∙ thσ monitor«á Thσ res⌠ oµá character≤ ì
arσ truncated« (ex║ DB69┤ woulΣ bσ reduceΣ t∩ 94).
Thσá monito≥á wil∞á searcΦ thσ specifieΣ memor∙ blocδá anΣá displa∙á thσ ì
startinτ addres≤ oµ an∙ matches«á ┴ searcΦ oµ entirσ memor∙ fo≥ an∙ onσá bytσ ì
usuall∙á take≤á les≤ thaε 1░ seconds«á ┴ shor⌠ hanΣ wa∙ oµá searchinτá entirσ ì
memor∙ i≤ [╙ - F..F]« Tr∙ thi≤ command║ [╙ - 00].
.CP 32è ==========
2.5.20 T : TEST
==========
FORMAT: T####[.K] [AAAA-BBBB]
EXAMPLES: TEST
TEST.Q 7000-8000
T.C -3FFF
Tes⌠ RA═ memory« Threσ option≤ arσ available« Thesσ are║ [.F]-finΣ firs⌠ ì
contiguou≤ blocδ oµ RA═ memory╗ [.Q]-quickl∙ tes⌠ specifieΣ RA═ memory╗ [.C]-ì
completel∙ tes⌠ specifieΣ RA═ memory« Iµ thσ optioε fielΣ [.K▌ i≤ no⌠ presen⌠ ì
iε thσ commanΣ line¼ thσ monito≥ default≤ t∩ optioε [.F].
[.F▌á - FinΣ thσ firs⌠ contiguou≤ blocδ oµ RA═ memory«á Thi≤ optioε i≤ ß ì
nondestructivσ tes⌠ whicΦ wil∞ displa∙ thσ beginninτ anΣ endinτ addresse≤á oµ ì
thσá memor∙á blocδ found«á Iε usinτ thi≤ optioε thσ monito≥ mus⌠á no⌠á residσ ì
withiε thσ firs⌠ contiguou≤ blocδ areß iµ yo⌡ arσ usinτ ß RA═ versioε oµ thi≤ ì
monitor« Thσ addres≤ fielΣ [AAAA-BBBB▌ i≤ ignoreΣ iε thi≤ option.
[.Q▌á - Quickl∙ tes⌠ thσ specifieΣ RA═ memor∙ blocδ [AAAA-BBBB▌ fo≥ harΣ ì
memor∙ errors«á Thi≤ optioε write≤ [55H▌ theε [AAH▌ int∩ eacΦ memor∙ locatioε ì
withiε thσ specifieΣ blocδ theε compare≤ thσ locatioε t∩ thσ writσ bytσá [55╚ ì
o≥ AAH▌ displayinτ an∙ error≤ found« Thi≤ i≤ ß destructivσ test╗ tha⌠ is¼ thσ ì
orignina∞ content≤ beforσ thσ tes⌠ i≤ destroyed.
[.C▌á - Completel∙á tes⌠ thσ specifieΣ RA═ memor∙ blocδ [AAAA-BBBB▌á fo≥ ì
bi⌠á patterε sensitivity«á Thi≤ optioε i≤ thσ samσ a≤ thσ quicδá tes⌠á excep⌠ ì
tha⌠ al∞ 25╢ value≤ oµ ß bytσ arσ useΣ sequentiall∙ froφ [00H▌ t∩ [FFH]« Thi≤ ì
optioεá wil∞ takσ somσ timσ t∩ complete¼á iµ yo⌡ arσ testinτ largσ block≤á oµ ì
memory« Yo⌡ ma∙ interrrup⌠ thσ tes⌠ a⌠ an∙ timσ b∙ pressinτ thσ ESCAP┼ key.
.CP 3
==============
2.5.21 U : NOT USED
==============
┴á samplσá residen⌠á commanΣ routinσ wa≤ designeΣ t∩á usσá thi≤á commanΣ ì
lette≥ a≤ aε examplσ t∩ t∩ designinτ you≥ residen⌠ commands« Seσ APPENDI╪ C.
.CP 34è ============
2.5.22 V : VERIFY
============
FORMAT: V####.SD [F..F]
EXAMPLES: VERIFY.MT
V.MM 0000-0FFF-2000
Thi≤á commanΣá allow≤ yo⌡ t∩ verif∙ datß residinτ oεá differen⌠á medium≤ ì
[tape¼ááá disk¼áá memory¼áá user-defined]«áá Likσáá thσáá cop∙áá command¼áá ß ì
source/destinatioεáá codσá i≤á useΣá t∩á definσá thσá medißáá involved«áá Thσ ì
source/destinatioε codσ caε bσ showε a≤ ß ┤ ╪ ┤ matrix:
ááááá ╘ - T╘ D╘ M╘ UT
ááááá ─ - T─ D─ M─ UD
áááááDESTINATIO╬ ═ - T═ D═ M═ UM
ááááá ╒ - T╒ D╒ M╒ UU
ááááá ║ ║ ║ :
ááááá ╘ ─ ═ U
ááááá SOURCE
Thσá tw∩á characte≥á [SD▌ codσ i≤ decodeΣ int∩ aε inde°á t∩á thσá verif∙ ì
vecto≥á table«á Thσ monito≥ theε obtain≤ thσ vecto≥ addres≤ residinτ a⌠á thσ ì
specifieΣ positioε iε thσ tablσ anΣ jump≤ t∩ tha⌠ address«á Thσ verif∙ vecto≥ ì
tablσá i≤á locateΣ jus⌠ afte≥ thσ cop∙ vecto≥ table«á Onl∙ onσ [.SD▌ codσá i≤ ì
implementeΣ a≤ ß residen⌠ command«á Thi≤ commanΣ i≤ VERIFY.M═ AAAA-BBBB-CCCC« ì
Thσ inclusioε oµ thσ [.MM▌ codσ i≤ optional«á Thi≤ commanΣ wil∞ verif∙ memor∙ ì
blocδ [AAAA-BBBB▌ witΦ memor∙ blocδ startinτ a⌠ [CCCC].
Thσá res⌠á oµ thσ verif∙ option≤ arσ expecteΣ t∩ bσ transien⌠á file≤á oε ì
CP/M¼ anΣ ma∙ bσ implementeΣ b∙ followinτ thσ direction≤ iε sectioε 8.0« Thσ ì
CP/═ filσ routine≤ normall∙ wil∞ no⌠ requirσ secondar∙ field≤ iε thσá commanΣ ì
linσ sincσ the∙ shoulΣ promp⌠ yo⌡ fo≥ thσ additiona∞ input«
.CP 30è ===========
2.5.23 W : WRITE :Release A only:
===========
FORMATS: W#### AAAA-BBBB
C####.MT AAAA-BBBB
EXAMPLES: WRITE 4000-4FFF
W -2000
COPY.MT 8000-AFFF
Writσá thσ blocδ oµ memor∙ [AAAA-BBBB▌ ont∩ cassettσ tape«á Thi≤ commanΣ ì
i≤ implementeΣ iε Releasσ ┴ onl∙ (However¼á Releasσ ┬ contain≤ thσá identica∞ ì
routinσá iε ß transien⌠ commanΣ filσ "COPYMT.SMCó anΣ caε bσ accesseΣ viß thσ ì
commanΣ "C####.MTó I⌠ wil∞ promp⌠ yo⌡ fo≥ al∞ oµ thσ necessar∙ information.)« ì
Thi≤ commanΣ create≤ ß filσ oε tapσ whicΦ follow≤ thσ TELETE╦ [DAJEN▌ format« ì
Thσ presen⌠ versioε oµ thσ monito≥ control≤ onl∙ thσ Teleteδ UCRI« Thσ forma⌠ ì
i≤ a≤ follows:
1. 1/2 second of silent leader.
2. 4-1/2 seconds of NULL [00H] tone leader.
3. One clock byte [3CH].
4. One sync byte [E6H].
5. 1╢ bi⌠ beginninτ memor∙ addres≤ oµ file¼ lo≈ orde≥ theε higΦ orde≥ ì
áááááááááááaddres≤ bytσ iε INTE╠ style.
6. 1╢ bi⌠ filσ size¼ higΦ orde≥ bytσ firs⌠ theε lo≈ orde≥ bytσ next.
7. Memory block [AAAA-BBBB].
8. Checksum byte.
9. 1/2 second trailer of NULLs.
10. 1/2 second of silent trailer.
.CP 3
==============
2.5.24 X : NOT USED
==============
.CP 3
==============
2.5.25 Y : NOT USED
==============
.CP 3
==============
2.5.26 Z : NOT USED
==============
2.6 -- COMMAND SUBSYSTEM UTILITY ROUTINES
=========================================
Thσá CommanΣ Subsysteφ ha≤ ß numbe≥ oµ utilit∙ routine≤ whicΦá arσá no⌠ ì
pointeΣá t∩á b∙ ß se⌠ oµ vectors«á Thesσ routine≤ arσ oµ usσ t∩ yo⌡ fo≥á you≥ ì
residen⌠á command≤ whicΦ yo⌡ migh⌠ build«á Thσ routine≤ arσ describeΣ iεá thσ ì
orde≥ the∙ arσ listeΣ iε thσ sourcσ listinτ iε APPENDI╪ A« Yo⌡ mus⌠ determinσ ì
thσá absolutσá addres≤ locatioε fo≥ eacΦ oµ thσ routine≤ b∙ addinτá thσá BAS┼ ì
addres≤ t∩ thσ addres≤ iε thσ sourcσ listing.
2.6.1 -- REDUCE
===============
Thi≤á routinσ wil∞ conver⌠ lowe≥ casσ alphabetiπ character≤ t∩á uppe≥ ì
casσ character≤ anΣ masδ ofµ thσ mos⌠ significan⌠ bi⌠ oµ thσ byte≤ containinτ ì
thσ character≤ iε thσ inpu⌠ buffe≥ pointeΣ t∩ b∙ thσ I┘ register«á Notσá tha⌠ ì
(IY-3⌐á shoulΣ contaiε thσ numbe≥ oµ lega∞ character≤ iε buffe≥ anΣ (IY-2⌐ t∩ ì
(IY-1⌐ i≤ thσ startinτ addres≤ oµ buffer« Iµ yo⌡ changσ thσ I┘ registe≥ valuσ ì
yo⌡á mus⌠á eithe≥á savσ thσ origina∞ valuσ o≥ returε t∩ thσá contro∞á oµá thσ ì
monito≥á througΦá RESTAR╘á o≥ START«á Thσ I┘ registe≥á contain≤á thσá monito≥ ì
Variablσ RA═ Basσ Address.
2.6.2 -- DEBLOCK
================
Thi≤á routinσá determine≤ thσ startinτ addres≤á oµá eacΦá significan⌠ ì
blocδ oµ alphanumeriπ character≤ delimiteΣ b∙ thσ specia∞ character≤ [blank]¼ ì
[.]¼á [,]¼á [;]¼ [:]¼ [-]¼ [+]¼ [*]¼ [/]¼ anΣ [=]« Thσ routinσ wil∞ determinσ ì
a≤ man∙ a≤ 1░ block≤ anΣ wil∞ storσ thσ results¼á ┤ byte≤ pe≥ block¼ startinτ ì
a⌠ [MBASE-4CH▌ anΣ loadinτ u≡ iε memory« EacΦ ┤ bytσ blocδ contain≤ thσ fron⌠ ì
delimitinτ chracter¼á thσ blocδ startinτ address¼ anΣ thσ numbe≥ oµ bytes¼ iε ì
tha⌠á order«á Iµ thσ numbe≥ oµ byte≤ i≤ zer∩ theε n∩ alphanumeriπá character≤ ì
werσ encountereΣ betweeε thσ fron⌠ anΣ bacδ delimitinτ characters«á Agaiε thσ ì
I┘ registe≥ point≤ t∩ thσ inpu⌠ buffer.
2.6.3 -- DELCK
==============
Thi≤á routinσá determine≤á iµ thσ bytσ iε registe≥ ┴ i≤á ßá delimite≥ ì
characte≥ a≤ specifieΣ abovσ iε DBLOCK« Thσ ZER╧ flaτ i≤ SE╘ iµ thi≤ i≤ true.
2.6.4 -- GETOPT
===============
Thi≤á routinσá determine≤á iµ thσ bacδá delimite≥á oµá thσá presentl∙ ì
pointeΣá t∩á blocδá i≤ ß [.▌ whicΦ implie≤ tha⌠ aε optioεá i≤á modifyinτá thσ ì
primar∙á command«á Thσá CARR┘á flaτ i≤ SE╘ iµ aε erro≥á i≤á encountereΣá (thσ ì
commanΣá linσá ha≤ onl∙ onσ character)«á Thσ ZER╧ flaτ i≤ SE╘ iµá aεá implieΣ ì
optioεá i≤ founΣ anΣ registe≥ ┴ contain≤ [.]«á Iµ thσ ZER╧ flaτ i≤ CLEA╥ theε ì
registe≥ ┴ contain≤ ß [blank].
2.6.5 -- GETADD
===============è
Thi≤á routinσ wil∞ decodσ thσ nex⌠ ░ t∩ │ BUFFE╥ block≤á int∩á binar∙ ì
addresse≤á o≥á byte≤ anΣ loaΣ theφ int∩ location≤á ADDR1¼á ADDR2¼á anΣá ADDR│ ì
locateΣ a⌠ MBASE-0C╚ t∩ MBASE-07H« MBASE-06╚ contain≤ thσ numbe≥ oµ addresse≤ ì
o≥á byte≤ decoded«á Thσ hexadecima∞ addres≤ fielΣ i≤ expecteΣ t∩ bσ delimiteΣ ì
internall∙ b∙ [-]'s«á Thσ CARR┘ flaτ i≤ SE╘ iµ an∙ non-hexadecima∞ character≤ ì
werσ encountereΣ iε thσ decodinτ process.
2.6.6 -- SETDBA
2.6.7 -- INCDBA
===============
SETDB┴á routinσá wil∞á se⌠á thσ I╪ registe≥ t∩á poin⌠á t∩á thσá firs⌠ ì
deblockeΣ storeΣ information«á It≤ companioε routinσ INCDB┴ wil∞ incremen⌠ t∩ ì
thσ nex⌠ block.
2.6.8 -- HLIX
2.6.9 -- IXHL
=============
Thesσ routine≤ wil∞ respectivel∙ loaΣ anΣ storσ registe≥ pai≥ H╠ froφ ì
anΣ int∩ thσ memor∙ locatioε pointeΣ t∩ b∙ registe≥ pai≥ IX.
2.6.10 -- HLAD1
2.6.11 -- HLAD2
2.6.12 -- HLAD3
===============
Thesσá routine≤á loaΣá registe≥ pai≥ H╠ witΦá thσá specifieΣá decodeΣ ì
addres≤ o≥ byte
2.6.13 -- DCDAD1
2.6.14 -- DCDAD2
================
Thesσá routine≤á decodσá ß hexadecima∞ addres≤ fielΣá pointeΣá t∩á b∙ ì
registe≥ pai≥ H╠ anΣ fielΣ sizσ pointeΣ t∩ b∙ [IX+3▌ anΣ leavσ thσ addres≤ iε ì
registe≥ pai≥ HL«á Iµ [IX+3▌ i≤ Zer∩ theε H╠ wil∞ contaiε [FFFFH▌ fo≥á DCDAD▒ ì
anΣá [0000H▌á fo≥á DCDAD▓á a≤ defaul⌠ values«á Thσ CARR┘ flaτá i≤á SE╘á iµá ß ì
hexadecima∞ erro≥ wa≤ encountered.
2.6.15 -- VHEX
==============
Thi≤á routinσ wil∞ decodσ aε ASCI╔ characte≥ iε registe≥ ┴á int∩á it≤ ì
binar∙ equivalen⌠ hexadecima∞ character«á Iµ thσ characte≥ i≤ no⌠ ß lega∞ he° ì
characte≥ theε thσ CARR┘ flaτ i≤ SET.
2.6.16 -- ESCAPE
================
Thi≤á routinσá wil∞á checδá thσá consolσ inpu⌠á por⌠á fo≥á aεá escapσ ì
characte≥ presen⌠ [ESC,1BH]« Iµ therσ i≤ one¼ thσ CARR┘ flaτ i≤ SET.
è
2.6.17 -- GET2AD
================
Thi≤ routinσ wil∞ decodσ thσ nex⌠ tw∩ block≤ (iµ the∙ arσ addresses)¼ ì
determinσá thσá differencσ betweeε thσ two¼á anΣ leavσ thσ firs⌠á addres≤á iε ì
registe≥ pai≥ H╠ anΣ thσ differencσ iε registe≥ pai≥ DE« Iµ tw∩ addresse≤ caε ì
no⌠á bσá decodeΣ o≥ ß hexadecima∞ erro≥ i≤ encountered¼á ERRO╥ messagσá │á i≤ ì
displayeΣá anΣ thσ monito≥ i≤ restarted«á Iµ thσ addresse≤ arσ reverseΣá (thσ ì
negativσá difference)¼á ERRO╥á messagσá ┤ i≤ displayeΣá anΣá thσá monito≥á i≤ ì
restarted.
2.6.18 -- UPDATE
================
Thi≤á routinσá increment≤ H╠ anΣ decrement≤ D┼ anΣ test≤ fo≥ zer∩á iε ì
DE« Thσ ZER╧ flaτ i≤ SE╘ iµ so.
2.6.19 -- OUT8HB
================
Thi≤ routinσ wil∞ outpu⌠ eigh⌠ byte≤ iε hexadecima∞ forma⌠ pointeΣ t∩ ì
b∙ registe≥ pai≥ H╠ anΣ counteΣ dowε b∙ registe≥ pai≥ DE«á Thσ CARR┘ flaτá i≤ ì
SE╘ iµ morσ byte≤ arσ oε thσ queue.
2.6.20 -- OUT8AB
================
Thi≤ routinσ wil∞ outpu⌠ eigh⌠ ASCI╔ byte≤ pointeΣ t∩ b∙ thσ registe≥ ì
pai≥á H╠ anΣ counteΣ dowε b∙ thσ registe≥ pai≥ DE«á Non-printablσá character≤ ì
arσ displayeΣ a≤ [.]'s«á Iµ thσ mos⌠ significan⌠ bi⌠ i≤ higΦ thσ bytσ wil∞ bσ ì
displayeΣá a≤ ß reversσ fielΣ character«á Thσ CARR┘ flaτ i≤ SE╘ iµ morσ byte≤ ì
arσ oε thσ queue.
2.6.21 -- BTHEX
===============
Thi≤á routinσá convert≤á ßá binar∙á bytσá iεá registe≥á ┴á int∩áá tw∩ ì
hexadecima∞ characters« Thσ mos⌠ significan⌠ nibblσ i≤ returneΣ iε registe≥ ├ ì
anΣ thσ leas⌠ significan⌠ iε registe≥ A.
2.6.22 -- BTASC
===============
Thi≤ routinσ wil∞ conver⌠ aε ASCI╔ bytσ iε registe≥ ├ t∩ ß [.▌ iµ thσ ì
bytσ i≤ les≤ thaε [20H▌ o≥ i≤ ß [DEL▌ o≥ ß [5FH]« Iµ thσ mos⌠ significan⌠ bi⌠ ì
i≤ higΦ theε ß [.]+[80H▌ i≤ returned« Thσ resul⌠ i≤ lef⌠ iε C.
2.6.23 -- OUTHAD
================
Thi≤á routinσá wil∞á outpu⌠á thσá addres≤á iεá registe≥á pai≥á H╠á iε ì
hexadecima∞ format.
è
2.6.24 -- OUTHBT
================
Thi≤á routinσá wil∞á outpu⌠á thσ bytσ iε registe≥á ┴á iεá hexadecima∞ ì
format.
2.6.25 -- OUTDOT, OUTSPC, OUTDSH, OUTEXP, CRLF, CRLFP, OUT3SP
=============================================================
Thesσ routine≤ wil∞ outpu⌠ respectivel∙ [.]¼ [space]¼ [-]¼ [!]¼ [CR]-ì
[LF]¼ [CR]-[LF]-[>]¼ threσ [space]'s.
2.6.99 -- Special Purpose routines
==================================
Therσ arσ ß numbe≥ oµ routine≤ whicΦ residσ witΦ thσ primar∙ residen⌠ ì
commanΣ routines«á Thesσ shoulΣ bσ useΣ witΦ caution« But¼ wh∩ knows¼ somσ oµ ì
theφ ma∙ bσ importan⌠ t∩ you.
3.0 -- CONSOLE SUBSYSTEM
========================
.CP 23
3.1 -- GENERAL DESCRIPTION
==========================
Thσá CONSOL┼á SUBSYSTE═á i≤á ß comprehensivσá Vide∩á Consolσá controlle≥ ì
packagσá whicΦá wil∞ drivσ an∙ onσ oµ thσ popula≥ memory-mappeΣá 64/1╢á vide∩ ì
displa∙ module≤ fo≥ thσ Z-8░ based¼á S-10░ bu≤ system«á IncorporateΣ iεá thσ ì
packagσá arσ als∩ ß keyboarΣ drive≥ anΣ ß linσ printe≥ driver«á Thσ subsysteφ ì
control≤ thσ threσ I/╧ device≤ a≤ aε integrateΣ packagσ ablσ t∩ stanΣá alone¼ ì
independen⌠á oµá thσ othe≥ monito≥ subsystems«á I⌠ ha≤ ful∞ curso≥á control¼ ì
characte≥ orienteΣ screeε editing¼á buffereΣ inpu⌠ anΣ outpu⌠ froφ anΣ t∩ thσ ì
screen¼ recursivσ messagσ macr∩ processing¼ anΣ man∙ othe≥ capabilitie≤ whicΦ ì
makσ thi≤ packagσ ß powerfu∞ additioε t∩ you≥ software/firmwarσ library«
Thi≤á subsysteφ incorporate≤ al∞ oµ thσ vide∩ command≤ oµá VIDE╧á DRIVE╥ ì
1.0¼á whicΦá ha≤á beeεá availablσ froφ PC┼ Electronic≤ sincσá Junσá oµá 1978« ì
However¼ thσ placemen⌠ oµ command≤ oε thσ keyboarΣ arσ differen⌠ t∩ makσ rooφ ì
fo≥ thσ additiona∞ command≤ availablσ unde≥ thi≤ package«á Yo⌡ migh⌠ sa∙ tha⌠ ì
i⌠ i≤ ß seconΣ generatioε VIDE╧ DRIVE╥ 1.0.
Sincσá thi≤á packagσá i≤ ß statiπ controlle≥ oµ threσ I/╧á device≤á (onσ ì
vide∩á displa∙ module¼á onσ keyboard¼á anΣ onσ linσá printer)¼á littlσá extrß ì
softwarσá i≤á needeΣá t∩ implemen⌠ ß compac⌠ stand-alonσá intelligen⌠á remotσ ì
termina∞ subsystem.
.CP 12
3.2 -- SUBSYSTEM INTERFACE
==========================
Thσ consolσ subsysteφ ha≤ 1▓ entries«á Thσ firs⌠ entr∙ initialize≤á thσ ì
package«á Thσ nex⌠ threσ entrie≤ directl∙ obtaiε thσ keyboarΣ status¼ obtaiε ì
ne≈ ke∙ entr∙ upoε strobe¼ anΣ obtaiε datß a⌠ thσ keyboarΣ por⌠ regardles≤ oµ ì
keyboarΣá status«á Thσ nex⌠ entr∙ t∩ thσ packagσ output≤ ß characte≥ directl∙ ì
t∩á thσá printer«á Thσ remainde≥ oµ thσ entrie≤ relatσ t∩ thσá vide∩á drive≥ ì
interfacσá anΣá buffereΣá I/O«á Thσ entr∙ vector≤ arσ a⌠á thσá fron⌠á oµá thσ ì
subsystem« Thσ startinτ addres≤ oµ thσ subsysteφ i≤ defineΣ a≤ [CBASE].
EacΦ oµ thesσ entrie≤ i≤ full∙ explaineΣ iε thσ followinτ subsections.
.CP 14
=======
3.2.1 ENTRY-1 Initialize the package. [CBASE+00H]
=======
Thi≤á entr∙á initialize≤á thσá package'≤ RA═á worδá spacσá anΣá interna∞ ì
variables« Specifically¼ thσ entry:
1. Clears the screen and homes the cursor.
2. Sets package to scroll mode.
3. Sets video to direct video mode.
4. Sets the scrolling to medium speed.
5. Turns off the printer.
6. Empties the input buffer.
7. Initializes the Processor Tech VDM, if it is used.
.CP 7è =======
3.2.2 ENTRY-2 Obtain the keyboard status. [CBASE+03H]
=======
Thi≤á entr∙á obtain≤ thσ keyboarΣ statu≤ anΣ return≤ witΦ thσ ZER╧á flaτ ì
clea≥ anΣ thσ ┴ registe≥ equa∞ t∩ [FFH▌ iµ ß ne≈ ke∙ entr∙ i≤ waitinτ iεá thσ ì
keyboarΣ inpu⌠ latch.
.CP 8
=======
3.2.3 ENTRY-3 Obtain keyboard entry/strobed. [CBASE+06H]
=======
Thi≤á entr∙á call≤á keyboarΣá statu≤á (ENRTY-2⌐ unti∞á ßá ke∙á entr∙á i≤ ì
indicated«á Therσ upon¼á i⌠ obtain≤ thσ ne≈ ke∙ entry¼á strip≤ ofµ thσá mos⌠ ì
sigifican⌠á bi⌠ (BIT-7)¼á set≤ thσ CARR┘ flaτ iµ thσ mos⌠ significan⌠ bi⌠á i≤ ì
high¼ theε return≤ t∩ caller.
.CP 7
=======
3.2.4 ENTRY-4 Obtain keyboard entry/unstrobed. [CBASE+09H]
=======
Thi≤á entr∙ i≤ thσ samσ a≤ ENTRY-│ excep⌠ tha⌠ keyboarΣ statu≤ (ENTRY-2⌐ ì
i≤á no⌠ called«á Thi≤ entr∙ obtain≤ thσ datß presentl∙ oε thσ keyboarΣá latcΦ ì
anΣ immediatel∙ return≤ t∩ thσ caller.
.CP 11
=======
3.2.5 ENTRY-5 Output to the printer directly. [CBASE+0CH]
=======
Thi≤ entr∙ wil∞ outpu⌠ ß characte≥ directl∙ t∩ thσ printer«á Thσá ASCI╔ ì
bytσá i≤á expecteΣá t∩á bσ iε thσ ├ register«á Somσá printer≤á havσá interna∞ ì
buffers«á Iµá your≤ does¼á theε ß carriagσ returε wil∞ usuall∙á activatσá thσ ì
printinτ oµ thσ linσ anΣ thσ clearinτ oµ thσ buffer«á Also¼ printer≤ sucΦ a≤ ì
thσ Centronic≤ 77╣ wil∞ clea≥ thσ buffe≥ automaticall∙ iµ ß linσ feeΣ i≤ sen⌠ ì
beforσá ß carriagσ return«á Iε thi≤ casσ al∞ tha⌠ woulΣ bσ printeΣ woulΣá bσ ì
blanδ lines.
.CP 28è =======
3.2.6 ENTRY-6 Screen edited, buffered input. [CBASE+0FH]
=======
Thi≤á entr∙ allow≤ yo⌡ t∩ edi⌠ you≥ inpu⌠ beforσ sendinτ thσ inpu⌠á bacδ ì
t∩ thσ caller«á Yo⌡ caε senΣ onσ o≥ tw∩ vide∩ line≤ oµ data/informatioε bacδ ì
t∩ thσ caller«á Assuminτ thσ inpu⌠ buffe≥ i≤ empt∙ thσ followinτ sequencσ oµ ì
event≤ takσ place:
1.áááEnte≥á int∩ screeε edi⌠ mode«á Yo⌡ wil∞ sta∙ iε thi≤ modσ unti∞ yo⌡á arσ ì
ááááásatisfieΣá witΦá ßá linσ (o≥ tw∩ lines⌐ oµ information«á Yo⌡á havσá ful∞ ì
ááááácurso≥ contro∞ anΣ al∞ oµ thσ edi⌠ command≤ a⌠ you≥ disposal.
2.áááWheε yo⌡ arσ read∙ t∩ senΣ ß linσ oµ informatioε al∞ yo⌡ mus⌠ d∩ i≤ makσ ì
ááááásurσá thσ curso≥ characte≥ i≤ oε thσ linσ yo⌡ wan⌠ t∩ send«á I⌠á caεá bσ ì
áááááanywherσá oε thσ line«á Thσ entirσ 6┤ characte≥ linσ i≤ sen⌠ withou⌠ thσ ì
ááááácursor« Yo⌡ caε alternativel∙ senΣ tw∩ line≤ (12╕ characters⌐ b∙ placinτ ì
áááááthσá curso≥á oεá thσ firs⌠ linσ t∩ bσ sent«á Thσ nex⌠ linσá i≤á sen⌠á iε ì
áááááaddition«á T∩ senΣ onσ linσ pres≤ thσ RETUR╬ key«á T∩ senΣ tw∩á lines¼ ì
ááááápres≤á thσá CTRL-╥á key«á ┴ notσ a⌠ thi≤ point║á Onl∙á thσá significan⌠ ì
áááááportioε oµ thσ buffereΣ datß i≤ sent«á Tha⌠ is¼ trailinτ blank≤ arσ no⌠ ì
ááááásent« Howeve≥ thσ leadinτ blank≤ arσ sent.
3.áááOncσ eithe≥ returε i≤ pressed¼á thσ routinσ wil∞ senΣ onσ characte≥ a⌠ ß ì
ááááátimσ bacδ t∩ thσ calle≥ upoε eacΦ caller'≤ entr∙ t∩ thi≤ routine¼á unti∞ ì
áááááthσ buffe≥ i≤ empty«á Afte≥ thσ buffe≥ i≤ empty¼ thσ routinσ wil∞ senΣ ß ì
ááááácarriagσ returε (0DH⌐ t∩ thσ caller¼á theε thσ routinσ reinitialize≤á t∩ ì
áááááste≡ #▒ above.
.CP 17
=======
3.2.7 ENTRY-7 Alternate screen edited, buffered input.
======= [CBASE+12H]
Thi≤á entr∙ i≤ thσ samσ a≤ ENTRY-╢ fo≥ step≤ ▒ anΣ 2«á Howeve≥ ste≡ │ i≤ ì
no⌠á initiated«á Thσá datßá i≤ jus⌠ transfereΣ t∩ thσ inpu⌠á buffe≥á anΣá thσ ì
significan⌠á portioε oµ thσ line(s⌐ i≤ determined«á Thi≤ informatioεá caεá bσ ì
accesseΣ b∙ knowinτ wherσ thσ buffe≥ i≤ locateΣ iε memory.
Iµ [BUFFER▌ i≤ thσ startinτ locatioε oµ inpu⌠ buffer.
Then: [BUFFER-3▌áá contain≤á thσá bytσá coun⌠á oµáá thσ ì
áááááááááááááááásignifican⌠ portioε oµ thσ BUFFER«á [BUFFER-2,1▌ ì
áááááááááááááááácontain≤ thσ beginninτ addres≤ oµ thσ significan⌠ ì
ááááááááááááááááportioε oµ thσ BUFFER.
Yo⌡á mus⌠ understanΣ that¼á iε thi≤ casσ thσ leadinτ anΣ trailinτ blank≤á arσ ì
no⌠ considereΣ a≤ par⌠ oµ thσ significan⌠ portioε oµ thσ BUFFER.
.CP 8
=======
3.2.8 ENTRY-8 Obtain video cursor address. [CBASE+15H]
=======
Thi≤á entr∙ allow≤ yo⌡ t∩ obaiε thσ curso≥ addres≤ iεá tw∩á forms«á Upoε ì
returεá thσ H╠ registe≥ pai≥ wil∞ contaiε thσ absolutσ addres≤ oµ thσ cursor¼ ì
thσ ┬ registe≥ wil∞ contaiε thσ ro≈ address¼á anΣ thσ ├ registe≥ wil∞ contaiε ì
thσ columε address.
.CP 11è =======
3.2.9 ENTRY-9 Limited control video output (TTY mode).
======= [CBASE+18H]
Thi≤á entr∙á wil∞á outpu⌠ directl∙ t∩ thσá vide∩á screeεá unde≥á limiteΣ ì
control«ááá Onl∙áá tabulation¼áá clea≥áá screen¼áá delete¼áá backspace¼áá anΣ ì
backspace/deletσá arσ alloweΣ fo≥ linσ editing«á Selectinτ reversσ vide∩ modσ ì
i≤ alloweΣ a≤ wel∞ a≤ carriagσ returε anΣ linσ feed« Strictl∙ speaking¼ unde≥ ì
thi≤á entr∙ thσ vide∩ caε ac⌠ onl∙ a≤ ß "Glas≤ Teletype"«á Thσá ASCI╔á outpu⌠ ì
bytσá i≤á expecteΣá t∩ bσ iε thσ ├ register«á Scrol∞á modσá i≤á automaticall∙ ì
assumeΣ unde≥ thi≤ entry.
.CP 8
========
3.2.10 ENTRY-10 Full control video output. [CBASE+1BH]
========
Thi≤ entr∙ allow≤ ful∞ curso≥ anΣ screeε editinτ output« Seσ thσ sectioε ì
3.│á fo≥á ßá summar∙á oµ thσ availablσ commands«á Thσ ASCI╔á outpu⌠á bytσá i≤ ì
expecteΣá t∩ bσ iε thσ ├ register«á Pagσ modσ i≤ automaticall∙ assumeΣá unde≥ ì
thi≤ entry.
.CP 13
========
3.2.11 ENTRY-11 Controlled video/printer output. [CBASE+1EH]
========
Thi≤á entr∙ allow≤ yo⌡ t∩ outpu⌠ t∩ thσ vide∩ screeε iε limiteΣ o≥á ful∞ ì
contro∞á and/o≥á outpu⌠á t∩ thσ printer«á Switchinτá froφá limiteΣá t∩á full∙ ì
controlleΣá vide∩ outpu⌠ anΣ bacδ agaiε i≤ accomplisheΣ b∙ sendinτ thσ scrol∞ ì
modσ and/o≥ pagσ modσ commands«á Thσ printe≥ caε bσ turneΣ oε b∙ sendinτá thσ ì
printe≥á on/ofµ togglσ command«á Thσ printe≥ caε onl∙ bσ activσ unde≥á scrol∞ ì
mode«á Resendinτá thσ printe≥ togglσ commanΣ wil∞ turε thσ printe≥ off«á Wheε ì
yo⌡ se⌠ pagσ modσ thσ routinσ wil∞ firs⌠ senΣ ß linσ feeΣ t∩ thσ printe≥á anΣ ì
theεá wil∞ turε thσ printe≥ off«á Thσ ASCI╔ outpu⌠ bytσ i≤ expecteΣ t∩ bσá iε ì
thσ ├ register.
.CP 11
========
3.2.12 ENTRY-12 Buffered output. [CBASE+21H]
========
Thi≤ entr∙ i≤ thσ mos⌠ elegan⌠ oµ al∞ thσ entries«á Yo⌡ arσ alloweΣ t∩ ì
senΣ ß message¼á formeΣ iε memor∙ prio≥ t∩ entr∙ t∩ thi≤ routine¼ directl∙ t∩ ì
thσ vide∩ screeε and/o≥ printer« Yo⌡ pas≤ thσ startinτ addres≤ oµ thσ messagσ ì
iεá thσá H╠á registe≥á pair«á Thσ messagσ mus⌠ enΣ witΦ ßá NUL╠á (00H⌐á byte« ì
Startinτ a⌠ thσ addres≤ iε thσ H╠ registe≥ pai≥ thσ routinσ wil∞ proces≤ eacΦ ì
ASCI╔á characte≥á througΦá ENRTY-1▒ unti∞ ß NUL╠á bytσá i≤á encountered«á Tw∩ ì
additiona∞ macr∩ command≤ arσ availablσ unde≥ thi≤ entry« Thesσ are:
.CP 7
1.áááRepea⌠ function║á Thσ commanΣ bytσ (12H⌐ signal≤ tha⌠ ß ASCI╔ bytσ o≥ ß ì
ááááásubmacr∩ i≤ t∩ bσ repeated«á Threσ byte≤ arσ involved«á Thσ firs⌠ oµ thσ ì
áááááfunctioεá se⌠ i≤ thσ commanΣ byte¼á thσ seconΣ bytσ i≤ thσ repea⌠á coun⌠ ì
ááááá(1-255)¼ thσ thirΣ i≤ thσ ASCI╔ bytσ o≥ thσ submacr∩ commanΣ byte« Iµ i⌠ ì
ááááái≤á thσá submacr∩á commanΣ bytσ theε thσá repea⌠á functioεá expect≤á thσ ì
áááááremainde≥á oµ thσ submacr∩ functioε se⌠ t∩ bσ includeΣ immediatel∙ afte≥ ì
áááááthσ thirΣ bytσ oµ thσ repea⌠ functioε set.
.CP 11è2.áááSubmacr∩ function║á Thσ commanΣ bytσ (01H⌐ signal≤ t∩ thσ routinσá tha⌠
áááááonσ o≥ morσ set≤ oµ ASCI╔ character≤ arσ t∩ bσ processed«á Followinτ thσ ì
ááááásubmacr∩á commanΣá bytσ i≤ thσ macr∩ se⌠ coun⌠ bytσ (1-255)«á Afte≥á thσ ì
ááááácoun⌠á byte¼á ßá pai≥á oµá byte≤á fo≥á eacΦá se⌠á specifieΣá i≤á entereΣ ì
ááááásequentially«á Thi≤á bytσá pai≥á contain≤ thσ startinτá addres≤á oµá thσ ì
ááááásubmacro« EacΦ anΣ ever∙ submacr∩ mus⌠ havσ ß NUL╠ bytσ [00H▌ oε thσ enΣ ì
áááááoµ tha⌠ submacro«á ┴ cautioε mus⌠ bσ madσ a⌠ thi≤ point║á Sincσ yo⌡á caε ì
ááááárecursivel∙á cal∞ u≡ messagσ macro≤ froφ othe≥ macros¼á yo⌡ mus⌠ bσ ver∙ ì
ááááácarefu∞ iε no⌠ causinτ cycling« Tha⌠ is¼ ß macr∩ mus⌠ no⌠ envokσ ß macr∩ ì
áááááwhicΦ i≤ alread∙ iε thσ linkage«á A≤ yo⌡ caε see¼á aε infinitσ loo≡ wil∞ ì
ááááábσ created¼ o≥ yo⌡ wil∞ ruε ou⌠ oµ stacδ space¼ o≥ both.
3.3 -- CONSOLE KEYBOARD COMMAND SET
===================================
Almos⌠á al∞ oµ thσ ASCI╔ contro∞ character≤ werσ useΣ fo≥ thσá subsysteφ ì
contro∞ commands« Onl∙ CTRL-Z¼ X¼ C¼ anΣ ╒ werσ no⌠ used« Thesσ key≤ arσ useΣ ì
ß grea⌠ dea∞ iε CP/═ function≤ a≤ wel∞ a≤ iε ß numbe≥ oµ program≤á compatiblσ ì
t∩á CP/M«á Thi≤á wa≤ thσ onl∙ reasoε fo≥ no⌠ usinτ thesσ key≤á fo≥á commands« ì
Sectioε 3.2.▒ summarize≤ al∞ oµ thσ commands.
3.3.1 -- COMMAND SET SUMMARY
.CP 14
CURSOR COMMANDS
===============
DEFINED FUNCTION KEY ASCII NOTES
Cursor left shift [,] 1CH #6
Cursor right shift [.] 1DH #6
Cursor down shift [/] 1EH #6
Cursor up shift [-] 1FH #6
Cursor home [K] 0BH
Cursor bottom left [B] 02H
Clear screen & cursor home [L] 0CH
Cursor on [N] 0EH
Cursor off [O] 0FH
.CP 13
EDIT COMMANDS
=============
Back space BS or [H] 08H
Horizontal tabulation TAB or [I] 09H
Delete a character on a line DEL 7FH
Back space then delete a char. shift DEL 5FH #6
Delete a character globally [G] 07H
Insert a blank character on a line [D] 04H
Insert a blank character globally [F] 06H
Clear a line LF or [J] 0AH #1
Delete a line [Y] 19H
Insert a blank line [T] 14H
.CP 8
SCREEN CONTROL COMMANDS
=======================
Direct video mode [V] 16H
Reverse video mode [E] 05H
Page mode [Q] 11H
Scroll mode [W] 17H
Speed control [S] 13H #2
.CP 10è MISCELLANEOUS COMMANDS
======================
Printer toggle [P] 10H
Line feed LF or [J] 0AH
Send a line CR or [M] 0DH #3
Send two lines [R] 12H #4
Message macro flag [A] 01H #5
End of message flag [@] 00H #5
Repeat byte or macro flag [R] 12H #5
#1áááOnl∙ unde≥ BUFFER-I╬ o≥ BUIL─ mode« Norma∞ L╞ otherwise.
#2áááOnl∙ whilσ thσ screeε i≤ activel∙ scrolling« Thi≤ commanΣ wil∞ sto≡ thσ ì
áááááscrolling«á Pressinτá ▒ - ╖ wil∞ restar⌠ thσ scrollinτ a⌠ thσá specifieΣ ì
áááááspeed«á ▒ i≤ thσ slowest¼á ╖ i≤ thσ fastest«á Pressinτ ░ wil∞ causσ thσ ì
áááááscrol∞ t∩ g∩ int∩ singlσ ste≡ mode╗á thereafter¼á pressinτ thσ spacσ ba≥ ì
áááááwil∞ singlσ ste≡ thσ scroll«á Pressinτ eithe≥ oµ ▒ - ╖ wil∞ causσá auto-ì
áááááscrollinτ t∩ continuσ a⌠ thσ choseε speed.
#3áááOnl∙ unde≥ BUFFER-I╬ o≥ BUIL─ mode« Norma∞ C╥ otherwise.
#4áááUnde≥ BUFFER-I╬ o≥ BUIL─ mode.
#5áááUnde≥ BUFFER-OU╘ mode.
#6áááControl-shif⌠á ke∙á a≤á implementeΣá oε thσá 3rΣá Generatioεá Electroniπ ì
áááááWarehousσ KeyboarΣ (PolleΣ Matri° TTL).
3.3.2 -- PLACEMENT OF COMMANDS ON KEYBOARD.
Thσá keyboarΣ layou⌠ oµ thσ command≤ fo≥ thσ 3rΣá Generatioεá Electroniπ ì
Warehousσ KeyboarΣ (PolleΣ Matri° TTL⌐ i≤ showε below«
NOTES:
*(1) - RETURN FROM ENTER-TEXT COMMAND
*(2) - SCROLL SPEED CONTROL WHILE SCROLLING
*(3) - CTRL-SHIFT GIVES BACK SPACE AND DELETE
*(4) - UNCOMMITTED CONTROLS (CP/M USES THESE)
## - MUST CTRL-SHIFT TO OBTAIN FUNCTION
LEFT SIDE
+---------+---------+---------+---------+---------+---------+
| | | | | | |
| ESCAPE | 1 | 2 | 3 | 4 | 5 |
| | | | | | |
+---------+------+--+------+--+------+--+------+--+------+--+
| | Q| W| E| R|
| HORIZONTAL | PAGE | SCROLL | REVERSE | 2 LINE |
| TAB | MODE | MODE | VIDEO | RETURN |
+---------+------+--+------+--+------+--+------+--+------+--+
| | | A| S| D| F|
| CTRL | SHIFT | *(1) | *(2) | INSERT | INSERT |
| | LOCK | | | CHAR | GLOBAL |
+---------+---------+-----+---+-----+---+-----+---+-----+---+
| | | Z| X| C|
| NULL | SHIFT | *(4) | *(4) | *(4) |
| | | | | |
+---------+---------------+---+-----+---------+---------+
|
|
|
+---------------------------
CENTER
+---------+---------+---------+---------+---------+
| | | | | |
| 6 | 7 | 8 | 9 | 0 |
| | | | | |
+--+------+--+------+--+------+--+------+--+------+--+
| T| Y| U| I| O|
| INSERT | DELETE | *(4) | TAB | CURSOR |
| LINE | LINE | | | OFF |
+--+------+--+------+--+------+--+------+--+------+--+
| G| H| J| K| |
| DELETE | BACK | CLEAR | HOME | CLEAR |
| GLOBAL | SPACE | LINE | | SCREEN |
+---+-----+---+-----+---+-----+---+-----+---+-----+---+
| V| B| N| M| ## ,|
| DIRECT | BOTTOM | CURSOR | RETURN | CURSOR |
| VIDEO | CURSOR | ON | | LEFT |
+---------+---------+---------+---------+---------+
SPACE BAR
---------------------------------------------------
RIGHT SIDE
+---------+---------+---------+---------+---------+
| ## -| :| ~| | |
| CURSOR | | | BACK | BREAK |
| UP | | | SPACE | |
+--+------+--+------+--+------+--+------+--+------+--+
| P| [| || | |
| PRINT | | | LINE | DELETE |
| TOGGLE | | | FEED | *(3) |
+--+------+--+------+--+------+--+------+---------+---+
| ;| @| ]| |
| | | | RETURN |
| | | | |
+---+-----+---+-----+---+---------++---------+---------+
| ## .| ## /| | | |
| CURSOR | CURSOR | SHIFT | REPEAT | |
| RIGHT | DOWN | | | |
+---------+---------+--------------+---------+---------+
|
|
|
----------+
3.4 -- DESCRIPTION OF THE MESSAGE MACRO PROCESSOR
=================================================
IncorporateΣá iεá thσá CONSOL┼ SUBSYSTE═ i≤ ßá messagσá macr∩á processo≥ ì
(accesseΣá througΦá ENTRY-12⌐ whicΦ allow≤ yo⌡ t∩ havσ completσ contro∞á ove≥ ì
you≥á vide∩ screeε and/o≥ printe≥ througΦ packet≤ oµ ASCI╔ character≤á calleΣ ì
messagσ macros«á Thσ messagσ macr∩ processo≥ (hereafte≥ calleΣ MMP⌐ use≤á thσ ì
controlleΣ outpu⌠ processo≥ whicΦ yo⌡ caε acces≤ througΦ ENTRY-11«
Upoεá entr∙ througΦ ENTRY-1▓ thσ MM╨ expect≤ thσ startinτ addres≤ oµ thσ ì
primar∙ macr∩ t∩ bσ iε thσ H╠ registe≥ pair«á MM╨ theε start≤ t∩ proces≤á thσ ì
macr∩ anΣ continue≤ unti∞ i⌠ encounter≤ ß NUL╠ (00H⌐ byte« I⌠ theε return≤ t∩ ì
thσ caller.
EacΦá macr∩ i≤ ß packe⌠ oµ ASCI╔ printablσ anΣ contro∞ character≤á endeΣ ì
witΦ ß NUL╠ ASCI╔ byte«á Aε asidσ a⌠ thi≤ point║á Therσ arσ ß numbe≥ oµ way≤ ì
whicΦá yo⌡á coulΣ signa∞ thσ enΣ oµ ß message«á ┴ popula≥ onσ i≤ settinτá thσ ì
mos⌠á significan⌠á bi⌠á oµ ß bytσ high«á Thi≤ save≤á onσá bytσá pe≥á message╗ ì
however¼á yo⌡ arσ limiteΣ t∩ onl∙ thσ lega∞ 12╕ ASCI╔ characters« Man∙ oµ yo⌡ ì
havσá reversσ vide∩ o≥ graphic≤ option≤ availablσ oε you≥ vide∩á controllers« ì
settinτá bi⌠ ╖ higΦ woulΣ negatσ you≥ usσ oµ thesσ options«á CP/═á recognize≤ ì
thi≤á probleφ b∙ usinτ thσ dolla≥ sigε [$▌ a≤ aε enΣ oµ messagσ signal«á But¼ ì
thi≤á mean≤á tha⌠ yo⌡ canno⌠ usσ dolla≥ sign≤ iε you≥ messagσá -- ßá definitσ ì
hindrancσ iε writinτ busines≤ software«á Thσ NUL╠ bytσ i≤ seldoφ availablσ oε ì
ASCI╔ keyboard≤ anΣ i≤ ver∙ seldoφ useΣ iε popula≥ software« Thσ NUL╠ bytσ iε ì
ou≥ opinioε i≤ thσ mos⌠ innocuou≤ choice.
MM╨á ha≤ tw∩ maiε function≤ availablσ t∩ you¼á whicΦ wil∞ le⌠á yo⌡á makσ ì
ful∞á usσá oµ thσ contro∞ command≤ iε ß repeatablσ and/o≥ recursivσá way«á Iε ì
usinτá thσá submacr∩ functioε yo⌡ caε inser⌠ othe≥ messagσ macro≤á int∩á you≥ ì
primar∙ message« Yo⌡ caε repea⌠ an∙ ASCI╔ bytσ o≥ submacr∩ througΦ thσ repea⌠ ì
function.
3.4.1 -- SUBMACRO FUNCTION
=================
Thσ submacr∩ functioε i≤ ß recursivσ routinσ whicΦ allow≤ yo⌡ t∩á inser⌠ ì
macro≤ withiε macro≤ withiε macros¼á etc«á Wha⌠ doe≤ thi≤ reall∙ mean┐ Well¼ ì
yo⌡á no≈á havσ thσ capabilit∙ t∩ add¼á mix¼á o≥ matcΦ word≤ o≥á phrase≤á int∩ ì
intelligen⌠ message≤ froφ ß limiteΣ word/phrasσ dictionar∙ o≥ list«á Al∞ tha⌠ ì
i≤ necessar∙ is:
[1]- First¼á builΣá ßá grou≡á oµ word/phrasσ macros¼á eacΦ pointeΣ t∩á b∙á aε ì
addres≤ label¼ sucΦ as:
WD01 DEFM 'COMMAND '
DEFB NULL
WD02 DEFM 'ERROR '
DEFB NULL
WD03 DEFM '; REENTER '
DEFB NULL
[2]- Next, build the primary macro, such as:
MSG1 DEFB 1,4
DEFW WD01,WD02,WD03,WD01
DEFM 'AGAIN '
DEFB NULL
[3]- Last, just send the message to the console subsystem, such as:
LD HL,MSG1
CALL VIDPRO
Thσá firs⌠ linσ oµ MSG▒ contaiε thσ Submacr∩ Functioε CommanΣ anΣ thσá numbe≥ ì
oµá Submacro≤ t∩ bσ imbedded«á Thσ nex⌠ linσ contain≤ thσ addresse≤ oµ thσá ┤ ì
respectivσá submacro≤ t∩ bσ imbedded«á Linσ threσ contain≤ thσ primar∙á macr∩ ì
characters« Thσ las⌠ linσ i≤ thσ nul∞ bytσ requireΣ t∩ enΣ thσ message.
Thσ abovσ examplσ woulΣ say¼ "COMMAN─ ERRO╥ ╗ REENTE╥ COMMAND"« Thi≤ messagσ ì
i≤ 3▒ character≤ long«á I⌠ tooδ 1╖ byte≤ t∩ builΣ thσ primar∙ macro«á Iµá yo⌡ ì
definσá submacro≤á whicΦá arσ useΣ morσ thaε once¼á yo⌡ caε realizσá ßá grea⌠ ì
saving≤ iε memory«á Yo⌡ havσ aε ove≥ heaΣ oµ ▒ NUL╠ bytσ anΣ ▓ addres≤á byte≤ ì
pe≥á submacr∩á use«á ┴ submacr∩ messagσ shoulΣ bσ a⌠ leas⌠ si° byte≤ lonτá t∩ ì
realizσ ß saving≤ afte≥ thσ firs⌠ usσ oµ thσ submacro.
3.4.2 -- REPEAT FUNCTION
===============
Thi≤á functioε allow≤ yo⌡ t∩ repea⌠ ß numbe≥ oµ identica∞ ASCI╔á displa∙ ì
o≥ contro∞ bytes«á I⌠ als∩ allow≤ yo⌡ t∩ repea⌠ ß grou≡ oµ submacro≤ ß numbe≥ ì
oµ time≤ a≤ well«á Thσ repea⌠ functioε commanΣ i≤ ß CTRL-R¼á [12H]« Thσ bytσ ì
followinτ immediatel∙ afte≥ thσ commanΣ bytσ i≤ thσ repea⌠ coun⌠ byte« Iµ thσ ì
bytσá followinτá thσ coun⌠ bytσ i≤ thσ submacr∩ command¼á theεá thσá functioε ì
assume≤á thσá specifieΣ imbeddeΣ submacro≤ arσ t∩ bσ repeateΣá thσá specifieΣ ì
numbe≥á oµá times«á Otherwise¼á thσ functioε repeat≤ thσ bytσá specifieΣá thσ ì
specifieΣ numbe≥ oµ times.
Example 1:
MSG2 DEFB HOME,RPT,N1,CDN,RPT,N2,CRT,NULL
Thi≤ examplσ wil∞ movσ thσ curso≥ t∩ an∙ positioε oε thσ screeε b∙ usinτ onl∙ ì
╕ bytes« Where:
HOME - Home cursor to upper right corner of screen.
RPT - Repeat function command.
N1,N2 - Number of repeats specified (binary).
CDN - Cursor down command.
CRT - Cursor right command.
Example 2:
MSG3 DEFB CR,RPT,64,SPACE,PAGE,CUP,SCROLL,NULL
Thi≤ examplσ wil∞ clea≥ ß linσ whilσ unde≥ scrol∞ mode« Where:
CR - Carriage return command.
PAGE - Set page mode command.
SCROLL - Set scroll mode command.
CUP - Cursor up command.
A≤ yo⌡ caε seσ thσ functioε caε givσ yo⌡ completσ contro∞ ove≥ thσ screeεá oµ ì
you≥á video«á CoupleΣá witΦá thσ submacr∩ commanΣ yo⌡ havσá ßá ver∙á powerfu∞ ì
animatioε contro∞ ove≥ you≥ screeε witΦ minima∞ effor⌠ anΣ memor∙ usage.
4.0 -- CASSETTE SUBSYSTEM
=========================
(RELEASE A ONLY)
4.1 -- GENERAL DESCRIPTION
==========================
Thσá CASSETT┼ SUBSYSTE═ give≤ yo⌡ tapσ I/╧ usinτ cassettσ magnetiπ tape« ì
I⌠á wil∞á drivσá thσ TELETE╦ (DAJEN⌐ Universa∞á Cassettσá Recorde≥á Interfacσ ì
(UCRI)« Thσ subsysteφ wil∞ creatσ TELETE╦ anΣ ZAPPL┼ formatteΣ file≤ anΣ wil∞ ì
reaΣ TELETEK¼á TARBELL¼ anΣ ZAPPL┼ formatteΣ files« Thσ subsysteφ i≤ composeΣ ì
oµ threσ sections║á Corσ cassettσ drive≥ routines¼á TELETE╦ I/╧ drivers¼á anΣ ì
thσ ZAPPL┼ I/╧ drivers.
Thi≤á Subsysteφá i≤ onl∙ includeΣ iε Releasσ ┴ versioε oµá thσá monitor« ì
Releasσ ┬ doe≤ no⌠ requirσ thi≤ subsysteφ sincσ i⌠ ha≤ it≤ cassettσá routine≤ ì
buil⌠á a≤ transien⌠ command≤ whicΦ residσ oε CP/═ disδ files«á However¼á thi≤ ì
sectioεá oµá thσá manua∞ wil∞ hel≡ yo⌡ understanΣ thσá cassettσá routine≤á oµ ì
Releasσ ┬ sincσ thei≥ actioε arσ essentiall∙ identica∞ t∩ Releasσ A.
4.2 -- SUBSYSTEM INTERFACE
==========================
Fo≥ inter-subsysteφ communication≤ thσ CASSETT┼ SUBSYSTE═ contain≤ aε 1▒ ì
entr∙á jum≡á table¼á ß ▓ cal∞ jum≡ tablσ t∩ thσ consolσá subsystem¼á anΣá onσ ì
addres≤ pointinτ t∩ thσ subsysteφ variablσ worδ space« Thesσ arσ a⌠ thσ fron⌠ ì
oµ thσ subsystem« Thσ entrie≤ arσ a≤ follows:
áááááááááá OR╟ TBASE
ááááááááááENTRY▒ J╨ TINI╘ ;INITIALIZ┼ TH┼ SUBSYSTEM
ááááááááááENTRY▓ J╨ ZSAV┼ ;ZAPPL┼ WRIT┼ CASSETTE
ááááááááááENTRY│ J╨ ZLOA─ ;ZAPPL┼ REA─ CASSETTE
ááááááááááENTRY┤ J╨ WRIT┼ ;TELETE╦ WRIT┼ CASSETTE
ááááááááááENTRY╡ J╨ REA─ ;TELETE╦ REA─ CASSETTE
ááááááááááENTRY╢ J╨ WROPE╬ ;COR┼ OPE╬ WRIT┼ CASSETTE
ááááááááááENTRY╖ J╨ WRBYT┼ ;COR┼ WRIT┼ ┴ BYTE
ááááááááááENTRY╕ J╨ WRCL╙ ;COR┼ CLOS┼ WRIT┼ CASSETTE
ááááááááááENTRY╣ J╨ RDOPE╬ ;COR┼ OPE╬ REA─ CASSETTE
ááááááááááENTRY1░ J╨ RDBYT┼ ;COR┼ REA─ ┴ BYTE
ááááááááááENTRY1▒ J╨ RDCL╙ ;COR┼ CLOS┼ REA─ CASSETTE
The external calls are as follows:
áááááááááá OR╟ TBASE+21H
ááááááááááXCALL▒ J╨ CBASE+09╚ ;UNSTROBE─ KE┘ ENTRY
ááááááááááXCALL▓ J╨ CBASE+21╚ ;BUFFERE─ MESSAG┼ OUT
Thσáá variablσáá worδá spacσá beginninτá addres≤á [TWORK▌áá reside≤áá a⌠ ì
[TBASE+27H]« Thi≤ allow≤ yo⌡ t∩ changσ thσ worδ spacσ positioε withou⌠ havinτ ì
t∩ reassemblσ thσ subsystem«á Thσ subsysteφ obtain≤ thi≤ addres≤ eacΦ timσ aε ì
entr∙á i≤ madσ t∩ thσ subsysteφ anΣ store≤ i⌠ iε thσ inde° registe≥á IY«á Al∞ ì
thσ variable≤ arσ accesseΣ viß thσ inde° register«á Thσ variablσ storagσá ma≡ ì
i≤ a≤ follows:
ááááááááááUSE─ I╬ TH┼ COR┼ ROUTIN┼ SECTION
ááááááááááTWORK+00╚ SYN├ ;Syncronizatioε byte
ááááááááááUSE─ I╬ COR┼ AN─ ZAPPL┼ SECTIONS
ááááááááááTWORK+01╚ MOD┼ ;CASSETT┼ MODE
áááááááááá [00H]-writσ mode
áááááááááá [01H]-reaΣ mode
áááááááááá [02H]-idlσ mode
áááááááááá USE─ I╬ TH┼ ZAPPL┼ SECTION
ááááááááááTWORK+02╚ LAS╘ ;Las⌠ bytσ writteε o≥ read
ááááááááááTWORK+03╚ FCT╥ ;[FFH▌ counter
ááááááááááTWORK+04╚ FEN─ ;EO╞ flag
4.│ -- COR┼ CASSETT┼ ROUTINES
=============================
Thesσá routine≤ arσ thσ primar∙ driver≤ whicΦ providσ thσ interfacσ froφ ì
thσá TELETE╦á UCR╔á t∩ thσ monito≥ anΣá use≥á routines«á Thesσá routine≤á arσ ì
completel∙á independen⌠á oµ externa∞ contro∞ excep⌠ througΦ cal∞á entrie≤á t∩ ì
them«á The∙á caεá bσá useΣ fo≥ buildinτ additiona∞ cassettσá I/╧á driver≤á o≥ ì
cassettσ operatioε system≤ independen⌠ oµ thσ monito≥ anΣ it≤ subsystems.
Thσá opeεá anΣ closσ routine≤ wil∞ se⌠ thσ variablσ [MODE▌ t∩ [00H▌á fo≥ ì
writσ cassette¼á [01▌ fo≥ reaΣ cassette¼ anΣ [02▌ fo≥ idle« Thi≤ variablσ caε ì
bσá useΣ t∩ optimizσ you≥ I/╧ drive≥ routines«á I⌠ i≤ useΣ iε thσ ZAPPL┼á I/╧ ì
drive≥ section«á Upoε returε froφ thesσ routine≤ thσ carr∙ flaτ i≤ se⌠ iµá aε ì
erro≥ conditioε o≥ aε abor⌠ conditioε exists« Thσ calle≥ i≤ expecteΣ t∩ reac⌠ ì
appropriately.
Therσ arσ eigh⌠ corσ routines« Thesσ are:
ááááááááááCTIN╨ - Inpu⌠ ß bytσ froφ thσ cassette«á Oε return¼á thσ carr∙ i≤ ì
ááááááááááse⌠ iµ aε abor⌠ i≤ senseΣ (escapσ ke∙ i≤ pressed)«á Thσ res⌠ oµ thσ ì
ááááááááááentrie≤ belo≈ als∩ usσ thσ samσ returε condition.
ááááááááááCTOU╘ - Outpu⌠ ß bytσ t∩ thσ cassette.
ááááááááááOPIN╨ - Se⌠ MOD┼ t∩ input¼á star⌠ thσ cassette¼ looδ fo≥ ß prope≥ ì
áááááááááálevel¼á wheεá founΣ initializσ thσ UAR╘ t∩ looδ fo≥ thσ SYN├á byte¼ ì
ááááááááááanΣ theε return.
ááááááááááOPOU╘ - Se⌠ MOD┼ t∩ output¼á star⌠ thσ cassette¼á outpu⌠ one-halµ ì
ááááááááááseconΣ oµ silence¼á outpu⌠ 4-1/▓ seconΣ leade≥ oµ NULL≤ (00H)¼á anΣ ì
ááááááááááoutpu⌠ thσ SYN├ byte.
ááááááááááCLIN╨ - Se⌠ MOD┼ t∩ idle¼ cal∞ OFFCAS¼ theε return.
ááááááááááCLOU╘ - Se⌠ MOD┼ t∩ idle¼ outpu⌠ one-halµ seconΣ oµ NULLs¼ outpu⌠ ì
ááááááááááone-halµ seconΣ oµ silence¼ theε sto≡ thσ cassette.
ááááááááááOFFCA╙ - Coas⌠ fo≥ ß halµ ß seconΣ theε sto≡ thσ cassette.
ááááááááááERRO╥ - Cal∞ CLINP¼ se⌠ carr∙ flag¼ theε return.
4.4 -- TELETEK I/O DRIVER SECTION
=================================
Thσá TELETE╦á I/╧ drive≥ sectioε wil∞ crea⌠ o≥ writσá TELETE╦á formatteΣ ì
file≤á anΣ reaΣ TARBEL╠ o≥ TELETE╦ formatteΣ files«á I⌠ wil∞ writσ thσ entirσ ì
filσá a≤ specifieΣ b∙ thσ B├ anΣ H╠ registe≥ pairs«á I⌠ wil∞ reaΣ thσá entirσ ì
filσ a≤ specifieΣ b∙ thσ ┴ registe≥ anΣ thσ B├ anΣ H╠ registe≥ pairs«
4.4.▒ -- Writinτ ß file║á Thσ H╠ registe≥ pai≥ i≤ expecteΣ t∩ contaiε ì
thσ beginninτ addres≤ oµ thσ filσ iε memory« Thσ B├ registe≥ pai≥ i≤ expecteΣ ì
t∩ contaiε thσ filσ sizσ iε bytes« Thσ filσ i≤ writteε oε thσ cassettσ iε onσ ì
blocδ iε thσ TELETE╦ forma⌠ whicΦ i≤ a≤ follows:
1. ááááá1/▓ seconΣ oµ silen⌠ leader.
2. ááááá┤ anΣ 1/▓ seconΣ leade≥ oµ NULL≤ [00H].
3. ááááá▒ clocδ bytσ [3CH].
4. ááááá▒ synπ bytσ [E6H].
5.áááááá1╢ bi⌠ beginninτ addres≤ oµ file¼ lo≈ orde≥ bytσ firs⌠ theε ì
ááááááááthσ higΦ orde≥ byte¼ INTE╠ style.
6.áááááá1╢ bi⌠ filσ sizσ count¼á higΦ orde≥ bytσ firs⌠ theε thσ lo≈ ì
ááááááááorde≥ bytσ next.
7. áááááTota∞ memor∙ file.
8. áááááChecksuφ bytσ oµ thσ cassettσ filσ includinτ thσ thσ tw∩ 1╢ ì
áááááááábi⌠ variables.
9. ááááá1/▓ seconΣ traile≥ oµ NULLs.
10. áááá1/▓ seconΣ silen⌠ trailer.
4.4.▓ -- Readinτ ß file║á Tw∩ option≤ arσ available«á Thesσ arσá REA─ ì
TELETE╦ anΣ REA─ TARBELL«á Registe≥ ┴ i≤ expecteΣ t∩ contaiε thσ optioε byte║ ì
[00H▌ - REA─ TELETEK¼ [01H▌ - REA─ TARBELL.
REA─ TELELE╦ wil∞ expec⌠ thσ firs⌠ fou≥ byte≤ oε thσ cassettσ filσ t∩ bσ ì
thσá beginninτ memor∙ addres≤ anΣ thσ filσ sizσ iε byte≤ accordinτ t∩ TELETE╦ ì
format¼ anΣ expect≤ ß 1╢ bi⌠ BIA╙ t∩ bσ iε thσ H╠ registe≥ pair« Thi≤ BIA╙ i≤ ì
addeΣá oε thσ beginninτ addres≤ oµ thσ cassettσ file«á ┴ runninτ checksuφá i≤ ì
kep⌠ whilσ thσ filσ i≤ beinτ reaΣ iε anΣ i≤ checkeΣ agains⌠ thσ cassettσ filσ ì
checksum« Iµ the∙ arσ differen⌠ theε ß checksuφ erro≥ messagσ wil∞ bσ sen⌠ t∩ ì
thσ console.
REA─á TARBEL╠ wil∞ expec⌠ thσ beginninτ memor∙ addres≤ t∩ bσ iεá thσá H╠ ì
registe≥á pai≥ anΣ thσ filσ sizσ t∩ bσ iε thσ B├ registe≥ pair«á Thi≤á optioε ì
wil∞á continuσá t∩á reaΣá thσ cassettσ unti∞ thσ specifieΣá memor∙á blocδá i≤ ì
filled«á Yo⌡ shoulΣ bσ cautioneΣ tha⌠ iµ yo⌡ attemp⌠ t∩ reaΣ ß cassettσá filσ ì
smalle≥ thaε thσ specifieΣ memor∙ block¼á thσ routinσ coulΣ locδ up« Pressinτ ì
thσ ESCAP┼ ke∙ wil∞ clea≥ thσ lock.
4.5 -- THE ZAPPLE I/O DRIVER SECTION
====================================
Thi≤ sectioε wil∞ savσ anΣ loaΣ ZAPPL┼ files« Writinτ anΣ readinτ ZAPPL┼ ì
file≤á create≤á ßá probleφ whicΦ i≤ no⌠ easil∙ solved«á Thσá cassettσá drive≥ ì
routinσá ha≤ t∩ contenΣ witΦ knowinτ wheε ß filσ i≤ starteΣ anΣ wheεá i⌠á ha≤ ì
ended« ZAPPL┼ softwarσ wa≤ baseΣ oε TT┘ papertapσ reade≥ anΣ puncΦ files« Thσ ì
softwarσá send≤ n∩ indicatioε oε thσ star⌠ anΣ enΣ oµ thσ filσ excep⌠ tha⌠ i⌠ ì
use≤ eigh⌠ MAR╦ byte≤ [FFH▌ iε ß sequencσ fo≥ thσ beginninτ anΣ endinτ oµ thσ ì
file«á T∩á alleviatσ thσ problem¼á thσ drive≥ wa≤ designeΣ t∩ anticipatσá thσ ì
beginninτ anΣ endinτ oµ thσ file≤ b∙ thσ followinτ scheme:
1.ááááááááPrio≥á t∩á encounterinτ thσ firs⌠ cal∞á froφá thσá caller¼á (ZAPPL┼ ì
áááááááááásoftware⌐ thσ cassettσ drive≥ shoulΣ havσ beeε properl∙ se⌠ t∩ IDL┼ ì
ááááááááááMODE«
2.ááááááááUpoε encounterinτ thσ firs⌠ cal∞ t∩ thσ driver¼ thσ drive≥ wil∞ se⌠ ì
ááááááááááthσá MOD┼ t∩ REA─ o≥ WRIT┼ dependinτ oε whicΦ cal∞ entry¼á LOA─á o≥ ì
ááááááááááSAVE.
3.ááááááááIµá thσ firs⌠ bytσ i≤ no⌠ ß MAR╦ byte¼á theε aε abor⌠ i≤á initiateΣ ì
áááááááááá(cassettσ i≤ turneΣ off¼á thσ drive≥ i≤ rese⌠ t∩ IDL┼ MODE¼ anΣ thσ ì
áááááááááácarr∙ flaτ i≤ se⌠ upoε return).
4.ááááááááThσá drive≥á wil∞ continuσ t∩ receivσ o≥ senΣ (savσ o≥ load⌐á byte≤ ì
ááááááááááunti∞ i⌠ encounter≤ thσ seconΣ se⌠ oµ MAR╦ bytes«á Thσ drive≥á theε ì
ááááááááááturn≤á ofµ thσ recorde≥ afte≥ ß fe≈ housekeepinτ chores¼á reset≤ t∩ ì
ááááááááááIDL┼ MODE¼ anΣ return≤ fo≥ thσ fina∞ time.
Yo⌡á mus⌠á understanΣá tha⌠ thσ onl∙ communicatioε t∩á anΣá froφá ZAPPL┼ ì
softwarσá i≤ viß thσ byte≤ passeΣ t∩ anΣ froφ thσ I/╧ driver«á N∩á othe≥á I/╧ ì
avenue≤á arσ established«á Thi≤ present≤ ß probleφ iε thσ even⌠ tha⌠ iµá you≥ ì
ZAPPL┼ softwarσ crashe≤ anΣ iε doinτ s∩ leave≤ you≥ cassettσ recorde≥ on«á T∩ ì
reinitializσá thσ I/╧ drive≥ withou⌠ wipinτ you≥ program¼á pres≤ thσ rese⌠ oε ì
you≥á system«áá Thi≤á wil∞á reinitializσá thσá monito≥á whicΦá iεá turεá wil∞ ì
reinitializσá thσá cassettσ subsystem«á Yo⌡ theε caε reboo⌠á t∩á you≥á ZAPPL┼ ì
softwarσá througΦ it≤ warφ reboo⌠ vector«á Thi≤ methoΣ wil∞ onl∙ worδ iµá yo⌡ ì
havσ ß systeφ witΦ power-oε jum≡ vectoring.
5.0 DISK SUBSYSTEM
==================
5.1 -- GENERAL DESCRIPTION
==========================
Thi≤á subsysteφá tie≤á CP/M¼á thσá disδ operatinτá systeφá froφá Digita∞ ì
ResearcΦá oµá California¼á int∩ thσ Systeφ Monito≥ s∩ tha⌠ the∙ botΦá ac⌠á iε ì
concer⌠ witΦ eacΦ other«á Wheε thσ command≤ COP┘ anΣ VERIF┘ arσ envoked¼á thσ ì
Systeφá Monito≥á wil∞á boo⌠á u≡ CP/M¼á loaΣá thσá specifieΣá COP┘á o≥á VERIF┘ ì
subcommand¼á anΣá theεá executσ thσ subcommand«á Iε orde≥ t∩ d∩ thi≤á withou⌠ ì
changinτá o≥ alterinτ CP/M¼á ß fe≈ trick≤ werσ pulled«á Thesσá arσá explaineΣ ì
below«á Essentially¼ thσ Systeφ Monito≥ intercept≤ thσ consolσ status¼ input¼ ì
anΣá outpu⌠á vector≤á a≤ wel∞ a≤ thσ printe≥ outpu⌠ vecto≥á anΣá incorporate≤ ì
thesσ dynamicall∙ int∩ thσ Systeφ Monito≥ Consolσ I/╧ subsystem.
5.2 -- SUBSYSTEM INTERFACE
==========================
Thσ subsysteφ ha≤ tw∩ entries:
ENTRY1 JP DINIT ;DISK SUBSYSTEM INITIALIZATION
ENTRY2 JP DMAIN ;DISK MAIN ENTRY
5.3 -- TRANSIENT COMMAND EXECUTION PROCESS
==========================================
Thσ Systeφ Monito≥ wil∞ activatσ thσ Disδ Subsysteφ t∩ loaΣ ßá transien⌠ ì
commanΣá residinτá iεá ßá CP/═á disδ filσ wheε yo⌡ ente≥á ßá COP┘á o≥á VERIF┘ ì
subcommanΣ no⌠ residen⌠ iε memory« Thσ executioε proces≤ i≤ a≤ follows:
1.áááThσ Disδ Subsysteφ boot≤ iε CP/M'≤ secondar∙ boo⌠ residinτ iε thσá firs⌠ ì
ááááásecto≥ oµ tracδ zer∩ oµ drivσ [A]« I⌠ theε overlay≤ ß returε vecto≥ bacδ ì
ááááát∩ thσ Disδ Subsysteφ ove≥ thσ origina∞ CP/═ vecto≥ t∩ it≤ CC╨ executioε ì
áááááaddress«á Thσá Disδ Subsysteφ wil∞ theε jum≡ t∩ thσ loadeΣ boo⌠ whicΦ iε ì
áááááturε load≤ iε thσ res⌠ oµ thσ CP/═ system.
2.áááAfte≥á bootinτá iε CP/═ anΣ returninτ bacδ t∩ thσá Disδá Subsystem¼á thσ ì
ááááásubsysteφ theε determine≤ wherσ CP/═ wa≤ loadeΣ int∩ memor∙ b∙ obtaininτ ì
áááááCP/M'≤ BDO╙ executioε addres≤ whicΦ i≤ storeΣ a⌠ memor∙ addres≤ [0006H].
3.áááThσ subsysteφ theε trie≤ t∩ finΣ thσ requesteΣ COP┘ o≥ VERIF┘ subcommanΣ ì
áááááutilit∙ filσ oε thσ disk«á Iµ no⌠ successfu∞ theε thσ erro≥ messagσ "NO╘ ì
áááááFOUNDóá i≤á displayeΣ oε thσ consolσ anΣ thσ Systeφ Monito≥á return≤á t∩ ì
ááááácommanΣ entr∙ mode.
4.áááIµá thσá subcommanΣ utilit∙ i≤ found¼á thσá utilit∙á i≤á loaded¼á Systeφ ì
áááááMonito≥á restar⌠á i≤á pusheΣ ont∩ thσ stack¼á anΣ thσá utilit∙á i≤á theε ì
áááááexecuteΣ b∙ jumpinτ t∩ locatioε [0100H].
5.4 -- SUBSYSTEM BOOT ROUTINE
=============================
Thσ subsysteφ boo⌠ routinσ i≤ identica∞ t∩ thσ CP/═ primar∙ boo⌠ routinσ ì
residinτá iεá it≤ BIO╙ section¼á witΦ thσ exceptioε tha⌠ i⌠ change≤ thσá exi⌠ ì
vecto≥á oµá thσá secondar∙ boo⌠ t∩ poin⌠ bacδ t∩ thσá subsyteφá a≤á explaineΣ ì
above«á Thσ boo⌠ iε thσ presen⌠ releasσ oµ thi≤ Systeφ Monito≥ i≤á compatiblσ ì
t∩ thσ S.D« Sale≤ Versaflopp∙ Controller« Iµ yo⌡ havσ ß differen⌠ controller¼ ì
theε yo⌡ mus⌠ replacσ thσ boo⌠ witΦ yours«á Seσ sectioε 7.░ oε implementatioε ì
fo≥ detaileΣ instructions.
6.0 I/O VECTOR SUBSYSTEM
========================
6.1 -- GENERAL DESCRIPTION
==========================
Thi≤á subsysteφá implement≤á thσ INTE╠ I/╧á vecto≥á assignmen⌠á standarΣ ì
througΦá thσ "IOBYTEó function«á Thσ subsysteφ allow≤ yo⌡ t∩ flexibl∙á assigε ì
anΣá reassigεá physica∞á I/╧á device≤ t∩á logica∞á I/╧á oµá you≥á applicatioε ì
software« Thσ monito≥ itselµ doe≤ no⌠ usσ thσ "IOBYTEó function¼ howeve≥ thi≤ ì
subsysteφ wil∞ suppor⌠ fou≥ type≤ oµ logica∞ I/╧ device≤ defineΣ b∙ thσ INTE╠ ì
I/╧á assignmen⌠ standard«á Thesσ arσ thσ console¼á reader¼á punch¼á anΣ lis⌠ ì
devices«á EacΦ oµ thesσ iε turε caε bσ an∙ onσ oµ fou≥ physica∞ I/╧ devices« ì
Thσá subsysteφá presentl∙á support≤ ß keyboarΣ anΣ ßá vide∩á displa∙á a≤á thσ ì
consolσ device¼ anΣ ß linσ printe≥ a≤ thσ lis⌠ device« Iε addition¼ Releasσ ┴ ì
oµá thσá monito≥á support≤ cassettσ inpu⌠ a≤ thσ reade≥ devicσá anΣá cassettσ ì
outpu⌠ a≤ thσ puncΦ device«á Releasσ ┬ wil∞ immediatel∙ returε t∩ thσá calle≥ ì
witΦá thσá CARR┘ flaτ SE╘ fo≥ botΦ reade≥ anΣ puncΦá devices«á Thσá subsysteφ ì
contain≤á ßá vecto≥ tablσ fo≥ additiona∞ device≤ yo⌡ ma∙ wan⌠á t∩á add«á Thi≤ ì
allow≤ yo⌡ t∩ havσ 1╢ differen⌠ combination≤ oµ assigneΣ devices.
Sincσá thσá othe≥ subsystem≤ oµ thi≤ monito≥ d∩ no⌠ usσ thi≤á subsystem¼ ì
yo⌡á ma∙á deletσá i⌠á froφ thσ monito≥ packagσá iµá yo⌡á s∩á desire«á I⌠á wa≤ ì
implementeΣá fo≥ you≥ benifit«á However¼á thi≤ subsysteφ point≤ t∩ I/╧ drive≥ ì
routine≤á iεá thσ consolσ anΣ cassettσ (Releasσ ┴ only⌐á subsystem≤á anΣá thσ ì
memor∙á tes⌠ routinσ oµ thσ monito≥ commanΣ subsystem«á Therefore¼á yo⌡á mus⌠ ì
kee≡ thosσ subsystem≤ intac⌠ iµ yo⌡ usσ thi≤ subsystem.
6.2 -- SUBSYSTEM INTERFACE
==========================
Thσá subsysteφ implement≤ thσ XITA╬ (formerl∙ TDL⌐ I/╧ vecto≥ jum≡ tablσ ì
forma⌠á anΣ i≤ compatiblσ t∩ ZAPPL┼ software«á Thi≤ tablσ i≤ locateΣá a⌠á thσ ì
fron⌠ oµ thσ subsystem« Thσ tablσ is:
ORG IOBASE
ENTRY0 JP START ;COLD START OF THE MONITOR
ENTRY1 JP CINP ;CONSOLE INPUT
ENTRY2 JP RINP ;READER INPUT
ENTRY3 JP COUT ;CONSOLE OUTPUT
ENTRY4 JP POUT ;PUNCH OUTPUT
ENTRY5 JP LOUT ;LIST OUTPUT
ENTRY6 JP CSTA ;CONSOLE STATUS
ENTRY7 JP IOCH ;I/O CHECK
ENTRY8 JP IOST ;I/O SET
ENTRY9 JP MTST ;MEMORY TEST
ENTRY10 JP RESTRT ;WARM START OF THE MONITOR
6.3 -- DYNAMIC PERIPHERAL ALLOCATION
====================================
"IOFLAGó i≤ composeΣ oµ fou≥ two-bi⌠ field≤ whicΦ designatσ thσ typσ oµ ì
periphera∞ devicσ requesteΣ fo≥ thσ specifiπ I/╧ required« Thσ prope≥ IOFLA╟ ì
bytσ caε bσ obtaineΣ iε binar∙ forφ as║ [LLPPRRCC]
Where,
CC - Console device two bit code
00 - TTY I/O
01 - Keyboard/CRT I/O
10 - Batch I/O
11 - User defined I/O
RR - Reader device two bit code
00 - TTY Papertape
01 - Cassette
10 - Hi-speed Tape
11 - User defined
PP - Punch device two bit code
00 - TTY Papertape
01 - Cassette
10 - Hi-speed Tape
11 - User defined
LL - List device two bit code
00 - TTY Print
01 - CRT Display
10 - Line Printer
11 - User defined
Thσá monitor'≤á defaul⌠ modσ i≤ [10010101▌ o≥ [95H]«á Thi≤á define≤á thσ ì
keyboarΣ anΣ vide∩ a≤ console¼á cassettσ inpu⌠ a≤ reader¼á cassettσ outpu⌠ a≤ ì
punch¼á anΣá linσá printe≥ a≤ list«á Aε examplσ oµ ho≈ yo⌡ caε reassigεá you≥ ì
systeφá configuratioε i≤ a≤ follows«á Supposσ yo⌡ requirσ AS╥ TT┘á I/O«á Theε ì
settinτ C├ ╜ 00¼ R╥ ╜ 00¼ P╨ ╜ 00¼ anΣ L╠ ╜ 0░ give≤ yo⌡ 00╚ a≤ thσ IOBYTE.
6.4 -- NEW I/O DRIVERS
======================
T∩ adΣ ne≈ I/╧ driver≤ o≥ reconfigurσ thσ existinτ one≤ yo⌡ mus⌠á changσ ì
thσá I/╧á drive≥ addres≤ tablσ t∩ reflec⌠ thσ changes«á Thσ tablσ i≤á locateΣ ì
jus⌠ afte≥ thσ ZAPPL┼ jum≡ vector≤ anΣ is:
ORG IOBASE+23H
;CONSOLE INPUT
DEFW KEYIN ;TTY INPUT
DEFW KEYIN ;KEYBOARD INPUT
DEFW KEYIN ;BATCH INPUT
DEFW KEYIN ;USER DEFINED INPUT
;READER INPUT (Release A only)
DEFW CASSIN ;TTY READER INPUT
DEFW CASSIN ;HI-SPEED TAPE INPUT
DEFW CASSIN ;CASSETTE INPUT
DEFW CASSIN ;USER DEFINED READER INPUT
;CONSOLE OUTPUT
DEFW VIDOUT ;TTY OUTPUT
DEFW VIDOUT ;VIDEO OUTPUT
DEFW PRTOUT ;BATCH OUTPUT
DEFW VIDOUT ;USER DEFINED OUPUT
;PUNCH OUTPUT (Release A only)
DEFW CASOUT ;TTY OUTPUT
DEFW CASOUT ;HI-SPEED TAPE OUTPUT
DEFW CASOUT ;CASSETTE OUTPUT
DEFW CASOUT ;USER DEFINED PUNCH OUTPUT
;LIST OUTPUT
DEFW PRTOUT ;TTY OUTPUT
DEFW VIDOUT ;VIDEO OUTPUT
DEFW PRTOUT ;PRINTER OUTPUT
DEFW PRTOUT ;USER DEFINED LIST OUTPUT
;CONSOLE STATUS
DEFW CSTAT ;TTY STATUS
DEFW CSTAT ;KEYBOARD STATUS
DEFW CSTAT ;BATCH STATUS
DEFW CSTAT ;USER DEFINED INPUT STATUS
Al∞ oµ thσ addres≤ pointer≤ arσ assigneΣ t∩ existinτ I/╧ drive≥ routine≤ ì
s∩ tha⌠ you≥ softwarσ doe≤ no⌠ locδ u≡ iµ yo⌡ assigneΣ aε IOBYT┼ whicΦ point≤ ì
t∩á ßá physica∞á devicσá tha⌠á i≤ no⌠ availablσ yet«á I⌠á i≤á u≡á t∩á yo⌡á t∩ ì
reconfigurσ thσ addresse≤ t∩ you≥ ne≈ I/╧ drivers.
Bσ awarσ tha⌠ aε addres≤ pointe≥ [WBASE▌ exist≤ betweeε thσ ZAPPL┼á jum≡ ì
tablσá anΣ thσ I/╧ addres≤ pointe≥ table«á Thi≤ addres≤ [IOBASE+21H▌á define≤ ì
thσá monito≥á variablσ worδ spacσ basσ address«á Thi≤ subsysteφ need≤á i⌠á t∩ ì
poin⌠ t∩ thσ IOBYT┼ storagσ location« Thσ IOBYT┼ storagσ locatioε i≤ expecteΣ ì
t∩ bσ a⌠ [WBASE-4DH].
7.0 -- IMPLEMENTATION
=====================
7.1 -- GENERAL DESCRIPTION
==========================
Thi≤á sectioεá describe≤á thσ implementioε oµ thσá Systeφá Monitor«á Thσ ì
Systeφ Monito≥ i≤ implementeΣ b∙ usinτ ß statiπ loader«á Thi≤ loade≥ contain≤ ì
thσá monito≥ mappeΣ a⌠ pagσ zero«á Thσ loade≥ als∩ contain≤ ß bi⌠á ma≡á whicΦ ì
point≤á t∩ al∞ oµ thσ pagσ addresse≤ (thσ higΦ bytσ oµ thσ 1╢ bi⌠ address⌐ iε ì
thσá monito≥ whicΦ changσ wheε thσ monito≥ i≤ mappeΣ a⌠ ß differen⌠á locatioε ì
othe≥ thaε pagσ zero.
Systeφá Monitor¼á Releasσá A¼á come≤á oεá ßá Tarbell/Teleteδá compatiblσ ì
cassette«á Systeφ Monitor¼ Releasσ ┬ come≤ oε ß CP/═ compatiblσ diskette« Thσ ì
loadinτ procedurσ i≤ thσ samσ iε eithe≥ casσ excep⌠ a≤ explaineΣá below«á Thσ ì
loade≥á allow≤á yo⌡ t∩ changσ thσ prograφ basσ location¼á thσ vide∩ RA═á basσ ì
location¼á thσ variablσ RA═ basσ location¼á consolσ I/╧ port¼á polarity¼á anΣ ì
masδá parameters¼á anΣ thσ cassettσ I/╧ por⌠ number≤ (Releasσ ┴á only)«á Thi≤ ì
give≤á yo⌡á completσ flexibilit∙ iε implementinτ thσá monitor«á Iµá yo⌡á havσ ì
Releasσá B¼á yo⌡á mus⌠á changσ thσ cassettσ por⌠ number≤á separatel∙á iεá thσ ì
transien⌠ commanΣ file≤ "COPYMT.SMCó anΣ "COPYTM.SMC"
7.2 -- RELEASE A LOADING PROCEDURE
==================================
T∩á loaΣ thσ cassettσ filσ yo⌡ mus⌠ havσ ß Tarbel∞ o≥ Teleteδ compatiblσ ì
cassettσá loade≥ alread∙ available«á ReaΣ Sectioεá 4.0¼á CASSETT┼á SUBSYSTEM¼ ì
prio≥ t∩ attemptinτ t∩ loaΣ thσ file«á Thσ filσ i≤ iε Teleteδ format«á Iµ yo⌡ ì
havσ ß Tarbel∞ loade≥ yo⌡ mus⌠ bypas≤ thσ firs⌠ fou≥ byte≤ oε thσ file¼á tha⌠ ì
is¼á yo⌡á mus⌠á loaΣá thσ filσ startinτ a⌠ [00FCH▌ insteaΣá oµá [0100H]«á Thσ ì
Tarbel∞ loadinτ procedurσ i≤ thσ samσ a≤ thσ monitor'≤ Teleteδ loaΣá specifiπ ì
procedurσá a≤á explaineΣ iε sectioε 4.0«á Thesσ fou≥ byte≤ specif∙á thσá basσ ì
addres≤á anΣ thσ numbe≥ oµ byte≤ t∩ loaΣ fo≥ automatiπ loadinτ unde≥á Teleteδ ì
loadinτá procedures«á A≤á witΦá thσ CP/═ versioε thi≤ loade≥á i≤á loadeΣá anΣ ì
executeΣá a⌠ [0100H]«á Tw∩ pair≤ oµ copie≤ oµ thσ cassettσ versioε i≤ oεá thσ ì
cassettσá tape«á Thσá firs⌠ pai≥ i≤ recordeΣ a⌠ Tarbel∞ standarΣ speeΣá [150░ ì
baud▌ anΣ thσ seconΣ i≤ recordeΣ a⌠ Teleteδ standarΣ speeΣ [250░á baud]«á Thσ ì
copie≤ werσ recordeΣ iε pair≤ fo≥ redundency.
Thσá cassettσ versioε require≤ tw∩ I/╧ vector≤ t∩ communicatσ witΦá you« ì
Thσá CP/═ versioε use≤ thσ BDO╙ I/╧ command≤ bu⌠ thσ cassettσ versioεá canno⌠ ì
assumσá that«á So¼á yo⌡á mus⌠á patcΦ thesσ vector≤ int∩ thσ loade≥á prio≥á t∩ ì
executinτ it« Thσ vector≤ arσ locateΣ at:
0103 JP CONINP ; CONSOLE INPUT
0106 JP CONOUT ; CONSOLE OUTPUT
Consolσá inpu⌠ assume≤ thσ inpu⌠ bytσ i≤ iε registe≥ A«á Thσá consolσá outpu⌠ ì
send≤á thσ outpu⌠ bytσ iε registe≥ C«á Thσ loade≥ assume≤ tha⌠ onl∙á registe≥ ì
pair≤ A╞ anΣ B├ change«
Oncσá thσ loade≥ i≤ loadeΣ anΣ patcheΣ yo⌡ ma∙ executσ i⌠ b∙ jumpinτá t∩ ì
locatioε [0100H].
7.2 -- RELEASE B LOADING PROCEDURE
==================================
Al∞á tha⌠á i≤ necessar∙ i≤ t∩ executσ filσ "SYSMON.COMó whicΦ i≤ oεá thσ ì
CP/═ diskettσ tha⌠ come≤ witΦ thσ monitor«á Thσ filσ wil∞ promp⌠ yo⌡ fo≥á thσ ì
necessar∙ informatioε a≤ explaineΣ iε sectioε 7.┤ below.
7.4 -- EXECUTION OF LOADER
==========================
Thσ LOADE╥ wil∞ promp⌠ yo⌡ fo≥ ß numbe≥ oµ parameters¼ eacΦ oµ whicΦ ha≤ ì
ßá defaul⌠á value«á Iµá yo⌡á wan⌠ thσ defaul⌠ t∩ stanΣ theεá jus⌠á pres≤á thσ ì
[RETURN▌ key« Iµ yo⌡ makσ aε inpu⌠ erro≥ iε an∙ oµ thσ parameters¼ thσ loade≥ ì
wil∞á repromp⌠á you«á Thσ LOADE╥ wil∞ asδ fo≥ thσ parameter≤ iεá sequencσá a≤ ì
follows:
PROGRAM BASE PAGE ADDRESS
BIAS ADDRESS
VIDEO RAM BASE ADDRESS
MONITOR RAM WORK BASE ADDRESS
CONSOLE INPUT PARAMENTERS
STATUS PORT NUMBER
STATUS POLARITY
STATUS MASK
DATA PORT NUMBER
DATA PORT POLARITY
PRINTER OUTPUT PARAMETERS
STATUS PORT NUMBER
STATUS POLARITY
STATUS MASK
DATA PORT NUMBER
DATA POLARITY
ASKS IF THERE IS A PRINTER BUSY/OFF-LINE PORT
IF SO THEN ASKS FOR:
BUSY PORT NUMBER
BUSY POLARITY
BUSY MASK
CASSETTE I/O PORT BASE (Release A only)
COMPLETION JUMP ADDRESS
7.4.▒ -- Prograφ basσ pagσ address.
Thσá monito≥á caεá onl∙á bσ loadeΣ oε pagσá boundarie≤á becausσá oµá thσ ì
requirement≤ oµ thσ statiπ loader«á Onl∙ ß tw∩ characte≥ hexadecima∞á addres≤ ì
i≤ allowed« E loaΣ thσ monito≥ t∩ aεá areßá othe≥ ì
thaε thσ mappeΣ location« Therσ arσ ß numbe≥ oµ advantage≤ iε doinτ this« Thσ ì
primar∙ onσ i≤ tha⌠ iµ yo⌡ wanteΣ t∩ ma≡ thσ monito≥ int∩ thσ spacσ wherσ thσ ì
statiπ loade≥ reside≤ [0100╚ t∩ 2100H]¼á i⌠ woulΣ no⌠ bσ possiblσ withou⌠ thσ ì
bias¼á a≤á thσá proces≤ oµ mappinτ woulΣ destro∙ thσ loade≥ o≥ thσ zer∩á pagσ ì
cop∙ oµ thσ monitor«á Thσ bia≤ i≤ ß positivσ bias¼ tha⌠ is¼ thσ bia≤ i≤ addeΣ ì
t∩ thσ mappeΣ addresses«á Example║á Iµ thσ monito≥ i≤ t∩ bσ mappeΣ a⌠á 1000H¼ ì
anΣ thσ bia≤ addres≤ [6000H▌ wa≤ entered¼ theε thσ relocateΣ monito≥ woulΣ bσ ì
a⌠á [7000H]«á Negativσá biasinτá i≤á easil∙ accomplisheΣ b∙á usinτá thσá two≤ ì
complemen⌠ oµ thσ absolutσ bias«á Example║á Iµ thσ monito≥ i≤ t∩ bσ mappeΣ a⌠ ì
[D000H]¼á anΣ yo⌡ wanteΣ thσ relocateΣ cop∙ t∩ bσ a⌠ [8000H]¼ theε thσ prope≥ ì
bia≤ woulΣ bσ [B000H].
7.4.3 -- Video RAM base address.
Thσá loade≥á wil∞ patcΦ iε thσ basσ addres≤ afte≥ thσ monito≥á ha≤á beeε ì
relocated« Thi≤ patcΦ locatioε i≤ iε thσ fron⌠ enΣ oµ thσ consolσ subsystem.
7.4.4 -- Variable RAM base address.
Thσá variablσá RA═á basσ addrg á bi⌠á address«á Thσá loade≥ ì
patche≤ thσ variablσ RA═ basσ addres≤ pointer≤ fo≥ eacΦ respectivσ subsystem« ì
Thσá basσá addres≤á pointer≤ residσ iε eacΦ subsysteφ jus⌠á afte≥á thσá entr∙ ì
vectors« Seσ thσ sourcσ listinτ iε Appendi° A.
Thσ monito≥ map≤ it≤ variablσ location≤ a≤ follows:
BASE: 0000H ; START OF VARIABLE RAM AREA
; AND END OF STACK AREA
STACK: 0040H ; STACK BASE ADDRESS
MBASE: 0090H ; COMMAND SUBSYSTEM BASE ADDRESS
; AND INPUT BUFFER BASE ADDRESS
CBASE: 0110H ; CONSOLE SUBSYSTEM BASE ADDRESS
TBASE: 0120H ; CASSETTE SUBSYSTEM BASE ADDRESS
DBASE: 0130H ; DISK SUBSYSTEM BASE ADDRESS
END: 013FH ; END OF VARIABLE RAM AREA
Thσá detaileΣá mappinτ fo≥ eacΦ subsysteφ i≤ describeΣá iεá thei≥á respectivσ ì
subsysteφ sections« Makσ surσ tha⌠ yo⌡ havσ enougΦ rooφ fo≥ thσ STAC╦ area.
7.4.5 -- Console input and printer parameters.
Thσá consolσá inpu⌠á anΣ printe≥ paramete≥ specificatioε allow≤á yo⌡á t∩ ì
patcΦá iε you≥ keyboarΣ anΣ printe≥ withou⌠ resortinτ t∩ writinτ aεá assembl∙ ì
patcΦá anΣ movinτ i⌠ int∩ thσ monito≥ area«á Thσ LOADE╥ relieve≤ yo⌡ oµá thi≤ ì
chore« Jus⌠ ente≥ thσ informatioε a≤ specifieΣ anΣ yo⌡ shoulΣ havσ thσ prope≥ ì
setup«
Port Number - Enter the port number in hexadecimal.
Polarity - Enter a "P" for positive polarity.
Enter an "N" for negative polarity.
Mask - Enter the mask in hexadecimalè Questions - Answer questions with "Y" or "N" for
yes and no respectively.
7.4.6 -- Cassette port base.
Thi≤ LOADE╥ inpu⌠ reques⌠ i≤ fo≥ Releasσ ┴ only« Jus⌠ ente≥ thσ por⌠ basσ ì
oµ you≥ UCR╔ iε hexadecimal.
7.4.7 -- Completion jump address.
Thi≤á addres≤á i≤ thσ exi⌠ addres≤ whicΦ thσ loade≥ wil∞ jum≡á t∩á afte≥ ì
completioε oµ thσ loadinτ oµ thσ monitor.
7.5 -- FINAL NOTE
=================
Iµá yo⌡ arσ havinτ problem≤ loadinτ anΣ runninτ thσ monitor¼á makσá surσ ì
yo⌡ arσ mappinτ thσ monito≥ properly¼á anΣ havσ reaΣ al∞ oµ thσ documentatioε ì
oµá thi≤ USER'≤ MANUAL«á Theε seσ you≥ distributo≥ o≥ givσ u≤ ß linσ oεá you≥ ì
problem« Wσ wil∞ solvσ you≥ probleφ a≤ expeditiousl∙ a≤ possible«
8.0 -- USER WRITTEN COMMANDS
============================
8.1 -- GENERAL DESCRIPTION
==========================
Tw∩ type≤ oµ command≤ arσ useΣ iε thσ monitor╗á memor∙ residen⌠ command≤ ì
anΣá disδá filσ transien⌠ commands«á Yo⌡ ma∙ creatσ ne≈ command≤á fo≥á eithe≥ ì
type«á Thσá monito≥á wa≤ designeΣ s∩ tha⌠ yo⌡ woulΣ havσ minima∞ problem≤á iε ì
linkinτ thesσ routine≤ int∩ thσ monitor«á Belo≈ arσ instruction≤ anΣ caution≤ ì
oε implementinτ botΦ type≤ oµ commanΣ routines.
8.2 -- RESIDENT COMMANDS
========================
Thσá residen⌠ commanΣ routine≤ arσ mos⌠ likel∙ thσ hardes⌠á routine≤á t∩ ì
desigε anΣ incorporate« Yo⌡ mus⌠ properl∙ inser⌠ thσ routinσ ont∩ thσ bacδ oµ ì
thσá monito≥á prograφ space«á Yo⌡ theε mus⌠ patcΦ thσ monito≥ commanΣá vecto≥ ì
table« Iµ yo⌡ havσ commanΣ entr∙ subfields¼ yo⌡ mus⌠ follo≈ thσ commanΣ inpu⌠ ì
protoco∞ whicΦ implie≤ tha⌠ yo⌡ mus⌠ kno≈ thσ monito≥ prograφ intimately.
Al∞ oµ thσ subsystems¼ witΦ thσ exceptioε oµ thσ commanΣ subsystem¼ havσ ì
fron⌠á enΣá entr∙á vectors«á Thesσ arσ explaineΣ iε eacΦá oµá thσá respectivσ ì
subsysteφá sections«á Thσ commanΣ subsysteφ ha≤ ß numbe≥ oµ usablσá routines¼ ì
to∩á numerou≤ t∩ incorporatσ int∩ ß vecto≥ table«á Thesσ routine≤ arσá listeΣ ì
anΣ explaineΣ iε SECTIO╬ 2.6« ┴ samplσ residen⌠ routinσ "UNLOADó i≤ listeΣ iε ì
APPENDI╪á ├á t∩ sho≈ ho≈ yo⌡ caε implemen⌠ you≥ own«á Al∞ wσ caεá sa∙á i≤á t∩ ì
experimen⌠ anΣ d∩ you≥ owε thing.
Oncσá yo⌡á havσá you≥ routinσ writteε anΣ loadeΣ ont∩ thσá bacδá oµá thσ ì
monito≥á al∞á tha⌠á i≤ lef⌠ i≤ t∩ patcΦ thσ entr∙ t∩ you≥á routinσá int∩á thσ ì
primar∙á commanΣá table«á Referencσ thσ commanΣ subsysteφ sourcσá listinτá iε ì
APPENDI╪ ┴ fo≥ thσ actua∞ location.
Yo⌡á ma∙á wan⌠ t∩ takσ advantagσ oµ thσ COP┘ anΣ VERIF┘á commanΣá vecto≥ ì
table≤ insteaΣ oµ thσ primar∙ commanΣ table«á Yo⌡ ma∙ alte≥ thesσ iε thσ samσ ì
wa∙á a≤ thσ primar∙ commanΣ table«á ReaΣ thσ subsectioε [2.5.│ o≥ 2.5.22▌á oε ì
thesσá command≤á beforσ attemptinτ t∩ d∩ so«á Again¼á referencσá thσá monito≥ ì
commanΣ subsysteφ listinτ iε APPENDI╪ A.
8.3 -- TRANSIENT COMMANDS
=========================
Thosσá oµ yo⌡ wh∩ havσ ß disδ systeφ witΦ thσ CP/═ Disδ Operatinτ Systeφ ì
o≥á onσá oµ it≤ derivative≤ havσ aε alternativσ methoΣ oµá incorporatinτá ne≈ ì
command≤á int∩á thσ monitor«á Thi≤ allow≤ yo⌡ t∩ brinτá iεá routine≤á withou⌠ ì
permanentl∙á usinτ u≡ memor∙ space¼á anΣ als∩ allow≤ yo⌡ t∩ takσ advantagσ oµ ì
thσ CP/═ BDO╙ I/╧ commands«á You≥ routine≤ caε bσ essentiall∙ independen⌠á oµ ì
thσá monito≥á sincσ thσ monito≥ onl∙ require≤ tha⌠ yo⌡ havσ ßá filσá NAME.TY╨ ì
whicΦá i≤ compatiblσ t∩ thσ COP┘ o≥ VERIF┘ commanΣ set«á Thσ monito≥ wil∞ tr∙ ì
t∩ finΣ thσ specifieΣ transien⌠ file¼á anΣ iµ found¼ i⌠ wil∞ loaΣ anΣ executσ ì
i⌠ jus⌠ a≤ thσ CP/═ CC╨ would«á T∩ returε t∩ thσ monitor¼ jus⌠ issuσ ß RE╘ a≤ ì
thσá las⌠á assembl∙á instructioεá oµ thσ routinσá (assuminτá yo⌡á kep⌠á stacδ ì
integrity).
Releasσá ┴á oµ thσ monito≥ doe≤ no⌠ comσ witΦá an∙á transien⌠á commands« ìèThesσ wil∞ becomσ availablσ unde≥ separatσ purchase«á Iµ yo⌡ havσ thσ Releasσ ì
┬ versioε oµ thσ monitor¼ ß samplσ routinσ witΦ thσ filσ namσ "COPYTT.SMCó i≤ ì
oεá thσá diskettσ witΦ thσ loade≥ "SYSMON.COM"«á Usσ thi≤ filσ t∩ checδá you≥ ì
disδá interfacing«á Ente≥á thσ commanΣ [C.TTcr]«á Thσ filσá shoulΣá loaΣá anΣ ì
executσ witΦ thσ message:
SAMPLE EXECUTION FILE FOR PCE SYSTEM MONITOR
USING COPY COMMAND [C.TT]
IF YOU HAVE GOTTEN THIS FAR, YOU HAVE SUCCESSFULLY
EXECUTED A TRANSIENT FILE
PRESS <RETURN> KEY TO RETURN TO MONITOR
Thσ samplσ transien⌠ commanΣ sourcσ i≤ listeΣ iε APPENDI╪ C.