ATTR Syntax: Attr filename [permissions] Usage : Examine or
change the security pennissions of a file Opts: -perm = turn off
speciti ^ed permission perm = turn on specified permission -a =
rms : d - directory file
l^jiwuer w - nrrite permit
inhibi
s - nc
to owi
Sw -
ynta:
one d(
single
BasicO
filenai
CHD S
specifi
di:
Usag
sHi read permit to public
ii|>ermitU public BACKUP
"^ Copies all data from
P^ error occurs s =
iiliites BASIC09 Syntax :
HiBUnJ) Syntax: Build
J|i|from standard input
W: working directory to
Change execution
amel filename2
Cobbler devname
ax;
Usage : Creates OS- 9 b^ current boot CONFIG
Syntaxr '^"^ - " ^^ ■ ^ — i r - - »ii . - \ . ■ * - . ^ j — i . -p ^j^jj-g ^Qpy
from
r.
yntax
one fil
Date [t
speciiy
: Checl
for woi
= save
cluster
rint ^
<devn
ilenan
delete
directo
[e] U]
names
execut]
EDITOR :
Gordon Bentzen
8 Odin Street
SUNNYBANK Qld 4109
(07) 345-5141
data
EjPjSyntax :
^^ s: t =
iH> Usage
■li^ctory
Hirs -m
^iiunused
-0 =
iii?!iiyname>
iliel [-x]
terx =
Deldir
ifiiax: Dir
iiie file
k= print
Display VcMpiippi^iliiipii^iiMiiMiiiiiP Syntax
: Dsave [-oipppiiiiiMiiiiiii^^ file
to copy all files in a directory system Opts : -b maice a system
disk by using 0S9boot if present -b=<patli> = make system disk
using pat
process b
command
ECHO Syn
output EI
JULY 1990
do not
makdir
iliiiard
.Jpiited
text edltO. — ^ffj » !> j a;*MBayi«-y»!H^<am ! ^^
error messag^lip|iiiililiiiiiBli^^
Usage; Cham w me j^Ten^m
<devname> Usage : Initializes an OS-9 diskette Opts ; R - Ready L
- Logical format only "disk name" 1/2 number of sides 'No of
?
AUSTRAL I AN 0S9 NEWSLETTER
Newsletter of the National 0S9 User Group
Vol-Qme 4 Number 6
EDITOR : Gordon Bentien
HELPERS : Bob Devries and Don Berrie
SUPPORT : Brisbane 0S3 Level 2 User Group.
I'a trying to think but nothing happens!
What would you think of your favourite coiputer if it kept on saying this to you? The above phrase is a direct
steal froB a recently acquired public doiain disk which included the archived file °piay.ap\ The PLAY coiiand,
written by Kevin Darling and uodified by Brian C. White, will play sost Hac and Aiiga sound files. The coiiand
"play think* will result in that phrase coiing fpoi your ionitor speaker. GREAT!
Yes, we do have sore public doaain prograiies thanks to the efforts of Don Berrie, Bob Devries and the cooperation
of ieibers of overseas QS9 user groups. The files obtained are iostly in the AR archive fonat. The AR utility, by
Carl Kreider, is loosely modelled on the archive utility in the Kernigan & Plaugep book, 'Software Tools" and its
purpose is to gather together files into a coMon file to keep related files together. The files included in an
archive typically include the executable lodule, source code .doc files, readae and any other related instruction
files.
All the public doiain library files are available by following the usual procedure. That is, lail your FORMATTED
disks to address shown on the newsletter cover, include paysent of our copy fee of $2 per disk (all disk foriats
35s5, 40ds and SOds attract the sane charge) plus payient for return postage. We can also copy to three and half
inch 0S3 disks if required, op even MSDQS 360k disks (if you really want to do that).
We do incur costs in obtaining PD aaterial, even though there say be no direct charge for the prograwes, and the
copy fee is designed to share these costs.
we do .ffianage to deal ^iiith your requests for disk copies fairly oronptly lost of the tiae, however due to other
cosiilaents, a yeek or so aay soBeliaes slip by. The easier you sake it for us, the quicker we can return iail
your disks. Please include a self addressed label, postage stasps for return sail and use a lailer or package
i*hich we can reuse for return. This seans that we can repack the copied disks back in youp aaiiep, stick on youp
addpess label and staips; and pop it in a sail box.
Most of the PD 15 stored cm 30 track double sided disks, and if se can siaply do a backup, this also speeds things
up.
Now the question on youp lips is; What PD ppogpasnaes do we have and how sany disks ape needed? Very good
question! The ppoblea of indexing and listing the progpaiBies in a aeaningful way is a ppoblea to which we do not
have an ideal answer at this point.
The newly acquiped aatepial was soupced fro* the European OSS Usep fipoup and caae on twenty-eight (28) 40tp OS plus
three (3) 30tp OS disks. There appears not to be any papticular order to the type of file, and files ape iostly in
the root dipectopy of each disk. tfe will need a pepiod of grace to sopt thpough these disks if particulap
ppogpaiBe types are sought, tfe ape, however, aost gpateful for the aatepial.
tfe also have a nuabep of disks fpoi the U.S. 0S9 User Group in the original fopsat, Diskl thpough Di5kd2 (with a
couple aissing). These wepe issued on 35tp single sided disks, and ape now in the library on 80 track disks under
a dipectopy fop each issue, eleven 30tp disks in all. The saae files have also been sopted into categories, eg.
tfopd Processing, Coaaunication etc., nine 80tr disks in all. These disks are now a few years old and do not
contain any prograaaes specifically for level 2. Soae 0S9 63k is included.
Page 2 July 1990
AUSTRALIAN 0S9 NEWSLETTER
All in all there is enough laierial to keep anybody busy for lonihs even if it is soiewhat of a lucky dip at the
loient. We will include soie cowent and review of the lore interesting prograiies in our future newsletters for
those who wish to be selective.
"Things are certainly starting to happen in the DS9 World'/ That was the opening stateient of last »onth's
editorial which dealt with new OSS lachines. The new DS9 prograises being advertised overseas together with the
increasing voluees of PD software certainly add weight to that stateient.
To keep the ball rolling we can add our bit, even if it seeas but a drop in the ocean. We desperately need
Australian produced coftsercial progranses and public dosain laterial. The aiti of the National 0S5 Iteer firoup is to
prosote the use of DS9 on a non-profit basis, so please assist us by sharing any programe of your own which you
are prepared to release as public dosiain or shareware. Hany of our Beaibers want to see sore Basic05 prograises.
Can you help?
Also to keep the ball rolling, and to saintain supply of PD software fros overseas sources, we do need to send
something in return. Your little Basic09 prograifiBie or utility could spread throughout Australia, Europe and
Afiierica.
SUBSCRIPTIDNS:- Heiabership of the National 0b5 User Sroup is still only $18 per annusi. Sincere thanks to those
who have already sent a cheque for Beebership renewal.
y& feaintdifi a cosicn expiry date of end August each year, and we do need your continued support to avoid a rise in
fees.
PLtASE, PLEASE, PLEASE take the tise to include a short note with your subscription renewal and tell us what you
would like to see in this newsletter; also tell us what you don't like. Please sake your cheque payable to
"National 0o9 User Group"
JUST ft REHINDER;- We do not accept PAID advertising (subscriptions iust cover all costs) however, we will include
ads froi seffibers for locally produced hardware or software, and ads (unpaid) fros coBuercial enterprises, only if
we consider such an ad would be "a service to neftbers".
Tifi trying to think but STILL nothing happens! Cheers, Gordon.
ooooooooooDOOOOOODOOoooooooooo
CCSfiO AND SHELLPLUS
The Biodified shell proqrafiste, Shellplus (Version 2.xx and onwards) gives us all kinds of nifty
opportunities to get better productivity trot our CoCo 055 systefts. One of those nice things that shellplus offers
is the ability for the user to set a search path for executable files. This allows the systefi to exawine a nuiflber
of directories, not just the current execution directory, for executable files.
Siiiilarly, the user has the opportunity to use a prospt other than the standard 0S9 system proiapt. It is
possible for the user to actually feodify the shellplus executable file, and hardcode the desired prospt within the
shellplus code. However, we are all aware of the problesis caused by hard coded device nases, paraaeters etc, and
of course they all have the drawback that they then cannot be easily changed,
Because of the way that OSS Level 2 for the CoCoS forks the startup file froE it's specific sysgo aodule
(called ccSgo), unless you actually hard coded the paths into that sodule, you would not normal ly be able to have
any paths or custom prospts set, on your /Tertt device.
To atteapt to get around this liRitation, we are now able to offer, as part of our public dofiain library,
an archived set of files containing a replacesient module for ccSgo, written by Bob Devries and Don Berrie. This
new Bodule tries to open a one-line file called /dd/SYS/config.os9, and expects to find in that file the paraieters
required for the shell which it opens on the default device (norially /TerK).
Page 3 July 1990
AUSTRAL I AN 0S9 NEWSLETTER
Included in the archive is also a sataple config.osS file as an exaaple. If the file is cannot be found, an
error aessage is printed. Siailarly, if the system cannot read the file, an error message to indicate this ppoblei
is also printed. In either case, the systea then sisply uses the standard default paraaeter i=/l as in the
original cc3go aodule.
For those users who have a Burke i Burke hard drive nih the U-RQII installed in the interface, and wish to
use .the alternate boot feature of that systes, we have also included a Bodule called ccSgo.alt. This aodule looks
for files naaed /dd/SYS/config.alt, altstart, and altshell rather than /dd/SYS/config.os9, startup and shell. This
will allow you to have two totally different bootfiles on your hard drive.
The source code, fully coaaented, for both aodules is also included.
The usual National 0S3 Users Group copying conditions apply. Any coaaents or requests for further
inforaation should be directed to the authors;
Bob Devries Don Berrie
(07) 372781 G (07) 375 3236
ooooooooooOOOOOOOOOOoooooooooo
HOy COHE NY BOOT PROCESS TAKES SO LONG?
Ever wanted to know what is happening while you are sitting there looking at that green VDS screen with 0S9 BOOT
written in the aiddle of it? 'Jell read on.
This inforaation coses froa the 0S9 "super guru" Kevin Darling, and is reproduced with thanks.
The QS3 Boot sequence is as follows;
The DOS routine in RSDOS, or sose other type of custoa ROM, points to a track (noraaliy Track 34) on a disk drive,
and reads that track, which has REL, BOOT, and 0S9P1.
REL sets up the sain 5IME registers and the systes crash/reset vectors, and then bypasses Boot to execute the 0S9P1
aodule.
G£3pl sets up Direct Page variables, F$ systea calls, finds free RAM, and scans RAM for aodule headers. It
then inserts found aodules (at this stage Rel, Boot and 0S3p]) into the aodule directory, and looks for the Init
sodule. QS9pl can't find Init, because it has not as yet been loaded froa the disk, so it does an internal F$Boot.
FSBoot caiis the Boot aodule, which Jhopefuliy-t loads the bootfile froa disk. F$Boot is not particularly saart,
and aaongst other things, requires that the bootfile is in one single contiguous block. 035pl then links to 0S3p2
and juBips to it.
QS9p2 installs its FIcalls, and then looks in Init for its default execution and data directories, and atteapts to
change to thea using I$ChgDir. I$ChgDir fails because no I$calls are as yet installed, so 0S9p2, by default, finds
IQMan and initializes it, and I$ChgDir is tried again. 0S9p2 opens a path to the default device (usually /tera,
but hard coded into the Init aodule.)
0S9p3 is then looked for, and, if found, it is called as a subroutine. (If QS9p4 is present it is called froa
0S9p3 ... Setc)
Once the user defined extensions to 0S3 (0S9p3, 0S9p4 ) have been called and executed, 0S3p2 then checks Init
for the initial process naae (CC38o), and executes it using an F$Fork call. It then does an FINProc call which
doesn't return.
CC3So prints the "0S3 LEVEL 2 .... " signon aessage, and sets the default tiae (setiae causes 0S9p2 to find the
Clock aodule and init it at this tiae), which is also hard coded into the CCoGo aodule.
Page 4 July 1990
AUSTRALIAN 0S9 NEWSLETTER
CCSGo atterspts to change directories to /hO. If successfLil, it Rodifies the syBteGi procesB descriptor to also use
/hO (for calling in grfdrv later, etc). CC3Go tries to fork 'shell startup" and waits until the startup process
has coffipieted. CC3So then tries to fork "autoex" and if found will sit and yait until the execution of this
prografirRt terainates.
CC36o theri chains (ehich ieans that it tersinates itself, and starts a new process) to the Shell on the default
wmdotef defined in the Init iodule. (This shell is not started fro& the startup procedure; hence only the preset
shell parafifeters, which are hardcoded into CC3G0j are set for this shell).
Then, you finally get control of the systeft. tlhet'!
ooooooooooOOOOOOOOOOooooooDooo
BUILDING A BOGT DISK Part 2
If you followed part I in last sonth's News Letter, you should have a systes'i disk that is configured to take
advantage of the ftaxisus capacity of your disk drives.
As proRiised I sill explain how to build a customized systei disk using only the sodules supplied on the original
Level 2 systes disk So Boot up your systea. Hake sure you are using a copy of your system disk in drive /du. We
need to create a fiOD'JLES directory on this disk and copy into it the iiiodules needed for your Syste&t Disk.
Hakdir /dO/HODULES
By now you should have decided which modules you require in your Boot file, if not, lake yourself a list now. Place
a backup copy of your Boot-Config-BasicOS disk in drive /d] and copy the files you require into the aodules
directory on the disk in /dO.
chd ./'dO/ sodules
copy /d]/Bodules/CC3Disk.dr CC3Di5k
copy hi] /iiodules/c lock . SOhz Clock
copy /di/sodule5/dO_40d.dd dO
copy /dl/feodules/dd_40d.dd dd
etc
Until you have all the modules required to create your new boot disk. It is a bit tedious, but once done, you
shouldn't have to do it again. You can add, delete or change itodules as your systein requi resents change. You will
have noticed that 1 left the extensions off the files 1 copied, they are not needed.
While I did state that we wouldn't be using anything that was not on the original systes disks supplied by Tandy,
should you have the "save" coKBand froi^ Level 1 or frofi the Developsent Systesi disks, then to save soae tiise I
would suggest you save the i&odules fros- sesory that you require, especially those aodules that have been patched.
chd /dO/sodules
save dO
save dl
save dd
etc
The liodules directory can contain as iany files as you wish, it is not restricted to only the files required on a
particular Boot Disk. It will be a perianent source for creating different Boot Disks when required.
Now we need to create two files, the first is to be a file called "bootlist", which will contain a list of the
modules to be included in the new osSboot file. The other is the procedure file that will create the new OSSBoot
file, Ue will call this file "new^bootV These files can be created by using the Build coaaand or with Edit, or as
1 do with a word processor,
Page 5 July 1990
AUSTRALIAN 039 NEWSLETTER
The list- of Bodule ridtteB in "bootlisl" should be in the order they are wanted in the Boot file.
Eootlist
0S9p2
lOhan
RBF
CCJDisk
DO
Di
DD
etc.. . .
Once you have created this bootlist in the data directory of /dO, the next thing is to create the procedure file
ney_boat which sust also reside in the data directory of /dO.
Procedure Nev^Boot
t
tffiode .1 -pause
chd /dO/Bodules
osSgen 16] </dO/hootlist
chd /dO
dsave /dO /dl ! shell
tfeode . 1 ■ pause
Nu^i' ^i'ith 5 formatted disk in /dl type new_boot then press enter and a new bootdisk will be created that includes
only those files listed in Bootlist. The two lines Chd /dO and dsave /dO /dl ! shell can be reiiioved if you don't
want the directories and files on /dO copied to the ne^^ boot disk. You can copy these files frofit any source you
choose, bearing in lind that shell and GrfDrv Bust be in the coemands directory otherwise the boot %ill fail. Once
the boot disk is completed, you. can boot up with the new systes disk and then sake the necessary patches etc.
according to last eonths' article.
Durinq the writing of this article I have coEe to realise just how far we have progressed since 0S3 Level 2 was
first released. An overview of the aodifi cations being used by the Brisbane User Group Herfibers sight be in order.
Regards Rob Uns worth.
ooooooooooDDOOOODDOOoooooooooo
Check Book Prograuffie.
Prograeae by Dale L. Puckett, cosKents by Bob Devries.
Here's a short Basic 09 prograaoie to assist in balancing your checkbook. The prograsie case to us by
courtesy of the European 0S5 Usergroup, and originated froBi CofBpu-Serve Information System. The source is very
short and easy to understand. It requires no special software (except BasicO^ of course) and should work on both
level one and level two 0S5 systeifis.
Bob Devries.
PROCEDURE Checkbook
0000 it Sofifething to Help balance your checkbook t]
002E
002F DIK answer, ciearcode:STRINb[l]
003F DIH balance, ser-vice_charqes:REAL
004A DIH totai_checks,outstanding_deposit5:REAL
Page 6 July 1990
AUSTRALIAN 0S9 NEWSLETTER
0055 DIM nuftber_of_check5,nusber_cif_depo5it5; INTEGER
0060
0061 clearcc.de;=CHR$(tOC)
006A
006B PRINT clearcode
0070
0071 PRINT
0073 INPUT "yhat was the balance on the statesent-^ ", balance
00A2 INPUT "What was the total of all service chargeE? \5ervice_charges
O0D5
O0D6 PRINT clearcode
OODB
OODC nuiiiber_of_check5:=-l
0OE4 total/che"ck5;=0
OOEC aisount:=0
OOF^
OOFS RUN getcheck5(nuffiber_of_check5,total_check5,aftount)
0105
OlOA PRINT clearcode
01 OF
0110 nuBber_uf_depo5it5:=-l
0118 out5tanding_depo5it5:=0
0120 afflount;=0
01 2£
0125 RUN getdeposit5(nuaber_Df_depo5its,out5tanding_depo5it5,aBount)
013D
015E PRINT clearcode
0143
0U4 PRINT
0U6 PRINT "Your final balance should be $":
Olt-A PRINT USING "RS.2'"",balance+out5tanding_deposit5-(total_check5+5ervice_ch3rge5)
0184 PRINT \ PRINT \ PRINT
018fl PRINT "Froi your stateient: '
01A3 PRINT
01fi5 PRINT "A balance of $";
01B3 PRINT USING "R8. 2'", balance;
OlCo PRINT "»inu5 a service charge of $";
01E9 PRINT USING V5.2'",servicejharqeE;
01 F5 PRINT " = $";
0202 PRINT USING V8.2'";baUnce-5ervice_charge5
0214 PRINT
0216 PRINT "You had "; nueber^of ^checks; " outstanding check (s); totalling $\
024D PRINT USING "r8.2^%total_check5
025B PRINT 'and "; nu&ber^of^deposits;
0263 PRINT ' deposit(s) outstanding, totalling: $";
0294 PRINT USING "r8.2*",outstanding_depo5it5''
02A2 PRINT
02h4
02AS
02An INPUT "Would you like to balance another stateient; (Y'jes or (N)o! ".answer
G2EA
02EB IF an5wer='Y- DR an5tfer=''y" THEN
0300 RUN checkbook
0304 ELSE
0308 PRINT
030A PRINT "Hope »e sere able to help you with your headache."
033F END IF
0341
Page 7 July 1990
AUSTRALIAN 0S9 NEWSLETTER
03i2 END
PROCEDURE getchecks
0000 PARAM nuaber_of_check5:INTEfiER
0007 PARAH tot.dl_checks,a80unt;REAL
0012
0013 PRINT
0015 PRINT "Now we need to have you list the aaount of each check"
OOiE PRINT Hhat was not listed on the bank's statesent."
007E PRINT
0080 PRINT "Uhen you have listed all the checks enter a value of zero."
OOBE PRINT
OOCO
OOCl
00C2 REPEAT
00C4 INPUT ^Aiount of check? ".atount
OODD nuiber_of_check5:=nuRber_of_checks+]
OOES total_check5:=totdl_checks+aiiount
00F4 UNTIL affiount=0
0)00
0101 END
PROCEDURE getdepos its
0000 PARAM nusber_of_depo5its: INTEGER
0007 PARAH outstdnding_deposits,aBOunt;REAL
0012
0013 PRINT
0015 PRINT "You sust now list each deposit that did not show up"
004C PRINT "on the bank stdteitent."
00&6 PRINT
OObS
0065 PRINT "Enter a zero when all your deposits have been entered."
00A3 PRINT
00fi5
00A6
00A7 REPEAT
00A9 INPUT "Affiount of deposit? ",a»ount
Q0C4 nuaber_of _depo5i ts : =riui6ber_of _deposi ts+1
OOCF out5tandinq_depo5it5;=out5tanding deposits+asount
OODB UNTIL a&ount=0
00E7 END
oooocoooooODOOOOOOOOoooooooooo
Uindow Directory
prograntae by Kevin Darling, text by Bob Devries,
More Basic09 you say? yell OK. Here's a little utility written by Kevin Darling, and obtained by ae via the
European DS3 coaiunity fros the Coi^pu-Serve Information Systes. The prograaie displays a directory of the currently
opened or INIZ'd windows in your systei. It tells you the entry nusber, the window type, which block the screen rai
uses, the current working area, and the sixteen palette register contents. I have found it useful t-o find out what
colours are set in each window. The prograiuse is not very large, and uses various 0S9 systM calls via the
'SysCair utility.
Bob Devries.
Page 8 July 1990
AUSTRALIAN 0S9 NEWSLETTER
PROCEDl
JRE yOir
0000
REh yindow Direciory
0013
REil Copyright by Kevin Darling Aug S7
0037
REH For Each Window yOir ShowE.;
005S
REM yindotf table entry 1
OObC
REM Window type
007A
REM Block nupiibers LtBed, with offset into block if 1 block
0062
REh Bdcklink window table 1 if overlay, and overlay buffer
OOFB
REH block begin nusber.
Old
REH Uindow begin and size (col, row) nuBbers
01 2B
REM Window current cwarea being and size
0152
REH Palette values (0-15) for that screen
01 7A
REM Really should be rewritten wit-h recursive calls to
OlAF
REM show all parent back links of euitiple overlay ^'s.
01 E4
REH Set Up Vars and Define Constants:
0208
EASE
020fi
DIM tesp'.BYTE
0211
DIM w; INTEGER
021S
DIM yWuslBYTE
021F
DIM sctab: INTEGER
0226
TYPE register=CC:BYTE; OllNTEGER; DP:BYTE; )(,Y,U: INTEGER
024B
DIM req:reqist-er
mi
DIM yE(:64)l"BYTE
0260
DIM Sy5PrL(512):BYTE
02ec
DIM DJevTbl: INTEGER
0273
TYPE'table=V_Driv..y Stat.y_Desc.V_FHqr: INTEGER; V UsrslBYTE
0290
DIM devtable(32): table
02HE
DIM DrvNa»e:STRIf^SC5]
02AA
DIM DevNaffie:STRING[41
0266
DIM M Nase; INTEGER
02B0
DIM cc3io:STRING[51
02C3
DIM SC(32):BYTE
02DS
DIH typ${3)
02DF
DIM F_GPrDsc;BYTE
C2Eb
DIM FJ:pyHe»:BYTE
02ED
cr3io="CC3r+CHR$($CF)
02FD
F_GFrD5C=$18
0305
F CpyMeuFliB
030D
FOR n=0 TO 8
031F
READ typKn)
0523
NEXT n
0334
DATA "Saae Screen"
0346
DATA "40 Col Text"
0358
DATA "80 Col Text"
03bA
DATA -Bad"
0574
DATA "Bad"
037E
DATA -640 Two Color"
0332
DATA "520 Four Color"
03fi7
DATA "640 Four Color"
03ec
DATA "320 Sixtn Color"
0502
REM Get SysPrc Descriptor:
03EB
req. 0=256
05F7
req.)(=ADDR(SysPr-c)
0405
RUN SyscalKFJPrOscreq)
0414
REM Get Offset in Systei Map to Device Tables;
0441
de5tindtion=A0DR(0_bevTbl)
044C
count=2
0454
off5et=$30
Page 9 July 1990
AUSTRALIAN 0S9 NEVSLETTEK
0150
GOSUB 1000
0461
REM Nny Use thai Info to Gel the Device Table Itself:
04S5
de5tiridlion=AD0R(devlabie)
04A0
LOunl^SlZECdevtable)
04AB
off5et=D_DevTbl
04B4
G03UB 1000
04BS
REH Main Loop;
04C&
REH Check Each Device Entry for CC310 Driver.
G4F1
REH If it is, then Get the Uindow Entry * FroB Static
Storage.
0&2E
REH (unless type <> window, then treat as VD5)
055B
REM (and skip deleted entries)
0S78
FOR DE=0 TO 31
053A
REH Check for Entry in Use:
05A4
IF devtable(DE}.VJJ5r5<>0 THEN
05B?
REM Set Driver Nase Offset In Descriptor;
OSDF
destindtion=ADDR(H_Haie)
05EA
count=2
05F2
offset=devtable(DE).V_Driy+4
060S
SOSUB 1000
0605
REH And Then the Naae Itself:
0625
de5tination=ADDR(DrvNatte)
0630
off5et=M_Nafie+devtabie(DE).V_Driv
0644
count =5
Ob4C
GOSUB lOOO
0650
IF Dr¥Naae=cc3io THEN
065D
eOSUB 500
Obbi
END IF
0663
ENDIF
0665
NEH DE
0670
rjDTWT » "
rniN 1
069B
END
069D 500
REM itttjjjt«tmtt«m«wmtm
06C3
REM Print Uindow Entry This Device:
06E5
de5tinatiori=ADDR(M_Nafie)
06FO
off5et=devtablH(0E).V_De5L+4
0703
couni=2
070e
GOSUB 1000
070F
de5tinaiion=ADDR(DevHaie)
07]A
offset-H_Naie+devtabIe(DEJ.V_De5c
072E
L0uni=4
0736
SDSUB 1000
073A
nnTijT H Bt
rhiNI ,
0767
n$='"
07bE
FOR c=1 TO 4
0780
t$=MID$(DevNaf&e,c,l)
07SF
EHTIF ASC(U}>123 THEN
079C
t$=CHR$(ASC(t$)-128)
07A9
n$=n$+t$
07B5
ENDEaIT
07B9
n$=n$+t$
07C5
NEH c
07D0
PRINT nS
0705
REH Check Device Static Mesory For Type;
07FC
destination=AODR(teip)
0307
off5et=$06+devlable(DE).V_Stat
03 IB
counl=]
0323
GOSUB 1000
0627
IF LAND($80,tesp)=0 THEN
ge 10 July 1990
AUSTRALIAN 0S9 NEWSLETTER
0837
PRINT "VOe Screen"
0845
RETURN
0847
ENOIF
0849
REM Else Gel Window Entryf Fros Static Hea:
0873
de5tination=A00R(yNutt)
087E
of f5et=$35+devtable(DE). V.Stat
0892
count=]
085fi
SOSUB 1000
089E
w=yNu!i
08fi6
Off5et=$1280+tft64
om
count=64
OSBE
de5tination=ADDR(WE}
08C9
60Sl)e 1000
08CD
5ctat.=yE(0)t256+WE(l)
08E1
PRINT "Entryl "; s
08F0
IF LAN0(5ctab,$FF00)=tFF00 THEN
090]
IF LAND(5ctab,$FF)=tFE THEN
0912
PRINT "Iniz'd"
09] C
ELSE
0920
PRINT "!! DE1NI2 or DWSET THIS DEVICE '!"
094&
ENDIF
0947
ELSE
094B
off5et=sclab
0954
cnunt=32
09SC
deslination=ADOR(SC)
0967
SOSUB 1000
096B
PRINT %"indO¥ Type :":
097D
tftype=SC(0)
G98S
IF wtype=$FF THEN
0996
PRINT Mniz'd"
09A0
RETURN
09A2
ENOIF
09A4
IF tftype>$30 THEN
09B2
¥type=t37-tftype
09BF
ELSE
09C3
tftype=wtype+4
09CF
ENDIF
09D]
PRINT USINS "i3>",tftype:
09DE
PRINT " ': typ$(wtype)
09F2
REM PRINT ^Screen Table! ";
OAOD
REK PRINT USINS "h4",5ctab
0fi26
PRINT "Block Nuftber; ';
0A39
PRINT USING "h2\SC(l);
0fi47
IF ¥iype>2 THEN
0A54
PRINT '-']
0A5A
IF ytype=5 OR wtype=fc THEN
0A5F
PRINT USINS "h2",SC(l)+l
0A7F
ENDIF
0A81
IF tftype=7 OR wtype=8 THEN
0A96
PRINT USIN6 •'h2%SC(l)+3
0AA6
ENOIF
OAAS
ELSE
OAAC
PRINT " Offset: ";
OACl
PRINT USING •'2(h2)V.yE($34)-*80; yE($35)
OADO
ENDIF
OADF
IF WE(2)<>$FF THEN
OAEE
PRINT "Parent Entry: V: \ PRINT USING '*i2)V.UE(2);
OBIG
PRINT " Overlay ";
Page 11 July 1990
AUSTRALIAN 0S9 NEWSLETTER
0825
PRINT USING "h2".UE(t2D
0B33
ENDIF
0B35
PRINT -Window Start: "; yE($3£); ',"; yE(t37);
0B61
PRINT " Size : ^ yE($38); ",': WE($35)
0B31
PRINT ^WArea Start: '; «E(S05); •/; mm)',
OBA&
PRINT • Size : "; yE($07); ","; yE(S08)
OBCA
FOR prrFO TO 7
OBDC
PRINT USINS ^h2\S(:(16+prn);
OBFO
PRINT ' ";
0BF6
NEH prn
OCOl
PRINT
0C03
FOR ppn=8 TO 15
0C15
PRINT USIN6 ■h2\SC{16+ppn);
0C29
PRINT ' ";
0C2F
NEH prn
0C3A
PRINT
0C3C
ENDIF
0C3E
RETURN
0i40 ■
1000 REM Copy count at cff5et in datiaaqe to destinat
0C76
reg.0=ADDR(Sy5Prc)+$40
0CS8
req.Y=count
0C95
req.X^offset
0Ch2
regAl=de5tination
OCAF
RUN SyscdlKF CpyHesjeg)
OCBE
IF LANO(req.CC,$On<)0 THEN
OCDl
PRINT •'Error "
OCDB
PAUSE
OCDD
END
OCDF
ENDIF
OCEI
RETURN
0CE3
ooooooooooOOOOOOOOOOoooooooooo
COCO-LINK Magazine; Just a re»inder for those interested in a wider section of CoCo systeias. CoCo-Link is
produced in South Australia and is well worth your support. Contact the Editor, Robbie Oalzell, on (OS) 386 1647 or
write;
CoCo-Link
31 Nedland Crescent,
Pt. Near lung a South,
South Australia 5167
ooooooooooOOOOOOOOOOoooooooooo
Page 12 July 1990