5318 lines
147 KiB
Plaintext
Executable File
5318 lines
147 KiB
Plaintext
Executable File
SIBO 'C' Software Development Kit
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Version 2.30
|
||
|
||
|
||
March 1, 1999
|
||
|
||
|
||
(C) Copyright Psion PLC 1990-98
|
||
|
||
|
||
All rights reserved. This manual and the programs referred to herein are copyrighted works of Psion PLC,
|
||
London, England. Reproduction in whole or in part, including utilization in machines capable of
|
||
reproduction or retrieval, without express written permission of Psion PLC, is prohibited. Reverse
|
||
engineering is also prohibited.
|
||
|
||
|
||
The information in this document is subject to change without notice.
|
||
|
||
|
||
Psion and the Psion logo are registered trademarks, and Psion, Psion MC, Psion HC, Psion Series 3, Psion
|
||
Series 3a, Psion Series 3c, Psion Siena and Psion Workabout are trademarks of Psion PLC.
|
||
|
||
|
||
TopSpeed is a registered trademark of Clarion Software Corporation. IBM, IBM XT and IBM AT are
|
||
registered trademarks of International Business Machines Corp. Microsoft and MS-DOS are registered
|
||
trademarks of Microsoft Corporation. Apple and Macintosh are registered trademarks of Apple Computer
|
||
Inc. VAX and VMS are registered trademarks of Digital Equipment Corporation. Brief is a registered
|
||
trademark of Underware Inc. Psion PLC acknowledges that some other names referred to are registered
|
||
trademarks.
|
||
|
||
|
||
Contents
|
||
|
||
|
||
1 Series 3 Programming Overview.............ssccsscssscssscssccssccsscsecssscseesssssssscccesssscssesssscsessseseees 1-1
|
||
Programming possibilities ..............cceseccceeseseceeeseceeseceecceeaceeceseaeeeceeeeeseeeeeeeseeeeeeenaeeeeanees 1-1
|
||
Differences between .app files and .img files... eeeceeeesecceeeeeeeeeneeeeeesaeeeeeeeneeecnneeeenees 1-2
|
||
|
||
Addsfile: Sts sic sst3sctisscssiastosend lees sues thssapteteaioteasdesdodstanecae audeusoastealateasde aeedcauteaiaseandae 1-2
|
||
Pre-defined add-file Slots:.:.iociictsih ici ek hens iaeieleitii ond ubetie choca haces 1-2
|
||
Running programs via RUNIMG S3....... cee eeseeesseeseseceseecesceceseeeesaeecsaeecseessaeessneeees 1-3
|
||
Program files with and without icon files 0.0... eeeeeseessseeseneecsneeseeecsaeeeseeesneeeesaes 1-3
|
||
Resource files and shell data files... ee eesecsseecsseeceseessceceseceesaeecsaeesseeseessseeeesaes 1-3
|
||
Customised add=fless.. -iou..:. aca tecteeiiied iis Rachie ehdila se beuhod shan buaadeedesioegsitasdetaseeade 1-3
|
||
Finding add-files within a .app file... cece eeeeesseeceseeeesseeseeeesaeecsaeesseeeesaeneeeeesaes 1-3
|
||
Multi-lingual applications ..............ccceeeccceeseecceeeseeeeeeeeeeeeeeeceseaeeceeseneeceneeeeeeeaeeeeeenneeeeneae 1-4
|
||
Environment variables on the Series 3 .........eeseeeeesseeesseecsneecsececeecsseesesaeeesaeecsaeesseeeaeers 1-4
|
||
AVOIC S$ :SIQTS) 05. .:252.ch caveats Seccaces tees cbutducasoecee Sues ned Seanetescusssuayeodbobertea hs cadaed sandestoeneect ta 1-5
|
||
Series. 3 family compatibility. s:2.::).cissssdscvei sks snndesidvaviesesats.oriesb Aaatesidhapdevinisdspbianser ieee dos 1-5
|
||
Series 3/Series 3a/Workabout compatibility ......... ec eeeeeeseeesseecneeceseeeeseeessaeeeseeseers 1-5
|
||
Compatibility with Series 3c and Siena... eee eeeeseecsseeeseeeseecaeesseessseeeesaeeesaeeaes 1-5
|
||
Programs written for the Series 3.0... eeceeseesseecsseeessceceseeeeseceseeessaeecsaeecsaeeessereeeeees 1-5
|
||
Programs written for the Series 3a .......eeceeeeeeseecsseessseeceseeeeseeeseeeesaeecsaeecseeseneeeeeeee 1-5
|
||
|
||
2 Communicating with the System Screen ..............ccccscsccssscssssssecsscssecssssecsssccessssceessssssesseesors 2-1
|
||
INtrOdUCH OMe s<ie2.1i2ii thas cbids hanicasdiatige Mateo tia aa aosds cae Mosta ts Mreatieiohits ea tines heey 2-1
|
||
Creating: Shed files) vescssctteehe cai ssc Sih douse eh bach eguie tei bae eh gvag eh eegoaede eags be shonededte tod asuenees 2-1
|
||
|
||
‘TPhé:format: of..ms files ...3:5:t.ccisss stiosst etd Asche Aasidoa Bashers 2-1
|
||
Default extension 35:55: aus cabsavesssigh fore thessits Bag passteors Us higeatiteest ods Ry eietews Taba teeercts 2-2
|
||
Pub e Name sets serie vicassgaliacetiankesyagansoes iaauesuaeestvoeetasea rasbea obabasensasecasieaesgeananyicasieeasacates 2-2
|
||
Default director ys. ci seeeci Sats ccseock ccessushodeseaeh oceeeentosontent nageancessenuses sagnancnedendncnnneransseneess 2-2
|
||
Application type nUMDEe®rs ...........cccsccceeseseceessceceesececeeseneeecesnneeeceeeeeeeseaeeeessnaseeeeenees 2-2
|
||
Multi-lingual forms of .ms files... ees eeseeeeseeceseeeseecseessceeesaeeesaeecsaeesseessneeeesaes 2-3
|
||
Pure file list applications.............ccccccceeseescecesseceeeeeeeeceenneeecsseeeceesaeeeseseeeeeseeeeeseeenees 2-4
|
||
Aliasing applications ............cccccceesssccceesseceeeeescecceseneeeceeneeeeeseaeeecseaeeecseaeeeeeseatesesenneeeeeeeeas 2-4
|
||
Creating-als fless.c.5:8 liu td css sist nites ietait Asada Masse ssnaiieas 2-5
|
||
Active aliasing and passive aliaSINg.........ceeececeseecsseecsseeceseeeesseecsseeseseeeesaeessaeessaeeeees 2-5
|
||
Active aliasing in the built-in text editor... eee eeeeeesneecsneeeceseeeeseeeesaeessaeeseneeesee 2-5
|
||
How aliasing, Works: ic-cbistiincnisi ea din eee wet aed oh ah owen es evans 2-6
|
||
Epoc reserved: statics: oss cdgeiasicedetsascvetiys hecvssuseesaeies hvaou she cuss vasnssae ovedadaesuscesssvutsdes seanesassones 2-7
|
||
DatProcessNamePtr:(OX22):5 2.05 2-b accents eibhel ceeeestaie ova ilanaiandnanatitis 2-7
|
||
More on the file lists in the System Screen ........eseeeeeseeeesseeeeseecseeecsececesaeecseeseeeeees 2-7
|
||
Assigning application buttons ........ eee eeeeescecssceeeseeeesseecsacecseecesaeeesaeecsaeesseeesteeeesaes 2-8
|
||
DatUsedPathNamePtr (OX3¢) ........cc:ccccccccssssssseeeeececeessesneeeeeeeceessesseeeeeeeseeeesseeeeseesenes 2-8
|
||
DatStatusNamePtt (OX36) is :2.08 8 Aas titiest Bai dds Aad as 2-9
|
||
Datleocked (Ox3ai).2c sctag estes isesagasiceatceengesseneecaiessuesaeg saree eea teak GO 2-9
|
||
The'Series 3 command limes o.2.5.4. fics sist iefeesecrsiben oad eee ahiesbiedeas ous evudeeb ns ebehlelaeens 2-9
|
||
Summary of command line format... eee eeeeeesecsneecsseeeeseeeesaeecsaeesseessseeeesaeeesaeers 2-10
|
||
Supplying a command line from the SIBO Debugget .......... eee eeeeeeseeeeseeeeneeeeneeeeenes 2-10
|
||
From command line to reserved Statics .........:eeeeeeseceseecssceceseeeesseecseesseeeeseeeesaeeees 2-11
|
||
Applications that disregard their command line.................cceeecseeeeeeeeeeeeeeeeeeeeeneeeeeeeee 2-11
|
||
Creating directories When required ............eeseeeseecseseeeseecseeceeecsseeeesaeeesaeersaeesseeeees 2-12
|
||
Messages from the System Screen ..........eeeesceesseeessceeesseecseecsseecsseeeesseecsaeesseecsseeeesaeeesaeers 2-12
|
||
Shutdowm Messages...2.5Ace.hiiiscosdsuseascsesssangl casi ceaazensdaaicnasiguapesineieaiedeatanasuoeieaaees 2-12
|
||
Switchfiles MeESSAsesicc.ii.8:ceiseahssch sit hols ncdac chs HeasseoceuSeech bach leshoestocgh Guahtesteasboessaoenedi seuss 2-12
|
||
How messages from the System Screen are received... ees eeseeeeseeceseeeeteeeseeseeeeeee 2-12
|
||
Contents of the new command line for System Screen messages ............ssceeeseeeeeeeeeee 2-13
|
||
Other possible types Of MeSSages..........:-eseesseeceseeceseeeseecseesseecsteesesaeeesaeessaeesseeeees 2-13
|
||
|
||
|
||
Multi-lingual aliasing of Word. app...........ceseceeeseesseeseseeceseceeesseecsaeecseeeeesaeessaeeseeeesns 2-13
|
||
|
||
|
||
GENERAL PROGRAMMING MANUAL
|
||
|
||
|
||
ii
|
||
|
||
|
||
3 Enhanced Sound Output. ...............csccccssssccssscssecsscssecssscseesssscsesssscssesssscsesssssssesssscsssssssssssesssoees 3-1
|
||
Trt Od uC tris ae need echoes eed ak antes eal ads est ong ek aad wstone saat dvb tp naet ae daees eek Seta eet eee 3-1
|
||
Sound on the Series 3.s...2:..ccyohivseaesi yeisigieae eayhelnisiyanel Wiener elton spank 3-1
|
||
|
||
TMtLOUUCHONY! st .etshe on oto enctnd dn ahead aot Rite et a ie ae Aisi Rute aht wt ae 3-1
|
||
The sndfrce and snddvr device drivers ...........ceeceeseecsscecssceeeseeessseecscecsseesesaeeesaeeesneers 3-1
|
||
Tristalling Sin ited sos se ces ceases: ceessad este edat ves otes ene ventewep ones sche otntavey tes anhersatenuseceteete 3-1
|
||
Opening a channel to MUS? ..0......eeceecsenecseessecenesscesnnetoncsepscecesonesenesnonsenssenesesenenees 3-2
|
||
Actilally Creatit S SOUS oo. 52s. oe. vatnd ccovved ahs etunechvoued axhectndscbvoues ste eshn toch sonst acnestuleslvanstsaee 3-2
|
||
BxXampletsieavsscut ksh avai inn asthe a ia ada a ade neve 3-3
|
||
Possible tonesis s,s ss: fisee faces iat ses wep oveptanpavec eves obisiaetaiiy etet edupiget vegestedesaget otis etsbedevonet 3-3
|
||
PAaliS@Si sivas esol ainag Bester ues vine hes vesanhes ven e ea bieayh nigaehs Meaapd ania Seti Synn yee 3-3
|
||
When to open and close MUS:........eeeeeesecesseeesseecesceeesseecsacecsscecesaeeesaeessaeesseeeeneeeesaes 3-3
|
||
When to install and de-install the Idd file... eee eeseecesneeesneeesneeeseeesseeeesaeessaeers 3-4
|
||
Sound On tHe: SEries Bais 25 elce cca deset ilu eden ceed set oisdeceseder stotleutyesctevlevaceterteesstedese det svigeautetetoeets 3-4
|
||
|
||
A: WSE-OF SPY: APP scecsscssrascssescacsssessascsGonsacsseasoaseosesdissosvsasceosesssesdusessssoseasseseessosssbenssesveassesevbasosseses 4-1
|
||
|
||
Tint OA CHOU s55 52. ss ec .2h. Pore tego s ees dike duis Fades ous teens da Babe cou Tevactee Bebe sik ceeseeds thoes enewisde de sna eae ied 4-1
|
||
Buildiiig Spy. apprsiasiseissecasioveteaescetealsaceldawsscateaciaeaieangcatsacsaeatagextaguesensdemeensagieoansenses 4-1
|
||
The main display ...........ccececccccsssscccesencecceeseeecessaceceesnaeeeceeaeeeceneaeecesenaeeecseeeeesenaeeeesenneeeeneas 4-1
|
||
Heap :StatistiCs sc) scsisscavsitcvaeseccaadaceesansces dave seucsessseuscvssdedecssuscuscusasauesessiassusatiaccvantess 4-2
|
||
Stack: Statist Cs ‘ssscvss sein cevyecudssivenut docks cove hveies Saves rats ckbedeh oluke ealactosdeh stehe setheosteh sunhs seen 4-2
|
||
SESMENE StALISLICS s2isc8,22sidsestesiacessdasanenbactsceadasapestas agent aestenbectacsondateen tes laouendateestgiias 4-2
|
||
Tests for heap integrity ...........cececscceesssceceesseeceeseeecceseaeeeceseneeecseaeeeeeseeeeeesneeeeeenees 4-2
|
||
PLOCESS PLIOTILIOS sf. 55s. fete divs fees oes tddacissdaadeaideded rad cacdeaccudsdisateiacdvsunees susacaascvicieesesaneas 4-2
|
||
Othier dattaresc: cccs2-0b tac ectets Abed oeeseeteteeleb tease ela ckeieds ess dade deevsivers iad oesieren Hues 4-3
|
||
Logging Window Server statistics ..........::cesceesscecsseeeeeeecscecseeeeseeeesseecsaeersneessteeeesaes 4-3
|
||
|
||
Appendix A Technical Specifications ................cccsccccsscsscsscsseccsscscecsscccessssccesssscssssssccsessssesseees A-1
|
||
Psion Series 3a Technical Specification .............sceescccsssceecsseecssceceseeeesaeeesaeecsaeesseeeeseeeesaes A-1
|
||
Psion Series 3/38 specification ...........cceeccesseeesseecsseecsscecsseecesaeecsaeecsaeecseessneecesaeessaeeesaeers A-2
|
||
Psion Series 3c Technical Specification 0.0.0... .eseeseccsseceecsseecsseeceseeeesaeeesaeecseessseeeeseeeesaes A-3
|
||
Psion Siena Technical Specification...........cscsescccsseecsseceecsseecssceceseecesaeeesaeecsaeessseeseseeeenaes A-4
|
||
Psion Siena SSD Drive Technical Specification ...........ceceeeseseseeceseeceeseessseeceseeeesaeeesaeees A-5
|
||
Psion Serial 3Link Technical Specification ............eeeeessessseecssceessceceeseecsseecsseeeesaeeesaeers A-5
|
||
|
||
PC Serial 3Link to Apple Macintosh converter ............c:cessceesseessseeceseeeesseeseaeessseeeeee A-7
|
||
PC Serial 3Link to Apple Macintosh converter .............s:cessceesseecsneeeeseeeesseeesneeseeeeees A-7
|
||
Modem Adaptor cable..........eccccceessccccessceeeeseneeeeeseneeecesneeeeeseaeeeesseaeeeeseneeeeceeeeeeeseeeeess A-7
|
||
Serial Printer cable (Series 3a) - Technical Specification ...............cceeccceeesseeceeesneeceeeeennees A-7
|
||
Serial Printer cable (Series 3c/Siena) - Technical Specification ............:::cccssscceeesseeeeeeeeees A-8
|
||
Psion PC Link cable Technical Specification ...........eeceeeeseecsseeceseeesseeeeseesseessneeseseeeenaes A-8
|
||
Modem Adaptor Cables. e....ccssuecevietesstegesetsteg teh seep vies sat etstcawpsdet ovng aut levgotes ovtg oakteee sbeee} A-8
|
||
Psion Mac link cable Technical Specification ............ cc eeeeeeseecsseeeeseeceeseeceeecsseeeesaeeesneers A-8
|
||
Psion 9-to-25 way D-type adapters Technical Specification...........ceseeesessseeceseeeesneeeeneers A-9
|
||
Modem 9-to-25 way D-type adapter - wiring diagram ......... eee eee eeseeeeseeceneeeeseeeeseeeesneers A-9
|
||
PC (XT) 9-to-25 way D-type adapter - wiring diagram ........... ce eeeeeseeeseeceneeeeeeeeesneeesneers A-9
|
||
Printer 9-to-25 way D-type adapter - wiring diagram .......... eee eeeeesneeeeseeceneeeeseeeesaeeeeneees A-10
|
||
Psion Parallel 3Link Technical Specification ........... ce sceesecceseeceseeeseecsaeecseecsseeeesaeeesaeers A-10
|
||
Psion Parallel Printer Link Cable Technical Specification... ceeseeesceseseeceseeeeeeesneers A-10
|
||
Psion PC Card Modem Adapter Technical Specification ...........ecceeseeeseecsseeeeseeeesneeeeneees A-11
|
||
Psion Travel Modem Technical Specification ............ceesesesecssceceseeeeeseeesaeecseeesseeeeseneers A-13
|
||
Psion 3Fax Modem Technical Specification ...........ceseeeceesseecsseecsseecssceceseeeesaeecsaeesseeeeee A-14
|
||
Appendix B Differences Between Psion Series 3 Models ..............csssssccsscssecsscsseccsscsceessssseeeees B-1
|
||
Current models in the Series 3 family... eee eeseeeseeceseeceseeecsseecsaeecseecesaeeesaeecsaeessaeeeees B-2
|
||
Superceded models in the Series 3 family ....... cee eee eeeseceseeceseeceseeeesaeeesseecsaeesseeseseeeenaes B-3
|
||
|
||
|
||
CHAPTER 1
|
||
|
||
|
||
SERIES 3 PROGRAMMING OVERVIEW
|
||
|
||
|
||
Throughout the Series 3 Programming Guide, reference to the Series 3 machine should be taken to
|
||
include the Series 3a and the Workabout unless stated otherwise. See also the Workabout Programming
|
||
Guide for further information specific to that machine.
|
||
|
||
|
||
Programming possibilities
|
||
|
||
In general terms, there are six different levels at which programs can be written for the Series 3:
|
||
e using OPL, creating .opo or .opa program files
|
||
e using CLIB, with user interface restricted to console i/o of the getchar and puts variety
|
||
e using PLIB, again with user interface restricted to console i/o
|
||
e using WLIB, accessing the graphics and windowing capabilities of the Window Server
|
||
e using Hwif, with its support for menus and dialogs similar to those available in OPL/w
|
||
|
||
|
||
e using HWIM, FORM, OLIB and (for the Series 3a) XADD, the object-oriented DYLs built into
|
||
the ROM.
|
||
|
||
|
||
All but the first of these uses the C programming language.
|
||
|
||
|
||
For programming in OPL see the Series 3, Series 3a and Workabout Programming manuals, or the SIBO
|
||
OPL Software Development Kit.
|
||
|
||
|
||
For more detailed information about PLIB library routines and the window server see the PLIB Reference
|
||
and Window Server Reference manuals respectively.
|
||
|
||
|
||
Programming using Hwif is also covered in its own separate manual, Programming in Hwif. This manual
|
||
is particularly recommended on account of its relevance to the Series 3.
|
||
|
||
|
||
For details of object-oriented programming see the object oriented sections of the C SDK, starting with the
|
||
Object Oriented Programming Guide.
|
||
|
||
|
||
The present manual focuses on features of the Series 3 and Series 3a that are by-and-large unique to these
|
||
particular computers (as opposed to other computers in the SIBO range, that is, the HC and MC
|
||
computers). These features include:
|
||
|
||
|
||
e the difference between .app and .img forms of program file
|
||
|
||
¢ communications between applications and the System Screen
|
||
|
||
e the specialised form of the command line for applications
|
||
|
||
e some device drivers unique to the Series 3 and/or Series 3a
|
||
|
||
e development tools particularly suited to the Series 3 and Series 3a computers.
|
||
|
||
|
||
e writing applications that run on all machines.
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Other parts of the SDK that may be found of particular relevance to programming for the Series 3
|
||
include:
|
||
|
||
|
||
e the descriptions of file formats used by various applications, in the Additional System
|
||
Information manual
|
||
|
||
|
||
e adescription of the special form of printer driver files used on the Series 3, also in the Additional
|
||
System Information manual.
|
||
|
||
|
||
Before proceeding further with this chapter, the reader is recommended to be familiar with the basic
|
||
contents of the General Programming manual.
|
||
|
||
|
||
Differences between .app files and .img files
|
||
|
||
|
||
Strictly speaking, there is no real difference between files with extension .img and those with extension
|
||
.app. For example, although the System Screen usually expects to install .app files, it will also, if
|
||
requested, install suitable .img files.
|
||
|
||
|
||
However, by convention a .app file contains one or more extra so-called add-files embedded within it, in
|
||
addition to the core .img file itself. These files may include:
|
||
|
||
|
||
e a.pic file providing the icon for the application
|
||
e a.rsc or .rzc file providing the resource file for the application
|
||
e a.shd file providing the shell data for the application.
|
||
|
||
|
||
Any such add-files can be added into the .img file automatically, via the operation of emake.exe, at the
|
||
time the .img file is itself created. What controls the set of add-files used (if any) is the presence or
|
||
absence of a suitably named add-file list (.afl) file.
|
||
|
||
|
||
Add-file lists
|
||
|
||
|
||
An add-file list (afl) file is a text file containing from one to four filenames. For example, the contents of
|
||
a file tele.afl could be:
|
||
|
||
|
||
tele.pic
|
||
tele.rsc
|
||
tele.shd
|
||
|
||
|
||
When any .pr project file is invoked that leads to the building of tele.img, the existence of a file tele.afl is
|
||
checked for. If such a file is found, the files listed therein are combined with the core .img file to form a
|
||
|
||
larger .img file as output. By convention, .img files that contain embedded add-files are renamed to .app
|
||
files.
|
||
|
||
|
||
See the chapter Building an Application in the General Programming manual, for more details.
|
||
|
||
|
||
Pre-defined add-file slots
|
||
|
||
|
||
The RscriILe class in the OLIB library can find resource files embedded in a .app file, but only if they are
|
||
placed in the second of the four slots.
|
||
|
||
|
||
The System Screen expects to find a .shd file in the third add-file slot of a program being installed, and
|
||
indeed will refuse to install it if no such data is found there.
|
||
|
||
|
||
The Window Server, however, will find a .pic file (or a .fon file) at any of the four add-file positions
|
||
within a .app. In view of the requirements for resource files to occupy the second slot, and for .shd files to
|
||
occupy the third slot, .pic icon files are usually placed in the first add-file slot - as in the above example.
|
||
|
||
|
||
At the time of writing, there is no mechanism to specify a file for (say) the third add-file slot, while
|
||
omitting the second add-file altogether. For this reason, it may occasionally be necessary to create and
|
||
maintain a zero-length file for the second slot.
|
||
|
||
|
||
1 SERIES 3 PROGRAMMING OVERVIEW
|
||
|
||
|
||
Running programs via Runimg
|
||
|
||
|
||
An alternative to installing a program in the System Screen with its own file list is to run it from the
|
||
RunImg icon:
|
||
|
||
|
||
e the user presses TAB while the highlight is within the RunImg file list
|
||
e the user navigates the file selector until it selects the program file
|
||
e the user presses ENTER to start this program.
|
||
|
||
|
||
This procedure can be simplified if the program is placed in a top-level \img\ directory, and given the
|
||
extension .img. In this case, the program will automatically appear as an entry in the RunImg file list.
|
||
|
||
|
||
However, a program run in this way will receive no special command line from the System Screen. Nor
|
||
will it receive any Shutdown or Switchfile messages from the System Screen. (These messages are
|
||
discussed in the following chapter).
|
||
|
||
|
||
Program files with and without icon files
|
||
|
||
|
||
An application can simply not have an icon, although in this case the system screen will simply refuse to
|
||
install it. The application can, however, still be run from RunImg, in which case, an empty icon boundary
|
||
will be displayed in any status window used.
|
||
|
||
|
||
Icon files, such as tele.pic, may be produced by a variety of means:
|
||
|
||
|
||
¢ using the Jconed demo application that can be built using the Hwif part of the SDK or, for the
|
||
Series 3a and Workabout, the Iconeda application that is installed in a \sibosdk\s3atool directory
|
||
|
||
|
||
e using the Window Server tool wspcx.exe on the .pcx output of a PC program such as Windows
|
||
PaintBrush.
|
||
|
||
|
||
The .pic file can contain:
|
||
@ a 24x24 bitmap for a Series 3 icon.
|
||
|
||
|
||
¢ two 48x48 bitmaps for a Series 3a icon - the first and second bitmaps specify the black and grey
|
||
planes respectively.
|
||
|
||
|
||
@ a 24x24 bitmap for a Series 3 icon followed by two 48x48 bitmaps for a Series 3a icon.
|
||
The format of .pic files is given in the Bitmaps section in the Window Server Reference manual.
|
||
|
||
|
||
Resource files and shell data files
|
||
|
||
|
||
See the Resource Files chapter of the Additional System Information manual for a description of the
|
||
format and uses of resource files.
|
||
|
||
|
||
Shell data files are discussed in the following chapter.
|
||
Customised add-files
|
||
In most cases, at least one add-file slot will be free for use by the application itself.
|
||
|
||
|
||
One important reason to build an extra file into the .app file, rather than leaving such a file separate, is
|
||
that it diminishes the chance of a user copying the .app file from one SSD to another but neglecting to
|
||
copy a vital associated file at the same time.
|
||
|
||
|
||
Finding add-files within a .app file
|
||
|
||
|
||
Ordinarily, applications have no need to find add-files within themselves, since system code takes care of
|
||
this on their behalf.
|
||
|
||
|
||
One possible exception is when an application needs to access a customised add-file. In this case,
|
||
knowledge of the format of the header of a .img (or a .app) file is required. In fact, this header just
|
||
contains the same information as is returned by invoking edump.exe.
|
||
|
||
|
||
The header of a .img file is described by the ImgHeader struct, defined in epoc.h. See the chapter
|
||
Processes and Inter-process Messaging in the Plib Reference manual for a discussion on this struct.
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
An example of code that attempts to locate a resource file in the second add-file slot of a .app file is as
|
||
follows:
|
||
|
||
|
||
GLDEF INT rscfile_rs_init (PR_RSCFILE *self, TEXT *name)
|
||
|
||
|
||
{
|
||
ImgHeader head;
|
||
|
||
|
||
/* self->rscfile.offset is zero by default */
|
||
f_open (&self->rscfile.pcb, name, P_FRANDOM|P_FSTREAM|P_FSHARE) ;
|
||
if (p_read(self->rscfile.pcb, &éhead, sizeof (head) )==sizeof (head) )
|
||
{
|
||
if (!p_scmp (&head.Signature[0],"ImageFileType**") )
|
||
{ /* we have a .img file */
|
||
if (!(self->rscfile.offset=head.Add[1].offset) )
|
||
p_leave (E_FILE_INVALID) ;
|
||
|
||
|
||
Multi-lingual applications
|
||
|
||
|
||
The topic of multi-lingual applications is discussed in general terms in the course of the Resource Files
|
||
chapter of the Additional System Information manual.
|
||
|
||
|
||
There are some issues about the set of possible command hot-keys ("menu accelerators"), however, that
|
||
are particular to the Series 3.
|
||
|
||
|
||
The set of possible accelerators varies from language to language on account of the keyboard changing.
|
||
All languages must, however, support the 26 accelerators 'a' through 'z', together with four more.
|
||
|
||
|
||
These additional accelerators are '+', '-', '*', and '/' in most languages. The only exceptions so far are
|
||
French and Spanish (and Belgian, which uses the French keyboard):
|
||
|
||
|
||
e French replaces '/' with '?'
|
||
|
||
|
||
e Spanish replaces '*' with '>' and '/ with 'i'.
|
||
|
||
|
||
Applications which fail to take account of these changes when they are translated into another language
|
||
will find they end up carrying a "Iame" accelerator: the accelerator is displayed on the menu, but there is
|
||
no way for the user to press the required key combination.
|
||
|
||
|
||
Environment variables on the Series 3
|
||
|
||
|
||
Environment variables can be a powerful programming resource whilst being, at the same time,
|
||
potentially anti-social.
|
||
|
||
|
||
There are two aspects to this:
|
||
|
||
|
||
¢ environment variables consume space in a special RAM segment devoted to them - the more
|
||
environment variables are created (and the larger these are), the greater the chance becomes of
|
||
other applications failing to work properly - on account of not being able to create their
|
||
environment variables.
|
||
|
||
|
||
e name clashes are possible - data stored in an environment variable by one application may get
|
||
obliterated by another application storing different data to an identically named variable.
|
||
|
||
|
||
With regard to the first problem, all that can be said is that due caution should be observed. Otherwise,
|
||
your application may earn itself a bad name.
|
||
|
||
|
||
With regard to the second problem, what is evidently required is some kind of naming convention.
|
||
|
||
|
||
For a full discussion of environment variables see the paragraphs preceding p_getenv in the Plib
|
||
Reference manual.
|
||
|
||
|
||
1-4
|
||
|
||
|
||
1 SERIES 3 PROGRAMMING OVERVIEW
|
||
|
||
|
||
Avoid $ signs
|
||
|
||
|
||
The 's' sign is used in names of environment variables created and manipulated by Psion system
|
||
software.
|
||
|
||
|
||
All external applications should completely avoid using environment variables with 's' signs in them -
|
||
unless they first secure the agreement of Psion.
|
||
|
||
|
||
The plan is to extend the use of 's' to mean, not just "used by Psion", but rather "licensed by Psion".
|
||
Interested software developers who contact Psion will be given a short identifier - for example, "$175". A
|
||
company which receives this identifier could then create environment variables with names such as
|
||
"S$17S$table" OF "$17$ma", secure in the knowledge that no other responsible developer will also use these
|
||
names.
|
||
|
||
|
||
In conclusion, '$' signs should be avoided in all cases; even where approved by Psion, environment
|
||
variable names should include 's' signs only in their identifier region. Thus a name of "sas17s" would
|
||
not be allowed. Environment variables can of course continue to have "simple" names, such as "table"
|
||
and "ma", but in this case, the chance of a name clash remains.
|
||
|
||
|
||
Series 3 family compatibility
|
||
|
||
|
||
Series 3/Series 3a/Workabout compatibility
|
||
|
||
|
||
All Series 3 applications are fully compatible with the Series 3a and Workabout. These two machines
|
||
automatically recognise such applications and run them in compatibility mode - both the icon, as
|
||
displayed on the system screen, and the display are expanded linearly by a factor of two in each
|
||
dimension.
|
||
|
||
|
||
In fact an application that wishes to use the full screen capabilities of the Series 3a or Workabout must
|
||
explicitly turn off the compatibility mode by calling the wcompat ibilityMode function - see the Window
|
||
Server Reference manual for further details.
|
||
|
||
|
||
An application can identify which machine it is running on - using a call to p_geticd - see the Plib
|
||
Reference manual for details, and Compatibility in the General Programming Manual for an example.
|
||
|
||
|
||
Thus it is quite feasible to write an application that runs on the Series 3, Series 3a and the Workabout,
|
||
using the screen of each machine to the full. However, care should be taken to ensure that the application
|
||
does not use any Series 3a or Workabout specific features when running on the Series 3 - the grey scale
|
||
or, on the Series 3a, the improved sound facilities for example. The Workabout also has different
|
||
keyboard scan codes from the other members of the Series 3 family, (see Hardware Management, in the
|
||
EPOC OSS System Services manual).
|
||
|
||
|
||
Compatibility with Series 3c and Siena
|
||
|
||
|
||
Programs written for the Series 3
|
||
|
||
|
||
All Series 3 programs can be expected to run without modification on both the Siena and the Series 3c.
|
||
The programs will run in compatibility mode, as they do on the Series 3a.
|
||
|
||
|
||
Programs written for the Series 3a
|
||
Most types of program will run without modification on the Series 3c.
|
||
|
||
|
||
It is likely that most Series 3a programs will need some modification, to take account of the smaller screen
|
||
size, before they will run on the Siena. Menus and dialogs in Series 3a programs will, in general, be too
|
||
wide and will need to be reorganised and/or reworded. Applications that use a sophisticated layout in their
|
||
display are likely to need extensive modification before they can be used on the Siena.
|
||
|
||
|
||
Series 3a applications written using the Hwif library, and which use grey lines in their menus, will need to
|
||
be relinked with a suitably modified Hwif library before they will run on either the Siena or the Series 3c.
|
||
This incompatibility is associated with the introduction of small fonts for dialogs on the Workabout and
|
||
Siena.
|
||
|
||
|
||
Hwif programs that are compiled and linked with a modified Hwif library (see the Programming in Hwif
|
||
chapter of this upgrade document) that is supplied with the upgrade software can run on the Series 3,
|
||
Series 3a, Series 3c, Workabout and Siena - provided, of course, that their displays are tailored to the
|
||
various screen sizes and graphics capabilities of these machines.
|
||
|
||
|
||
CHAPTER 2
|
||
|
||
|
||
COMMUNICATING WITH THE SYSTEM SCREEN
|
||
|
||
|
||
Introduction
|
||
|
||
|
||
An important aspect of the Series 3 is the way all the built-in applications communicate with the System
|
||
Screen application (also known as the Shell application):
|
||
|
||
|
||
e The name of any file currently open is displayed in bold in the file list in the System Screen
|
||
e This name is also displayed in any status window shown
|
||
|
||
|
||
e Ona request from the System Screen, an application can close itself down tidily, saving any
|
||
changes to file as appropriate
|
||
|
||
|
||
e =©Alternatively, applications can be requested to switch files, to change which file they are
|
||
currently editing.
|
||
|
||
|
||
Applications use two mechanisms to communicate to the Series 3 OS their preferences concerning file
|
||
switching, as well as the name of the file they are currently editing:
|
||
|
||
|
||
e some data is written at compile time into a shell data file (.shd file) that is linked into the
|
||
application's .app file; this data includes the expected extension of any files to be edited, and the
|
||
default directory for these files, as well as the more basic point of whether the application is file-
|
||
based at all
|
||
|
||
|
||
e other data can be written at run time to various reserved Epoc statics; these include the full path
|
||
name of the file currently being edited.
|
||
|
||
|
||
Creating .shd files
|
||
The format of .ms files
|
||
|
||
|
||
The shell data of an application (see above) is expressed in source form in a file that typically has
|
||
extension .ms. For example, the contents of a file tele.ms could be:
|
||
|
||
|
||
Tele.TEL
|
||
\TEL\
|
||
3
|
||
|
||
|
||
Running the tool makeshd as follows
|
||
makeshd tele
|
||
would produce the file tele.shd from tele.ms (barring syntax errors in the .ms file).
|
||
|
||
|
||
The .shd file can then be combined into the final .app form of an application as discussed in the previous
|
||
chapter.
|
||
|
||
|
||
The first line in a .ms file has general form
|
||
<Name>[<.EXT>]
|
||
|
||
|
||
with the extension .&xT only being present for file-based applications. In that case, .ext defines the
|
||
default extension for the application. In all cases, Name is the so-called public name of the application.
|
||
This must be a valid file name, that is, it must start with a letter and not exceed eight characters.
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
The second line in a .ms file gives the default directory for an application. This can be left blank for non
|
||
file-based applications. For example, the .ms file for the built-in Time application could be
|
||
|
||
|
||
Time
|
||
8000
|
||
with the second line left blank.
|
||
|
||
|
||
The third line in a .ms file gives the type of the application (sometimes called the type number of the
|
||
application).
|
||
|
||
|
||
A .ms file can have fourth, fifth, sixth ... lines, but only if 2000 has been added to the application type, so
|
||
that the application has multi-lingual shell data (see below).
|
||
|
||
|
||
At present, there is no scope for the inclusion of comments in a .ms file.
|
||
|
||
Note that the entire contents of a .ms file is case sensitive. Eg an application with first line
|
||
RunGame
|
||
|
||
in its .ms file will have public name RunGame, whereas an application with first line
|
||
Rungame
|
||
|
||
|
||
in its .ms file will have the distinct public name Rungame. Further, the default extension and default
|
||
directory should always be given in upper case (otherwise the file list may fail to display any files).
|
||
|
||
|
||
Default extension
|
||
The significance of the default extension for a file-based application is as follows:
|
||
|
||
|
||
e Files will be shown in the file list for the application in the System Screen only if their extension
|
||
matches the default (with the exception that files are always shown - in bold - if they are
|
||
currently the open file of an application)
|
||
|
||
|
||
e The System Screen will pass the specified default extension to the application as part of its
|
||
command line, when it is started
|
||
|
||
|
||
e Typically, applications will use filename selectors in dialogs which hide extensions matching the
|
||
default (eg showing Tele rather than Tele.tel), and may even omit other files from the initial list
|
||
presented.
|
||
|
||
|
||
Public name
|
||
The significance of the public name of an application is as follows:
|
||
|
||
|
||
e This is the name by which the System Screen refers to the application, eg when confirming that
|
||
the application be "Removed", or when allowing an application button to be assigned to the
|
||
application
|
||
|
||
|
||
e This name will be displayed in the file list for the application, in the System Screen, in any case
|
||
when the list would otherwise be empty.
|
||
|
||
|
||
The contents of Name [.EXT] must in all cases be a valid filename, ie Name cannot exceed eight characters
|
||
in length, xT cannot exceed three characters in length, and there must be no embedded spaces (etc).
|
||
|
||
|
||
Default directory
|
||
|
||
|
||
Files will be shown in the file list for the application in the System Screen only if they are located in a
|
||
directory whose name exactly matches the default (with the exception that files are always shown - in
|
||
bold - if they are currently the open file of an application).
|
||
|
||
|
||
Default directories for applications are usually top level, as in \TEL\. However, they can equally well be
|
||
subdirectories, as in \TEL\PRIVATE\, with the limitation that the total length cannot exceed 20 characters
|
||
(this count including a terminating zero at the end of the directory path name).
|
||
|
||
|
||
Application type numbers
|
||
The significance of an application's type number is as follows:
|
||
|
||
|
||
e A type of 0 means that the application a) will have no file list when installed in the system screen
|
||
- instead there will be only one entry, giving the public name of the application b) will receive no
|
||
Switchfile commands from the System Screen and c) no filename will be specified in the
|
||
command line. Type 0 applications can have only one copy running at any one time.
|
||
|
||
|
||
2 COMMUNICATING WITH THE SYSTEM SCREEN
|
||
|
||
|
||
A type of 2 is used to restrict a file based application such that only one copy can run at any one
|
||
time - this is the case for the built-in World application. In contrast see types 0 and 3.
|
||
|
||
|
||
A type of 3 means that the application a) will have a file list when installed in the System Screen,
|
||
and b) can receive Switchfile instructions. More than one copy of the application can be run at
|
||
any one time.
|
||
|
||
|
||
A type of 4 means that the application will have a file list in the System Screen, but will never be
|
||
sent Switchfile instructions: however, it should read the command line on its start up (an example
|
||
is the built-in RunOpl application)
|
||
|
||
|
||
Finally, a type of 5 means that the application is a pure file list application, ie not a real
|
||
application at all, but just an icon to group together various applications or utility programs (like
|
||
|
||
|
||
the built-in RunImg icon) - see below for more details.
|
||
|
||
|
||
The application's behaviour may be further modified by adding one or more of the following values to the
|
||
|
||
|
||
type number:
|
||
|
||
|
||
8000
|
||
|
||
|
||
4000
|
||
|
||
|
||
2000
|
||
|
||
|
||
1000
|
||
|
||
|
||
100
|
||
|
||
|
||
80
|
||
|
||
|
||
prevents Switchfile messages of the Create sort being sent to the application
|
||
(this makes sense for an application such as a file dumper, which can dump the
|
||
contents of existing files, but cannot meaningfully create the file it is going to
|
||
dump)
|
||
|
||
|
||
prevents the application being sent Shutdown messages - this will also prevent
|
||
the application being Killed from the System Screen (but not, for example,
|
||
from the Spy application released as part of the SDK)
|
||
|
||
|
||
indicates that the application's .ms file contains public names for more than one
|
||
different language version (see below)
|
||
|
||
|
||
indicates that the .pic file contains a 48 by 48 Series 3a icon (preceded by a 24
|
||
by 24 icon if the application is to run on the Series 3 as well as the Series 3a).
|
||
The Series 3 does not recognise this flag and will simply read the 24 by 24 icon
|
||
if present.
|
||
|
||
|
||
the application should not be sent an exit message so that, for example,
|
||
pressing DELETE acts as Kill application. The Series 3 does not recognise this
|
||
flag.
|
||
|
||
|
||
on selecting "Create new list" from the System Screen, the resulting dialog box
|
||
will contain an extra line, for specifying Text editor or Word processor type.
|
||
The Series 3 does not recognise this flag.
|
||
|
||
|
||
Multi-lingual forms of .ms files
|
||
|
||
|
||
Suppose the Data application were to be translated into French, German, and Italian, and that its public
|
||
names in these languages were to be Fiche, Daten, and Archivi, respectively. In that case, an appropriate
|
||
.ms file would be as follows:
|
||
|
||
|
||
Data.DBF
|
||
\DAT\
|
||
|
||
|
||
2003
|
||
|
||
|
||
Q1Data
|
||
02Fiche
|
||
O03Daten
|
||
O5Archivi
|
||
|
||
|
||
Here, the 2000 in the application type means that the remaining lines in the .ms file are each made up as
|
||
|
||
|
||
follows:
|
||
|
||
|
||
<language number><public name in that language>
|
||
|
||
|
||
where language numbers are as documented in the p_get language part of the Plib Reference manual.
|
||
|
||
|
||
The same rules apply to the public names for other languages as to the default public name defined in the
|
||
|
||
|
||
first line of the .ms file.
|
||
|
||
|
||
It is not possible to change the default extension or the default directory from one language to another.
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Applications which are intended to be capable of being run on either mono- or multi-lingual Series 3s
|
||
should adopt the multi-lingual form of .ms file, and simply accept that the public name will be incorrect
|
||
on mono-lingual machines.
|
||
|
||
|
||
For multi-lingual machines, the System Screen uses the following rules to decide what the public name of
|
||
the application should be:
|
||
|
||
|
||
e the current language number is obtained by a call to p_get language
|
||
|
||
|
||
e if this matches any language for which a public name is explicitly defined in the shell data, that
|
||
public name is used
|
||
|
||
|
||
e otherwise, the default public name is used (as given on the first line of the .ms file).
|
||
|
||
|
||
For the sake of minimising the size of a multi-lingual .shd file as much as possible, it is evidently possible
|
||
to omit any lines such as
|
||
|
||
|
||
01Data
|
||
|
||
|
||
which merely define the public name for some language to be what it would have been in any case, were
|
||
this line omitted (in view of the contents of the first line of the .ms file).
|
||
|
||
|
||
Pure file list applications
|
||
|
||
|
||
If an application (Utils, say) has type 5, and the user presses ENTER when the highlight is over some file
|
||
Xyz.abc in the file list for that application, the System Screen makes no attempt to run the application
|
||
Utils. Rather, it assumes that Xyz.abc is itself a program, and attempts to run that. In other words,
|
||
instead of executing Utils and passing the filename Xyz.abc as part of the command line, it executes
|
||
Xyz.abc (without any command line being passed).
|
||
|
||
|
||
For example, the .ms file for the built-in "application" RunImg is as follows:
|
||
|
||
|
||
Runimg.IMG
|
||
\IMG\
|
||
8005
|
||
|
||
|
||
This means that the file list for RunImg lists .img files from \VMG\ top-level directories - each of which are
|
||
program files.
|
||
|
||
|
||
Note that unless the utility programs cooperate in some limited way, when run they will be listed (in bold)
|
||
under the RunImg icon, rather than under any other pure file list icon. This is explained in the section
|
||
below on the Epoc reserved static DatProcessNamePtr.
|
||
|
||
|
||
In practice, the simplest way to create another pure file list application is probably to use the technique of
|
||
aliasing, as discussed immediately below, to alias RunImg.
|
||
|
||
|
||
Aliasing applications
|
||
|
||
|
||
Some file-based applications may end up with large file lists. It may be desirable to separate a file list into
|
||
two or more separate lists, for example (for the Word application) all correspondence going in one file list,
|
||
all poetry in another, and so on. These file lists could be distinguished, on the System Screen, by having
|
||
distinct icons, and different application buttons could be used to cycle round running instances of these
|
||
tasks.
|
||
|
||
|
||
Going further, it may be desirable for the behaviour of the application to alter, depending on which type
|
||
of file is open. For example, the behaviour of the built-in text editor is different for .wrd files (when the
|
||
application is seen as Word) from .opl files (when the application is seen as Prog).
|
||
|
||
|
||
The concept of aliasing an application is designed to meet these requirements. For each required new file
|
||
list, an alias file (als file) should be installed in the System Screen. In practice the user can do this on the
|
||
Series 3a using the "Create new list" item from the "Special" menu (try it out ...).
|
||
|
||
|
||
Broadly speaking, the contents of a .als file match those of a .shd file: the public name, default extension,
|
||
and default directory are all defined, as well as the application type number. However, the .als file goes
|
||
beyond the .shd file in that it also specifies:
|
||
|
||
|
||
e the name of the application that is being aliased
|
||
|
||
|
||
e (optionally) some alias info that the System Screen should pass to the application when it is run,
|
||
via the command line, to configure its behaviour in some special way.
|
||
|
||
|
||
2 COMMUNICATING WITH THE SYSTEM SCREEN
|
||
|
||
|
||
Creating .als files
|
||
|
||
|
||
An .als file is produced from a .ma file and a .pic file by running the tool makeals. The three files all
|
||
have the same root name (ie disregarding the extensions). For example, the command
|
||
|
||
|
||
makeals letter
|
||
produces the file /etter.als from letter.ma and letter.pic.
|
||
The .pic file is the icon to use. The process of creating .pic files is discussed in the previous chapter.
|
||
|
||
|
||
The .ma file is a source file similar in format to a .ms file. For example, the contents of a file letter.ma
|
||
could be:
|
||
|
||
|
||
Letter.let
|
||
\WRD\LET\
|
||
3
|
||
|
||
Word
|
||
|
||
|
||
in which there is a fifth line which is blank (makeals will give an error if the fifth line is omitted
|
||
altogether).
|
||
|
||
|
||
Just as there are multi-lingual forms of .ms files, there are also multi-lingual forms of .ma files. However,
|
||
in practice these are of limited use, for technical reasons. This is discussed in its own section (which the
|
||
majority of readers can skip) at the end of this chapter.
|
||
|
||
|
||
The first three lines of a .ma file correspond exactly to those of a .ms file. The fourth file is the public
|
||
name of the application to alias. The fifth line gives the alias info, which is a zero-terminated string of
|
||
up to eight characters.
|
||
|
||
|
||
In most cases, the application type will be the same for the alias file as for the application being aliased.
|
||
However, the public name, the default extension, and the default directory are all commonly varied.
|
||
|
||
|
||
Note that the public name of an alias must differ from that of the application it is aliasing. Otherwise,
|
||
seeking to install the alias in the System Screen will have no effect (it is not possible to have two different
|
||
file lists, each with the same public name).
|
||
|
||
|
||
Incidentally, no check is made, at the time of installing an alias file, that the application it aliases is itself
|
||
currently installed. This check is only made when an instance of the alias is to be started.
|
||
|
||
|
||
Active aliasing and passive aliasing
|
||
|
||
|
||
In theory, all applications are capable of being aliased, without them needing to make any conscious
|
||
provision for this possibility. This is known as passive aliasing.
|
||
|
||
|
||
Other applications pay explicit attention to any alias info that may be passed to them on their command
|
||
lines, and adjust their behaviour according to the contents of this info. This is known as active aliasing.
|
||
An example of active aliasing is that of the built-in text editor, as described in the following section. This
|
||
is the only one of the applications built into the Series 3 and Series 3a that supports active aliasing.
|
||
|
||
|
||
Any other program that supports active aliasing is free to interpret alias info passed to it in any way that it
|
||
wishes. There is no obligation to mimic the detailed rules obeyed by the text editor.
|
||
|
||
|
||
Active aliasing in the built-in text editor
|
||
|
||
|
||
If the alias info is a null string, the text editor enters Word mode, with multi-level outline facilities, styles
|
||
and emphases, and so on.
|
||
|
||
|
||
Note that it is not unreasonable for an alias to define null alias info. This allows the creation of aliases of
|
||
the text editor that behave in exactly the same way as the built-in Word application, but differ from each
|
||
other in terms of their default extensions, default directories, and/or public names.
|
||
|
||
|
||
If there is any non-null alias info, the text editor enters one of a number of other modes, with the mode
|
||
depending on the first character of the alias info. Some of these modes are not available on Series 3
|
||
machines. At the time of writing, the allowed first characters and the corresponding modes are:
|
||
|
||
|
||
OPL program editor
|
||
|
||
Comms script program editor
|
||
|
||
Plain text editor (not Series 3)
|
||
|
||
Word processor with custom template (not Series 3)
|
||
|
||
|
||
Nunn O
|
||
|
||
|
||
2-5
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
The program editor mode is available on all machines. In this mode there is no access to the style and
|
||
|
||
|
||
emphasis subsystems, the corresponding menu commands being replaced by options to "translate", "run",
|
||
"show error" and set "indentation".
|
||
|
||
|
||
In this mode, the first letter of the alias info denotes the nature of the program that is being edited. It
|
||
actually identifies the program to invoke to effect any "translate" and (possibly) "run" commands from the
|
||
user. The generic name of this program is sys$prg?.img, with the question mark being filled in from the
|
||
first letter of the alias info. Thus the Prog alias has 'o' for the first letter of its alias info, and so the OPL
|
||
translate/run program sys$prgo.img is used. In contrast, the Script editor from the communications ROM
|
||
has 's' for the first letter of the alias info, so that the program sys$prgs.img is used.
|
||
|
||
|
||
In program editor mode the second letter of the alias info should be 'R' if the program is of a type that
|
||
understands "run" instructions in addition to "translate" ones. Any other second character disables the
|
||
"run" command option. The following three letters (e.g. 'opo' or 'sco') denote both the expected file
|
||
extension and the expected top-level directory where any translated output will by default be placed. (This
|
||
information is used by the editor when offering the user a suitable filename to "run").
|
||
|
||
|
||
On the Series 3a a final '*' character may be added to the alias info. This has the effect of adding an "S3
|
||
Translate" menu option.
|
||
|
||
|
||
The remaining modes are not available on Series 3 machines.
|
||
|
||
|
||
Alias info that consists of a single '$' character selects a plain text editing mode. In this case the
|
||
program-related menu options are suppressed, with only an "indentation" option being offered.
|
||
|
||
|
||
A variant on the Word mode is set by alias info that consists of a single '/' character. This behaves in a
|
||
|
||
similar way to the Word application, with the exception that a specific template file is loaded whenever a
|
||
new file is created. The template must have the same name as the aliased application and must be located
|
||
on the current drive at the time the new file is created. Thus, an alias created from the following .ma file:
|
||
|
||
|
||
Letter. LET
|
||
\LET\
|
||
|
||
1083
|
||
|
||
Word
|
||
|
||
/
|
||
|
||
|
||
would, on creation of a new file, automatically load the template file \wdrVetter.wrt, provided it exists on
|
||
the current drive. Note that, in this mode, the value 80 must be added into the application type number. If
|
||
it is not, the automatic loading of the template is disabled.
|
||
|
||
|
||
How aliasing works
|
||
|
||
|
||
Part of the mechanism of aliasing is handled by the System Screen:
|
||
e creating a new file list
|
||
e listing the appropriate files in the new file list
|
||
e allowing the user to assign a new application button to the new file list
|
||
|
||
|
||
¢ creating a suitable command line to pass to the relevant application, when the user chooses to
|
||
start an instance of the alias (by pressing ENTER on an entry in the file list).
|
||
|
||
|
||
However, other parts of the mechanism of aliasing rely on the application paying suitable attention to the
|
||
details of the command line passed to it. Failure to do this will diminish the effect.
|
||
|
||
|
||
Thus even passive aliasing relies on some cooperation from the application being aliased. For example,
|
||
an application that is determined that it knows what its public name is (say Word) and which writes this to
|
||
DatProcessNamePtr (see below) in all cases, despite any different public name being passed to it on the
|
||
command line, will frustrate the intent of any aliasing application:
|
||
|
||
|
||
e¢ any application button assigned to the alias by the user will be ineffective
|
||
¢ running instances of the alias will appear (in bold) in the wrong file list in the System Screen.
|
||
|
||
|
||
This is just one reason why all serious applications should analyse the command line passed to them, as
|
||
part of their initialisation procedures.
|
||
|
||
|
||
There are routines in both the Hwif library and the Hwim dyl to assist in analysing the command line.
|
||
|
||
|
||
2-6
|
||
|
||
|
||
2 COMMUNICATING WITH THE SYSTEM SCREEN
|
||
|
||
|
||
Epoc reserved statics
|
||
|
||
|
||
The values of the Epoc reserved statics DatProcessNamePtr, DatLocked, DatStatusNamePtr, and
|
||
DatUsedPathNamePtr all have special significance for Series 3 applications. The values of these variables
|
||
for different applications are read at various times by the System Screen and also by the Window Server.
|
||
An application which fails to write suitable data to these statics may find that:
|
||
|
||
|
||
e an incorrect name is displayed in any status window shown in the application
|
||
¢ instances of the application are shown in the wrong file list in the System Screen
|
||
|
||
|
||
¢ Shutdown or Switchfiles messages arrive at inopportune moments from the System Screen (see
|
||
below for more on these messages)
|
||
|
||
|
||
¢ assigning an application button to the application in the System Screen has no effect.
|
||
In general, applications should write to these reserved statics:
|
||
|
||
e on initialisation (after having analysed the contents of their command line)
|
||
|
||
e whenever a new file is opened
|
||
|
||
e whenever the application is about to go "busy" over an extended period of time.
|
||
|
||
|
||
There are routines in both the Hwif library and the Hwim dyl that assist with keeping these reserved
|
||
statics up to date.
|
||
|
||
|
||
While debugging using the Sibo Debugger, the values of reserved statics can be determined by using the
|
||
"Magic Statics" menu command.
|
||
|
||
|
||
DatProcessNamePtr (0x22)
|
||
|
||
|
||
This static is read by the System Screen when deciding which file lists bolded running applications should
|
||
be placed into. It is also read by the Window Server when deciding which action to take when an
|
||
application button is pressed. Finally, it is read by the System Screen in response to any "Quit
|
||
application" menu commands, to determine how to implement this request (ie how much cooperation the
|
||
System Screen might expect from the application).
|
||
|
||
|
||
The way the file lists are built in the System Screen is as follows:
|
||
e for each list, the set of all eligible files is compiled; these will all be displayed non-bolded
|
||
e then for each running application, it is decided which file list the application belongs to
|
||
e this involves reading the value of DatProcessNamePtr for the application
|
||
e further, for each running application, the name of the file currently open (if any) is decided
|
||
|
||
|
||
e this involves reading the value of patusedPathNamePtr for the application (and possibly also the
|
||
value of patProcessNamePt r)
|
||
|
||
|
||
e if this name matches any entry in the file list, that entry is removed (so that it is no longer
|
||
displayed non-bolded)
|
||
|
||
|
||
e the name of the open file is added to the list, in bold.
|
||
Clearly, the lists will be misleading if the running application is assigned to the wrong list.
|
||
The rules for assigning a running application to a particular file list are straightforward:
|
||
e the preferred public name of the application is read from patProcessNamePtr
|
||
e if this matches the public name of any existing file list, the application is assigned to that list
|
||
¢ otherwise, the application is assigned to the RunImg list.
|
||
|
||
|
||
More on the file lists in the System Screen
|
||
|
||
|
||
Incidentally, any entry starting with Sys$ is never displayed in any file list. Further, the name Link is
|
||
never displayed in the RunImg list. These rules prevent the display of private system processes within the
|
||
System Screen file lists.
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Additionally, files with the "hidden" attribute set are never displayed in a file list in the System Screen -
|
||
unless the file is open within an application (in which case it will be displayed in bold).
|
||
|
||
|
||
In order to check for the existence of hidden files or file starting with Sys$ in a directory, the user should
|
||
press TAB to enter "directory" mode of the System Screen.
|
||
|
||
|
||
It is also possible to task to an application whose open file starts with Sys$ by repeatedly pressing the
|
||
SHIFT+SYSTEM key combination, which tasks round all running applications (that are clients of the
|
||
Window Server).
|
||
|
||
|
||
Assigning application buttons
|
||
|
||
|
||
Suppose that the user has installed the application Te/e, and has assigned the application button
|
||
CONTROL+WORD to it. The following is what happens when the user presses CONTROL+WORD:
|
||
|
||
|
||
e at all times, the System Screen maintains a data structure associating each of the 14 possible
|
||
application buttons to public names of applications
|
||
|
||
|
||
e the address of this data structure, within the System Screen dataspace, is known to the Window
|
||
Server (in fact it is kept at Datapp1)
|
||
|
||
|
||
¢ when CONTROL+WORD is pressed, the Window Server consults this data to determine the public
|
||
name that is currently associated with this application button (ie Tele in this example)
|
||
|
||
|
||
e the Window Server next checks whether the public name of the current foreground application
|
||
matches Tele, reading the public name from DatProcessNamePtr
|
||
|
||
|
||
e if so, this application is sent a special key-press event, with keycode value equal to W_KEY_MODE
|
||
(as defined in wskeys.h) - unless the SHIFT modifier is also held down, in which case the
|
||
algorithm continues as below
|
||
|
||
|
||
e¢ otherwise, the clients of the Window Server are scanned in current task order, to see whether any
|
||
can be found with the required public name
|
||
|
||
|
||
e if any can be found, this is made foreground
|
||
|
||
|
||
e failing this, a message is sent to the System Screen to position, if possible, to the file list
|
||
associated with the given public name
|
||
|
||
|
||
e if no such file list exists, the System Screen beeps and gives a suitable error message.
|
||
|
||
|
||
The crucial point in this is that, once again, the public name of the application has to be written to
|
||
DatProcessNamePtr.
|
||
|
||
|
||
Incidentally, it is now clear why pressing the CONTROL+SYSTEM key (assigned to RunImg), or any other
|
||
application button assigned to a pure file list application, often fails to have the desired effect (of bringing
|
||
to foreground a running application listed in the relevant file list). The point is that these applications are
|
||
generally run without any command line being passed to them, and so they cannot set up a suitable value
|
||
at DatProcessNamePtr merely by analysing their command lines.
|
||
|
||
|
||
Also note that the assigned buttons differ in one aspect of their behaviour depending on the machine used.
|
||
Consider an application, the built-in database say, that is currently running in the foreground. On the
|
||
Series 3 pressing the Data button would change the application from search mode into change mode, and,
|
||
on a second press, back into search mode. On the Series 3a pressing the Data button has no effect when
|
||
there is currently only one copy of the application running. However when multiple copies are running,
|
||
then pressing the Data button has the effect of sequentially bringing each copy into foreground -
|
||
simultaneously holding down the shift key reverses the order of bringing into foreground. Try out the Data
|
||
button while running multiple copies of the database ...
|
||
|
||
|
||
DatUsedPathNamePtr (0x3e)
|
||
|
||
|
||
The Epoc reserved static DatUsedPathNamePtr is read solely by the System Screen, which assumes that if
|
||
it is non-null for an application, DatUsedPathNamePtr points to a full path specification of the file
|
||
currently open in the application. As described above in the section on DatProcessNamePtr, these
|
||
filenames are used when generating the file lists in the System Screen:
|
||
|
||
|
||
e any open file matching an entry in the non-bold section of the file list replaces that entry
|
||
|
||
|
||
e the filename is parsed and rearranged, eg from the form LOC::A:\WRD\SHOPPING. WRD into
|
||
Shopping[A].
|
||
|
||
|
||
2-8
|
||
|
||
|
||
2 COMMUNICATING WITH THE SYSTEM SCREEN
|
||
|
||
|
||
In case DatUsedPathNamePtr 1s null, the value of the string at patprocessNamePtr (if any) is used instead:
|
||
failing that, the process name (as returned by p_pname) is used.
|
||
|
||
|
||
Initially, the name of the open file is part of the command line (see below). However, when this has to be
|
||
changed - either as a result of an Open or Save as command inside the application, or in response to a
|
||
Switchfile request from the System Screen - a new buffer has to be used for this purpose. (The command
|
||
line buffer is sized to precisely the right length needed for the initial file.)
|
||
|
||
|
||
Typically, file-based applications will maintain a permanent buffer, of length p_rnames1zz, to store any
|
||
change in the name of the file open. Once the new name has been copied into this buffer, a call such as
|
||
hSetUpStatusNames (described below) should be made, to adjust all Epoc statics as appropriate, including
|
||
DatUsedPathNamePtr.
|
||
|
||
|
||
DatStatusNamePtr (0x3c)
|
||
|
||
|
||
The Epoc reserved static pat StatusNamePtr is used to determine which text string should be displayed as
|
||
the name of the application in any status window shown for that application.
|
||
|
||
|
||
If non-zero, this is assumed to point to a string giving the text to use, with the text being clipped at the
|
||
first dot encountered, and in any case after eight characters. The text is also converted into standard
|
||
capitalised form. Thus if patstatusNamePtr points to "DIARY.acN", the text Diary will be displayed in
|
||
the status window.
|
||
|
||
|
||
The rules for what text to display when pat statusNamePtr is null are the same as those employed when
|
||
DatUsedPathNamePtr is null (see above).
|
||
|
||
|
||
DatLocked (0x3a)
|
||
|
||
|
||
When the user attempts to terminate an application using the "Quit application" command in the System
|
||
Screen, or to change the file currently open, by pressing ENTER on another entry in the file list for that
|
||
application, the System Screen checks the value of the Epoc reserved static Dat Lockea for that application.
|
||
|
||
|
||
If this is non-zero, a message Application is busy 1s displayed, and the user's request is refused.
|
||
|
||
|
||
Applications which enter a state in which they are unable to respond to such requests from the System
|
||
Screen should accordingly set patLocked to TRUE. Good programming practice dictates that DatLocked be
|
||
set back to FALSE again as soon as possible afterwards.
|
||
|
||
|
||
The Series 3 command line
|
||
|
||
|
||
The command line communicates the following information to a Series 3 application about to start:
|
||
e the public name of the application
|
||
e the default extension for files used, if any
|
||
e any alias information specified in an alias file
|
||
e the full path name of the file to open, if any
|
||
e whether this file should be opened or created anew
|
||
¢ exceptionally, whether the application is to connect to the Window Server in background.
|
||
|
||
|
||
When a program starts, its command line is placed in an allocated cell within the heap of the application,
|
||
with the address of this cell being written to the Epoc reserved static DatcommandPtr. See the section on
|
||
p_execc in the Plib Reference manual for some general information about patcommanaPtr.
|
||
|
||
|
||
The command line for any Epoc program always starts with a zero-terminated string given the full path
|
||
name of the process being run. The byte after this gives the length of any following data. Ordinarily,
|
||
when referring to "the command line", it is this latter data that is in mind.
|
||
|
||
|
||
For example, suppose the user presses TAB inside the Prog file list in the System Screen, navigates using
|
||
the file selector to loc::m.\dat\data.dbf, and then presses ENTER. The full command line passed to the
|
||
application thereby chosen (Word) is as follows:
|
||
|
||
|
||
ROM: :WORD.APP<0><29>O0Program<0>.OPL OROPO<0>LOC: :M: \DAT\DATA.DBF<0>
|
||
|
||
|
||
2-9
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
The <29> immediately following the zero at the end of the first zero terminated string indicates that the
|
||
remainder of the command line is 0x29 bytes long - as is indeed the case.
|
||
|
||
|
||
The next byte after this is the so-called command byte:
|
||
¢ acommand byte of 'o' means, for a file-based application, that a named file is to be opened
|
||
¢ acommand byte of 'c' means, for a file-based application, that a named file is to be created
|
||
¢ acommand byte of 'D' means the application is to connect to the Window Server in background.
|
||
|
||
|
||
A command byte of 'p' arises only for the built-in applications, and is not considered in the remainder of
|
||
this documentation. (When it does arise, it is handled automatically by code in hwim.dyl, which silently
|
||
translates it into one of the other two cases.)
|
||
|
||
|
||
Following the command byte, there is a zero-terminated string giving the public name of the application.
|
||
|
||
|
||
After this comes another zero-terminated string, containing both the default extension and (if present) the
|
||
alias info. The alias info, if present, is separated from the default extension by a space.
|
||
|
||
|
||
Finally, yet another zero-terminated string gives the full path name of the file to open or create.
|
||
With regard to the above example:
|
||
|
||
e The command byte of the application is '0'
|
||
|
||
e The public name of the application is "Program"
|
||
|
||
e = The default extension is ".oPL"
|
||
|
||
e = The alias info is "oRopo"
|
||
|
||
e The name of the file to open is "Loc: :M:\DAT\DATA.DBF".
|
||
|
||
|
||
Summary of command line format
|
||
|
||
|
||
In summary, the format of the command line of a Series 3 application is as follows:
|
||
|
||
|
||
<command byte><public name><0>[<default extension>[<space><alias info>]<0><full
|
||
pathname><0>]
|
||
|
||
|
||
Supplying a command line from the SIBO Debugger
|
||
|
||
|
||
Ordinarily, applications are executed from the System Screen, which automatically constructs a suitable
|
||
command line.
|
||
|
||
|
||
When executing an application from the Debugger (or from an alternative "Shell" program), the
|
||
command line has to be supplied explicitly. Some examples follow:
|
||
|
||
|
||
@ SDBG TELE "CTELE",0,"LOC::M:\TEL\TELE.TEL" - debug the application fele giving it the public
|
||
name Tele, and have it Create the file Loc: :M: \TEL\TELE. TEL on start up
|
||
|
||
|
||
@ SDBG DA2 "ODAYS",0,"LOC::A:\ANN\DAYS.ANN" - debug the application da2 giving it the public
|
||
name Days, and have it Open the file Loc: :A: \ANN\DAYS.ANN on start up
|
||
|
||
|
||
@ SDBG JO1 "CJOKER", 0,0 - debug the application jo/ (which is not file-based), giving it the public
|
||
name Joker.
|
||
|
||
|
||
These examples take advantage of the following processing of the command line by the Sibo Debugger:
|
||
|
||
|
||
¢ parameters entered as a string ("...") are passed on to the program with a zero terminating the
|
||
string
|
||
|
||
|
||
¢ parameters given in numeric form (eg 0) are passed on to the program as single bytes
|
||
e adjacent parameters separated by commas are concatenated.
|
||
|
||
|
||
One drawback of the command line processing of the Sibo Debugger should be pointed out: everything is
|
||
automatically upper-cased. This means that if an application button has, for example, been assigned to
|
||
the public name Days, no application run in this way from the Sibo Debugger will ever be tasked to as a
|
||
result of the user pressing the corresponding application button (for public names are in general case-
|
||
sensitive).
|
||
|
||
|
||
2-10
|
||
|
||
|
||
2 COMMUNICATING WITH THE SYSTEM SCREEN
|
||
|
||
|
||
From command line to reserved statics
|
||
|
||
|
||
As mentioned earlier in this chapter, an application should analyse its command line on start-up, and
|
||
should write various values from this command line into Epoc reserved statics as a result.
|
||
|
||
|
||
As an example of how this could be done, there follows the source code for two Hwif routines:
|
||
|
||
|
||
GLDEF_C VOID hSetUpStatusNames (TEXT *pb)
|
||
|
||
|
||
{
|
||
TEXT buf [P_FNAMESIZE];
|
||
|
||
|
||
P_FPARSE crk;
|
||
|
||
|
||
DatUsedPathNamePtr=pb;
|
||
|
||
p_fparse(pb,0, &buf[0],&crk);
|
||
|
||
DatStatusNamePt r=pb+P_FSYSNAMESIZE+crk.devicetcrk.path;
|
||
}
|
||
|
||
|
||
GLDEF_C INT hCrackCommandLine (VOID)
|
||
|
||
|
||
{
|
||
INT ret;
|
||
TEXT *pb;
|
||
|
||
|
||
pb=DatCommandPtr;
|
||
pbt+=p_slen (pb) +1;
|
||
if (!*pbt+)
|
||
ret=0;
|
||
else
|
||
{
|
||
ret=(*pbtt) ;
|
||
DatProcessNamePtr=pb;
|
||
pbt+=p_slen (pb) +1;
|
||
pb+=p_slen (pb) +1;
|
||
if (*pb)
|
||
hSetUpStatusNames (pb) ;
|
||
else
|
||
DatStatusNamePtr=DatProcessNamePtr;
|
||
|
||
|
||
}
|
||
|
||
|
||
return (ret);
|
||
|
||
|
||
}
|
||
|
||
|
||
For details of the patcommandptr and other reserved statics see the Processes and Inter-Process
|
||
Messaging chapter of the Plib Reference manual.
|
||
|
||
|
||
Applications that disregard their command line
|
||
|
||
|
||
Simple applications - especially those that are not file based - have no need to pay any attention to the
|
||
command line passed to them by the System Screen. In this case, the various relevant Epoc statics are left
|
||
at their default (zero) values. This fact is picked up by the System Screen and by other parts of the OS,
|
||
with the following results:
|
||
|
||
|
||
e The name displayed in any status window and in the file list in the System Screen is just that of
|
||
the application .app file
|
||
|
||
|
||
e If the user requests the application to be shut down, from the System Screen, the application is
|
||
shut down by the OS, without the application itself being informed of this fact (just as if the user
|
||
had selected the Kill option in the System Screen).
|
||
|
||
|
||
In case an application wishes to do its own processing in response to a Shutdown request issued by the
|
||
user in the System Screen, it must therefore make a call to a routine such as hcrackCommandLine during
|
||
its initialisation. This is true even if the application is not file-based.
|
||
|
||
|
||
One final drawback of an application not processing its command line is that users will be unable to
|
||
assign application buttons with any effect to that application. Suppose a user assigns CONTROL+WORLD to
|
||
a version of the Spy application, for example, that fails to write anything suitable to patProcessNamePtr.
|
||
If the user subsequently presses the key combination CONTROL+WORLD, the Spy application will fail to be
|
||
brought into foreground - thus spoiling the whole purpose of assigning the application button.
|
||
|
||
|
||
2-11
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Creating directories when required
|
||
|
||
|
||
In contrast to file selectors on other systems, those on the Series 3 allow users to specify paths that do not
|
||
yet exist. This can happen fairly commonly, for example as follows:
|
||
|
||
|
||
e The user inserts a brand new solid state disk into drive A
|
||
e =A Save as or New file menu command is invoked
|
||
|
||
e The user adjusts the disc selector to this new disk
|
||
|
||
e The user types eg "Backup" into the filename editor.
|
||
|
||
|
||
Then assuming the default directory for the application is \D/R\ and the default extension is .EXT, the
|
||
filename returned to the application is
|
||
|
||
|
||
LOC::A\DIR\BACKUP. EXT
|
||
even though the directory \D/R\ does not exist yet, on the specified disk.
|
||
|
||
|
||
It is the responsibility of application programs to test for this case and to create the required directories.
|
||
|
||
|
||
Messages from the System Screen
|
||
|
||
|
||
Shutdown messages
|
||
|
||
|
||
Series 3 applications can receive Shutdown messages from the System Screen, as an instruction to shut
|
||
themselves down tidily, saving any changes to file as required.
|
||
|
||
|
||
These messages can arise when the user presses DELETE while highlighting a running task in the System
|
||
Screen. However, as mentioned above, if the application has set its Dat Locked to TRUE, the System Screen
|
||
instead presents an Application is busy message.
|
||
|
||
|
||
Incidentally, applications are sent Shutdown messages only if they have a non-zero value of
|
||
DatProcessNamePtr. The System Screen assumes that any application that has left this Epoc reserved
|
||
static at its default (zero) value is unlikely to be prepared to respond to Shutdown messages. In that case,
|
||
the System Screen instead calls p_pterminate to terminate the application.
|
||
|
||
|
||
Finally, note that any application which has 4000 included in its application type number will never be
|
||
sent a Shutdown message from the System Screen; instead, the System Screen will display the message
|
||
Cannot quit application. Note that this blocking mechanism was designed for internal use only, and
|
||
should not be used without good reason.
|
||
|
||
|
||
Switchfiles messages
|
||
|
||
|
||
Series 3 applications can receive Switchfiles messages from the System Screen, as an instruction to close
|
||
down their existing open file, and to open or create another one.
|
||
|
||
|
||
These messages can arise when the user presses ENTER while highlighting a file within that application's
|
||
file list in the System Screen. However, if the application has set its DatLocked to TRUE, the System
|
||
Screen instead presents an Application is busy message.
|
||
|
||
|
||
Switchfile messages will only ever be sent to applications with basic type number 2 or 3. Applications
|
||
whose type numbers include 8000 can receive Switchfile messages of the Open sort, but not of the Create
|
||
sort.
|
||
|
||
|
||
How messages from the System Screen are received
|
||
|
||
|
||
There are two parts to an applications receiving a Shutdown or Switchfiles message from the System
|
||
Screen:
|
||
|
||
|
||
e the application receives notification that some message from the System Screen has been sent
|
||
e the application calls wGet command to determine the contents of the message.
|
||
|
||
|
||
In turn, the initial notification can be received in either of two ways, depending on whether the
|
||
application is receiving events from the Window Server directly (by calling wcetEvent or a variant), or as
|
||
"extended keypresses" via the console device (as occurs for example in Hwif programs):
|
||
|
||
|
||
e for the protocol in the first case, see the discussion on wM_comMaND in the Window Server
|
||
Reference manual
|
||
|
||
|
||
e for the protocol in the second case, see the discussion on P_EVENT_READ in the Console chapter of
|
||
the I/O Devices Reference manual.
|
||
|
||
|
||
2-12
|
||
|
||
|
||
2 COMMUNICATING WITH THE SYSTEM SCREEN
|
||
|
||
|
||
In either case, the initial event prompts the application to call weet command, to obtain the so-called new
|
||
command line giving more details about the event.
|
||
|
||
|
||
Contents of the new command line for System Screen messages
|
||
|
||
|
||
The parameter passed to wGetCommand must be the address of a buffer having at least p_FNamEs1zE (128)
|
||
bytes. The new command line is written into this buffer.
|
||
|
||
|
||
The first byte of the new command line will be one of 'x', '0', or 'c!:
|
||
|
||
|
||
a means the command is a Shutdown message
|
||
‘oO! means the command is a Switchfiles message, with a specified file to be opened
|
||
mG! means the command is a Switchfiles message, with a specified file to be created.
|
||
|
||
|
||
In the case of Switchfiles messages, the remainder of the new command line gives the full pathname of the
|
||
file to open or create.
|
||
|
||
|
||
An example of code that responds to notification of a message from the System Screen is as follows:
|
||
|
||
|
||
LOCAL_C VOID ProcessSystemCommand (VOID)
|
||
|
||
|
||
{
|
||
UBYTE buf [P_FNAMESIZE];
|
||
|
||
|
||
wGetCommand (&buf[0]);
|
||
|
||
if (buf [0]=='X"')
|
||
ExitApplication();
|
||
|
||
SavelfChanged() ;
|
||
|
||
|
||
if (buf [0]=='C')
|
||
|
||
CreateNewFile (&buf[1]) /* remainder of message is ZTS of file to create */
|
||
else /* buf[0]=='0' */
|
||
|
||
OpenExistingFile(&buf[1]); /* remainder of message is ZTS of file to open */
|
||
|
||
|
||
}
|
||
Other possible types of messages
|
||
|
||
|
||
At the time of writing, the command byte of new command lines (as read by wGet commana) is restricted to
|
||
one of the three values 'x', '0', or 'c'. It is possible, however, that some future application might send
|
||
messages to other applications having different command bytes.
|
||
|
||
|
||
These messages would be sent by means of the wSendcommana function, as described in the Window Server
|
||
Reference manual. (Note that these messages are not the same thing as IPC (inter-process
|
||
communication) messages; nor are they the same as object-oriented messages.)
|
||
|
||
|
||
In order to be future proof, an application should arguably test explicitly for all expected values of the
|
||
command byte, and should ignore values other than those expected. The above code fragment would
|
||
therefore need to be modified.
|
||
|
||
|
||
Multi-lingual aliasing of Word.app
|
||
|
||
|
||
This section can be omitted by all readers, except those who wish to write a multi-lingual alias of
|
||
Word.app.
|
||
|
||
|
||
The reason why .als files as created by makeals.exe cannot be used in this case is that these files have to
|
||
contain the public name of the application being aliased. However, the public name of Word.app can vary
|
||
from language to language, and there is no facility to track this within an ordinary .als file.
|
||
|
||
|
||
To surmount this problem, the .als file can be re-written as a program.
|
||
|
||
|
||
2-13
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
For example, the following code provides a successful multi-lingual alias for Word.app:
|
||
|
||
|
||
2-14
|
||
|
||
|
||
#include <p_std.h>
|
||
#include <p_file.h>
|
||
#include <epoc.h>
|
||
|
||
|
||
#include <rscfile.xg>
|
||
|
||
|
||
#include <p_sys.h>
|
||
|
||
|
||
#define R_STRARRAY_APPNAMES 78
|
||
|
||
|
||
GLREF_D UBYTE *DatCommandPtr;
|
||
|
||
|
||
GLDEF_D TEXT olibDyl[]="OLIB.DYL";
|
||
GLDEF_D TEXT shellImg[]="ROM::SYSSSHLL.IMG";
|
||
GLDEF_D TEXT wordNameFmt []="ROM::%S.APP";
|
||
|
||
|
||
GLDEF_D TEXT aliasInfo[]={'S','R','S','C','0'};
|
||
|
||
|
||
LOCAL_C TEXT *skipStr(TEXT *p)
|
||
|
||
|
||
{
|
||
return (p+p_slen(p) +1);
|
||
}
|
||
|
||
|
||
#pragma save, ENTER_CALL
|
||
|
||
|
||
LOCAL_C INT getWordFspec (
|
||
|
||
|
||
/*
|
||
|
||
|
||
Get full file spec of Word.APP using shell's resource file.
|
||
|
||
|
||
Returns 0 if successful, leaves if error.
|
||
|
||
|
||
ay
|
||
|
||
|
||
TEXT *fSpec) /* To receive name */
|
||
{
|
||
|
||
TEXT *pAppNames;
|
||
|
||
VOID *rsc;
|
||
|
||
HANDLE cat;
|
||
|
||
|
||
p_findlib(&olibDy1l[0],é&cat) ;
|
||
rsc=f_newlibh(cat,C_RSCFILE) ;
|
||
|
||
p_send3(rsc,O_RS_INIT, &shellImg[0]);
|
||
|
||
p_send4 (rsc,O_RS_READ, R_STRARRAY_APPNAMES, &pAppNames) ;
|
||
p_atos (fSpec, &wordNameFmt [0], skipStr(pAppNames+1)); /*
|
||
p_free (pAppNames) ;
|
||
|
||
p_send2 (rsc,O_DESTROY) ;
|
||
|
||
return (FALSE) ;
|
||
|
||
}
|
||
|
||
|
||
Copy to 2nd string */
|
||
|
||
|
||
2 COMMUNICATING WITH THE SYSTEM SCREEN
|
||
|
||
|
||
#pragma restore
|
||
|
||
|
||
GLDEF_C VOID main(VOID)
|
||
|
||
|
||
TEXT fSpec[P_FNAMESIZE];
|
||
|
||
UBYTE comBuf [E_MAX_COMMAND_BUFFER+1];
|
||
TEXT *pCommand;
|
||
|
||
TEXT *pAlias;
|
||
|
||
TEXT *pEndAlias;
|
||
|
||
TEXT *p;
|
||
|
||
HANDLE pId;
|
||
|
||
INT len;
|
||
|
||
|
||
p=skipStr(DatCommandPtr) ;
|
||
len=(*p);
|
||
pCommand=(pt1) ;
|
||
|
||
|
||
pAlias=skipStr (pCommand) ;
|
||
pEndAlias=skipStr(pAlias)-1; /* Point to end 0 */
|
||
|
||
|
||
p=p_bcpy (&comBuf [0], pCommand, pEndAlias-—pCommand) ;
|
||
p=p_bcpy (p, &aliasInfo[0],sizeof(aliasInfo) );
|
||
p_bcpy (p, pEndAlias, len- (pEndAlias-—pCommand) ) ;
|
||
|
||
|
||
if ((pId=p_enter2 (getWordFspec, &fSpec[0]) ) <0)
|
||
|
||
|
||
goto fail;
|
||
if ((pId=p_execc (&fSpec[0],&comBuf[0],len+5))<0) /* Run Word */
|
||
goto fail;
|
||
p_setpri(pId,p_getpri(p_getpid())-1);
|
||
pid=p_presume (pId) ; /* Won't run till I've exited */
|
||
|
||
|
||
fail:
|
||
p_exit (pId);
|
||
}
|
||
|
||
|
||
This program uses the fact that the filename of the Word.app application is always stored in the 78th
|
||
resource within the resource file of the shell application. (Hence the #define of R_STRARRAY_APPNAMES aS
|
||
78.) This resource actually contains an array of strings giving the filenames of the built-in applications,
|
||
with the filename of Word.app as the second element in the array.
|
||
|
||
|
||
See the chapter Resource Files in the Additional System Information chapter for background on creating
|
||
and using an instance of the rscfile class.
|
||
|
||
|
||
The program also analyses its own command line, and constructs a suitable one to pass on to Word.app.
|
||
The detailed working of the program can be followed using the information given earlier in this chapter.
|
||
|
||
|
||
2-15
|
||
|
||
|
||
CHAPTER 3
|
||
|
||
|
||
ENHANCED SOUND OUTPUT
|
||
|
||
|
||
Introduction
|
||
|
||
|
||
The Series 3 and Series 3a provide distinct sets of sound services.
|
||
|
||
|
||
The Series 3 as supplied can emit only buzzer sounds, DTMF dialling tones, and simple alarm sounds.
|
||
However, by loading a suitable device driver, such as SVDFRC.LDD, the machine can also be made to
|
||
emit sequences of musical notes of variable duration, thus greatly extending its sound capabilities. The
|
||
first section of this chapter describes use of the SVDFRC.LDD attached device driver from within a simple
|
||
demonstration program.
|
||
|
||
|
||
The Series 3a has considerably greater sound capabilities than the Series 3. In addition to emitting buzzer
|
||
sounds, DTMF dialling tones and simple alarm sounds, the Series 3a can play simultaneously two
|
||
sequences of musical notes, and can play and record digital sound files - for details of playing and
|
||
recording digital sound files see the General System Services chapter of the Plib Reference manual. The
|
||
second section of this chapter describes a simple program that demonstrates the playing of sequences of
|
||
notes using the built-in snp: device driver.
|
||
|
||
|
||
Warning: any attempt to load and use the SVDFRC.LDD attached device driver on the Series 3a is a
|
||
serious error - the machine will in all probability hang, necessitating a soft reset.
|
||
|
||
|
||
Sound on the Series 3
|
||
|
||
|
||
Introduction
|
||
|
||
|
||
This section explains how to create a wider range of musical sound output, via the loudspeaker, than is
|
||
possible by merely using the Series 3's built-in snp: device driver.
|
||
|
||
|
||
These services rely on a dynamic extension to the Series 3 operating system, known as a loadable device
|
||
driver.
|
||
|
||
|
||
With this device driver installed, strings of sound covering two octaves in semitone intervals can be
|
||
generated. Control is also possible over the duration and loudness of the notes emitted.
|
||
|
||
|
||
The sndfre and snddvr device drivers
|
||
|
||
|
||
The chapter Example Device Drivers in the Additional System Information manual describes two different
|
||
enhanced sound drivers, sndfrc.ldd and snddvr.ldd, from the point of view of how to write device drivers.
|
||
The current chapter focuses on the question, not how to write these drivers, but how to use them.
|
||
|
||
|
||
In fact, this chapter only considers the driver sndfrc.ldd, which is arguably the superior of the two. See
|
||
Example Device Drivers for a discussion on how the two device drivers differ.
|
||
|
||
|
||
Once this device driver file has been installed, a device with the name mus: can be opened by applications.
|
||
|
||
|
||
Installing sndfre.ldd
|
||
|
||
|
||
Any program which wishes to use the services of sndfrc.ldd needs to check, during its initialisation, that
|
||
this driver has been installed. This is necessary because, in contrast to some other device drivers such as
|
||
the serial port device driver and the basic sound device driver, the mus: device driver is not built into the
|
||
ROM of the Series 3.
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
The way to check the device driver is loaded is to make the call
|
||
p_loadldd("SNDFRC.LDD") ;
|
||
where the full path of the ./dd file can be given. (The ./dd file has to be copied onto the Series 3.)
|
||
|
||
|
||
The return values zero and &_FILE_Ex1StT can both happily be ignored. Other errors are more serious -
|
||
they probably mean that the file sndfrc.ldd cannot be located. In this case, the program cannot continue (at
|
||
least, not as according to its original intention).
|
||
|
||
|
||
Opening a channel to MUS:
|
||
|
||
|
||
Another pre-requisite to using the services of sndfrc.ldd is to open a channel to uus:. This is done in the
|
||
standard manner for all i/o devices:
|
||
|
||
|
||
p_open (&handle, "MUS:",-1);
|
||
|
||
|
||
If this call is successful, it writes back the handle of the channel established to the device driver. All
|
||
subsequent requests from the program (until such time as the channel is closed) should be made via this
|
||
handle.
|
||
|
||
|
||
Possible errors from the p_open call include:
|
||
|
||
|
||
e "invalid arguments" - which probably means sndfrc.ldd has not been installed (or, having once
|
||
been installed, it has since been de-installed)
|
||
|
||
|
||
e "in use" or "locked" - another application is currently making use of the loudspeaker.
|
||
|
||
|
||
In the second of these two cases, a brief retry philosophy might be adopted. If the channel still cannot be
|
||
opened, a suitable error message should be displayed - leaving it up to the user to retry at some later time.
|
||
|
||
|
||
Actually creating sounds
|
||
|
||
|
||
The way sounds are actually caused to be emitted is by using the P_FwRITE service of the mus: channel.
|
||
|
||
|
||
As for all device drivers, the P_FWRITE request can be made synchronously (eg using the utility function
|
||
p_write) or, for more quality applications, asynchronously. If the request is made asynchronously, it
|
||
allows the use of the P_FCANCEL service to interrupt and terminate a sequence of notes as they are playing.
|
||
|
||
|
||
For example,
|
||
p_ioc5 (handle, P_FWRITE, &musstat, &buf[0],é&len);
|
||
to play a buffer of notes asynchronously.
|
||
|
||
|
||
The parameter len (passed by reference) gives the number of notes in the buffer. The maximum allowed
|
||
value of 1en is 500. (For arbitrarily long sequences of notes, call the Pp_FwRITE service more than once.)
|
||
|
||
|
||
Each note is specified by one uworp in the buffer - so that but would be declared as
|
||
UWORD buf[ ]
|
||
For each note, the uworp contains three pieces of information: tone, length, and loudness.
|
||
|
||
|
||
There are only four possible values of loudness: 0 (the quietest), 1, 2, and 3 (the loudest). The loudness is
|
||
multiplied by 64 before being added into the uworp for the note.
|
||
|
||
|
||
The duration is measured in 1/100ths of a second, and can have any value from 1 to 255. The duration is
|
||
multiplied by 256 before being added into the uworp for the note.
|
||
|
||
|
||
The allowed values of tone range in principle from 0 to 0x3£. See below for more details.
|
||
|
||
|
||
3 ENHANCED SOUND OUTPUT
|
||
|
||
|
||
Example
|
||
|
||
|
||
#include <p_std.h>
|
||
#include <p_file.h>
|
||
#include <epoc.h>
|
||
|
||
|
||
GLDEF_C INT main(VOID)
|
||
{
|
||
INT ret;
|
||
VOID *mcb;
|
||
UWORD buf[10];
|
||
UWORD len;
|
||
WORD musstat;
|
||
|
||
|
||
ret=p_loadldd("SNDFRC.LDD") ;
|
||
if (ret && ret!=E_FILE_EXIST)
|
||
return (ret);
|
||
ret=p_open (&mcb, "MUS:",-1);
|
||
if (ret)
|
||
return (ret);
|
||
=0x30+ (40<<8) ;
|
||
=0x32+ (100<<8) ;
|
||
buf =0x34+ (40<<8) + (1<<6);
|
||
|
||
|
||
buf [0
|
||
i
|
||
2
|
||
buf [3] =0x35+ (100<<8) + (1<<6);
|
||
4
|
||
5
|
||
6
|
||
|
||
|
||
buf
|
||
|
||
|
||
buf =0x37+ (40<<8) + (2<<6);
|
||
|
||
=0x39+ (100<<8) + (2<<6) ;
|
||
|
||
buf =0x29+ (40<<8) + (3<<6);
|
||
|
||
buf [7] =0x3b+ (100<<8) + (3<<6);
|
||
|
||
len=8;
|
||
|
||
p_ioa5 (mcb, P_FWRITE, &musstat, &ébuf[0],é&len);
|
||
p_iowait ();
|
||
|
||
return (0);
|
||
|
||
|
||
}
|
||
|
||
|
||
buf
|
||
|
||
|
||
This plays a scale of eight notes, with notes having wavering length and increasing loudness.
|
||
|
||
|
||
Possible tones
|
||
|
||
|
||
There are three types of tones that the Series 3 loudspeaker hardware can emit: DTMF tones, modem
|
||
tones, and musical tones.
|
||
|
||
|
||
For standard dual DTMF tones, set the tone part of the uworp to: 0x10 for DTMF digit 0, 0x11 for digit 1,
|
||
..., 0x19 for digit 9, ox1a for "digit" a, ..., 0x1d for "digit" 4d, ox1e for *, and ox1¢ for #.
|
||
|
||
|
||
For modem tones, 0x24 gives 1300 Hz, 0x25 gives 2100 Hz, then 1200, 2200, 980, 1180, 1070, 1270, 1650,
|
||
1850, 2025, and 0x2f gives 2225 Hz.
|
||
|
||
|
||
As for musical tones, twenty five notes are possible, incrementing by semi-tones over a 2-octave interval
|
||
from p#5 to p#7. The corresponding tone values are 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
|
||
0x39, 0x3a, 0x29, 0x3b, 0x3c, 0x3d, 0x0e, 0x3e, 0x2c, 0x3f, 0x04, 0x05, 0x25, Ox2£, 0x06, and 0x07.
|
||
|
||
|
||
Pauses
|
||
In order to pause, in the middle of a buffer of notes, set the tone value to o for one note.
|
||
When to open and close MUS:
|
||
|
||
|
||
An application that makes use of mus: services from time to time ought to call p_close to free the sound
|
||
channel whenever it is not immediately needed. This allows other applications to make temporary use of
|
||
the sound channel - eg for alarms or for standard DTMF dialling dialogs.
|
||
|
||
|
||
If you wrote a game which opened mus: at its beginning, and only made sounds from time to time, and left
|
||
this game in background while you went to the Data application to look up a telephone number, you
|
||
would find the DTMF dialler would be unable to emit any sounds, and would report "Sound system in
|
||
use" - even though the game is silent at the time.
|
||
|
||
|
||
Far better in these situations for a program to open mus: just before it needs to use this channel, and then
|
||
close it again immediately afterwards.
|
||
|
||
|
||
3-3
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
When to install and de-install the Idd file
|
||
|
||
|
||
Once sndfrc.ldd has been installed, it occupies about 1.7 K of RAM. For this reason, it would seem to be
|
||
best to de-install it, when the application terminates. The way to do this is to call (see the Plib Reference
|
||
manual for more details)
|
||
|
||
|
||
p_devdel ("MUS:",E_LDD) ;
|
||
|
||
|
||
This call will fail if another application currently has an open channel to mus:. Applications should ignore
|
||
any errors from p_devdel.
|
||
|
||
|
||
Note however that if an application has:
|
||
e ~=called p_loadidd to ensure mus: can be found
|
||
e called p_open to open a channel to mus:
|
||
e played some notes
|
||
e called p_close to free up the sound channel
|
||
|
||
|
||
then it cannot rely on mus: still being installed if it calls p_open again at a later stage. For another
|
||
application may have called p_devde1, successfully, in the meantime.
|
||
|
||
|
||
The upshot of this is that applications should call p_1oadidd prior to any call to open a channel to mus:.
|
||
|
||
|
||
Sound on the Series 3a
|
||
|
||
|
||
This section does not make reference to the recording and playing of digital sound - for details see the
|
||
General System Services chapter of the Plib Reference manual.
|
||
|
||
|
||
The Series 3a's built-in snp: device driver can be used to simultaneously play two tunes on the built-in
|
||
speaker. Although the sound quality is not as high as with digital sound files, the memory requirements
|
||
are much less. For example to play a tune lasting six seconds would require a digital sound file of size
|
||
49,184 bytes. A comparable figure using the snp: device driver would be less than 1 Kb.
|
||
|
||
|
||
The demonstration program sound.c (in \SIBOSDK\DEMO on the supplied disks) plays two sequences of
|
||
notes using both channels of the built-in snp: sound device driver (only one application can have access to
|
||
these channels at any given time). The tune is the so-called "ice cream van" tune that you may already
|
||
have met in the Sound chapter of the i/o Devices manual - it is in any case recommended that you read
|
||
that chapter before proceeding.
|
||
|
||
|
||
The program demonstrates the following:
|
||
e the opening and closing of a channel to the snp: device driver.
|
||
e the sensing and setting of the volume level and the number of beats per minute.
|
||
e the writing of notes to the two sound channels.
|
||
|
||
A number of points are worth making:
|
||
|
||
|
||
e aside effect of opening a channel to the snp: device driver is to power up the speaker. As a
|
||
consequence the snp: channel should be closed as soon as the sound has been played - failure to
|
||
do so could unnecessarily drain the batteries.
|
||
|
||
|
||
e the snp: device driver, and hence the speaker, can only be used by one application at a time. As
|
||
alarms and keyclicks will be disabled well written programs should close the snp: channel as
|
||
soon as the sound has been played.
|
||
|
||
|
||
e a serious of notes separated by silences can be created by setting the frequency to zero during the
|
||
silent periods.
|
||
|
||
|
||
e the sound will not play until a p_rFsSoUNDCHANNELn request has been made on both channels. The
|
||
playing of sound on the two channels is thus automatically synchronised.
|
||
|
||
|
||
e both p_FSSOUNDCHANNELn requests must be made asynchronously using p_ioc or the p_ioc5
|
||
variant. On a low battery the request will fail to complete with an error message written to the
|
||
status word. Use of p_iow, p_iow4, p_ioa and/or p_ioa5 would hang the machine on a low
|
||
battery - a very serious programming error.
|
||
|
||
|
||
3-4
|
||
|
||
|
||
3 ENHANCED SOUND OUTPUT
|
||
|
||
|
||
e sound can be played on only one channel by passing the other channel a length of zero for the
|
||
note buffer - i.e. zero notes.
|
||
|
||
|
||
e the P_FSET service sets both the volume and the beats per minute. The P_FSENSE service can
|
||
be requested first to ensure that one or other parameter remains unchanged.
|
||
|
||
|
||
To create a sound.img file simply type make sound in the appropriate directory. This file can then be
|
||
copied to a m:\img directory on the Series 3a and run via the RunImg application in the usual manner.
|
||
|
||
|
||
The code in sound.c is as follows:
|
||
|
||
|
||
#include <p_std.h>
|
||
#include <p_file.h>
|
||
#include <epoc.h>
|
||
|
||
|
||
GLDEF_C VOID waitstat2(WORD *pstatl, WORD *pstat2)
|
||
|
||
|
||
/* Wait for *pstat!=E_FILE_PENDING and *pstat2 != E_FILE_PENDING */
|
||
|
||
|
||
INT i;
|
||
|
||
|
||
i= -1;
|
||
|
||
|
||
{
|
||
|
||
|
||
p_iowait ();
|
||
|
||
|
||
Fa
|
||
|
||
}
|
||
|
||
while (*pstatl == E_FILE_PENDING && *pstat2 == E_FILE_PENDING) ;
|
||
if (*pstat2 == E_FILE_PENDING)
|
||
|
||
|
||
pstatl = pstat2;
|
||
p_waitstat (pstat1);
|
||
|
||
|
||
while (i--)
|
||
p_iosignal();
|
||
}
|
||
|
||
|
||
GLDEF_C VOID play_notes(WORD *bufl, WORD *buf2, WORD 11, WORD 12, INT volume, INT
|
||
beatsPerMinute)
|
||
|
||
|
||
{
|
||
|
||
VOID *pcb;
|
||
|
||
WORD sndstat1l,sndstat2;
|
||
E_SOUND sound;
|
||
|
||
INT err;
|
||
|
||
|
||
if ((err=p_open (&pcb, "SND:",-1) ) <0)
|
||
{
|
||
p_close (pcb);
|
||
p_exit (err);
|
||
|
||
|
||
}
|
||
|
||
|
||
if ((err=p_iow3 (pcb, P_FSENSE, &sound) ) <0)
|
||
{
|
||
p_close (pcb);
|
||
p_exit (err);
|
||
|
||
|
||
}
|
||
|
||
|
||
if (beatsPerMinute >= 0)
|
||
sound.beatsPerMinute = (UBYTE) beatsPerMinute;
|
||
|
||
|
||
if (volume >= 0)
|
||
sound.volume = (UBYTE) volume;
|
||
|
||
|
||
if ((err=p_iow3 (pcb, P_FSET, &sound) ) <0)
|
||
{
|
||
p_close (pcb);
|
||
p_exit (err);
|
||
|
||
|
||
}
|
||
|
||
|
||
3-5
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
p_ioc5 (pcb, E_FSSOUNDCHANNEL1, &ésndstat1, &buf1[0],&11);
|
||
p_ioc5 (pcb, E_FSSOUNDCHANNEL2, &ésndstat2, &buf2[0],&12);
|
||
waitstat2 (&sndstat1l, &ésndstat2) ;
|
||
|
||
|
||
p_close (pcb);
|
||
|
||
|
||
if (sndstat1 != 0 || sndstat1 != 0)
|
||
p_exit (0));
|
||
|
||
|
||
}
|
||
GLDEF_C INT main(VOID)
|
||
|
||
|
||
{
|
||
|
||
|
||
WORD notes1[] = {1048,24,524,12};
|
||
WORD notes2[] = {1048,4,1320,4,1568,4,2092,4,1568,4,1320,4,1048,12};
|
||
WORD lenl = sizeof (notes1)/4,len2 = sizeof (notes2) /4;
|
||
|
||
INT i;
|
||
|
||
for (i = 0; i < 6; i++)
|
||
|
||
|
||
{
|
||
|
||
play_notes (¬es1[0],&énotes2[0],len1l,len2,i,-1)
|
||
p_sleep (1);
|
||
|
||
}
|
||
|
||
|
||
for (i = 0; i < 6; i++)
|
||
{
|
||
play_notes (¬es1[0],&énotes2[0],lenl,len2,-1,140 + i*20)
|
||
p_sleep (1);
|
||
}
|
||
return (0);
|
||
|
||
|
||
}
|
||
|
||
|
||
The main routine initialises the note buffers, then repeatedly passes the buffers, the buffer lengths, the
|
||
volume and the beats per minute, to the subroutine play_sound that plays the tune. The tune is repeated
|
||
first at the default beats per minute for all six allowed volume levels, and then at the default volume for
|
||
six values of the beats per minute. The default is specified by passing a negative integer for the volume
|
||
and/or the beats per minute.
|
||
|
||
|
||
The subroutine play_sound opens the snp: channel, senses and sets the volume and beats per minute,
|
||
plays the notes and closes the snp: channel. In the case of an error in, for example, sensing, play_sound
|
||
closes the snp: channel and returns with an error code. As mentioned earlier it is essential that the
|
||
P_FSSOUNDCHANNELn requests be made asynchronously using either p_ioc or p_iocs5 Plib library routines,
|
||
as these guarantee completion even in the event of low batteries.
|
||
|
||
|
||
A large fraction of the code in play_sound is concerned with error checking in order to ensure that the
|
||
routine behaves in a sociable way. In particular the snp: channel is closed as soon as an error is
|
||
discovered so to conserve power - this is essential when running on batteries and such measures should be
|
||
standard in any quality application.
|
||
|
||
|
||
The subroutine waitstat waits on the process i/o semaphore until completion of the two asynchronous
|
||
requests specified by the pstat1 and pstat2 status words (for further details of such matters see the
|
||
Asynchronous Requests and Semaphores chapter of the Plib Reference library). It is in fact a version of
|
||
the Plib library routine p_waitstat that waits on two status words rather than one.
|
||
|
||
|
||
The return (0) statement at the end of the main routine informs the Series 3a that the program has ended
|
||
normally: it can also be omitted entirely. Use of the return statement with no return value is not
|
||
recommended: in practice this will return a random error code possibly leading to the display of a
|
||
spurious full screen error message.
|
||
|
||
|
||
3-6
|
||
|
||
|
||
CHAPTER 4
|
||
|
||
|
||
USE OF SPY.APP
|
||
|
||
|
||
Introduction
|
||
|
||
|
||
This chapter describes the Spy application for the Series 3. This application contains many features that
|
||
may help to "debug" problems with applications on the Series 3.
|
||
|
||
|
||
The version of Spy described in this chapter is suitable for use on both the Series 3 and the Workabout,
|
||
and can also be used on the Series 3a. A built version of spy.app that is specifically designed for use on
|
||
the Series 3a will be found, following installation of the core SDK software, in the \sibosdk\s3atool
|
||
directory.
|
||
|
||
|
||
Building spy.app
|
||
|
||
The Spy application is released in source form, as one of the Hwif demonstration programs.
|
||
|
||
To build it, proceed in the same way as to build any of the other Hwif demonstration programs:
|
||
e¢ move into the \sibosdk\hwdemo directory
|
||
e type make spy
|
||
|
||
|
||
e the resulting image file spy.img can be renamed to spy.app and copied into a \app directory on
|
||
the Series 3 or the Workabout
|
||
|
||
|
||
e the application can be installed in the System Screen and, on the Series 3, even assigned an
|
||
application button - eg CONTROL+WORLD.
|
||
|
||
|
||
The main display
|
||
|
||
|
||
The main display is a scrolling list of processes currently running on the Series 3. The Change processes
|
||
menu option allows customisation of which processes are shown. "System" processes are simply ones
|
||
whose names start with "Sys$", and include:
|
||
|
||
|
||
e — sys$shil - which the user sees as the System Screen
|
||
¢ —sys$wsrv - the Window Server, which coordinates access to the screen and keyboard
|
||
e — sys$fsrv - the File Server, which coordinates access to the filing systems
|
||
|
||
|
||
e —sys$mang - the Manager, which keeps track of all resources used by processes (so that, for
|
||
example, they can be properly tidied whenever processes exit)
|
||
|
||
|
||
e — sys$ncp - the "brains" behind Remote Link (when it is running).
|
||
|
||
|
||
The Null process, sys$null, which performs the vital task of switching the Series 3 off following sufficient
|
||
inactivity, is omitted from the list displayed, for various technical reasons.
|
||
|
||
|
||
First letter matching works in the main window, so that eg pressing 'C' enough times will position the
|
||
highlight to the Calc process.
|
||
|
||
|
||
Arrows are drawn in the top right and bottom right corner, Agenda-wise, whenever there are more
|
||
processes beyond the visible boundaries of the list.
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
The data displayed is updated every time Spy comes into foreground, and also whenever the Update menu
|
||
option is selected. By default, it is also updated regularly on a timer, though this can be disabled by a
|
||
menu option. The Refresh rate option governs how frequently updates take place, when the timer is
|
||
enabled.
|
||
|
||
|
||
There are in all twelve pieces of data that can be displayed for each process, but only three of these can be
|
||
seen at any one time. Use the Change data menu option to choose which.
|
||
|
||
|
||
Many of the data items can be meaningfully displayed either in Hex or in Decimal. Another menu option
|
||
controls this.
|
||
|
||
|
||
Heap statistics
|
||
|
||
|
||
Five of the twelve possible items of data concern the allocator heap of the process. Each process has its
|
||
own heap, which can vary in size according to the needs of the program. Thus a Word Processor editing a
|
||
large document will typically have a larger heap than a Word Processor editing a smaller document.
|
||
|
||
|
||
Each heap is divided into "alloced cells" and "free cells". The items "Cells allocated" and "Cells free"
|
||
count these, and the items "Bytes allocated" and "Bytes free" sum how many bytes belong in each
|
||
category.
|
||
|
||
|
||
This data can be of great help in developing applications. It is of course vital that an application frees
|
||
cells it no longer requires - otherwise these cells go to what is called "alloc heaven". Something to watch
|
||
for in particular is alloc heaven following an out-of-memory failure. Typically, a process such as
|
||
launching a dialog involves a number of different allocs; if any one of these fails, all the allocs which have
|
||
already succeeded must be undone. System code provides mechanisms such as "automatic destruction"
|
||
and "automated clean-up" to help applications here, but applications can use these incorrectly at times -
|
||
hence the need for real-time checking.
|
||
|
||
|
||
Stack statistics
|
||
|
||
|
||
Whenever a process starts, its stack is filled up with oxrr's. This makes it easy to see how much stack has
|
||
been used, at any one time. Quality programs need to avoid having too large a stack - the built-in
|
||
applications default to a stack of 0xa00. On the other hand, the operating system panics them (panic 69)
|
||
if it ever discovers that their stack is less than 0x100. This is because whenever an interrupt occurs, it
|
||
runs in the stack of the current process.
|
||
|
||
|
||
The Reset least stack menu option simply refills the bottom of the process's stack with oxFF's (ie up to its
|
||
present stack pointer).
|
||
|
||
|
||
Segment statistics
|
||
|
||
|
||
The "Segment size" of a process gives the size of its data segment - which consists of the heap, static data
|
||
private to the application, the stack, and finally the Epoc reserved statics at the bottom end. The quoted
|
||
"Segment size" of an application can sometimes give a misleading account of how much memory it is
|
||
actually using - since there are free cells as well as alloced cells in the heap. From time to time, the
|
||
operating system may try to compress these heaps, but it can only do this by removing any free cells at the
|
||
end of the heap. Applications should strive to avoid ending up with large free cells in the middle of their
|
||
heap - though this is a very difficult goal to achieve.
|
||
|
||
|
||
Tests for heap integrity
|
||
|
||
|
||
Whenever Spy collects heap statistics for an application, it also checks the heap integrity. Any defect
|
||
(caused for example by writing beyond the end of an alloc cell, or freeing a cell that was never alloced)
|
||
results in an immediate alert. This alert helps to pin-point problems which would otherwise only rear
|
||
their head much later - long after the real damage has been done.
|
||
|
||
|
||
Process priorities
|
||
|
||
|
||
The Process Priority gives the pecking order of the processes, as regards gaining CPU from the multi-
|
||
tasking scheduler. Most applications the user sees run at 0x80 when in foreground, and at 0x70 when in
|
||
background. This prevents computationally busy background tasks from detracting from the performance
|
||
of the foreground task.
|
||
|
||
|
||
Spy momentarily ups its own priority to a massive 0xc0 (the maximum allowed to non-OS processes)
|
||
whenever it collects heap statistics from other processes, to lessen the chances of other processes
|
||
manipulating their heaps at the same time as Spy is walking through them. Occasionally, Spy will find
|
||
that a heap is momentarily marked as "locked" when it tries to survey it - this indicating that the
|
||
Operating System is busy doing something there - in which case the heap statistics will all just be shown
|
||
as 0 for that process.
|
||
|
||
|
||
4 USE OF SPY.APP
|
||
|
||
|
||
Other data
|
||
|
||
|
||
The "Process ID" of a process is essentially the address of the control block of the application in the
|
||
Operating System data space, although the top nibble reflects how many times that same slot has been re-
|
||
used since the last reset (the top nibble will therefore always be zero for sys$mang, sys$fsrv, and
|
||
sys$wsrv). When processes talk to each other, for example in conjunction with the Bring menu option,
|
||
they need to know each other's PID ("Process ID").
|
||
|
||
|
||
The IO Semaphore count basically keeps track of how many outstanding events a process has to respond
|
||
to. This will usually be -1 or zero, but if you task to the System Screen and then straight back to Spy
|
||
again, you may see the count for sys$shll momentarily go as high as three.
|
||
|
||
|
||
Logging Window Server statistics
|
||
|
||
|
||
The menu command Log client produces information in text file form as to the structure of the windows,
|
||
GCs, fonts, bitmaps, and other Window Server objects "owned" by an application. This information may
|
||
of use in determining why certain drawing fails to appear on the screen. For example, it may be that a
|
||
window is positioned wrongly, that the window is obscured by another, or that the current GC is set up
|
||
incorrectly - any such failure can be seen from the log file.
|
||
|
||
|
||
The menu command Log all clients repeats this process for all the clients of the Window Server.
|
||
|
||
|
||
The Log client command can, in effect, be invoked even when Spy is in background. Just press the key
|
||
combination SHIFT+CONTROL+PSION+N and a dump of the Window Server object usage of the foreground
|
||
application will be created - by default in the file \oepAwsreport.lis. (This feature works because Spy has
|
||
"captured" this key combination.)
|
||
|
||
|
||
APPENDIX A
|
||
|
||
|
||
TECHNICAL SPECIFICATIONS
|
||
|
||
|
||
Psion's continuing product development and improvement programs mean that specifications and features
|
||
are subject to change at any time and without notice.
|
||
|
||
|
||
Psion Series 3a Technical Specification
|
||
|
||
|
||
Physical characteristics
|
||
|
||
|
||
Part numbers:
|
||
|
||
|
||
Size
|
||
Weight
|
||
|
||
|
||
Screen
|
||
|
||
|
||
Keyboard
|
||
|
||
|
||
Sound and recording
|
||
|
||
|
||
Power supply
|
||
Internal
|
||
Backup
|
||
|
||
|
||
External
|
||
|
||
|
||
Memory
|
||
|
||
|
||
Built in
|
||
|
||
|
||
System information
|
||
Processor
|
||
|
||
|
||
Operating system
|
||
|
||
|
||
1600-0029-10 (256KB)
|
||
1600-0025-10 (512KB)
|
||
1600-0080-10 (1MB)
|
||
1600-0082-10 (2MB)
|
||
|
||
|
||
165mm x 85mm x 22mm (6.5"x 3.0"x 0.9").
|
||
275g (including batteries).
|
||
|
||
|
||
480 x 160 pixel high contrast retardation film LCD.
|
||
Size 131.6mm x 45.2mm, (4.915" x 1.637").
|
||
|
||
Pixel pitch 0.26mm x 0.26mm
|
||
|
||
Pixel size 0.23mm x 0.23mm.
|
||
|
||
|
||
58 key, QWERTY layout, computer style keyboard (UK models).
|
||
8 touch sensitive icon buttons for application selection.
|
||
|
||
|
||
Loudspeaker with DTMF dialling and digital sound playback.
|
||
Microphone for digital sound recording.
|
||
|
||
|
||
2 x AA batteries.
|
||
3V Lithium CR1620 battery.
|
||
|
||
|
||
A Psion Series 3 mains adaptor, (9-11V 250mA), (Note: earlier models 175mA).
|
||
Vehicle power adaptor (24v & 12v cigarette lighter sockets), from Jan/Feb 1997.
|
||
|
||
|
||
2MB or IMB Masked ROM and 2MB, 1MB, 512KB or 256KB RAM.
|
||
Two SSD drives allow extra storage space on Flash/RAM SSDs, up to 8MB.
|
||
|
||
|
||
NEC V30H running at 7.68MHz.
|
||
|
||
|
||
EPOC.
|
||
Microsoft MS-DOS compatible Flash Filing System.
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Expansion
|
||
|
||
|
||
Peripherals
|
||
|
||
|
||
Socket:
|
||
|
||
|
||
Environment
|
||
|
||
|
||
Operating temperatures
|
||
EMC
|
||
|
||
|
||
External peripherals (such as a modems and printers) can be connected via a
|
||
fast serial interface (1.536 Mbits/sec), which accepts optional 3Link parallel
|
||
and serial interfaces. The Serial 3Link allows communication with other
|
||
computers.
|
||
|
||
|
||
PC Card adapter. SMS cables for Nokia and Orange mobile phones.
|
||
3Fax fax modem, (superseded by PC Card adapter).
|
||
|
||
|
||
6-way two row rectangular (male, with retracting protective cover).
|
||
See the section ‘The 15-way SIBO/RS232 connector’ in the 'SIBO Expansion
|
||
Ports' chapter in the Hardware Reference manual for pinout details.
|
||
|
||
|
||
O°C to 50°C.
|
||
FCC Part 15 Class B; CE Mark
|
||
|
||
|
||
Psion Series 3/3s Technical Specification
|
||
|
||
|
||
These models are no longer in production.
|
||
|
||
|
||
Physical characteristics
|
||
|
||
|
||
Size
|
||
Weight
|
||
|
||
|
||
Screen
|
||
|
||
|
||
Keyboard
|
||
|
||
|
||
Sound
|
||
|
||
|
||
Power supply
|
||
Internal
|
||
Backup
|
||
|
||
|
||
External
|
||
|
||
|
||
Memory
|
||
Built in
|
||
|
||
|
||
System information
|
||
Processor
|
||
|
||
|
||
Operating system
|
||
|
||
|
||
165mm x 85mm x 22mm (6.5"x 3.0"x 0.9").
|
||
265g (including batteries).
|
||
|
||
|
||
240 x 80 pixel high contrast retardation film LCD.
|
||
Size 97.3mm x 38.9mm.
|
||
|
||
Pixel pitch 0.385mm x 0.43mm
|
||
|
||
Pixel size 0.355mm x 0.4mm.
|
||
|
||
|
||
58 key, QWERTY layout, computer style keyboard (UK models).
|
||
8 touch sensitive icon buttons for application selection.
|
||
|
||
|
||
Piezo buzzer.
|
||
Loudspeaker with DTMF dialing.
|
||
|
||
|
||
2 x AA batteries.
|
||
3V Lithium CR1620 battery.
|
||
|
||
|
||
A Psion Series 3 mains adaptor, (9-11V 250mA), (Note: earlier models
|
||
175mA).
|
||
|
||
Vehicle power adaptor (24v & 12v cigarette lighter sockets), from Jan/Feb
|
||
1997.
|
||
|
||
|
||
Series 3 has 384KB or 512KB Masked ROM and 128KB or 256KB RAM,
|
||
Series 3s has 512KB Masked ROM and 256KB RAM.
|
||
|
||
|
||
Two SSD drives allow extra storage space on Flash/RAM SSDs, up to 8MB.
|
||
|
||
|
||
NEC V30H running at 3.84MHz.
|
||
|
||
|
||
EPOC.
|
||
Microsoft MS-DOS compatible Flash Filing System.
|
||
|
||
|
||
Expansion
|
||
|
||
|
||
Peripherals
|
||
|
||
|
||
Socket:
|
||
|
||
|
||
Environment
|
||
|
||
|
||
Operating temperatures:
|
||
|
||
|
||
EMC:
|
||
|
||
|
||
APPENDIX A: TECHNICAL SPECIFICATIONS
|
||
|
||
|
||
External peripherals (such as a modems and printers) can be connected via
|
||
the fast serial interface (1.536 Mbits/sec), which accepts optional 3Link
|
||
parallel and serial interfaces. The Serial 3Link allows communication with
|
||
other computers.
|
||
|
||
|
||
6-way two row rectangular (male, with retracting protective cover).
|
||
See the "Reduced External Expansion’ section of the 'SIBO Expansion Ports'
|
||
chapter in the Hardware Reference manual for pinout details.
|
||
|
||
|
||
O°C to 50°C.
|
||
FCC Class B; EN55022 Class B
|
||
|
||
|
||
Psion Series 3c Technical Specification
|
||
|
||
|
||
Physical characteristics
|
||
|
||
|
||
Part numbers:
|
||
|
||
|
||
Size
|
||
Weight
|
||
|
||
|
||
Screen
|
||
|
||
|
||
Keyboard
|
||
|
||
|
||
Sound and recording
|
||
|
||
|
||
Power supply
|
||
Internal
|
||
Backup
|
||
|
||
|
||
External
|
||
|
||
|
||
Memory
|
||
Built in
|
||
|
||
|
||
System information
|
||
Processor
|
||
|
||
|
||
Operating system
|
||
|
||
|
||
Communications
|
||
Infrared:
|
||
|
||
|
||
Protocols:
|
||
|
||
|
||
Language
|
||
|
||
|
||
1600-0126-10 (IMB)
|
||
1600-0122-10 (2MB)
|
||
|
||
|
||
165mm x 85mm x 22mm (6.5"x 3.0"x 0.9").
|
||
275g (including batteries).
|
||
|
||
|
||
480 x 160 pixel high contrast retardation film LCD.
|
||
Size 131.6mm x 45.2mm, (4.915" x 1.637").
|
||
|
||
Pixel pitch 0.26mm x 0.26mm
|
||
|
||
Pixel size 0.23mm x 0.23mm.
|
||
|
||
|
||
58 key, QWERTY layout, computer style keyboard (UK models).
|
||
9 touch sensitive icon buttons for application selection.
|
||
|
||
|
||
Loudspeaker with DTMF dialing and digital sound playback.
|
||
Microphone for digital sound recording.
|
||
|
||
|
||
2 x AA batteries.
|
||
3V Lithium CR1620 battery.
|
||
|
||
|
||
A Psion Series 3 mains adaptor, (9-11V 250mA), (Note: earlier models
|
||
175mA).
|
||
|
||
Vehicle power adaptor (24v & 12v cigarette lighter sockets), from Jan/Feb
|
||
1997.
|
||
|
||
|
||
2MB Masked ROM and IMB or 2MB RAM.
|
||
Two SSD drives allow extra storage space on Flash/RAM SSDs, up to 8MB.
|
||
|
||
|
||
NEC V30H running at 7.68MHz.
|
||
|
||
|
||
EPOC.
|
||
Microsoft MS-DOS compatible Flash Filing System.
|
||
|
||
|
||
IrDA SIR optical link, for IR communications and printing.
|
||
|
||
|
||
XMODEM, YMODEM and ZMODEM, (except from Comms Script in early
|
||
models), giving compatibility with most computer communications software.
|
||
|
||
|
||
Full script language with sample scripts allows automated log-on to
|
||
electronic mail and other systems, and control of modems.
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Expansion
|
||
|
||
|
||
Peripherals
|
||
|
||
|
||
Socket:
|
||
|
||
|
||
Environment
|
||
|
||
|
||
Operating temperatures:
|
||
|
||
|
||
EMC:
|
||
Safety:
|
||
|
||
|
||
External peripherals (such as a modems and printers) can be connected via
|
||
the RS232 port which accepts optional PC Link and Parallel Printer Link
|
||
|
||
|
||
cables. The PC Link allows communication with other computers.
|
||
|
||
|
||
Travel Modem. PC Card adapter. SMS cables for Ericsson, Nokia and
|
||
|
||
|
||
Orange mobile phones.
|
||
|
||
|
||
15-way Honda type custom connector
|
||
|
||
|
||
See the section ‘The 15-way SIBO/RS232 connector' in the 'SIBO Expansion
|
||
|
||
|
||
Ports’ chapter in the Hardware Reference manual for pinout details.
|
||
|
||
|
||
O°C to 50°C.
|
||
FCC Part 15 Class B; CE Mark
|
||
EN60950
|
||
|
||
|
||
Psion Siena Technical Specification
|
||
|
||
|
||
Physical characteristics
|
||
|
||
|
||
Part numbers:
|
||
|
||
|
||
Size
|
||
Weight
|
||
|
||
|
||
Screen
|
||
|
||
|
||
Keyboard
|
||
|
||
|
||
Sound
|
||
|
||
|
||
Power supply
|
||
|
||
|
||
Internal
|
||
|
||
|
||
Backup
|
||
|
||
|
||
External
|
||
|
||
|
||
Memory
|
||
Built in
|
||
|
||
|
||
System information
|
||
|
||
|
||
Processor
|
||
|
||
|
||
Operating system
|
||
|
||
|
||
1010-0003-01 (1MB)
|
||
1010-0002-01 (512KB)
|
||
|
||
|
||
150mm x 70mm x 18mm (5.9"x 2.7"x 0.7").
|
||
180g (including batteries).
|
||
|
||
|
||
240 x 160 pixel high contrast retardation film LCD.
|
||
Size 60.0mm x 40.0mm, (2.36" x 1.57").
|
||
|
||
Pixel pitch 0.25mm x 0.25mm
|
||
|
||
Pixel size 0.23mm x 0.23mm.
|
||
|
||
|
||
48 key, QWERTY layout, computer style keyboard (UK models).
|
||
20 key calculator keypad
|
||
8 touch sensitive icon buttons for application selection.
|
||
|
||
|
||
Piezo buzzer.
|
||
|
||
|
||
2 x AAA batteries
|
||
giving approximately 40hrs use (2 months typical usage).
|
||
|
||
|
||
3V Lithium CR1620 battery.
|
||
|
||
|
||
From a Siena SSD Drive
|
||
|
||
|
||
1MB Masked ROM and 512KB or 1MB RAM.
|
||
|
||
|
||
NEC V30H running at 7.68MHz.
|
||
|
||
|
||
EPOC.
|
||
Microsoft MS-DOS compatible Flash Filing System.
|
||
|
||
|
||
Communications
|
||
|
||
|
||
Infrared:
|
||
|
||
|
||
Expansion
|
||
|
||
|
||
Peripherals
|
||
|
||
|
||
Socket:
|
||
|
||
|
||
Environment
|
||
|
||
|
||
Operating temperatures:
|
||
EMC:
|
||
Safety:
|
||
|
||
|
||
APPENDIX A: TECHNICAL SPECIFICATIONS
|
||
|
||
|
||
IrDA SIR optical link, for IR communications and printing.
|
||
|
||
The Siena does not have the DYL file in ROM to support the AccessIr API
|
||
(for Infrared beaming), this is provided with this SDK and must be loaded
|
||
before third party programs using this API can be used.
|
||
|
||
The Siena does not have the DYL file in ROM to support the IrLPT API (for
|
||
Infrared printing), this must be loaded before third party programs using this
|
||
API can be used.
|
||
|
||
|
||
External peripherals (such as a modems and printers) can be connected via
|
||
the RS232 port which accepts optional PC Link and Parallel Printer Link
|
||
cables. The PC Link allows communication with other computers.
|
||
|
||
|
||
External SSD Drive, via 1.536Mbits/sec Fast Serial interface.
|
||
|
||
|
||
PC Card adapter. SMS cables for Ericsson, Nokia and Orange mobile
|
||
phones.
|
||
|
||
|
||
15-way Honda type custom connector
|
||
See the "Reduced External Expansion’ section of the 'SIBO Expansion Ports'
|
||
chapter in the Hardware Reference manual for pinout details.
|
||
|
||
|
||
O°C to 50°C.
|
||
FCC Part 15 Class B; CE Mark
|
||
EN60950
|
||
|
||
|
||
Psion Siena SSD Drive Technical Specification
|
||
|
||
|
||
Physical characteristics
|
||
|
||
|
||
Part number:
|
||
Compatibility:
|
||
EMC:
|
||
|
||
Safety:
|
||
|
||
Size
|
||
|
||
Weight
|
||
|
||
Power input:
|
||
Power output:
|
||
|
||
|
||
Connectors:
|
||
|
||
|
||
SSD slots:
|
||
|
||
|
||
1011-0005-01
|
||
|
||
Psion Siena only
|
||
|
||
FCC Part 15 Class B; CE Mark
|
||
|
||
EN60950
|
||
|
||
118mm x 69mm x 15mm (4.62"x 2.7"x 0.6"), (pre-production model).
|
||
|
||
87g, including flying lead, (pre-production model).
|
||
|
||
A Psion Series 3c mains adaptor, (9-11V 250mA), (supplied with the drive).
|
||
Power is supplied to a connected Siena via the RS232 connector.
|
||
|
||
|
||
15-way Honda type custom plug on flying lead to connect to the Siena
|
||
15-way Honda type custom socket to connect to a PC (for use with PsiWin)
|
||
|
||
|
||
One SSD slot; accepts all capacities of Flash/RAM SSD.
|
||
|
||
|
||
Psion Serial 3Link Technical Specification
|
||
|
||
|
||
The Serial 3Link comes in two versions, one for IBM PC compatible computers and the other for Apple
|
||
|
||
|
||
Macintosh machines.
|
||
|
||
|
||
Part number (PC):
|
||
|
||
|
||
Part number (Apple):
|
||
Compatibility:
|
||
|
||
|
||
EMC
|
||
|
||
|
||
1601-0001-01 (cable only)
|
||
1601-0039-11 (with PsiWin software)
|
||
1601-0002-10 (with V1.41 software)
|
||
|
||
|
||
Series 3, Series 3a
|
||
(The Psion Series 3c and Psion Siena machines use a different type of
|
||
communications cable, the PC Link cable.)
|
||
|
||
|
||
FCC Part 15 Class B; CE Mark
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Safety:
|
||
Physical
|
||
|
||
|
||
Interface
|
||
|
||
|
||
Memory
|
||
Protocols
|
||
Language
|
||
|
||
|
||
Communications
|
||
software
|
||
|
||
|
||
Connectors - IBM PC
|
||
|
||
|
||
Connector - Apple Mac
|
||
|
||
|
||
Connectors
|
||
- both versions
|
||
|
||
|
||
EN60950
|
||
|
||
|
||
Pod with lead for connection to the Series 3 or LIF adaptor.
|
||
|
||
Pod incorporates "auto wake up" switch.
|
||
|
||
Replaceable lead to connect the pod to the other computer or peripheral.
|
||
Complete connection is functionally equivalent to a 'null modem’ cable.
|
||
|
||
|
||
RS232.
|
||
|
||
|
||
Masked ROM in the 3Link pod. This contains the script language and
|
||
supporting communications software. The pod appears as SSD drive C.
|
||
|
||
|
||
XMODEM and YMODEM, giving compatibility with most computer
|
||
communications software.
|
||
|
||
|
||
Full script language with sample scripts allows automated log-on to
|
||
electronic mail and other systems, and control of modems.
|
||
|
||
|
||
Link and/or RCom and/or PsiWin software supplied provides a simple
|
||
interface for exchanging information with IBM PC compatibles and with the
|
||
Apple Macintosh, giving direct remote file access.
|
||
|
||
|
||
9-pin D-type (for connection to an IBM AT type PC or modem serial
|
||
port).
|
||
|
||
25-pin D-type (for connection to an IBM XT type PC or modem serial port.
|
||
Note: The model currently distributed through retail channels only has a
|
||
9-pin D-type connector, but the Serial 3Link assembly is available as
|
||
separate cables and pod - see below).
|
||
|
||
|
||
Pin name Description Pin number Direction
|
||
PC - 3Link
|
||
|
||
FG Frame Ground 1 —
|
||
(earth)
|
||
|
||
TD Transmitted Data 2 >
|
||
|
||
RD Received Data 3 -
|
||
|
||
RTS Request To Send 4 >
|
||
|
||
CTS Clear To Send 5 ce
|
||
|
||
DSR Data Set Ready 6 eS
|
||
|
||
SG Signal Ground 7 —
|
||
(common return)
|
||
|
||
DTR Data Terminal Ready 20 >
|
||
|
||
8-pin round
|
||
|
||
|
||
6-way two row rectangular (female) plug
|
||
|
||
for connection to the Series 3 serial port, or Psion LIF adaptor (Workabout).
|
||
See the "Reduced External Expansion’ section of the 'SIBO Expansion Ports'
|
||
chapter in the Hardware Reference manual for pinout details.
|
||
|
||
|
||
9-pin round (Internal connector on the 3Link pod)
|
||
Pin name Description Pin number Direction
|
||
Series 3 - Other
|
||
DCD Data Carrier Detect 1 ce
|
||
RD Received Data 2 a
|
||
TD Transmitted Data 3 >
|
||
DTR Data terminal Ready 4 >
|
||
SG Signal Ground 5 >
|
||
(common return)
|
||
DSR Data Set Ready 6 ce
|
||
RTS Request To Send 7 >
|
||
CTS Clear To Send 8 a
|
||
RI Ring Indicator 9 -
|
||
|
||
|
||
See below for diagram of pinout.
|
||
|
||
|
||
APPENDIX A: TECHNICAL SPECIFICATIONS
|
||
|
||
|
||
See the Psion Series 3 3Link (RS232) manual provided with the 3Link for full details of operation.
|
||
|
||
|
||
PC Serial 3Link assembly components
|
||
|
||
|
||
The PC Serial 3Link assembly is available as separate components with the following part numbers:
|
||
|
||
|
||
RS232 Cable 3Link Pod and cable to Psion 2500 0005 10
|
||
9 Pin Cable to PC 2303 0004 02
|
||
25 Pin Cable to PC 1404 0003
|
||
|
||
Double headed Cable to PC 2303 0016 02
|
||
|
||
|
||
PC Serial 3Link to Apple Macintosh converter
|
||
|
||
|
||
This converter changes a PC Serial 3Link into an Apple Macintosh Serial 3Link:
|
||
2 x disks, 1 x cable, 1 x manual 1601 0019 O01
|
||
|
||
|
||
Modem Adaptor cable
|
||
|
||
|
||
This converter changes a Series 3a PC/Mac Serial 3Link cable so that the Psion can be connected to a
|
||
Hayes compatible modem:
|
||
|
||
|
||
Series 3a Serial 3Link Modem Adaptor cable 1404 0002
|
||
|
||
|
||
Serial Printer cable (Series 3a)
|
||
- Technical Specification
|
||
|
||
|
||
Part number: 1404 0001
|
||
|
||
Compatibility: Psion Series 3/3s and Psion Series 3a only.
|
||
EMC: FCC Part 15 Class B; CE Mark
|
||
|
||
Safety: EN60950
|
||
|
||
Connectors: 6-way two row rectangular (female) plug
|
||
|
||
|
||
for connection to the Series 3/3s/3a serial port.
|
||
See the "Reduced External Expansion’ section of the 'SIBO Expansion Ports'
|
||
chapter in the Hardware Reference manual for pinout details.
|
||
|
||
|
||
RS-232 25 way D-type connector (male).
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Serial Printer cable (Series 3c/Siena)
|
||
- Technical Specification
|
||
|
||
|
||
Part number: 1602-0017-01
|
||
|
||
Compatibility: Psion Series 3c and Psion Siena only.
|
||
EMC: FCC Part 15 Class B; CE Mark
|
||
|
||
Safety: EN60950
|
||
|
||
Connectors: Low Profile Honda type custom connector
|
||
|
||
|
||
RS-232 25 way D-type connector (male)
|
||
|
||
|
||
Psion PC Link cable Technical Specification
|
||
|
||
|
||
The Psion Series 3c and Psion Siena machines use this new type of communications cable.
|
||
|
||
|
||
Part number: 2013-0002-01 (cable only - available to developers by special request)
|
||
1011-0010-01 (with PsiWin software)
|
||
Compatibility: Psion Series 3c and Psion Siena only.
|
||
|
||
|
||
To connect to other devices with 25 way D-type connectors, adapters are
|
||
needed, (see Psion 9-to-25 way D-type adapters Technical Specification)
|
||
|
||
|
||
EMC: FCC Part 15 Class B; CE Mark
|
||
Safety: EN60950
|
||
Connectors: Low Profile Honda type custom connector
|
||
|
||
|
||
RS-232 9 way D-type connector (IBM AT type)
|
||
|
||
|
||
Modem Adaptor cable
|
||
|
||
|
||
This converter changes a Series 3c/Siena PC/Mac Link cable so that the Psion can be connected to a
|
||
Hayes compatible modem:
|
||
|
||
|
||
Series 3c Serial Link Modem Adaptor cable 1602 0016 01
|
||
|
||
|
||
Psion Mac Link cable Technical Specification
|
||
|
||
|
||
The Psion Series 3c and Psion Siena machines use this new type of communications cable.
|
||
|
||
|
||
Part number: 1601-0101-01
|
||
|
||
Compatibility: Psion Series 3c and Psion Siena only.
|
||
EMC: FCC Part 15 Class B; CE Mark
|
||
|
||
Safety: EN60950
|
||
|
||
Connectors: Low Profile Honda type custom connector
|
||
|
||
|
||
RS-232 (Apple connector)
|
||
|
||
|
||
APPENDIX A: TECHNICAL SPECIFICATIONS
|
||
|
||
|
||
Psion 9-to-25 way D-type adapters
|
||
- Technical Specification
|
||
|
||
|
||
The Psion series 3c and Psion Siena machines use a different type of communications cable from
|
||
preceding machines;- the Psion PC Link cable. To connect to other 25 way D-type connector devices,
|
||
adapters are needed as, unlike the 3Link cable, this is a single cable and can’t be split to change the RS-
|
||
232 half to connect to a serial printer or modem.
|
||
|
||
|
||
The new PC Link and 3Link cables use the pins on the D-type plugs in a unique way. This means that a
|
||
unique mapping from 9-to-25 way pinouts is required, so special adapters (i.e. non-industry standard)
|
||
have been designed to provide this unique mapping.
|
||
|
||
|
||
Except in special cases, these adapters replace the need for the old RS-232 serial printer and modem
|
||
cables for 3Link users. In addition, these adapters allow connection of a 3Link or PC Link cable to a PC
|
||
with 25 way communication ports.
|
||
|
||
|
||
The three types of Psion branded RS232 9-to-25 way D-type adapters allow any Psion cable with a 9 way
|
||
D-type connector to be connected to another machine with a IBM XT type PC 25 way D-type port or
|
||
modem or printer serial port.
|
||
|
||
|
||
Adapter Part number EMC Safety
|
||
|
||
Modem 1602 0016 01 FCC Part 15 Class B; CE Mark EN60950
|
||
Serial Printer 1602 0017 O1 FCC Part 15 Class B; CE Mark EN60950
|
||
PC (XT) 1602 0015 01 FCC Part 15 Class B; CE Mark EN60950
|
||
|
||
|
||
Modem 9-to-25 way D-type adapter - wiring diagram
|
||
|
||
|
||
9 way D - male 25 way D - male
|
||
RX - pin 3
|
||
TX - pin 2
|
||
DTR - pin 6
|
||
|
||
|
||
[RX - pin3 |
|
||
| TX -pin2 |
|
||
| DTR- pin6 |
|
||
GND - pin 5
|
||
| _DSR- pin 4 |
|
||
| RTS - pin8 |
|
||
| CTS - pin7 |
|
||
| DCD - ping |
|
||
|
||
|
||
DSR - pin 4
|
||
RTS - pin 8
|
||
CTS - pin 7
|
||
DCD - pin 9
|
||
|
||
|
||
SHELL
|
||
|
||
|
||
PC (XT) 9-to-25 way D-type adapter - wiring diagram
|
||
|
||
|
||
9 way D - male 25 way D - female
|
||
| RX - pin 3 Fj pin-2
|
||
| TX pin 2 >} F pin 3
|
||
| _DTR- pin 6 -}—__—jpin-6_
|
||
| GND - pin 5 | pin-7
|
||
| __DSR-pin 4 |§—____pin- 20
|
||
| __ RTS - pin 8 -}——jpin-5
|
||
| _CTS - pin? |} F pin-4
|
||
| DCD - pin 9 |F—____—j pin-7
|
||
(ton te
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Printer 9-to-25 way D-type adapter - wiring diagram
|
||
|
||
|
||
9 way D - male 25 way D - male
|
||
| WRX - pin 3 Fj pin-2
|
||
| TX pin 2 | F pin-3
|
||
| _DTR-pin 6 |} pin-6_
|
||
| GND - pin 5 | pin-7
|
||
| __DSR- pin 4 -——____j pin-20_
|
||
| _RTS - pin 8 Fj pin -5,8
|
||
| __ CTS - pin 7 |} pin-4
|
||
| DCD -pin 9 |} pin-7
|
||
int
|
||
|
||
|
||
Psion Parallel 3Link Technical Specification
|
||
|
||
|
||
Part number:
|
||
|
||
|
||
Compatibility:
|
||
|
||
|
||
EMC:
|
||
|
||
|
||
Interface:
|
||
|
||
|
||
Connectors:
|
||
|
||
|
||
1601-0003-10
|
||
|
||
|
||
Psion Series 3, Psion Series 3 and Psion Workabout with LIF adaptor only
|
||
(The Psion Series 3c and Psion Siena machines use a different type of printer
|
||
cable, the Parallel Printer Link cable. )
|
||
|
||
|
||
FCC Part 15 Class B; CE Mark
|
||
|
||
|
||
Centronics interface for parallel printers
|
||
|
||
|
||
6-way two row rectangular (female) custom plug, for connection to the
|
||
Series 3 or Series 3a serial port, or Psion LIF adaptor (Workabout).
|
||
|
||
See the "Reduced External Expansion’ section of the 'SIBO Expansion Ports'
|
||
chapter in the Hardware Reference manual for pinout details.
|
||
|
||
|
||
Centronics (for connection to the parallel port of a printer)
|
||
|
||
|
||
Psion Parallel Printer Link cable
|
||
- Technical Specification
|
||
|
||
|
||
Part number:
|
||
|
||
|
||
Compatibility:
|
||
|
||
|
||
EMC:
|
||
Safety:
|
||
|
||
|
||
Connectors:
|
||
|
||
|
||
Power:
|
||
|
||
|
||
A-10
|
||
|
||
|
||
1011-0017-01
|
||
|
||
|
||
Psion Series 3c and Psion Siena only
|
||
|
||
The Parallel Printer Link is not for use with the Series 3, Series 3a, MC, HC
|
||
or Workabout, (The Psion Series 3 and Psion Series 3a machines use a
|
||
different type of printer cable, the Psion Parallel 3Link cable.)
|
||
|
||
|
||
FCC Part 15 Class B; CE Mark
|
||
EN60950
|
||
Low Profile Honda type custom connector
|
||
|
||
|
||
Centronics connector (to connect to a Centronics type parallel printer port)
|
||
|
||
|
||
One 9V PP3 battery.
|
||
With typical usage, the expected life from a new battery is 150 hours.
|
||
Power is only consumed when printing.
|
||
|
||
|
||
APPENDIX A: TECHNICAL SPECIFICATIONS
|
||
|
||
|
||
Psion PC Card Modem Adapter
|
||
- Technical Specification
|
||
|
||
|
||
Variants
|
||
|
||
|
||
There are three variants:
|
||
|
||
|
||
e = Series 3a
|
||
e = Series 3c
|
||
|
||
|
||
e PC
|
||
|
||
|
||
The PC Card Modem Adapter with a suitable PC Card modem, combined with the PsiFax software,
|
||
supersedes the 3Fax modem and software for the Series 3a. For the Series 3c there is also the alternative
|
||
|
||
|
||
Travel Modem.
|
||
|
||
|
||
Physical characteristics
|
||
|
||
|
||
Part number:
|
||
|
||
|
||
Compatibility:
|
||
|
||
|
||
EMC:
|
||
Safety:
|
||
Size
|
||
Weight
|
||
|
||
|
||
Processor:
|
||
Memory:
|
||
|
||
|
||
Power:
|
||
|
||
|
||
Battery life:
|
||
|
||
|
||
Interface to computer:
|
||
|
||
|
||
User interface:
|
||
|
||
|
||
Connectors:
|
||
|
||
|
||
Series 3a variant: 2501-0223-01 (unboxed, not retail)
|
||
Series 3c variant: 2501-0224-01 (unboxed, not retail)
|
||
PC variant: 2501-0225-01 (unboxed, not retail)
|
||
|
||
|
||
Psion Series 3a - Series 3a variant only
|
||
|
||
Psion HC - Series 3a variant only, with LIF connector module & LIF adapter
|
||
Psion Workabout - Series 3a variant only, with LIF adapter
|
||
|
||
Psion Series 3c - Series 3c variant only
|
||
|
||
PC - PC variant only
|
||
|
||
|
||
The PC Card Modem Adapter will work with Psion’s corporate and personal
|
||
email applications and standard communications applications. Current
|
||
versions of 3Fax software will not work with the PC Card Modem Adapter.
|
||
New versions of 3Fax software, renamed as PsiFax, are available to work
|
||
with the adapter.
|
||
|
||
|
||
EN55022, EN500082-1
|
||
EN60950
|
||
|
||
|
||
118.5mm x 91mm x 20.5 mm
|
||
105g without batteries
|
||
|
||
|
||
Siemens C165 16 bit micro-controller
|
||
OTP.
|
||
|
||
|
||
4 x AA batteries
|
||
and/or
|
||
6V DC/1A mains adapter
|
||
|
||
|
||
Depends on the modem card you use.
|
||
With a Psion Dacom 28.8 modem, typically 90 to 120 mins (Duracell
|
||
batteries). If the unit is unused, approximately 6 months (Duracell batteries).
|
||
|
||
|
||
Series 3a variant: SIBO Fast Serial (ASIC5)
|
||
Series 3c variant: RS232
|
||
PC variant: RS232
|
||
|
||
|
||
A single LED and piezo buzzer. The LED flashes according to the status of
|
||
the PC Card adapter (transmitting, low power warnings etc.). The piezo
|
||
buzzer provides modem tones, dial tones and bleeps with recognition when a
|
||
PC Card modem is inserted into the adapter.
|
||
|
||
|
||
For connection to the computer:
|
||
|
||
Series 3a variant: 6-way two row rectangular (female) custom plug
|
||
Series 3c variant: Low Profile Honda type custom connector
|
||
|
||
PC variant: 9-way D type connector
|
||
|
||
|
||
For connection to the PC Card modem:
|
||
PCMCIA standard connector
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Supported PC Cards:
|
||
|
||
|
||
DTE formats
|
||
Flow control
|
||
|
||
|
||
Data transfer rates:
|
||
|
||
|
||
Indicator LED
|
||
|
||
|
||
Psion Dacom Gold Card
|
||
|
||
US Robotics WorldPort
|
||
|
||
Pace Microlin
|
||
|
||
Megahertz X JACK Series
|
||
Nokia Cellular Data Card
|
||
Philips Mobile Data Card
|
||
Hayes PC Cards
|
||
|
||
Dr. Neuhaus Fury Cards
|
||
|
||
and many other popular models
|
||
|
||
|
||
PC Modem Cards can be inserted at any time and recognised by the card
|
||
adapter (hot swapping)
|
||
|
||
|
||
8N1,7E1,701
|
||
RTS/CTS
|
||
|
||
|
||
300 Baud to 57.6 KBaud with autobauding
|
||
300 Baud to 115 KBaud without autobauding
|
||
|
||
|
||
Note: Because Psion Fast Serial operates at a maximum 19.2kbs the user will
|
||
not be able to get the full 33.6 KBaud data rate available from V.34 PC
|
||
Cards in the Series 3a variant of the PC Card Adpter. In this scenario the
|
||
connection rate will drop down to 14.4 KBaud.
|
||
|
||
|
||
to/from
|
||
Psion
|
||
|
||
|
||
Indicator LED
|
||
|
||
|
||
Status On Batteries On Mains
|
||
|
||
Stand by Off Flashing green (slow)
|
||
Idle Flashing green (slow) Flashing green (slow)
|
||
Configuring PC card Flashing green (fast) Flashing green (fast)
|
||
Connected to remote modem Continuous green Continuous green
|
||
Low battery warning Flashing red N/A
|
||
|
||
|
||
APPENDIX A: TECHNICAL SPECIFICATIONS
|
||
|
||
|
||
Psion Travel Modem Technical Specification
|
||
|
||
|
||
Physical
|
||
|
||
Part number:
|
||
|
||
Series 3/3s compatibility:
|
||
Series 3a compatibility:
|
||
Workabout compatibility:
|
||
Series 3c compatibility:
|
||
Siena compatibility:
|
||
EMC:
|
||
|
||
Environment:
|
||
|
||
|
||
Dimensions:
|
||
|
||
|
||
Power:
|
||
|
||
|
||
Communications
|
||
|
||
|
||
Functions:
|
||
|
||
|
||
Dialling:
|
||
Echo suppressor:
|
||
REN:
|
||
|
||
|
||
Fax operation:
|
||
|
||
|
||
Computer connection
|
||
|
||
|
||
Connector:
|
||
|
||
|
||
Network connection
|
||
|
||
|
||
Data transfer rate:
|
||
|
||
|
||
FCC Part 15 Class B; CE Mark
|
||
|
||
|
||
Operating temperature: 0-50C
|
||
Operating humidity: 0-95% non-condensing
|
||
|
||
|
||
165mm x 40mm x 25mm
|
||
2 x AA batteries or
|
||
|
||
|
||
optional rechargeable NiCad battery pack or
|
||
optional 10V (250mA) DC Series 3c mains adaptor.
|
||
|
||
|
||
Autodialling (tone and pulse) modem conforming to:
|
||
V.21,V.22, V.23, V.22bis, V.27ter, V.29, V 32 and V 32bis standards.
|
||
It supports V.25 auto answering recommendations.
|
||
|
||
|
||
May be used with either tone (MF) or pulse (LD) signalling BT lines.
|
||
Echo-suppressor tone (V25) when auto answering.
|
||
1.
|
||
|
||
|
||
Controlled automatically by software (not supplied with the Travel
|
||
Modem).
|
||
|
||
The Travel Modem can send faxes at up to 9600bps.
|
||
|
||
The fax feature is compatible with Group 3 fax machines.
|
||
|
||
|
||
Low Profile Honda type custom connector on flying lead
|
||
|
||
for connection to a Psion Series 3c.
|
||
|
||
See the 'Reduced External Expansion’ section of the 'SIBO Expansion Ports'
|
||
chapter in the Hardware Reference manual for pinout details.
|
||
|
||
|
||
up to 57600bps with V.32bis and V.42bis
|
||
(compression is dependant upon file type)
|
||
V.32 9600 bps full duplex
|
||
|
||
V.32bis 14400 bps full duplex
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Operational modes:
|
||
|
||
|
||
Line connection:
|
||
Signal level:
|
||
|
||
|
||
Equalisation:
|
||
|
||
|
||
Interface:
|
||
|
||
|
||
Error correction:
|
||
|
||
|
||
Data compression:
|
||
|
||
|
||
Autodial/autoanswer
|
||
Dial method:
|
||
|
||
|
||
Call progress:
|
||
|
||
|
||
Call control:
|
||
Automatic answer:
|
||
|
||
|
||
Mode selection:
|
||
|
||
|
||
Call disconnection:
|
||
|
||
|
||
BABT Approval
|
||
|
||
|
||
Approval number:
|
||
|
||
|
||
V.21 300bps full duplex
|
||
|
||
V.22 1200bps full duplex
|
||
|
||
V.22bis 2400bps full duplex
|
||
|
||
V.23 1200/75 full duplex 75/1200 full duplex
|
||
V.27ter 4800bps fax send and receive
|
||
|
||
V.29 9600bps fax send and receive
|
||
|
||
|
||
2 wire PSTN via BT 600 type modular jack on flying lead
|
||
-9 dBm
|
||
|
||
|
||
Transmit fixed compromise
|
||
Receive automatic adaptive
|
||
|
||
|
||
600 ohm
|
||
|
||
|
||
V.42 incorporating LAPM and MNP Class 4
|
||
MNP Class 10
|
||
|
||
|
||
V.42bis and MNP Class 5
|
||
|
||
|
||
Tone or pulse, selectable
|
||
|
||
|
||
Loudspeaker with on/off control
|
||
Extended results codes
|
||
|
||
|
||
Extended "AT" command set
|
||
To CCITT V.25 recommendation
|
||
|
||
|
||
Automatic configuration to V.21/V.22/V.23/V.22bis and V32/V32bis on
|
||
receive
|
||
|
||
|
||
Loss of carrier, DTR or by command
|
||
|
||
|
||
606866
|
||
|
||
|
||
Psion 3Fax Modem Technical Specification
|
||
|
||
|
||
The 3Fax modem has been superseded by the Series 3a PC Card Adapter with a suitable PC Card modem,
|
||
combined with the PsiFax software on SSD, (for the Series 3c there is the Travel Modem).
|
||
|
||
|
||
Physical
|
||
|
||
|
||
Part number:
|
||
|
||
|
||
Series 3/3s compatibility:
|
||
|
||
|
||
Series 3a compatibility:
|
||
|
||
|
||
Workabout compatibility:
|
||
|
||
|
||
Series 3c compatibility:
|
||
Siena compatibility:
|
||
EMC:
|
||
|
||
|
||
Environment:
|
||
|
||
|
||
Dimensions:
|
||
|
||
|
||
Power:
|
||
|
||
|
||
1601-0022-01
|
||
|
||
|
||
No
|
||
Yes (512KB, IMB and 2MB models only)
|
||
No
|
||
|
||
|
||
FCC Part 15 Class B; CE Mark
|
||
|
||
Operating temperature: 0-50C
|
||
|
||
Operating humidity: 0-95% non-condensing
|
||
165mm x 40mm x 25mm
|
||
|
||
|
||
2 x AA batteries or
|
||
optional rechargeable NiCad battery pack or
|
||
optional 10V (250mA) DC Series 3a mains adaptor.
|
||
|
||
|
||
Communications
|
||
|
||
|
||
Functions:
|
||
|
||
|
||
Dialling:
|
||
Echo suppressor:
|
||
REN:
|
||
|
||
|
||
Fax operation:
|
||
|
||
|
||
Computer connection
|
||
|
||
|
||
Connector:
|
||
|
||
|
||
Network connection
|
||
|
||
|
||
Data transfer rate:
|
||
|
||
|
||
Operational modes:
|
||
|
||
|
||
Line connection:
|
||
|
||
|
||
Signal level:
|
||
Equalisation:
|
||
|
||
|
||
Interface:
|
||
|
||
Error correction:
|
||
|
||
Data compression:
|
||
Autodial/autoanswer
|
||
Dial method:
|
||
|
||
Call progress:
|
||
|
||
|
||
Call control:
|
||
Automatic answer:
|
||
Mode selection:
|
||
Call disconnection:
|
||
|
||
|
||
BABT Approval
|
||
|
||
|
||
Approval number:
|
||
|
||
|
||
APPENDIX A: TECHNICAL SPECIFICATIONS
|
||
|
||
|
||
Autodialling (tone and pulse) modem conforming to:
|
||
V.21,V.22, V.23, V.22bis, V.27ter, and V.29 standards.
|
||
It supports V.25 auto answering recommendations.
|
||
|
||
|
||
May be used with either tone (MF) or pulse (LD) signalling BT lines.
|
||
Echo-suppressor tone (V25) when auto answering.
|
||
1.
|
||
|
||
|
||
Controlled automatically by the software supplied with the 3Fax modem.
|
||
The 3Fax modem can send faxes at up to 9600bps.
|
||
The fax feature is compatible with Group 3 fax machines.
|
||
|
||
|
||
6-way two row rectangular (female) plug
|
||
|
||
for connection to a Psion Series 3a.
|
||
|
||
See the 'Reduced External Expansion’ section of the 'SIBO Expansion Ports'
|
||
chapter in the Hardware Reference manual for pinout details.
|
||
|
||
|
||
up to 9600bps with V.22bis and V.42bis
|
||
(compression is dependant upon file type)
|
||
|
||
|
||
V.22bis 2400 bps full duplex
|
||
|
||
V.22 1200 bps full duplex
|
||
|
||
V.23 1200/75 full duplex 75/1200 full duplex
|
||
V.21 300 bps full duplex
|
||
|
||
V.27 ter 4800 bps fax send and receive
|
||
|
||
V.29 9600 bps fax send and receive
|
||
|
||
|
||
2 wire PSTN via BT 600 type modular jack
|
||
3 wire Bell Tinkle Suppression supported
|
||
|
||
|
||
-9 dBm
|
||
|
||
|
||
Transmit fixed compromise
|
||
Receive automatic adaptive
|
||
|
||
|
||
600 ohm
|
||
V.42 incorporating LAPM and MNP Class 4
|
||
V.42bis and MNP Class 5
|
||
|
||
|
||
Tone or pulse, selectable
|
||
|
||
|
||
Loudspeaker with volume control
|
||
Extended results codes
|
||
|
||
|
||
Extended "AT" command set
|
||
|
||
To CCITT V.25 recommendation
|
||
|
||
Automatic configuration to V.21/V.22/V.23 & V.22bis on receive
|
||
Loss of carrier, DTR or by command
|
||
|
||
|
||
NS/1397/3/R/604375
|
||
|
||
|
||
The greyed out table is statutory statements and not really part of the tech spec
|
||
|
||
|
||
Nokia 21XX to Series 3c/Siena SMS Cable
|
||
- Technical specification
|
||
|
||
|
||
This SMS cable is available from the beginning of January 1997.
|
||
This SMS Link cable connects a Psion Series 3c or Siena to Nokia’s 21XX range of GSM/DCS/PCS
|
||
|
||
|
||
digital mobile phones.
|
||
|
||
|
||
The cable is for use with applications based on version 2.01 of the SMS SDK running on a Siena or
|
||
|
||
|
||
Series 3c.
|
||
|
||
|
||
The top level Psion part number for this SMS cable is 1601- 0106 -01.
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Ericsson SMS SDK and SMS Cables
|
||
|
||
|
||
There will be 2 types of SMS products:
|
||
|
||
|
||
e SMS SDK - enables Psion Registered Developers to create applications for both vertical and
|
||
horizontal markets that make use of the SMS capability provided by Ericsson’s GSM/DCS/PCS
|
||
digital mobile phones;
|
||
|
||
|
||
e SMS applications and SMS cables - Shrink wrapped and custom SMS applications available
|
||
from both Psion and its Registered Developers. These applications will be invariably be packaged
|
||
with the Ericsson SMS cable to connect the Psion to the Ericsson mobile phone.
|
||
|
||
|
||
The SMS SDK will be released to selected registered developers from the end of December 1996.
|
||
The SMS SDK is distributed for free.
|
||
|
||
|
||
Product Description
|
||
|
||
|
||
Ericsson SMS SDK
|
||
The SMS SDK provides the following capabilities:
|
||
|
||
|
||
e Mobile Originate (MO) and Mobile Terminate (MT) of SMS messages;
|
||
e Access to the address book memory within the phone and SIM;
|
||
|
||
e Sensing of key presses and screen indications on the phone;
|
||
|
||
e Ability to send the full range of key presses from the Psion to the phone;
|
||
e Sensing the model number and firmware version of the phone;
|
||
|
||
e SMS delivery status reports (DSRs).
|
||
|
||
|
||
SMS cables
|
||
|
||
|
||
An SMS Link cable connects a Psion Series 3c or Siena to Ericsson’s GSM/DCS/PCS range of digital
|
||
mobile phones (GH377, GF388, GA318, PH337, CH337 etc.)
|
||
|
||
|
||
Note: Ericsson SMS links will not be available for the Psion 3a.
|
||
|
||
|
||
The interface between the Ericsson handset and Psion 3c/Siena is housed within the Ericsson connector,
|
||
thus providing the user with only a thin cable connection.
|
||
|
||
|
||
The top level Psion part number for this SMS cable is 1601-0107-01.
|
||
|
||
|
||
APPENDIX A: TECHNICAL SPECIFICATIONS
|
||
|
||
|
||
Cellnet SMS/ink
|
||
|
||
|
||
Cellnet SMSlink is a joint development between Cellnet and Psion. It is an SMS product for the popular
|
||
Series 3a and Nokia 2110 combination.
|
||
|
||
|
||
The Product includes:
|
||
e Cable to connect Series 3a to Nokia 2110/2110i, and Philips PR747 GSM mobile phones
|
||
e Series 3a software for composing, sending and receiving text messages
|
||
|
||
|
||
e PC software (on floppy disc) to send text messages direct from PC to GSM mobile phones.
|
||
(Requires a modem) Note: This is Freeware supplied by Cellnet.
|
||
|
||
|
||
e User Guide
|
||
Cellnet SMSlink allows you to:
|
||
¢ Compose, edit, send and receive short messages of up to 160 characters
|
||
e Simple message management using the inbox and outbox, and unread message box
|
||
e Send and receive electronic business cards
|
||
e Send messages to a selected group of contacts
|
||
e Incorporates a contact manager similar to the built-in Data application
|
||
e Works with contact databases generated using Data or compatible applications
|
||
e Sort and search on contact database entries
|
||
e¢ 10 pre-set messages, and you can also create your own.
|
||
e Appointment details sent in a message may be extracted and merged with Agenda.
|
||
Compatibility
|
||
Compatible with Psion Series 3a computers - 512k and above
|
||
|
||
|
||
This application will be distributed on SSD and floppy disk. Floppy disc version requires PsiWin or 3link
|
||
for installation.
|
||
|
||
|
||
Version Top level part number
|
||
|
||
|
||
SSD: 1601-0065-01
|
||
|
||
|
||
Floppy disc: 1601-0066-01
|
||
|
||
|
||
Availability
|
||
|
||
|
||
Has been available from August 1996.
|
||
|
||
|
||
Please Note: Our license with the development company only allows us to market this product in the UK.
|
||
Therefore it is not available to export markets.
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Vodaphone Telenote Link
|
||
|
||
|
||
Vodaphone Telenote Link is a joint development between Vodaphone, Nokia and Psion. It is an SMS
|
||
product for the popular Series 3a and Nokia 2110 combination.
|
||
|
||
|
||
Versions
|
||
There are two versions of the Telenote link:
|
||
|
||
|
||
e Version 1, (available from the beginning of December 95), is for use with the Nokia 2110 and
|
||
Philips PR747 digital handsets;
|
||
|
||
|
||
e Version 2, (available from February 96), is for use on the Orbitel 905 digital handset.
|
||
The product is issued either on SSD and floppy disk.
|
||
|
||
|
||
System Requirements
|
||
|
||
|
||
Telenote Link requires a Psion Series 3a 256K or larger internal RAM palmtop computer, or a Psion
|
||
Workabout, and a Nokia 2110 (or equivalent) digital phone on the Vodafone digital mobile phone
|
||
network.
|
||
|
||
|
||
The Telenote Link product includes software for a PC which allows its user to originate messages, and
|
||
using a modem, (not supplied) to dial direct into the Vodafone Short Message Centre.
|
||
|
||
|
||
Telenote Link Functions
|
||
|
||
|
||
The Vodafone Telenote Link for the Psion Series 3a allows the user you to create, store and receive short
|
||
messages in a simple intuitive manner using his Series 3a and Nokia GSM phone. The software for the
|
||
Series 3a also includes a comprehensive address book function and the ability to create frequently used
|
||
messages (e.g. “Please call me”, or “I will be 15 minutes late for the meeting”), which can be sent quickly
|
||
with a minimum number of key strokes.
|
||
|
||
|
||
The Telenote Link product allows the user to:
|
||
|
||
|
||
e Send messages from his Series 3a and Nokia phone to another handset on the Vodafone GSM
|
||
network, or any other GSM network world-wide which supports SMS and with which Vodafone
|
||
have a roaming agreement;
|
||
|
||
|
||
e Send messages from a PC (provided the user already has a modem) to any GSM handset on the
|
||
Vodafone network (this feature will work with handsets other than those based on the Nokia
|
||
2110).
|
||
|
||
|
||
The Telenote Link product does not allow the user to:
|
||
e Send or receive SMS to/from a Cellnet, Orange or Mercury digital phone;
|
||
|
||
|
||
e Send or receive SMS to/from a phone on a network which does not support SMS, or with which
|
||
Vodafone does not have a roaming agreement. Most foreign GSM networks will support it, but
|
||
some (particularly France) are behind in deploying the service;
|
||
|
||
|
||
e Send or receive e-mail to/from his Series 3a/Nokia;
|
||
e Send or receive Faxes to/from his Series 3a/Nokia.
|
||
|
||
|
||
Telenote Link Package
|
||
The Telenote Link Package includes:
|
||
|
||
|
||
¢ Cable to connect a Series 3a to Nokia 2110 (or derivatives such as Philips) GSM phones on the
|
||
Vodafone network;
|
||
|
||
|
||
e Software for the Series 3a supplied on floppy disk or SSD. Floppy disk software (requires a PC
|
||
and PsiWin to download to Series 3a);
|
||
|
||
|
||
e Software for a PC allowing use of a modem (not supplied) to direct dial into the Vodafone Short
|
||
Message Centre, allowing the user to originate messages from his desktop. This is particularly
|
||
useful for a receptionist/secretary who needs to pass on messages to somebody who is away from
|
||
the office;
|
||
|
||
|
||
¢ Comprehensive user guide.
|
||
|
||
|
||
APPENDIX A: TECHNICAL SPECIFICATIONS
|
||
|
||
|
||
Version Top level part number
|
||
|
||
|
||
SSD: 1601-0057-01
|
||
|
||
|
||
Floppy disc: 1601-0056-01
|
||
|
||
|
||
Availability
|
||
|
||
|
||
Current product.
|
||
|
||
|
||
Orange Messaging Link
|
||
|
||
|
||
Orange Messaging Link is a joint development between Orange and Psion. It is a messaging product
|
||
which is based on the GSM SMS service but for the Orange network. (Orange is a Personal
|
||
Communications Network (PCN) which uses GSM technology but at a higher frequency and with lower
|
||
power handsets) It works with Series 3a and Nokia Orange and Nokia Orange 5.1 handsets.
|
||
|
||
|
||
The product includes:
|
||
e Cable to connect Series 3a to Nokia Orange and Nokia 5.1 handsets
|
||
e Series 3a software for composing, sending and receiving text messages
|
||
e User Guide
|
||
|
||
|
||
e A guide prepared by Orange on how to access their network from a PC with a modem to send
|
||
messages.
|
||
|
||
|
||
Orange Messaging Link allows you to:
|
||
e¢ Compose, edit, send and receive short messages of up to 160 characters
|
||
e Simple message management using the Sent, Received, Not sent, and Phonebook dialogues
|
||
e Send messages to a selected group of contacts
|
||
e Works with contact databases generated using the series 3a Data application.
|
||
e Create your own preset messages
|
||
Compatibility
|
||
Compatible with Psion Series 3a computers - 512k and above
|
||
|
||
|
||
This application software is distributed on SSD or floppy disk. The floppy disc version requires PsiWin or
|
||
3Link for installation.
|
||
|
||
|
||
Version Top level part number:
|
||
|
||
|
||
SSD: 1601-0067-01
|
||
|
||
|
||
Floppy disc: 1601-0068-01
|
||
|
||
|
||
Availability
|
||
Available from mid-November 1996.
|
||
|
||
|
||
Please Note: Our license with the development company only allows us to market this product in the UK.
|
||
Therefore it is not available to export markets.
|
||
|
||
|
||
APPENDIX B
|
||
|
||
|
||
DIFFERENCES BETWEEN PSION SERIES 3 MODELS
|
||
|
||
|
||
At the time of writing there are four current and six superseded machines in the Series 3 family. The main
|
||
differences between the computers are tabulated overleaf.
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
Current models in the Series 3 family
|
||
|
||
|
||
SSD drives 2 2 optional optional
|
||
extra extra
|
||
|
||
|
||
Communications connector R232 R232 R232 R232
|
||
low profile, low profile, low profile, low profile,
|
||
with power with power with power with power
|
||
output output input input
|
||
|
||
|
||
Time management/organiser
|
||
- Open book diary with reminder alarms day/week day/week day/week day/week
|
||
|
||
|
||
- Planner views year/busy year/busy busy busy
|
||
|
||
|
||
- 'Things to do' manager multiple lists | multiple multiple multiple
|
||
with due lists with lists with lists with
|
||
dates and due dates due dates due dates
|
||
alarms and alarms and alarms and alarms
|
||
|
||
|
||
- Chronological list and anniversaries view 3 3
|
||
|
||
|
||
3 3
|
||
Voice/sound recording and playback “Sound” “Sound”
|
||
Ea al
|
||
desk, desk, desk, desk,
|
||
advanced advanced advanced advanced
|
||
Ee (
|
||
Le
|
||
Fax facility (send only) optional optional a
|
||
extra extra
|
||
Zoom-in zoom-out through four font sizes
|
||
Spellchecker and Thesaurus optional optional
|
||
extra extra
|
||
eee ee
|
||
|
||
|
||
APPENDIX B: DIFFERENCES BETWEEN PSION SERIES 3 MODELS
|
||
|
||
|
||
aia eh iacite models in the Series 3 ay
|
||
|
||
|
||
Ea
|
||
(* 2MB if Spell app included) 512KB 512KB
|
||
a ee
|
||
|
||
|
||
SSD drives
|
||
Communications connector
|
||
|
||
|
||
Time management/organiser
|
||
- Open book diary with reminder alarms day/week day/week day/week day/week
|
||
|
||
|
||
- Planner views year year year year
|
||
|
||
|
||
- 'Things to do' manager multiple multiple multiple multiple single list, single list, single list,
|
||
|
||
|
||
lists with lists with lists with lists with up to 50 up to 50 up to 50
|
||
due dates due dates due dates due dates items items items
|
||
and alarms and alarms and alarms and alarms
|
||
|
||
|
||
- Chronological list and anniversaries view
|
||
|
||
|
||
optional
|
||
extra
|
||
|
||
|
||
Fax facility (send only) optional optional optional
|
||
extra extra
|
||
|
||
|
||
Pee ger enye a ee es ee Ee |e ee
|
||
|
||
|
||
Communications application 3 3 3 3 optional optional optional
|
||
extra extra extra
|
||
|
||
|
||
Rich text file (RTF) support optional optional optional optional optional
|
||
extra
|
||
|
||
|
||
Spellchecker and Thesaurus optional optional optional
|
||
extra
|
||
|
||
|
||
Patience card game optional optional
|
||
extra
|
||
|
||
|
||
Ec (AE
|
||
|
||
|
||
INDEX
|
||
|
||
|
||
.afl files
|
||
add file lists pre-defined slots $3, 1-2
|
||
add file lists $3, 1-2
|
||
als files
|
||
creating .als files S3, 2-5
|
||
creating with makeals.exe $3, 2-5
|
||
.app files
|
||
versus .img files, 1-2
|
||
.img files
|
||
versus .app files, 1-2
|
||
.ma files
|
||
alias file source file $3, 2-5
|
||
.ms files
|
||
multi-lingual $3, 2-3
|
||
shell data file source file $3, 2-1
|
||
.pcex files
|
||
converting to icon files, 1-3
|
||
pic files
|
||
application icons $3, 1-2
|
||
sc files
|
||
resource files application S3, 1-2
|
||
zc files
|
||
resource files compressed S3, 1-2
|
||
.shd files
|
||
application S3, 1-3
|
||
creating with makeshd.exe S3, 2-1
|
||
customised $3, 1-3
|
||
multi-lingual $3, 2-2
|
||
shell data files $3, 1-2
|
||
3Fax modem
|
||
data compression, A-15
|
||
modes, A-15
|
||
3Link parallel
|
||
specification, A-10
|
||
3Link PC serial
|
||
Apple Macintosh converter, A-7
|
||
assembly components, A-7
|
||
3Link serial cable
|
||
specification, A-5
|
||
9-to-25 way D-type adapters
|
||
specification, A-9
|
||
9-to-25 way D-type modem adapters
|
||
wiring diagram, A-9
|
||
9-to-25 way D-type PC (XT) adapters
|
||
wiring diagram, A-9
|
||
9-to-25 way D-type printer adapters
|
||
wiring diagram, A-10
|
||
adapter - PC card modem
|
||
specification, A-11
|
||
adapters 9-to-25 way D-type
|
||
specification, A-9
|
||
adaptor cable
|
||
modem - 3Link, A-7
|
||
|
||
|
||
adaptor cable modem
|
||
|
||
|
||
Mac Link, A-8
|
||
PC Link, A-8
|
||
add file list
|
||
|
||
|
||
application pre-defined slots $3, 1-2
|
||
application S3, 1-2
|
||
add files
|
||
finding in an app file S3, 1-3
|
||
alias files
|
||
creating from .ma source files S3, 2-5
|
||
creating with makeals.exe $3, 2-5
|
||
aliasing
|
||
applications active $3, 2-5
|
||
applications active Word app S3, 2-5
|
||
applications mechanisms S3, 2-6
|
||
applications passive S3, 2-5
|
||
applications S3, 2-4
|
||
creating .als files S3, 2-5
|
||
Word app multi-lingual S3, 2-13
|
||
Apple Macintosh
|
||
3Link - convertion from PC 3Link, A-7
|
||
application
|
||
add file finding in app files $3, 1-3
|
||
add file lists pre-defined slots $3, 1-2
|
||
add file lists $3, 1-2
|
||
alias .als files creating $3, 2-5
|
||
alias file creating from .ma files S3, 2-5
|
||
aliasing active S3, 2-5
|
||
aliasing active Word app S3, 2-5
|
||
aliasing mechanisms S3, 2-6
|
||
aliasing passive S3, 2-5
|
||
aliasing S3, 2-4
|
||
aliasing Word app multi-lingual $3, 2-13
|
||
app files vs img files, 1-2
|
||
button assigning system screen S3, 2-8
|
||
button assignments system screen S3, 2-8
|
||
comand line command byte S3, 2-10
|
||
comand line debugger and S3, 2-10
|
||
comand line disregarding S3, 2-11
|
||
comand line handling S3, 2-9
|
||
command line absent $3, 1-3
|
||
command line byte new types S3, 2-13
|
||
command line format of $3, 2-9
|
||
command line handling S3, 2-10
|
||
compatibility S3/3a/Workabout, 1-5
|
||
compatibility S3/S3a/S3c/Siena, 1-5
|
||
default directory S3, 2-2
|
||
default file extension $3, 2-2
|
||
directories creating as needed S3, 2-12
|
||
example Spy Hwif, 4-1
|
||
heap integrity Spy app, 4-2
|
||
heap statistics Spy app, 4-2
|
||
icon files, 1-2
|
||
icons producing, 1-3
|
||
icons with or without $3, 1-3
|
||
multi-lingual keyboard S3, 1-4
|
||
multi-lingual menu accelerators S3, 1-4
|
||
other data Spy app, 4-3
|
||
process priorities Spy app, 4-2
|
||
public name S3, 2-2
|
||
resource .rsc files, 1-2
|
||
resource files .rzc compressed S3, 1-2
|
||
running via Runimg S3, 1-3
|
||
segment statistics Spy app, 4-2
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
shell data files creating from .ms files S3,
|
||
2-1
|
||
|
||
shell data files customised S3, 1-3
|
||
|
||
shell data files multi-lingual $3, 2-2
|
||
|
||
shell data files S3, 1-2, 1-3
|
||
|
||
|
||
shell data source files multi-lingual $3, 2-3
|
||
|
||
|
||
shut down message absent S3, 1-3
|
||
|
||
shut down message S3, 2-12
|
||
|
||
Spy, 4-1
|
||
|
||
Spy building, 4-1
|
||
|
||
Spy main display, 4-1
|
||
|
||
Spy source code, 4-1
|
||
|
||
Spy system processes, 4-1
|
||
|
||
stack statistics Spy app, 4-2
|
||
|
||
switch file message absent S3, 1-3
|
||
|
||
switch files message S3, 2-12
|
||
|
||
system message receiving S3, 2-12
|
||
|
||
system screen command line message S3,
|
||
2-13
|
||
|
||
system screen communications S3, 2-1
|
||
|
||
system screen message handling S3, 2-12
|
||
|
||
|
||
system screen shut down message S3, 2-12
|
||
system screen switch files message $3, 2-12
|
||
|
||
|
||
type numbers S3, 2-2
|
||
|
||
type pure file list S3, 2-4
|
||
|
||
window server statistics Spy app, 4-3
|
||
button
|
||
|
||
assigning in system screen $3 apps, 2-8
|
||
|
||
|
||
assignments in system screen S3 apps, 2-8
|
||
|
||
|
||
cable adaptor
|
||
|
||
modem - 3Link, A-7
|
||
cable adaptor modem
|
||
|
||
Mac Link, A-8
|
||
|
||
PC Link, A-8
|
||
command line
|
||
|
||
absent application $3, 1-3
|
||
|
||
command byte S3 apps, 2-10
|
||
|
||
debugger and S3 apps, 2-10
|
||
|
||
disregarding S3 apps, 2-11
|
||
|
||
format of S3 apps, 2-9
|
||
|
||
handling S3 apps, 2-9, 2-10
|
||
|
||
magic statics updating S3 apps, 2-11
|
||
|
||
new command byte types S3, 2-13
|
||
|
||
new for system screen message S3, 2-13
|
||
comms
|
||
|
||
3Fax modem data compression, A-15
|
||
|
||
error correction, A-14, A-15
|
||
|
||
Travel Modem data compression, A-14
|
||
compatibility
|
||
|
||
S3/S3a/S3c/Siena apps, 1-5
|
||
|
||
S3/S3a/Workabout apps, 1-5
|
||
DatApp1
|
||
|
||
magic static system screen S3, 2-8
|
||
DatLocked
|
||
|
||
magic static $3, 2-7, 2-9
|
||
DatProcessNamePtr
|
||
|
||
magic static $3, 2-7, 2-8
|
||
DatStatusNamePtr
|
||
|
||
magic static $3, 2-7, 2-9
|
||
DatUsedPathNamePtr
|
||
|
||
magic static $3, 2-7, 2-8
|
||
debugging
|
||
|
||
magic statics $3 apps, 2-7
|
||
directories
|
||
|
||
|
||
creating as needed S3 apps, 2-12
|
||
directory
|
||
default S3 app, 2-2
|
||
environment variable
|
||
naming of, 1-5
|
||
Series 3, 1-4
|
||
EPOC
|
||
magic statics $3, 2-7
|
||
file list
|
||
application type pure S3, 2-4
|
||
file lists
|
||
files with hidden attribute S3, 2-8
|
||
system screen and S3 apps, 2-7
|
||
system screen name with Sys$ $3, 2-7
|
||
file name
|
||
extension default S3 app, 2-2
|
||
heap integrity
|
||
Spy application, 4-2
|
||
heap statistics
|
||
Spy application, 4-2
|
||
Hwif
|
||
application example Spy, 4-1
|
||
application magic statics S3, 2-7
|
||
HWIM
|
||
application magic statics S3, 2-7
|
||
icon files
|
||
application S3, 1-2
|
||
contents and formats, 1-3
|
||
converting from .pcx, 1-3
|
||
production of, 1-3
|
||
Iconed
|
||
producting icon files, 1-3
|
||
Macintosh
|
||
3Link - PC serial converter, A-7
|
||
Macintosh link cable
|
||
specification, A-8
|
||
magic static
|
||
command line updating S3, 2-11
|
||
DatApp1 system screen S3, 2-8
|
||
DatLocked §3, 2-7, 2-9
|
||
DatProcessNamePtr S3, 2-7, 2-8
|
||
DatStatusNamePtr S3, 2-7, 2-9
|
||
DatUsedPathNamePtr S3, 2-7, 2-8
|
||
debugging and S3 apps, 2-7
|
||
Hwif and S3 apps, 2-7
|
||
HWIM and S3 apps, 2-7
|
||
Series 3/3a, 2-7
|
||
system screen S3 apps, 2-7
|
||
window server S3 apps, 2-7
|
||
makeals.exe
|
||
alias files creating S3, 2-5
|
||
makeshd.exe
|
||
utility program, 2-1
|
||
modem
|
||
3Fax modem modes, A-15
|
||
Travel modem data compression, A-14
|
||
Travel Modem modes, A-14
|
||
modem - 3Fax
|
||
specification Series 3, A-14
|
||
modem - PC card adapter
|
||
specification, A-11
|
||
modem adapters 9-to-25 way D-type
|
||
wiring diagram, A-9
|
||
modem adaptor cable
|
||
|
||
|
||
3Link, A-7
|
||
Mac Link, A-8
|
||
PC Link, A-8
|
||
modem -Travel
|
||
specification, A-13
|
||
multi-lingual
|
||
aliasing Word app S3, 2-13
|
||
multi-lingual apps
|
||
keyboards S3, 1-4
|
||
menu acceleratiors $3, 1-4
|
||
other data
|
||
Spy application, 4-3
|
||
parallel 3Link
|
||
specification, A-10
|
||
parallel printer link cable
|
||
specification, A-10
|
||
PC (XT) 9-to-25 way D-type adapters
|
||
wiring diagram, A-9
|
||
PC card modem adapter
|
||
specification, A-11
|
||
PC Link cable
|
||
specification Series 3c/Siena, A-8
|
||
PC serial 3Link
|
||
Apple Macintosh converter, A-7
|
||
assembly components, A-7
|
||
printer 9-to-25 way D-type adapters
|
||
wiring diagram, A-10
|
||
printer cable serial
|
||
specification Series 3a), A-7
|
||
specification Series 3c/Siena), A-8
|
||
printer parallel link cable
|
||
specification, A-10
|
||
process priorities
|
||
Spy application, 4-2
|
||
program files
|
||
icons with or without $3, 1-3
|
||
programming
|
||
Series 3 choices, 1-1
|
||
Series 3 overview, 1-1
|
||
public name
|
||
application S3, 2-2
|
||
REN
|
||
ringer equivalence number, A-15
|
||
ringer equivalence number modem, A-13
|
||
reserved statics
|
||
see magic static, 2-7
|
||
resource files
|
||
application .rsc $3, 1-2
|
||
application .rzc compressed S3, 1-2
|
||
ringer equivalence number
|
||
modem, A-13
|
||
modem), A-15
|
||
Runimg
|
||
application running from S3, 1-3
|
||
segment statistics
|
||
Spy application, 4-2
|
||
serial 3Link
|
||
assembly components - PC serial, A-7
|
||
serial 3Link cable
|
||
specification, A-5
|
||
serial link
|
||
specifications 3Link cable, A-5
|
||
serial printer cable
|
||
specification Series 3a), A-7
|
||
|
||
|
||
INDEX
|
||
|
||
|
||
specification Series 3c/Siena), A-8
|
||
Series 3
|
||
environment variables, 1-4
|
||
programming choices, 1-1
|
||
programming overview, 1|-1
|
||
sound device driver MUS:, 3-1, 3-2
|
||
sound driver de-installing sndfre.ldd, 3-4
|
||
sound driver installing sndfrc.ldd, 3-1, 3-4
|
||
sound driver snddvr.ldd, 3-1
|
||
sound driver sndfrc.ldd, 3-1
|
||
sound enhanced, 3-1
|
||
specifications 3Link cable, A-5
|
||
specifications modem 3Fax, A-14
|
||
Series 3 models
|
||
differences between, B-1
|
||
Series 3/3s
|
||
specifications, A-2
|
||
Series 3a
|
||
sound, 3-4
|
||
sound device driver SND:, 3-1, 3-4
|
||
sound example code, 3-5
|
||
sound simultaneous, 3-1
|
||
specifications, A-1
|
||
Series 3c
|
||
specification, A-3
|
||
shell application
|
||
communicating with S3, 2-1
|
||
shell data files
|
||
application S3, 1-2, 1-3
|
||
application type numbers S3, 2-2
|
||
creating from .ms files S3, 2-1
|
||
creating with makeshd.exe S3, 2-1
|
||
customised S3, 1-3
|
||
default directory S3 app, 2-2
|
||
default file extension S3 app, 2-2
|
||
multi-lingual $3, 2-2
|
||
source .ms files $3, 2-1
|
||
source multi-lingual $3, 2-3
|
||
shut down
|
||
absent message application S3, 1-3
|
||
message handling S3 apps, 2-12
|
||
SIBO
|
||
Series 3 models - differences, B-1
|
||
Siena
|
||
specification, A-4
|
||
Siena SSD drive
|
||
specification, A-5
|
||
sound
|
||
device driver MUS: Series 3, 3-1, 3-2
|
||
device driver SND: Series 3a, 3-1, 3-4
|
||
driver snddvr.ldd Series 3, 3-1
|
||
driver sndfrc.ldd de-installing Series 3, 3-4
|
||
driver sndfrc.ldd installing Series 3, 3-1,
|
||
3-4
|
||
driver sndfrc.ldd Series 3, 3-1
|
||
enhanced S3, 3-1
|
||
Series 3a, 3-4
|
||
Series 3a example code, 3-5
|
||
simultaneous Series 3a, 3-1
|
||
specification technical
|
||
9-to-25 way D-type adapters, A-9
|
||
Macintosh link cable, A-8
|
||
parallel 3Link, A-10
|
||
parallel printer link cable, A-10
|
||
|
||
|
||
iii
|
||
|
||
|
||
SERIES 3/3A PROGRAMMING GUIDE
|
||
|
||
|
||
PC card modem adapter, A-11, A-13
|
||
PC Link cable Series 3c/Siena, A-8
|
||
printer - parallel link cable, A-10
|
||
serial printer cable Series 3a, A-7
|
||
serial printer cable Series 3c/Siena, A-8
|
||
Series 3 - 3Link cable, A-5
|
||
Series 3/3s, A-2
|
||
Series 3a, A-1
|
||
Series 3c, A-3
|
||
Siena, A-4
|
||
Siena SSD drive, A-5
|
||
Travel modem, A-13
|
||
specifications technical
|
||
modem 3Fax Series 3, A-14
|
||
Spy
|
||
application, 4-1
|
||
application building, 4-1
|
||
application heap integrity, 4-2
|
||
application heap statistics, 4-2
|
||
application main display, 4-1
|
||
application other data, 4-3
|
||
application process priorities, 4-2
|
||
application segment statistics, 4-2
|
||
application source code, 4-1
|
||
application stack statistics, 4-2
|
||
application system processes, 4-1
|
||
application window server statistics, 4-3
|
||
SSD drive - Siena
|
||
specification, A-5
|
||
stack statistics
|
||
Spy application, 4-2
|
||
statics reserved
|
||
see magic static, 2-7
|
||
switch file
|
||
absent message application S3, 1-3
|
||
switch files
|
||
message handling S3 apps, 2-12
|
||
system processes
|
||
Spy application, 4-1
|
||
system screen
|
||
assigning application buttons S3, 2-8
|
||
communicating with S3, 2-1
|
||
current file $3, 2-1
|
||
file list names with Sys$ $3, 2-7
|
||
file lists and S3 apps, 2-7
|
||
files with hidden attribute S3, 2-8
|
||
magic statics $3 apps, 2-7
|
||
message handling S3 apps, 2-12
|
||
message receiving S3 apps, 2-12
|
||
|
||
|
||
new command line message S3 apps, 2-13
|
||
shut down message handling S3 apps, 2-12
|
||
|
||
|
||
shut down message S3, 2-1
|
||
status window S3, 2-1
|
||
|
||
|
||
switch files message handling S3 apps, 2-12
|
||
|
||
|
||
switch files message S3, 2-1
|
||
system screen
|
||
magic static DatApp1 S3, 2-8
|
||
Travel modem
|
||
specification, A-13
|
||
type numbers
|
||
applications S3, 2-2
|
||
utility program
|
||
makeals.exe alias file utility, 2-5
|
||
makeshd.exe shell data file utility, 2-1
|
||
|
||
|
||
window server
|
||
magic statics S3 apps, 2-7
|
||
statistics Spy application, 4-3
|
||
wiring diagram
|
||
9-to-25 way D-type modem adapters, A-9
|
||
9-to-25 way D-type PC (XT) adapters, A-9
|
||
9-to-25 way D-type printer adapters, A-10
|
||
Word application
|
||
aliasing active example S3, 2-5
|
||
WSpCx.exe
|
||
converting .pcx files to icon files, 1-3
|
||
|
||
|