Verzameling artikelen over de Tulip System 1

Dit document is te vinden op de Tulip gebruikersvereniging website. Hier heb ik een online backup van gemaakt, mocht het ooit zo zijn dat deze offline gaat, dan is de informatie hier als mirror te vinden. De originele download plaats is hier te vinden.

Ik heb het hier en daar wat moeten aanpassen omdat sommige dingen als HTML escape codes wordt gezien. Bijvoorbeeld “<ctrl> + <a>” resulteert in een gigantische html link. Dus dat heb ik globaal gecorrigeerd.

Voorwoord. . . . . . . . . . . . . . . . . . . . . . . . . . . .  0
(On)mogelijkheden van de SYSTEM I. . . . . . . . . . . . . . . .  1
Escape sequences in DOS. . . . . . . . . . . . . . . . . . . . .  3
Escape sequences in MBASIC . . . . . . . . . . . . . . . . . . .  4
Functie- & systeem besturingstoetsen in MBASIC . . . . . . . . .  6
Peek & poke in MBASIC. . . . . . . . . . . . . . . . . . . . . . 10
MBASIC editor tip. . . . . . . . . . . . . . . . . . . . . . . . 13
MBASIC - backspace - patch . . . . . . . . . . . . . . . . . . . 15
Escape sequences conversie . . . . . . . . . . . . . . . . . . . 17
De tekensets op de SYSTEM I. . . . . . . . . . . . . . . . . . . 21
Geheugenuitbreidingen. . . . . . . . . . . . . . . . . . . . . . 25
De constructie van de tulip SYSTEM I (geheugen e.d.) . . . . . . 28
RS232-eigenschappen. . . . . . . . . . . . . . . . . . . . . . . 37
De NEC V20 en V30 - microprocessoren . . . . . . . . . . . . . . 42
Monitorbeeld via overheadprojector op projectiescherm. . . . . . 45
Viditel.Com. . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Externe drivers/IBM-emulatie op de SYSTEM I. . . . . . . . . . . 49
     IBMDRV.SYS. . . . . . . . . . . . . . . . . . . . . . . . . 50
     MEMDRV.SYS. . . . . . . . . . . . . . . . . . . . . . . . . 51
     PROGRUN.SYS/IBM-EMULATIE OP DE SYSTEM I . . . . . . . . . . 52
Spellbinder met accenttekens . . . . . . . . . . . . . . . . . . 54
Functietoetsen in Wordstar 3.30. . . . . . . . . . . . . . . . . 60
Wordstar nederlands release 3.40-1.1 - patch . . . . . . . . . . 63
WordPerfect op de system I . . . . . . . . . . . . . . . . . . . 64
Tips voor WordPerfect-gebruikers . . . . . . . . . . . . . . . . 65
Tips en trucs. . . . . . . . . . . . . . . . . . . . . . . . . . 69
Q & A op de SYSTEM I . . . . . . . . . . . . . . . . . . . . . . 70
     Algemeen. . . . . . . . . . . . . . . . . . . . . . . . . . 70
     Op de system I. . . . . . . . . . . . . . . . . . . . . . . 70
Vraag & antwoord . . . . . . . . . . . . . . . . . . . . . . . . 72
     Progrun in netwerk. . . . . . . . . . . . . . . . . . . . . 72
     Karakter-EPROMS en PC-FILE III. . . . . . . . . . . . . . . 72
     Naslagwerkje. . . . . . . . . . . . . . . . . . . . . . . . 72
     COO op de System I. . . . . . . . . . . . . . . . . . . . . 73
Software overzicht: wat werkt op de SYSTEM I . . . . . . . . . . 74


Deze bundel System I artikelen is een kompilatie van de artikelen, zoals
die in de loop der jaren in Tulip Contact hebben gestaan.

Om het geheel iets leesbaarder te maken, zijn de artikelen niet in chrono-
logische volgorde van verschijnen geplaatst, maar per onderwerp gegroe-
peerd. Dit kan als nadeel hebben dat artikelen die naar elkaar verwijzen
niet in de juiste volgorde staan. Bij de indeling is de volgende hoofdinde-
ling aangehouden: (programmeren in) MBASIC, hardware, software.

Verder is het mogelijk dat sommige artikelen door andere zijn achterhaald.
Om 'gesleutel' met artikelen te voorkomen is hier verder geen rekening mee
gehouden. Ook in artikelen genoemde prijzen zullen i.h.a. niet meer juist
zijn. 

Ondanks voorgaande opmerkingen hoop en denk ik dat deze artikelbundel een
bron van informatie is voor alle System I leden.


Hans ten Have



De laatste tijd bereiken mij regelmatig vragen m.b.t. de System I. Omdat er
misschien meer mensen met deze vragen zitten hierbij de vragen met de
bijbehorende antwoorden.

1.   Wat zijn de uitbreidingsmogelijkheden?
     INTERN (= in de computer)
     .  Geheugenuitbreiding
        De system I heeft minimaal 128 Kb. 256 Kb is zeer gewenst en
        eenvoudig te realiseren: koop 18 geheugen-chips van het type 4164-
        12 en plaats deze in de lege vakken naast de andere geheugenchips.
        Prijsindicatie: ?? (prijzen wisselend).
        Het geheugen kan tot maximaal 896 Kb worden uitgebreid. Dit kost
        echter meer moeite (zie ook voorgaande artikelen).
     .  Grafische kaart.
        Niet interessant: werkt helaas alleen met enkele speciaal voor de
        system I aangepaste programma's (o.a. LOTUS 1-2-3 v1A en Open
        Access I) en zelfgeschreven programma's.
     .  Mathematische coprocessor.
        Geeft met name versnelling bij rekenintensieve programma's. Beno-
        digd type: C8087-2 (8 Mhz)
        kosten: voor zover ik weet tussen 600,- en 800,-
     EXTERN (= buiten de computer)
     .  Printer.
        Dit mag een doodgewone (he, he, eindelijk) printer zijn. Het
        gemakkelijkst is een printer met een parallelle aansluiting. Het
        enige dat extra aandacht behoeft is de kabel waarmee de printer I
        wordt aangesloten: deze is anders dan die van een IBM-compatible.
        Neem dan ook het schema mee naar de winkel. Een andere mogelijk-
        heid is contact opnemen met Wouter Smid (033-807954), die ze ook
        kan leveren.
        Een goede goedkope printer is de Star LC10; prijs: zo'n 550,-. Ook
        andere zoals Epson e.d. zijn te gebruiken.
     .  Modem.
        Hiervoor geldt hetzelfde als het voorgaande. Het enige verschil is
        dat een modem altijd op een seriâle poort wordt aangesloten (de
        RS232).
        Prijsindicatie: vanaf zo'n 400,- (het moet wel een EXTERN model
        zijn!)

2.   Hoe kom ik aan een service-manual.
     Niet, dus: deze is niet verkrijgbaar.

3.   Met welke DOS-versies kan de System I werken?
     Officieel is de enige mogelijkheid de originele v2.0. DOS 2.10 en 3.10
     zijn weliswaar gesignaleerd, maar dit zijn door hobbyisten aangepaste
     en daardoor niet door Tulip ondersteunde versies. Deze zijn niet bij
     de TGV verkrijgbaar.

4.   Wat zijn de mogelijkheden?
     In principe onbeperkt: met behulp van programmeertalen zoals turbo-
     PASCAL (de installeerbare v3.0 werkt), M-BASIC e.d kun je zelf alles
     maken. Als ik echter kijk naar standaardprogrammatuur dan wordt de
     wereld een stuk kleiner: veel public domain werkt niet, een klein deel
     echter wel (waaronder PC-File III). (zie nr. 15 voor een overzicht van
     de momenteel verkrijgbare software). Van de commercieel verkrijgbare
     software werken o.a. de volgende (de meeste speciaal aangepast):
     WordPerfect v4.2 (zonder aanpassing; minimaal 256Kb vereist), LOTUS 1-
     2-3 v1A, Open Access I, Queen I, Dbase II en III+. Hierbij is (m.u.v.
     Dbase II) het programma PROGRUN nodig (zie nr 15).
     Uiteindelijk dus toch genoeg om goed te kunnen leren wat je allemaal
     met een computer kunt doen en zelfs genoeg om het systeem, behalve
     voor hobby, zinvol te kunnen gebruiken.

Hans ten Have



De escape-sequences zoals die gebruikt kunnen worden op de SYSTEM I vinden
meestal alleen hun toepassing binnen een programmeertaal. Dat deze sequen-
ces ook binnen DOS gebruikt kunnen worden is nagenoeg onbekend. Een
mogelijkheid waarop gewezen werd door Wouter Smit.
Als U bijvoorbeeld in BASIC gebruik maakt van enkele van deze sequences is
het U waarschijnlijk als eens overkomen dat U terug gekeerd bent naar DOS
en dat bijvoorbeeld de cursor was verdwenen. Dit kunt U ongedaan maken door
het volgende in te toetsen:

  +  

Dus eerst op de ESC-toets drukken, vervolgens op de R drukken terwijl U de
SHIFT-toets ingedrukt houdt. Op uw scherm verschijnt dan ^[. Daarna geeft U
de gewenste escape-sequence-combinatie. De hoofdletter O zorgt ervoor dat
de cursor weer verschijnt.Het gebruik van escape-sequences in MBASIC is waarschijnlijk bij sommigen
wel bekend, voor hen die hier nog nooit van hebben gehoord, of die het nog
nooit gebruikt hebben volgt hieronder een listing van het installeren van
een aantal van deze sequences. Ik gebruik ze naar wens in m'n programma-
tuur.
Het is belangrijk eerst deze module uit te voeren voordat U er in uw pro-
gramma gebruik van maakt. Nog sterker; als U uw programma later wilt compi-
leren, dan dient deze module zelfs aan het begin van de totaallisting te
staan.

100 '  ==================================================================-
===
110 '  ====               DEFINIEREN HULPVARIABELEN                    
====
120 '  ==================================================================-
===
130 '
140 LET BEL$       = CHR$(7)            'activeren belsignaal
150 LET CLS$       = CHR$(26)           'schoon scherm
160 LET ESC$       = CHR$(27)           'escape
170 LET HIAAN$     = ESC$ + CHR$(41)    'inschakelen halve intensiteit
180 LET HIUIT$     = ESC$ + CHR$(40)    'uitschakelen halve intensiteit
190 LET STATAAN$   = ESC$ + CHR$(64)    'inschakelen statusregel
200 LET STATUIT$   = ESC$ + CHR$(33)    'uitschakelen statusregel
210 LET CURSAAN$   = ESC$ + CHR$(79)    'inschakelen cursor
220 LET CURSUIT$   = ESC$ + CHR$(78)    'uitschakelen cursor
230 LET KNIPAAN$   = ESC$ + CHR$(94)    'inschakelen knipperen
240 LET KNIPUIT$   = ESC$ + CHR$(113)   'uitschakelen knipperen
250 LET STREEPAAN$ = ESC$ + CHR$(108)   'inschakelen onderstrepen
260 LET STREEPUIT$ = ESC$ + CHR$(109)   'uitschakelen onderstrepen
270 LET INVAAN$    = ESC$ + CHR$(106)   'inschakelen inverse afdruk
280 LET INVUIT$    = ESC$ + CHR$(107)   'uitschakelen inverse afdruk
290 LET MSDOS$     = ESC$ + CHR$(77)    'herstellen MS-DOS standaard
300 LET REGWIS$    = ESC$ + CHR$(84)    'wis regel vanaf cursor
310 LET PAGWIS$    = ESC$ + CHR$(89)    'wis pagina vanaf cursor
320 LET COL9AAN$   = ESC$ + CHR$(118)   'inschakelen 9e graf.kolom
330 LET COL9UIT$   = ESC$ + CHR$(119)   'uitschakelen 9e graf.kolom
340 DEF FNP$(X,Y)  = CHR$(13) + ESC$ + "=" + 
                     CHR$(31+X) + CHR$(31+Y)  'definitie beeldschermfunctie
350 LET V$         = CHR$(162)                'verticaal streepje
360 LET H$         = CHR$(151)                'horizontaal streepje
370 LET AO$        = CHR$(187)                'aftakking naar onder
380 LET AR$        = CHR$(180)                'aftakking naar rechts
390 LET AL$        = CHR$(185)                'aftakking naar links
400 LET KR$        = CHR$(173)                'kruis horizontaal-verticaal
410 LET AB$        = CHR$(178)                'aftakking naar boven
420 LET HLO$       = CHR$(190)                'hoek links onder
430 LET HRO$       = CHR$(191)                'hoek rechts onder
440 LET HLB$       = CHR$(188)                'hoek links boven
450 LET HRB$       = CHR$(189)                'hoek rechts boven
460 LET ZWART$     = ESC$ + CHR$(86) + CHR$(48)  'inschakelen zwart
470 LET ROOD$      = ESC$ + CHR$(86) + CHR$(49)  'inschakelen rood
480 LET GROEN$     = ESC$ + CHR$(86) + CHR$(50)  'inschakelen groen
490 LET GEEL$      = ESC$ + CHR$(86) + CHR$(51)  'inschakelen geel
500 LET BLAUW$     = ESC$ + CHR$(86) + CHR$(52)  'inschakelen blauw
510 LET MAGENTA$   = ESC$ + CHR$(86) + CHR$(53)  'inschakelen magenta
520 LET CYAAN$     = ESC$ + CHR$(86) + CHR$(54)  'inschakelen cyaan
530 LET WIT$       = ESC$ + CHR$(86) + CHR$(55)  'inschakelen wit
540 RETURN


Het gebruik van deze functies is heel eenvoudig. Wilt U iets in halve
intensiteit op cursorpositie 12 verticaal, 25 horizontaal afgedrukt hebben,
dan gebruikt U:

               PRINT FNP$(12,25) HIAAN$;"teksttekstteksttekst";HIUIT$

U kunt de diverse commando's ook combineren.

JK


Ook de systeem besturingstoetsen en de functietoetsen zijn in MBASIC te
benoemen. Hier geldt het principe van het uitvinden van het wiel. En ik
weet zeker dat veel mensen zich bezig houden met dit wiel. Misschien is het
in dit geval niet zozeer het heruitvinden van het wiel maar dan wel het
rondmaken er van. Ik weet ook zeker dat 'mijn wiel' nog lang niet rond is.
MBASIC- programmeurs die zich met iets dergelijks bezig gehouden hebben
verzoek ik derhalve dan ook hun bijdrage aan het onderstaande te leveren.


Systeembesturingstoetsen:

Hieronder versta ik gemakshalve maar de 14 toetsen die zich tussen alfanu-
meriek- en numeriek toetsenbord bevinden.
In de onderstaande module worden deze 14 toetsen allemaal van een waarde
voorzien, deze waarde wordt echter nog niet onder deze toetsen geplaatst.

560 ' =====================================================================
570 ' ====  TOEKENNEN WAARDE AAN FUNCTIE- EN SYSTEEMBESTURINGSTOETSEN  ====
580 ' =====================================================================
590 '
600 ' BENOEMEN SYSTEEMBESTURINGSTOETSEN
610 '
620 LET CLEARR$       = CHR$(&HFE)+CHR$(&HFE)   'OFF
[CHR$(&H0)+CHR$(&HFE)=ON]
630 LET PRINTT$       = CHR$(&HFE)+CHR$(&HFE)   'OFF [zie boven]
640 LET FWD$          = CHR$(200)             
650 LET BWD$          = CHR$(201)              
660 LET CHARDEL$      = CHR$(8)                 'CTRL/H
670 LET LINEDEL$      = CHR$(&H18)+CHR$(&HFE)   'CTRL/X
680 LET HOME$         = CHR$(202)              
700 LET SPRONGLINKS$  = CHR$(203)               
710 LET SPRONGRECHTS$ = CHR$(204)               
720 LET CUROP$        = CHR$(205)              
730 LET CURNEER$      = CHR$(206)              
740 LET CURLINKS$     = CHR$(207)             
750 LET CURRECHTS$    = CHR$(208)             
760 LET INSRTAAN$     = CHR$(209)             
770 LET INSRTUIT$     = CHR$(210)             
780 RETURN
790 '
800 '

De CLEAR-toets en de PRINT-toets worden op deze wijze uitgeschakeld. Als U
programma's schrijft die door leken gebruikt moeten worden dan bestaat
altijd het risico dat men per abuis op de CLEAR-toets drukt. Meestal voor-
ziet de programmatuur hierin niet, hetgeen betekent dat het scherm leeg is
en nagenoeg leeg blijft. Hetzelfde geldt voor de PRINT-toets, hoewel een
aanslag van de PRINT-toets niet een dergelijk ingrijpende consequentie heeft.
De overige toetsen krijgen een waarde uit het tweede gedeelte van de karak-
terset. Dit betreffen meestal karakters die niet (of nagenoeg niet)
gebruikt worden. Een toepassing hiermee:

3000 '
3010 LET REACTIE$ = INKEY$     '+----------------------------------------+
3020 WHILE REACTIE$ <> ""      '|telkens vragen om een reactie en slechts|
3030   LET REACTIE$ = INKEY$   '|reageren als die reactie niet leeg is   |
3040 WEND                      '+----------------------------------------+
3050 WHILE REACTIE$ <> SLUITGEGEVEN$ '(zelf te bepalen)
3060   IF REACTIE$ = CUROP$ THEN
          ' hier volgen de handelingen die dan verricht moeten worden
3070   IF REACTIE$ = CURNEER$ THEN
          ' hier volgen etc....

3080   etc.etc.
3090   LET REACTIE$ = INKEY$    
'+----------------------------------------+
3100   WHILE REACTIE$ <> ""      '|telkens vragen om een reactie en
slechts|
3110     LET REACTIE$ = INKEY$   '|reageren als die reactie niet leeg is  
|
3120   WEND                     
'+----------------------------------------+
3090 WEND
3100 RETURN
3110 '
3120 ' 

De bovengenoemde waarden moeten echter voordat U dit kunt uitvoeren nog wel
onder de systeembesturingstoetsen geplaatst worden.
Dit gebeurt in de onderstaande module:

1000 ' INSTELLEN SYSTEEMBESTURINGSTOETSEN
1005 '
1010 PRINT CHR$(27) + CHR$(101) + CHR$(49) + CLEARR$
1020 PRINT CHR$(27) + CHR$(101) + CHR$(50) + PRINTT$
1030 PRINT CHR$(27) + CHR$(101) + CHR$(51) + FWD$
1040 PRINT CHR$(27) + CHR$(101) + CHR$(52) + BWD$
1050 PRINT CHR$(27) + CHR$(101) + CHR$(53) + CHARDEL$
1060 PRINT CHR$(27) + CHR$(101) + CHR$(54) + LINEDEL$
1070 PRINT CHR$(27) + CHR$(101) + CHR$(55) + HOME$
1090 PRINT CHR$(27) + CHR$(101) + CHR$(57) + SPRONGLINKS$
1100 PRINT CHR$(27) + CHR$(101) + CHR$(58) + SPRONGRECHTS$
1110 PRINT CHR$(27) + CHR$(101) + CHR$(59) + CUROP$
1120 PRINT CHR$(27) + CHR$(101) + CHR$(60) + CURNEER$
1130 PRINT CHR$(27) + CHR$(101) + CHR$(61) + CURLINKS$
1140 PRINT CHR$(27) + CHR$(101) + CHR$(62) + CURRECHTS$
1150 PRINT CHR$(27) + CHR$(101) + CHR$(63) + INSRTAAN$
1160 PRINT CHR$(27) + CHR$(101) + CHR$(64) + INSRTUIT$
1170 RETURN
1180'
1190'


Zoals voorafgaand beschreven is, is het mogelijk om op analoge wijze de 16
functietoetsen te benoemen. Allereerst krijgen ze een waarde en vervolgens
worden ze geinstalleerd.

790 ' BENOEMEN FUNCTIETOETSEN
800 '
810 LET F1$           = ""
820 LET F2$           = ""
830 LET F3$           = ""
840 LET F4$           = ""
850 LET F5$           = ""
860 LET F6$           = ""
870 LET F7$           = ""
880 LET F8$           = ""
890 LET F9$           = HLB$
900 LET F10$          = HLO$
910 LET F11$          = V$
920 LET F12$          = AR$
930 LET F13$          = AL$
940 LET F14$          = H$
950 LET F15$          = HRO$
960 LET F16$          = HRB$
970 RETURN
980 '
990 '

1180 ' INSTELLEN FUNCTIETOETSEN
1190 '
1210 PRINT CHR$(27) + CHR$(102) + CHR$(49) + F1$  + CHR$(0)
1220 PRINT CHR$(27) + CHR$(102) + CHR$(50) + F2$  + CHR$(0)
1230 PRINT CHR$(27) + CHR$(102) + CHR$(51) + F3$  + CHR$(0)
1240 PRINT CHR$(27) + CHR$(102) + CHR$(52) + F4$  + CHR$(0)
1250 PRINT CHR$(27) + CHR$(102) + CHR$(53) + F5$  + CHR$(0)
1260 PRINT CHR$(27) + CHR$(102) + CHR$(54) + F6$  + CHR$(0)
1270 PRINT CHR$(27) + CHR$(102) + CHR$(55) + F7$  + CHR$(0)
1280 PRINT CHR$(27) + CHR$(102) + CHR$(56) + F8$  + CHR$(0)
1290 PRINT CHR$(27) + CHR$(102) + CHR$(57) + F9$  + CHR$(0)
1300 PRINT CHR$(27) + CHR$(102) + CHR$(58) + F10$ + CHR$(0)
1310 PRINT CHR$(27) + CHR$(102) + CHR$(59) + F11$ + CHR$(0)
1320 PRINT CHR$(27) + CHR$(102) + CHR$(60) + F12$ + CHR$(0)
1330 PRINT CHR$(27) + CHR$(102) + CHR$(61) + F13$ + CHR$(0)
1340 PRINT CHR$(27) + CHR$(102) + CHR$(62) + F14$ + CHR$(0)
1350 PRINT CHR$(27) + CHR$(102) + CHR$(63) + F15$ + CHR$(0)
1360 PRINT CHR$(27) + CHR$(102) + CHR$(64) + F16$ + CHR$(0)
1370 RETURN
1380 '
1390 '

Wie een beter gebruik van deze toepassingen kan geven wordt vriendelijk
verzocht dit kenbaar te maken.
JK



PEEK & POKE, twee toverwoorden voor de computerhobbyist. Dit stukje wil het
PEEK & POKE-probleem bij MBASIC op de SYSTEM I introduceren, in de hoop dat
een groot aantal hierop in zullen springen.

Met PEEK is het mogelijk om vanuit BASIC direct in een bepaalde geheugen-
plaats te kijken. De instructie luidt b.v.: 

           LET W = PEEK(adres)

waarbij het adres zowel in decimale als in hexadecimale vorm gegeven mag
zijn. In hexadecimale vorm wordt het adres voorafgegaan door de karakters
&H en daarna volgt het hexadecimale getal.
Met POKE is het mogelijk om vanuit BASIC direct een waarde in een bepaalde
geheugenplaats te schrijven. De instructie luidt b.v.:

           POKE(adres,waarde)

waarbij zowel het adres als de waarde in decimale of hexadecimale vorm zijn
opgenomen.

In hoeverre je deze twee instructies kunt gebruiken op de SYSTEM I is mij
nog lang niet duidelijk. Het is wel bekend dat in tegenstelling tot veel
andere computersystemen direct een waarde uit het datadeel van het geheugen
te lezen of er naar toe te schrijven bij de SYSTEM I nagenoeg onmogelijk
is, omdat deze positie's niet vast staan.
Wat wel vast staat is het BIOS. Dit staat vanaf adres &H40. Dus hierin is
het in principe mogelijk veranderingen aan te brengen of slechts inhouden
te bekijken. Het doel is een overzicht samen te stellen van de diverse
geheugenadressen in het BIOS met hun bijbehorende mogelijke waarden en hun
betekenis. Van een IBM-achtige zijn deze adressen wel bekend doch deze
komen niet overeen met de adressen van de SYSTEM I. (deze IBM-adressen
worden volgende keer besproken, nadat ze getest zijn. Er is een tekst-file
in de PD-bibliotheek waarin deze adressen staan).
Een aantal van deze adresinhouden kun je rechtstreeks vanuit BASIC met een
speciale escape-sequence veranderen. Nieuwe vondsten zijn er nagenoeg niet.
Het blijft voorlopig bij de volgende:

ADRES #103 in het BIOS geeft de status weer van een aantal toetsen. De
inhoud geeft weer of de betreffende toets ingedrukt is (geweest). In de
beginpositie is de waarde 0 (nul). Als de volgende toetsen worden ingedrukt
wordt de inhoud met een zekere uitsluitende waarde opgehoogd. Deze ophoging
bedraagt voor de toetsen:

     LEFT SHIFT         + 1
     RIGHT SHIFT        + 2
     CTRL               + 4
     ALPHA LOCK         + 8
     INSRT              +16
     GRAPH              +32
     REV                +64

Dus als de inhoud van dit adres de waarde 17 heeft, dan weet men dat de
linker shift toets ingedrukt wordt gehouden en dat de INSRT toets ingedrukt
is geweest.


In MBASIC kunt U de onderstaande routine gebruiken om de status van de
genoemde toetsen door te geven.

500 '
510 LET AD = 103
520 LET LEFT.SHIFT.PRESSED =  1
530 LET RIGHT.SHIFT.PRESSED = 2
540 LET CTRL.PRESSED = 4
550 LET ALPHA.LOCK.PRESSED = 8
560 LET INSRT.PRESSED = 16
570 LET GRAPH.PRESSED = 32
580 LET REV.PRESSED =64
590 LET REACTIE$ = INKEY$
600 WHILE REACTIE$ = ""
610   LET REACTIE$ = INKEY$
620 WEND
630 WHILE REACTIE$ <> SLUITGEGEVEN$ '(zelf invoeren)
640   DEF SEG = &H40                'naar het BIOS-deel v.h. geheugen
640   IF PEEK(AD) AND LEFT.SHIFT.PRESSED THEN PRINT "linker shift toets"
650   IF PEEK(AD) AND RIGHT.SHIFT.PRESSED THEN PRINT "rechter shift toets"
660   'etc...etc...
690   DEF SEG                       'terug naar het BASIC-deel v.h.
geheugen
700   LET REACTIE$ = INKEY$
710   WHILE REACTIE$ = ""
720     LET REACTIE$ = INKEY$
730   WEND
740 WEND
750 RETURN

OPMERKING:
Voordat er gePEEKt wordt moet eerst met behulp van DEF SEG aangegeven
worden waar het start adres zich bevindt. DEF SEG zonder specifieke
vermelding stelt dit adres weer standaard.

Ik hoop dat U in navolging van het bovenstaande ook eens gaat PEEKen en
POKEen om ook voor de SYSTEM I een overzicht te krijgen. Naast het BIOS zou
U ook eens een kijkje kunnen nemen in het video-ram. Het preciese begin-
adres van dit video-ram is &HE000 (zie gebruikershandleiding Hoofdstuk 9)


JK



Al ruim 3 jaar werk ik in het onderwijs met MBASIC op de SYSTEM I De meeste 
leerlingen die  een computer  thuis hebben klagen over de editor in MBASIC.
Een regel wijzigen geschiedt in MBASIC met behulp van het commando: EDIT
.  Het feit dat de cursor niet omhoog en naar links wil krijg
je er maar moeilijk in bij de leerling. Inmiddels is de editor (tenminste
dat dacht ik) voor mij bekend terrein.
Als leerlingen een instructieregel van rond de 240 karakters hebben
ingetikt en men wil elders in het programma dezelfde regel opnemen (dus
dezelfde inhoud echter een ander nummer) dan kon ik tot op heden slechts
melden dat men dan genoodzaakt is de regel opnieuw in te tikken. Bij toeval
kwam ik echter achter de volgende mogelijkheid: Het is mogelijk in Mbasic
reeds ingetikte regels inclusief het regelnummer in de editorbuffer te
halen en daarin alleen het regelnummer te wijzigen. De betreffende instruc-
tie staat dan na afsluiting nog een keer extra op het gewijzigde regelnum-
mer in het programma.
De werking ervan verloopt alsvolgt:
Mbasic onthoudt in het geheugen telkens de laatst aangeroepen regel. Met
andere woorden:
- een regel die zojuist is ingetikt staat na een RETURN nog (inclusief
ingetikt regelnummer) in de buffer.
- een regel die zojuist ge'edit' is met behulp van het edit- commando staat
(zonder regelnummer) nog in de buffer.
- de laatste regel die na een list-commando op het scherm is verschenen
staat (zonder regelnummer) nog in de buffer.
Volgens de manual van Mbasic kan men met het commando EDIT. (zonder nummer)
de laatst ingetikte regel nog editen. In praktijk blijkt dit niet te
kloppen. Een commando EDIT. (zonder regelnummer) geeft steevast de foutmel-
ding: Undefined line number. 
Het activeren van de inhoud van de buffer kan men echter realiseren met het
commando CTRL+A (dus de Control-toets ingedrukt houden terwijl men de A
intikt). Op het scherm verschijnt dan het uitroepteken (!) en men kan de
regel volgens de regels van de editor (de commando's die na de instructie
EDIT mogelijk zijn) verbeteren. Zelfs het wijzigen of invoegen van een
regelnummer is mogelijk. De instructie met het orginele regelnummer blijft
dan bewaard.

Voorbeeld:
Als men op regel 10 een lange regel heeft opgenomen, zoals:

10 IF A < 0 THEN PRINT "getal is kleiner dan nul" : LET SOMKL = SOMKL + 1 ELSE IF A > 0 THEN PRINT "getal is groter dan nul" :
                               LET SOMGR = SOMGR + 1
                          ELSE PRINT "getal is gelijk aan nul" :
                               LET SOMGL = SOMGL + 1

en men wil op regel 40 dezelfde instructie opemen, dan kan men als volgt
handelen:

U tikt:                                Er verschijnt:
------------------------------------   ---------------------
  
EDIT 10 RETURN                       10 €
RETURN                               10 (en de regel)
                                       €

ctrl + a                           ! €

I  (wordt niet zichtbaar op scherm)

   RETURN         €

Na het commando LIST blijkt de regel gecopieerd te zijn. 

Jan Klaver



MBASIC (versie 5.28)-gebruikers op de SYSTEM I zullen zich net als ik wel
eens geergerd hebben aan de uitwerking van een druk op de BACKSPACE-toets.
Als een instructieregel wordt ingetikt en er wordt een fout geconstateert,
dan gaan 9 van de 10 gebruikers de BACKSPACE-toets gebruiken om de cursor
terug te krijgen.
Het gevolg is echter dat de verwijderde karakters na een backslash afge-
drukt worden.

Bijvoorbeeld:
Er wordt ingetikt:

10 PRINT "DIT IS EEN VOOLBEELD€

Nu constateert men een fout en men drukt een aantal keren op de BACKSPACE-
-toets. Het gevolg:

10 PRINT "DIT IS EEN VOOLBEELD\DLEEBL€

De eerste reactie bij de beginnende gebruiker is dan een correctie door
middel van de CHAR DEL-toets aan te brengen. Echter dan staat er in de
buffer iets anders dan wat er op het scherm te zien is.

De oplossing voor dit probleem zou hem zitten in een keyboard- reas-
signment. Dat wil zeggen dat de BACKSPACE-toets in plaats van een chr$(127)
een chr$(8) gaat genereren als ze wordt ingedrukt.
Deze wijziging zou dan aan te brengen moeten zijn in IO.SYS. Ik kan echter
in IO.SYS in de toetsenbordtabel de waarden van de BACKSPACE-toets nergens
vinden. 
Een andere oplossing is een wijziging in MBASIC aan brengen. Als er in
MBASIC geconstateert wordt dat de BACKSPACE-toets is ingedrukt, dan moet er
gedaan worden alsof de CHAR DEL-toets is ingedrukt. 
Dit laatste kan met DEBUG worden gerealiseerd. Voer daartoe de volgende
actie uit:

Maak een copie van MBASIC.COM en noem dit bijvoorbeeld RESERVE.COM.
Plaats DEBUG.COM in dezelfde directory op dezelfde schijf als RESERVE.COM.
Start DEBUG op.
Vul het geheugen vanaf adres 0 tot en met 7D00 met de waarde 0.
Benoem het file RESERVE.COM en laad het in het geheugen.
Wijzig vanaf relatief adres 32CF 6 bytes.
Schrijf het gewijzigde programma weer naar schijf en verlaat DEBUG.
U heeft dan een versie van MBASIC, genaamd RESERVE waarbij U van de
BACKspace-toets gebruik kunt maken tijdens het intikken van het programma.
De uitwerking van een druk op de BACKSPACE-toets is hetzelfde als die van
een druk op de CHAR DEL-toets.
In de Editor is de functie van de BACKSPACE-toets niet gewijzigd. Daar moet
U dus enige voorzichtigheid betrachten.
Dus:

Het systeem meldt:     U tikt:
------------------     ------------------------------------

A>€                    COPY MBASIC.COM RESERVE.COM RETURN

    1 File(s) copied

A>€                    DEBUG         RETURN

- €                    F 0 7D00 0    RETURN

- €                    N RESERVE.COM RETURN

- €                    L             RETURN

- €                    E 32CF        RETURN

xxxx:32CF 74.€         75            SPATIE 

xxxx:32D0 B5.€         11            SPATIE

A0.€                   B0            SPATIE

58.€                   08            SPATIE

01.€                   EB            SPATIE

0A.€                   0F            RETURN

- €                    W             RETURN

Writing 7C00 bytes

- €                    Q             RETURN

A>€

Jan Klaver




In nummer 1 van Tulip Contact stond een artikel waarin het gebruik van de
ESCape-sequences op de Tulip System I vanuit MBasic werden besproken. Bij
het omzetten van een MBasic-programma naar GWBasic voor de Compact of de
Extend kunnen niet dezelfde sequences worden gebruikt. Daarvoor moet een
'omweggetje' worden gemaakt. Nu blijkt echter dat niet alle codes voor de
Compact vlekkeloos werken op een IBM of IBM-compatible. Dit vloeit voort
uit het verschil tussen de ANSI.EXE van Tulip en de ANSI.SYS van IBM.
Hieronder geef ik een overzicht van de door mij uitgewerkte mogelijkhe-
den/problemen en oplossingen. Mogelijk kunnen andere mensen hierop aanvul-
lingen geven.

TULIP_SYSTEM_I

Op de System I kunnen we een aantal functies als cursorbesturing (1),
invers video (2), knipperen (3) en onderstrepen (4) gebruiken door in het
begin van een programma een aantal functies te definiâren. Dit kan bijvoor-
beeld op de volgende manier:

1 DEF FNP$(X%,Y%)   = CHR$(13) + CHR$(27) + "=" + CHR$(X%+31) + 
                      CHR$(Y%+31)
2 DEF FNINV$(TXT$)  = CHR$(27) + "j" + TXT$ + CHR$(27) + "k"
3 DEF FNKNIP$(TXT$) = CHR$(27) + "^" + TXT$ + CHR$(27) + "q"
4 DEF FNL$(TXT$)    = CHR$(27) + "l" + TXT$ + CHR$(27) + "m"

Op de plaats waar we een tekst willen laten onderstrepen zetten we bijvoor-
beeld in het programma de regel

 PRINT FNP$(10,5); FNL$("Onderstreep deze tekst")

Eventueel kunnen deze functies ook worden gecombineerd. Bijv.:

 PRINT FNP$(10,5); FNL$(FNKNIP$(FNINV$("Alles tegelijk")))

In het artikel in het eerste nummer van Tulip Contact worden nog vele
andere mogelijkheden genoemd.

De vraag is nu hoe we te werk moeten gaan als een programma met bovenstaan-
de functies moet worden geconverteerd voor de Compact. Voor de Compact
gelden andere ESCape-sequences. Daardoor hebben bovenstaande functies geen
enkel effect. Toch zou het wel zo prettig zijn als we het programma niet
helemaal opnieuw behoeven te maken.

TULIP_PC_COMPACT

Het probleem bij de ESCape-sequences op de IBM-compatible is dat de codes
slechts vanuit MS-DOS via het console gegeven kunnen worden. We moeten dus
een manier hebben om onder programmabesturing een opdracht via het console
te geven, zonder dat we zelf iets intypen. Open daartoe op de volgende
wijze een sequentieel bestand voor Output naar het console.

 OPEN "O" , #1 , "CON"

Alle uitvoer die we via dit 'bestand' schrijven, gaat nu naar het console,
en zal worden geinterpreteerd als een opdracht die is ingetypt tijdens de
werking van het programma. Het programma wordt als het ware even verlaten,
voor een opdracht buiten het programma om.
Neem vervolgens in het programma de volgende regels op om de nieuwe
functies te definiâren:

1 DEF FNP$(X%,Y%)   + CHR$(27) + "[" + STR$(Y%) + ";" + STR$(X%) 
                    + "H"
2 DEF FNINV$(TXT$)  = CHR$(27) + "[7m" + TXT$ + CHR$(27) + "[0m"
3 DEF FNKNIP$(TXT$) = CHR$(27) + "[5m" + TXT$ + CHR$(27) + "[0m"
4 DEF FNL$(TXT$)    = CHR$(27) + "[4m" + TXT$ + CHR$(27) + "[0m"

Om hetzelfde resultaat als bij de System I te bereiken, dient nu in het
programma te worden opgenomen:

 PRINT #1,FNP$(10,5);FNL$("Onderstreep deze tekst")
of
 PRINT #1,FNP$(10,5);FNL$(FNKNIP$(FNINV$("Alles tegelijk")))

Dit kan heel eenvoudig door de ASCII-versie van het MBASIC- programma over
te zetten naar een schijf van de Compact en deze via de zoek-en-vervang
functie van een tekstverwerker als bijvoorbeeld Spellbinder aan te passen.
Denk bij Spellbinder daarbij wel aan het bewaren met behulp van de optie
'/1' achter de naam.
Het programma zal werken als voor het starten van een programma en voor het
starten van GWBasic de ESCape-sequences zijn geãnstalleerd met de opdracht
ANSI ON. Daarbij doen zich echter een aantal 'problemen' voor:

- De functies  knipperen, invers video en onderstrepen, werken op een
string die binnen ronde haken is gedefinieerd, maar werken ook op een extra
spatie voor de bewuste string. Het resultaat is bijvoorbeeld:

        _onderstreept   in plaats van   onderstreept

Uit symmetrie oogpunten is het natuurlijk mogelijk achter het woord een
spatie te zetten, die moet worden onderstreept, maar misschien weet iemand
een oplossing voor de 'voorloop'-spatie.

Hetzelfde probleem doet zich voor bij invers video en knipperen

- Voor cursorbesturing bezit GWBasic natuurlijk de opdracht LOCATE. Om
echter zo weinig mogelijk in het MBasic-programma te hoeven aanpassen, is
de hier beschreven manier wel handig. Daarbij stuitte ik echter op het
volgende, nog niet opgeloste, probleem:

FNP$ drukt de tekst of getallen na PRINT #1,FNP$... op de juiste plaats op
het scherm af, maar de cursor keert daarna terug naar de plaats op het
scherm die hij daarvoor innam. De cursor is blijkbaar slechts voor de duur
van de opdracht verplaatst. Bijvoorbeeld:

10 PRINT CHR$(12)        'schoon scherm
20 PRINT TAB(20);"OVERZICHT"
30 PRINT #1,FNP$(10,5);"1: Mogelijkheid 1"
40 PRINT #1,FNP$(10,6);"2: Mogelijkheid 2"
50 PRINT
60 PRINT TAB(20);"Geef het nummer van uw keuze: ";
70 INPUT K$
80 .......

De vraag van regel 60 zal direkt onder de tekst van regel 20 worden
afgedrukt in plaats van onder de tekst van regel 40. De cursor is blijkbaar
alleen voor het afdrukken van 30 en 40 even verplaatst. Dit is waarschijn-
lijk een gevolg van het 'buiten' het programma om verplaatsen van de
cursor. Misschien weet iemand een manier om via de ESCape sequences de
cursor 'echt' te verplaatsen.

Als programma's die op bovenstaande manier zijn aangepast worden geprobeerd
op een IBM (Basica) of een IBM-compatible, lopen we weer tegen nieuwe
problemen op.

IBM_of_IBM-compatible

Op een IBM moeten de ANSI escape-codes worden geãnstalleerd door in de file
CONFIG.SYS de volgende regel op te nemen:

 DEVICE = ANSI.SYS

In principe kan daarna worden gewerkt als na ANSI ON op een Compact. Omdat
ANSI.SYS echter niet exact dezelfde codes als ANSI.EXE ondersteunt, kunnen
er 'vreemde' problemen ontstaan.

- De boven omschreven functie voor cursorbesturing werkt niet. Na veel
gepruts blijkt deze functie door de volgende te moeten worden vervangen:

DEF FNP$(X%,Y%) = CHR$(27) + "[" + MID$(STR$(Y%),2,LEN(STR$(Y%)))
                  + ";" +  MID$(STR$(X%),2,LEN(STR$(X%)))+"f"

Het gebruik van MID$ en LEN blijkt nodig om de spatie die STR$ automatisch
voor een getal zet weer te verwijderen. ANSI.SYS blijkt daar problemen mee
te hebben. In vergelijking tot de Tulip eindigt de definitie met "f" in
plaats van met "H", hoewel volgens de documentatie beiden zouden moeten
werken.

Het verrassende is nu dat bovenstaande definitie ook werkt op een Tulip
Compact, zodat deze definitie is aan te raden. 'Vreemde' problemen treden
echter op als eerst iets knipperend op een bepaalde positie wordt afgedrukt
en later iets anders op dezelfde plaats (dezelfde coo"rdinaten) niet-knip-
peren erover heen moet worden afgedrukt. Op een IBM werkt dat goed. Op de
Compact ontstaat een 'springer' op het scherm. Bijvoorbeeld:

... PRINT #1, FNP$(10,5); FNKNIP$(Typ[ uw keuze");
... etc
...
... PRINT #1, FNP$(10,5); "Typ uw keuze"

De tweede tekst blijkt de eerste tekst bij IBM wel en bij Tulip niet geheel
af te dekken. Dit heeft zeer waanrschijnlijk met de eerder beschreven
'voorloop'-spatie te maken. Op de Compact moet in dat geval de
x-coo"rdinaat van de eerste regel (met KNIP$) e`e`n worden verminderd. Maar
dan werkt het programma niet juist op de IBM, omdat dan de 'T' knipperend
in beeld blijft. Als we echter een oplossing voor de 'voorloop'-spatie
zouden weten, is het probleem waarschijnlijk meteen opgelost.

Soortgelijke problemen doen zich voor bij onderstrepen en invers video.

- Op sommige computers wordt onderstrepen ineens vervangen door halve
intensiteit. Blijjkbaar is de ESC-code in de ANSI.SYS daar aan een andere
functie gekoppeld. Op kleurenmonitoren verschijnen vaak verschillende
kleuren in plaats van knipperen etc.

Mijn ervaringen tot nu toe lijken de conclusie te rechtvaardigen dat het
resultaat van het gebruik van ESC-codes enorm afhankelijk is van de
gebruikte computer en de versie van ANSI etc. Blijkbaar is er geen eendui-
digheid op het gebied van de ESCape-sequences. Op die manier is het echter
heel moeilijk om software op verschillende computers vlekkeloos te laten
werken. Ik houd me aanbevolen voor bevindigen van andere mensen met deze
problematiek. Misschien komen we er samen uit.

Harmannus KruizingaAls U in bijlage C van de SYSTEM I manual kijkt, dan ziet U daar een
overzicht van de zogenaamde Escape Sequences. In het eerste nummer van dit
blad was een klein basic-programmaatje opgenomen waarmee U een groot deel
van deze escape-sequences kunt aanroepen. Hierbij stonden niet vermeld de
ESC < (selektie karakter generator) en de ESC > (selektie grafische
generator).
Daarom nu hierover iets meer.

Op het computerboard van de de SYSTEM I zitten twee EPROM's die alle
symbolen bevatten die in normale resolutie op het scherm zichtbaar gemaakt
kunnen worden . Een van die EPROM's is een karakter-EPROM en de andere een
grafische-EPROM. 

De karakter EPROM bevat 4 karakter-sets. 
Op de oude borden van de SYSTEM I bevat de karakter-EPROM vier identieke
TULIP-karakter-sets en op de nieuwe borden bevat deze twee TULIP-karak-
ter-sets en twee IBM-karakter-sets. 

De grafische EPROM bevat 4 grafische-sets. 
Op de oude borden van de SYSTEM I bevat de grafische-EPROM twee TULIP-graf-
ische-sets en twee VIDITEL-grafische-sets en op de nieuwe borden bevat deze
vier verschillende grafische-sets, namelijk een TULIP-grafische-set, een
VIDITEL-grafische-set, een IBM- grafische-set en nog een vierde waarvan ik
de aanduiding niet ken.   

Telkens is er een van de vier sets geselecteerd.
Alle ASCII-waarden geschreven in het Video RAM worden behandeld door de
6845 CRT controller. Samen met de overeenkomende attribute wordt deze data
door de controler omgezet in het bitpatroon dat hij aantreft in de geselec-
teerde karakter- of grafische-set.

Alle ASCII-waardes in het bereik van 20h tot en met 7Fh vinden hun patroon
in een karakter-set, hogere waarden (80h tot en met FFh) vinden hun patroon
in een grafische-set.

De vier karakter-sets en de vier grafische-sets zijn genummerd van 1 tot en
met 4. Standaard zijn de nummers 1 actief, dat wil zeggen dat als U een
totaal overzicht afdrukt van alle ASCII- tekens (20h t/m FFh) dan krijgt U
van 20h t/m 7Fh de tekens uit de eerste karakter-set te zien en boven 7Fh
de tekens uit de eerste grafische set te zien. 

Karakterset 1 en karakterset 3 bevatten de TULIP-karakters. Dat zijn de
karakters die U standaard op uw scherm ziet. karakterset 2 en karakterset 4
bevatten dezelfde karakters, doch nu worden ze (op de nieuwe borden)
opgebouwd zoals de karakters op de IBM.

Heeft U nog oude karakter- en grafische EPROM's dan kunt U die bij TULIP
tegen betaling inleveren tegen nieuwe. De plaatsing van de nieuwe EPROM's
is betrekkelijk eenvoudig. De prijzen van de nieuwe EPROM's zijn ons
momenteel niet bekend.

Grafische-set 1 bevat:

           80h - BFh standaard zakelijke grafische tekens
                     zoals hoeken, kruisen, horizontale- 
                     en verticale lijnen en blokjes.
           COh - DDh het Compudata Logo.
           DEh - F3h het Tulip Logo.
           F4h - FFh samengestelde karakters.

Grafische-set 2 bevat: 

           80h - BFh VIDITEL-blokken.
           C0h - D7h griekse symbolen.
           D8h - EEh symbolen voor het maken van blokken e.d.
           EFh - FFh wiskundige symbolen

Grafische-set 3 bevat:

           gecombineerde tekens (letters met diverse accenten),       
griekse tekens 
           wiskundige tekens
tekens om rechthoeken te creeeren (dubbele lijnen).
           (de tekens uit set 3 noemt men ook de IBM-graphics)

Grafische-set 4 bevat:

           blokjespatronen om zelf karakters te creeeren.


Met de grafische-set #2 (de viditelblokken) kunt U ook zelf uw karakters in
het groot creeeren, welke U kunt gebruiken om aan een eigen produkt uw logo
toe te voegen. 
Wilt U dit proberen, vraag dan even een vergroting van deze blokken aan
ondergetekende. U ontvangt dan een stencil met de viditelblokken in het
groot.

In bijlage B van de SYSTEM I manual vindt U een overzicht van de tekens uit
de karakter EPROM's en de grafische EPROM's.

Als er tekens uit een grafische set afgebeeld worden op het scherm en U
selecteert een andere grafische set dan veranderen meteen alle tekens op
het scherm. Het beeld verandert in de symbolen die gevormd worden door het
nieuwe bitpatroon.
Alle symbolen worden gedefinieerd in een blok van 16 bytes elk, waarbij de
eerste 11 bytes het eigenlijke bitpatroon bevatten.

Wilt U weten welke karakter- en grafische sets er op uw systeem zitten, dan
kunt U dit testen met behulp van het volgende programmaatje. In een der
volgende nummers worden een aantal korte assembler-programmaatjes opgenomen
waarmee U direkt kunt switchen tussen twee verschillende sets. U kunt
echter nooit tekens uit twee verschillende set tegelijkertijd op het scherm
toveren. 
Succes.

Jan Klaver





100 PRINT CHR$(26)                              'schoon scherm
110                                             '
120 PRINT CHR$(27) + CHR$(60) + CHR$(1+47)      'kar.set  = 1
130 PRINT CHR$(27) + CHR$(62) + CHR$(1+47)      'graf.set = 1
140                                             '   
150 FOR CHAR = 32 TO 79                         '--+
160   PRINT CHR$(CHAR);                         '  |
170 NEXT CHAR                                   '  |
180 PRINT                                       '  |
190 FOR CHAR = 80 TO 127                        '  |afdruk-
200   PRINT CHR$(CHAR);                         '  |ken
210 NEXT CHAR                                   '  |van
220 PRINT                                       '  |karak-
230 PRINT                                       '  |ters
240 FOR GRAPH = 128 TO 191                      '  |en
250   PRINT CHR$(GRAPH);                        '  |grafics
260 NEXT GRAPH                                  '  |
270 PRINT                                       '  |
280 FOR GRAPH = 192 TO 255                      '  |
290   PRINT CHR$(GRAPH);                        '  |
300 NEXT GRAPH                                  '  |
310 PRINT                                       '--+
320                                             '   
330 FOR CH.SET = 1 TO 4                         'kar.sets  1-4
340   PRINT CHR$(27)+CHR$(60)+CHR$(CH.SET+47)   'keuze kar.-set
350   FOR GR.SET = 1 TO 4                       'graf.sets 1-4
360     PRINT CHR$(30);                         'cursor home
370     PRINT "karakterset # ";CH.SET;
380     PRINT "    grafische set # ";GR.SET
390     PRINT
400     PRINT CHR$(27)+CHR$(62)+CHR$(GR.SET+47) 'keuze graf.-set
410     PRINT : PRINT : PRINT : PRINT : PRINT
420     PRINT : PRINT : PRINT : PRINT : PRINT
430     INPUT "DRUK OP RETURN: ",K$
440   NEXT GR.SET
450 NEXT CH.SET
460                                             '
470 PRINT CHR$(27)+CHR$(60)+CHR$(1+47)          'kar.set=1
480 PRINT CHR$(27)+CHR$(62)+CHR$(1+47)          'graf.set=1
490                                             '
500 END




Op de bijeenkomst van 1 november 1986 is het uitbreiden van het geheugen
van de SYSTEM I ter sprake gekomen. Frans Veenhoven en Wouter Smit waren
bereid de mogelijkheden te onderzoeken. Enkele dagen later kwam alvast het
volgende (korte) bericht van Wouter binnen. 

Geheugenuitbreiding voor de Tulip System I van 128 Kb naar 256 Kb
=================================================================

Geschatte kosten : f 70,- ex btw
Benodigde IC's   : 18 stuks type 4164-12; merk TI, NEC e.d.

IC's Bestellen
--------------
De benodigde IC's zijn in bijna alle electronicazaken te verkrijgen. 


Plaatsing van de IC's
---------------------
Maak  de kast open en haal de print-connectors van toetsenbord en ledjes en
de connector van de ventilator los. Het geheugen van de System I bevindt
zich rechts op het board. Op het board zijn in  een vierkant 36 IC-voeten
geplaatst waarvan er 18 gevuld zijn met  geheugen-IC's.  De nieuwe IC's
moeten in de nu  nog lege voetjes geplaatst worden.


Wouter B Smit
Van Randwijklaan 185
3815 MS Amersfoort
033-720890

Het een en ander is voor de niet techneuten onder ons (zoals ik) een nogal
technische beschrijving van de uitbreiding. Heeft U het systeem nog onder
de garantie wees dan voorzichtig met het zelfknutsel werk. Desgevraagd is
Wouter bereid om op een der volgende bijeenkomsten de uitbreiding voor U te
plaatsen (de chips moeten er ook nog op een bepaalde wijze in !!). Ook kan
Wouter U wel adresjes geven waar de IC's te verkrijgen zijn.Tijdens de bijeenkomst op 14 februari j.l. heb ik een praatje gehouden over
de geheugenuitbreiding van de System I. Die uitbreiding valt in drieen te
splitsen:

1. uitbreiding tot 256 Kb
2. uitbreiding tot 512 Kb, volgens de zg. 'piggy-back'-methode
3. uitbreiding naar 512 Kb of 896 Kb

OVER PUNT 1:

Uitbreiding van 128 Kb tot 256 Kb gaat eenvoudig door chips op de 'banken'
bij te plaatsen.
Ik ben in de gelegenheid bij grotere aantallen chips deze tegen wat lagere
prijs in te kopen en ben bereid deze op de volgende Tulip-gebruikersdag in
mei in de apparaten van clubgenoten te plaatsen.

Voor particulieren wil ik dat kosteloos doen; scholen en bedrijven kunnen
daarvoor bij mij een offerte vragen.
Een chip 'kost' dan f. 4,-- excl. B.T.W.; voor een apparaat is dat f. 72,--
+ f. 14,40 B.T.W. = f. 86,40.

Het verschil  met de werkelijke inkoopprijs komt dan ten gunste van de
verenigingskas.

Als je geinteresseerd bent, stuur dan op een briefkaartje je bestelling,
met vermelding van naam, adres, postcode, woonplaats en telefoonnummer
naar:    F.R. Veenhoven
                                Drentseweg 47
                                8426 EP  Appelscha
en stort het bedrag van f. 86,40 voor eind april op rekening 2895495 bij de
Postbank.


OVER PUNT 2:

Geheugenchips op elkaar solderen, de zg. 'piggy-back'-methode, is niet
zonder gevaar dat je de chips verbrandt. Bovendien is daarvoor een tempera-
tuur-gecontroleerde soldeerbout nodig, die tenminste f. 200,-- kost en het
is een tijdrovend prutswerk.

De 'nieuwe' chip wordt op de rug van de 'oude' chip gedrukt zodat de
pootjes van die nieuwe net over de pootjes van de oude glijden; daarna
worden deze op  1 na  aan elkaar gesoldeerd.
De voorzijde van een chip is de zijde waar een kleine uitsparing in het
chip-'huis' is te zien. Het eerste pootje rechts, van de nieuwe chip wordt
NIET aan de oude chip gesoldeerd, maar moet met een draadje  aan het vierde
pootje rechts worden verbonden.

Als je van 128 Kb uitgaat heb je het volgende nodig:
     2 x 9 Kbit chips 4164-150 ns   en 
     4 x 9 Kbit chips  idem  voor 'piggy-back'
dus ca f. 275,-- incl. B.T.W. met nogal wat werk en risico.

OVER PUNT 3:

Volgens deze methode zijn tenminste 5 modificaties op het 'mainboard'
nodig, waarvoor de electronische schema's van het apparaat nodig zijn. 
Het geheugen van mijn System I heb ik uitgebreid tot 512 Kb, door na die
technische ingreep 2 banken te vullen met 18 chips 41256 Kbit-120 ns.

Een beschrijving van deze ingreep in het electronische gedeelte van de
computer is nog niet te geven, aangezien de invloed van die ingreep op de
uitbreiding tot 896 Kb nog niet volledig bekend is of dat er nog meer
aanpassingen moeten gebeuren.
Deze methode zal wellicht wat duurder zijn maar is mijns inziens wel
betrouwbaarder en het biedt de mogelijkheid later nog tot 896 Kb uit te
breiden.

Voor uitbreiding tot 512 Kb zijn dan  18 chips ad f. 15,--  = f. 270,--
incl. B.T.W. nodig, maar excl. arbeidskosten  en de transportkosten.
Ik ben bereid voor gebruikers van de System I het geheugen van deze
apparaten volgens de laatste  methode uit te breiden; gelieve hiervoor dan
kontakt met mij op te nemen.

     Frans Veenhoven
     
     
     
     
Omdat ik het geheugen van een Tulip System I wilde uitbreiden van 128 Kb
naar 256 Kb ben ik eens in die materie gedoken. 
Allereerst ben ik begonnen met het demonteren van een SYSTEM I. Hiervoor
heb ik me er eerst van overtuigd dat er geen garantie meer op de computer
zat om eventuele problemen te voorkomen.
Vervolgens heb ik een SYSTEM I op z'n kop gezet. Ik telde vier schroeven.
EÇn op elke hoek van het systeem. Deze schroeven heb ik voorzichtig los
gedraaid en verwijderd, waarna het gehele systeem weer rechtop op het
bureau werd geplaatst. Vervolgens heb ik vanaf de voorkant van het systeem
het gedeelte waarop zich de toetsen bevinden gedeeltelijk geopend, waarna
ik door de aldus ontstane kier een blik naar binnen waagde. Maar goed dat
ik de gehele kap niet direct verwijderd heb, want de kap zit met drie
snoertjes vast aan het onderliggende bord. Met mijn hand door de kier was
ik in staat om de drie kabeltjes te demonteren. Alle drie kabeltjes zitten
met connectoren op het bord. Deze connectoren kunnen eenvoudig los gescho-
ven worden. Gelukkig kunnen ze op maar ÇÇn manier op de pennen geschoven
worden zodat straks vergissen niet mogelijk is. Twee van de kabeltjes
zitten aldus op pennetjes op het bord geschoven en ÇÇn kabeltje zit aan de
voeding geschoven. Het is wel belangrijk om te onthouden dat de lange
grijze kabel links vooraan op het bord zat en de iets kortere kabel
ongeveer in het midden.
De kortste kabel zit aan de voeding en kan door het naar elkaar toe drukken
van twee borglipjes ook zonder moeite verwijderd worden.
De kap wordt verwijderd en op z'n kant tegen het bureau geplaatst. Wat op
het bureau blijft liggen is de onderkant van de kast met daarin het bord
van de computer (de print). Even flink blazen en het stof dat zich in de
loop van de afgelopen jaren heeft opgehoopd in de kast kiest het luchtruim.
Ik neem ruim de tijd om eens naar het bord te kijken om na te kunnen gaan
wat elk stukje elektronica voor functie heeft.

Wat zit er zoal in de SYSTEM I ?

1.   Ik ontwaar links achterop het print de voeding. Deze voeding is ook
     demontabel, tenminste er zit op elk der hoeken een schroefje waarmee
     het geheel op draagbuisjes is bevestigd. Deze draagbuisjes zitten weer
     vast aan het bord.
2.   Links vooraan in het hoekje zitten twee EPROM's. Dit zijn de karakte-
     reprom en de grafisch eprom. 
3.   In het midden van het bord zitten ook twee eprom's. Dit is het ROM-
     geheugen. Hierin bevindt zich het BIOS. De versie van deze BIOS staat
     op het scherm bij het opstarten; het heet de monitorversie.
4.   Midden voor op het bord zitten drie grote chip-voeten, waarvan er
     slechts ÇÇn gevuld is. De inhoud van het middelste voetje is de 8086-
     2. De processor dus. Links daarnaast is er ruimte voor de 8089. Dit is
     een DMA-controller. DMA staat voor Direct Memory Access. Deze chip
     verzorgt een sneller transport van gegevens naar en van het geheugen.
     Rechts naast de controller is er plaats voor de 8087. De reken-proces-
     sor.
5.   Rechts achterop het bord zit nog zo'n grote chip. Het opschrift leert 
     dat dit de 8256A is. De MUART. Deze chip verzorgt ondermeer de contac-
     ten met de randapparatuur via de RS232.
6.   Aan de rechterkant van het bord zitten vier rijen met elk negen chip-
     voetjes. Hier komen dus de geheugenchips in. Ik constateer dat er
     slechts twee rijen van negen met chips zijn gevuld. De overige twee
     rijen zijn nog leeg. Op de diverse chips staat ook iets geschreven. De
     getallen die er op staan zijn op zich in totaliteit niet zo interes-
     sant. Het gaat om de laatste vier cijfers. Ik lees: 64-12. Dat bete-
     kent dat dit 64K-chips zijn met een snelheid van 120 nanoseconden.
     (des te kleiner het getal, des te sneller de chip).
     In totaal zitten er dus 18 van deze chips op het bord. 18 van deze
     chips betekent dus 128 Kb geheugen. 

Als de computer voor U op het bureau ligt op de wijze waarop hij normaal op
het bureau ligt is die indeling als volgt:

⁄ƒƒƒƒƒƒƒƒƒƒ¬ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒø
≥          ≥                                        ⁄ƒø        ≥
≥          ≥                          (7) A      (5)≥ ≥  P     ≥
≥          ≥                         ... :::        ≥ ≥ :::(7) ≥
≥          ≥                          X   B         ¿ƒŸ  Q     ≥
≥   (1)    ≥                                                   ≥
≥          ≥                ⁄ø ⁄ø                  0      7 P  ≥
≥          ≥                ¿Ÿ ¿Ÿ                  ⁄¬¬¬¬¬¬¬¬øa ≥
≥          ≥                  (3)                  √≈≈≈≈≈≈≈≈¥b ≥
√ƒƒƒƒƒƒƒƒƒƒŸ                                       √≈≈≈≈≈≈≈≈¥c ≥
≥                                 k   l   m        √≈≈≈≈≈≈≈≈¥d ≥
≥                                ⁄ƒø ⁄ƒø ⁄ƒø       ¿¡¡¡¡¡¡¡¡Ÿ  ≥
≥ x   y                          ≥ ≥ ≥ ≥ ≥ ≥           (6)     ≥
≥ ⁄ø ⁄ø (2)                      ¿ƒŸ ¿ƒŸ ¿ƒŸ                   ≥
≥ ¿Ÿ ¿Ÿ                              (4)                       ≥
¿ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒŸ

(1): Voeding
(2): Karaktereprom (x) en grafische eprom (y)
(3): ROM BIOS
(4): Processor en Co-processoren  (k) = 8089
                                  (l) = 8086
                                  (m) = 8087
(5): MUART
(6): Geheugenbank   (a) = Block 1 HI
                    (b) = Block 2 HI
                    (c) = Block 1 LO
                    (d) = Block 2 LO
(7): Jumpers voor het geheugen

AD 1. De voeding is een zwart kastje dat op vier pootjes op het bord is
gemonteerd. De verbinding met het bord wordt gemaakt met behulp van een
aantal koperen pennen die op het bord gemonteerd zijn en die onderin de
voeding schuiven als deze voeding wordt geplaatsd. Toen de voeding compleet
van het bord verwijderd was en getracht werd deze weer te monteren, bleek
dat de contactpennen die op het bord staan maar heel moeilijk weer in de
voeding schoven. Als demonteren niet persÇ noodzakelijk is valt dit sterk
af te raden. Achterop de voeding zit de aan/uit-schakelaar die standaard
wordt gebruikt bij het inschakelen van de SYSTEM I. Direct naast deze
schakelaar zit links een plastic plaatje dat met een klein schroevendraai-
ertje verwijderd kan worden. Hierachter bevindt zich de zekering (en een
reservezekering). De connector die aan de rechterkant van de voeding zit
wordt middels een kabeltje verbonden met de ventilator die aan de bovenkant
in de kast gemonteerd is.

AD 2. De grafische eprom en de karakter eprom zijn twee geheugenchips van
32Kb of 64Kb.
(EPROM = erasable programmable read only memory; een geheugenchip die bij
uitschakeling van de stroom zijn/haar inhoud vasthoudt. De EPROM is met
behulp van een speciaal apparaat te programmeren en de inhoud kan worden
gewist door UV-licht op het doorzichtige plastic venster te laten schijnen.
Meestal wordt er over het venstertje een stickertje geplakt). 
In deze twee eprom's zijn de karakters en de grafische tekens die op het
scherm (kunnen) verschijnen gedefinieerd. De inhoud van deze eproms wordt
door Tulip aangebracht. Er zijn in de afgelopen jaren een aantal verschil-
lende versie's verschenen. 
In de oorspronkelijke SYSTEM I's is zowel de karakter eprom als de grafi-
sche eprom 32Kb groot. In de karaktereprom is slechts ÇÇn karakterset
gedefinieerd en in de grafische eprom zijn twee grafische sets gedefi-
nieerd.
In de nieuwere SYSTEM I's heeft de karakter eprom dezelfde grootte gehouden
(32Kb), doch heeft een extra karakterset meegekregen (de IBM-karakters). De
grafisch eprom is een 64K-eprom geworden waarin vier grafische sets gedefi-
nieerd zijn. In verschillende SYSTEM I's heb ik diverse types eprom's
aangetroffen. De meest gebruikte karakter eprom is van Texas Instruments
van het type 2732AJL-30 of 2732AJL-45. De toevoeging 30 of 45 duidt op de
snelheid van het geheugen (300 of 450 nanoseconde).
De grafische eprom's zijn meestal ook van Texas Instruments, waarbij de
32K-eprom van het type 2732AJL-30 is en de 64K-eprom's van het type 2764JL-
25 of 2764JL-45. 
Welke versie van deze set's door Tulip in deze eprom's is gezet wordt
aangegeven door het pen-opschrift op het stickertje dat over het eprom-
glaasje is geplakt. De karakter eprom heeft een opschrift H1xx en de
grafische eprom het opschrift H3xx, waarbij op de plaats van de xx het
versienummer is geplaatsd. De nieuwste, mij bekende versienummers zijn:
H107 en H305.
In TULIP CONTACT nummer 2 is een artikeltje te vinden over de diverse
tekensets van de SYSTEM I.

Een 64K-eprom heeft 28 pootjes en een 32K-eprom heeft 24 pootjes. De chip-
voetjes waarin deze eprom's geplaatst zijn hebben beide ruimte voor eprom's
met 28 pootjes. Een 32K-eprom wordt dus op de volgende manier in de voet
gestoken:

                             ⁄ƒƒø
                             ≥32≥
                             ≥Kb≥
                             √ƒƒ¥
                             ¿ƒƒŸ


AD 3. Het ROM BIOS bestaat evenals de karakter- en de grafische eprom's uit
twee eprom's. De versie van de ROM BIOS die er door Tulip ingezet is kunt U
aflezen tijdens het opstarten van het systeem. Er verschijnt dan een
melding als: Monitor Versie 1.xx
De mij bekende monitorversie's zijn 1.0, 1.1 en 1.31. Bij versie 1.31 wordt
er ondermeer tijdens het testen van het geheugen na het inschakelen rechts
bovenin het scherm meegeteld hoeveel geheugen er getest is.

AD 4. Standaard is er in de SYSTEM I alleen een 8086-processor geplaatst.
In de mij bekende systemen is dit een processor van de firma INTEL met de
typeaanduiding 8086-2-C. 
De 8089 DMA-controler en de 8087-rekenprocessor zijn optioneel (dat is een
mooi woord voor: zit-er-niet-in-maar-kan-er-wel-in).
Op de plaats van de 8086 kan zondermeer een V30-processor gestoken worden.
Het resultaat hiervan is een snellere interne verwerking (tot twee keer zo
snel bij compileren e.d.).

AD 5. De MUART van het type 8256A verzorgt ondermeer de parallelle en
seriâle uitvoer van gegevens. Hierover misschien meer in een volgende
nummer van Tulip Contact.

AD 6. De SYSTEM I werd vroeger standaard uitgeleverd met 128 Kb intern
geheugen. Daarbij zijn de banken a (block 1 High) en c (Block 1 Low) elk
voorzien van negen 64K-chips. Van die negen chips worden de linkse acht
chips gebruikt voor de werkelijke opslag van gegevens en de rechtse chip is
de zogenaamde pariteits-chip. Omdat de gegevens als twee bytes naar het
geheugen gaan wordt het high-byte opgeslagen in het high-block en het
bijbehorende low-byte in het low-block.
Het is dus noodzakelijk om de banken paarsgewijs gevuld te hebben met
chips. In de nieuwe SYSTEM I's zit standaard 256Kb geheugen. Daarbij zijn
ook de banken b (block 2 High) en d (Block 2 Low) gevuld met 64K-chips. De
64K-chips zijn in de verschillende SYSTEM I's van verschillende makelij.
Meestal zijn ze van Texas Instruments. De type aanduiding op de chips is
niet zo belangrijk. De aanduidingen eindigen meestal op 64-12 of 64-15. Dat
betekent dat het 120 of 150 nanoseconde chips zijn. De 64-12 geheugenchips
kosten circa 4 gulden per stuk. Dat betekent dat je voor 72 gulden achtien
chips kunt kopen. Als er dus een geheugenuitbreiding moet plaatsvinden van
128Kb naar 256Kb dan volstaat de aanschaf van 18 chips en ze in de vrije
voetjes te prikken. Daarbij moet er wel goed worden opgelet dat de chips er
op de goede manier ingestoken worden. Dit valt te zien aan de inkeping die
aan ÇÇn der korte uiteinden van de chip is aan te treffen. Deze inkepingen
moeten bij alle chips dezelfde kant opwijzen. Plaatst U een chip verkeerd
om in het voetje, dan is de kans groot dat de chip defect raakt.

Uitbreiding van het geheugen naar 512 Kb kan niet met 64K-chips zonder
meer. Logisch redenerend: Als twee banken met 64K-chips samen 128 Kb
opleveren en vier banken met 64K-chips samen 256Kb, dan moeten vier banken
met 128Kb-chips samen 512Kb opleveren. 128Kb chips bestaan echter niet,
doch kunnen wel worden gemaakt. Dit gebeurt door twee 64K-chips op elkaar
te plaatsen en de pootjes op ÇÇn na aan elkaar te solderen. Dit noemt men
de piggy-back-methode. Dit is een enorm karwei en er is een risico aanwezig
dat de chips defect raken. 

Er is echter nïg een manier om op 512Kb te geraken, namelijk door het
plaatsen van 256K-chips en deze zijn wel leverbaar. Twee banken (a en c)
gevuld met 256K-chips leveren samen ook 512Kb. Daarbij is het belangrijk
dat deze chips de aanduiding 256-12 bevatten. Dat betekent dat de snelheid
van de chip 120 nanoseconde is. 256-12 chips kosten circa 13 gulden per
stuk (incl.). Ook hiervan heeft U er 18 stuks nodig. Snel rekenen leert dat
de totale kosten bij deze wijziging circa 234 gulden bedraagd. De aanwezige
64K-chips zijn dan echter overbodig, doch kunnen misschien wel weer
verkocht worden (halve prijs?).
Er zit echter nog een addertje onder het gras bij het plaatsen van 256K-
chips. De standaard structuur op het bord is gericht op het plaatsen van
64K-chips. De diverse verbindingen tussen de componenten op het bord zijn
daarop ingesteld. Het blijkt dat een aantal van die verbindingen bij het
plaatsen van 256K-chips gewijzigd moeten worden. Bij het ontwerp van de
SYSTEM I is hier echter al rekening mee gehouden. Op bepaalde plaatsen op
dit bord kan een soort schakelaar van de ene stand in de andere stand
worden gezet. Zo'n schakelaar noemt men een jumper. Het probleem is echter
dat in de loop van de jaren er verschillende types borden uitgebracht zijn
(ik ken er minstens drie). Daarbij is de vorm van de jumpers ook gewijzigd.
Op de oude borden is de jumper een klein groen schuifje dat over twee
pennetjes geschoven kan worden. Deze pennetjes staan in groepen van drie op
het bord. Door nu het schuifje van de ene twee pennetjes te verwijderen en
over de andere twee pennetjes te schuiven is de schakelaar omgezet. In
tekening:
          
          ⁄ø ⁄ø ⁄ø                    ⁄ø ⁄ø ⁄ø
         …ÿÿÕÿÿª≥≥                    ≥≥…ÿÿÕÿÿª
         »ÿÿÕÿÿº≥≥                    ≥≥»ÿÿÕÿÿº
          ≥≥ ≥≥ ≥≥                    ≥≥ ≥≥ ≥≥
        ƒƒ¡¡ƒ¡¡ƒ¡¡ƒƒ                ƒƒ¡¡ƒ¡¡ƒ¡¡ƒƒ

        Stand 1.                      Stand 2.


Op de nieuwere borden zijn echter de pennetjes niet meer opgenomen. Volgens
Tulip is het technisch veiliger en goedkoper om zo weinig mogelijk jumpers
te gebruiken. In die gevallen waar de kans van een andere instelling zeer
gering is, verdwijnt de jumper dus. De contacten die er nu zijn zijn
aangebracht in de vorm van normale print-verbindingen. Als er nu een
schakelaar omgezet moet worden, dan moet de oude print-verbinding (op de
onderzijde van het bord) doorgesneden worden en moet er een nieuwe print-
verbinding gemaakt worden door een draadje te solderen. Dit brengt natuur-
lijk risico's met zich mee. Een niet geoefend soldeerder moet er niet aan
denken het karwei zelf te klaren. De kans is aanwezig dat door het door-
snijden van de bestaande printverbinding het mesje uitschiet en een andere
verbinding ook naar de filistijnen wordt geholpen. Als dan ook nog een
verkeerde soldeerbout gebruikt wordt en het geheel te heet wordt kan zelfs
de print verbranden.
Nieuwe toestand:
                          
      ⁄ƒƒø   ⁄ƒƒø   ⁄ƒƒø        ⁄ƒƒø   ⁄ƒƒø   ⁄ƒƒø
      ≥  ¿ƒƒƒŸ  ≥   ≥  ≥        ≥  ¿  ƒŸ  ∆ÕÕÕµ  ≥
      ≥  ⁄ƒƒƒø  ≥   ≥  ≥        ≥  ⁄  ƒø  ∆ÕÕÕµ  ≥
      ¿ƒƒŸ   ¿ƒƒŸ   ¿ƒƒŸ        ¿ƒƒŸ   ¿ƒƒŸ   ¿ƒƒŸ

         Stand 1.                   Stand 2.


Bij het plaatsen van 256K-chips moeten er in totaal 5 jumpers omgezet
worden (gemarkeerd in voorgaand overzicht met (7) en de identificaties
A,B,P,Q en X). De plaatsen van die jumpers zijn op het bord gemarkeerd. Op
de nieuwere borden is langs de brede zijde een markering gegeven met
nummers en langs de smalle zijde van het bord met letters (net als op een
landkaart). De vijf jumpers hebben ook allemaal een letter-aanduiding
gekregen. Dit staat er dan bij geschreven. De jumpers die omgezet moeten
worden zijn: P (op positie 29B), Q (op positie 29B), X (op positie 20B), A
(op positie 21B) en B (op positie 21B). 
Dit kan dus gebeuren door het verplaatsen van de groene schuifjes of het
doorsnijden en opnieuw solderen van print-verbindingen.

Een andere geheugenhoeveelheid dan 128Kb, 256Kb of 512Kb.

Bij de vulling van de chip-voetjes met geheugenchips moeten dus altijd de
banken paarsgewijze gevuld worden. Drie banken vullen heeft geen zin.
Daarnaast is het niet mogelijk om twee banken te vullen met 64Kb-chips en
twee banken met 256Kb-chips. In elke computer dus slechts ÇÇn type geheu-
genchips.

Tulip heeft in het verleden ook borden uitgeleverd met een andere geheugen-
grootte dan zojuist is aangegeven. Voor het verkrijgen van deze groottes
werd soms gebruik gemaakt van een apart piggy-backed-memory-board dat niet
meer leverbaar is. 

Bijvoorbeeld 384Kb:
In block 1 High en Block 1 Low werden piggy-backed 64Kb chips geplaatst
(dus eigenlijk 128Kb chips) en in block 2 High en block 2 Low enkele 64Kb-
chips.

Bijvoorbeeld 768Kb:
Op het moederboard vier rijen met piggy-backed 64Kb-chips en op het piggy-
back-board 4 rijen enkele 64Kb-chips.

Indien er gebruik wordt gemaakt van 256Kb-chips om een geheugengrootte te
krijgen boven de 512Kb dan maakt het verschil op er een nieuw model SYSTEM
I of een oud model SYSTEM I voor U ligt.
Bij de nieuwe modellen volstaat het om alleen de jumpers om te schakelen.
Bij de oude borden moeten nog enkele andere modificaties worden aange-
bracht, namelijk (informatie van Tulip):

= verbreek van IC 30B pin 2 en pin 4.
= verbind  van IC 30B pin 2 en pin 4 naar IC 23C pin 5.
= verbind  van IC 23F pin 18 naar IC 24F pin 1.

Het is niet mogelijk om gebruik te kunnen maken van 1024Kb RAM. In de
geheugenstructuur van de SYSTEM I wordt namelijk het bovenste gedeelte van
128Kb gereserveerd voor het VIDEO RAM en MONITOR EPROM. Al zit het er dus
wel in, het kan niet worden gebruikt. De maximale geheugengrootte van de
SYSTEM I is 896Kb.



Uitbreiding van het geheugen van 128Kb naar 256Kb.

Ik heb 18 geheugenchips van het type 64-15 gekocht en plaats ze zorgvuldig
in de vrije voetjes van de banken b en d. Ik zorg ervoor dat ik de chips in
de voetjes plaats zonder dat de pootjes krom buigen. Telkens nadat ik een
chip heb geplaatst overtuig ik me ervan dat ook alle pootjes in een van de
geleiders van het voetje zijn geschoven. Nadat ik op deze wijze 18 chips op
zijn plaats heb gebracht pak ik de deksel van de computer weer terhand en
plaats dat op het bord. Voorzichtig schuif ik door een kiertje de drie
kabeltjes op de connectoren. Tenslotte draai ik het geheel weer om en
monteer de schroeven. Vervolgens draai ik de kast weer rechtop en sluit de
diskdrive, de monitor en de voedingskabel aan waarna ik het systeem
opstart. Het monteren is geslaagd. Ik heb nu 256 Kb geheugen. Ik kan dat
zien aan de melding: Memory available until adress 4000:0000. Toen er 128
Kb inzat was deze melding: Memory available until adress 2000:0000. Dus nu
twee keer zoveel. 
Voor de zekerheid draai ik het programma CHKDSK. In het overzicht dat er op
het scherm verschijnt staat onder andere:
262144 bytes total memory. Delen door 1024 levert dat dus 256Kb op.


Uitbreiding van het geheugen van 128 naar 512 Kb.

Nadat ik 18 geheugenchips van 256-12 heb aangeschaft ga ik aan het knutse-
len. Ik demonteer weer het systeem door de schroeven los te draaien en de
kabeltjes van de connectoren te schuiven. Voorzichtig wip ik met een
schroevendraaier de aanwezige 64K-chips uit de voetjes. Ik doe dat zo
voorzichtig dat de voetjes van de chips niet krombuigen zodat ik ze later
misschien nog eens voor een ander systeem kan gebruiken. Eigenlijk moet
voor het demonteren van de chips gebruik worden gemaakt van een 'chiptrek-
ker' doch die was niet voorhanden. De 256K-chips plaats ik in de vrijgeko-
men chip-voetjes.
Ik monteer weer de kabeltjes op het bord en plaats weer de deksel, waarna
ik deze vastschroef. Nadat ik het systeem weer heb aangesloten en heb
opgestart meldt deze dat er geheugen beschikbaar is tot adres 2000:0000.
Het werkt dus niet zonder de jumpers om te zetten. Blijkbaar wordt er nog
steeds 128Kb geheugen herkend. 
Terwijl ik het systeem weer demonteer en op zoek ga naar jumpers kom ik tot
de conclusie dat er geen jumpers op dit bord zitten. Dat wordt dus solde-
ren. Voor de zekerheid demonteer ik ook maar eens een systeem waarin zich
ook 512 Kb geheugen bevindt om te zien hoe dat daar gebeurt is. Ook hier is
vanaf de bovenkant niets zichtbaar. Ik moet dus het bord uit de bodem
verwijderen om het van de onderkant te kunnen bekijken. Voorzichtig draai
ik de schroefjes waarmee het bord aan de bodem gemonteerd is los. Het
blijkt dat er ook een tweetal schroefjes onder de voeding zitten. Ik
verwijder dus ook de schroeven uit de voeding en schuif de voeding een heel
klein eindje scheef zodat ik bij de twee schroefjes kan die aan de achter-
kant onder die voeding zitten. Nadat ik ook deze twee schroefjes heb
losgedraaid schroef ik de voeding weer vast. Vervolgens tracht ik het bord
op te lichten. De resetknop geeft nog enig verweer, maar nadat ik het bord
een beetje naar voren schuif lukt dit ook. Zonder het te buigen draai ik
het bord om. (door het buigen zouden soldeerverbindingen kunnen barsten met
alle gevolgen van dien). Aan de onderkant van het bord ontwaar ik een
wirwar van contactlijnen en soldeerpuntjes.
Ik voer dezelfde handelingen uit met het bord waarin al 512Kb geheugen
geplaatst is. Of dit door Tulip is gedaan of door een particulier is me
niet bekend. Na enig zoekwerk heb ik op het 512K-bord de vijf nieuwe
verbindingen tussen de contactpuntjes gevonden. Ik kan duidelijk zien dat
de orginele verbinding is doorgesneden en dat de twee andere contactpuntjes
zijn doorverbonden door een klein koperdraadje. Het ziet er overigens heel
netjes uit. Hier is een expert aan het werk geweest.
Voorzichtig snij ik met een pennemesje de verbindingen door op het 128Kb-
bord. Gelukkig schiet het mesje niet uit en zijn de verbindingen heel mooi
doorgesneden. Vervolgens voorzie ik met een lichte soldeerbout vijf korte
koperdraadjes van een soldeertinpuntje. Aan het uiteinde van elk der
koperdraadjes komt een klein bolletje tin te zitten. Tenslotte druk ik de
koperdraadjes tegen de te verbinden contactpuntjes en soldeer te heel
voorzichtig vast, er daarbij goed op lettend dat ik de soldeerbout niet te
lang tegen het bord houd om inbranden te voorkomen. Na enig gepriegel zijn
alle vijf contacten gelegd. Je kan wel zien dat ik geen expert ben, maar ik
vind dat ik mezelf overtroffen heb. Het ziet er uitstekend uit. Vervolgens
draai ik het bord weer om en plaats het weer in de bodem. Daarna schroef ik
het geheel weer op zijn plaats. Ik houd geen schroefjes over en concludeer
dat alles er in zit.
Tenslotte worden de connectoren weer aangesloten en tenslotte wordt de
deksel er weer op gemonteerd. Na het aansluiten en opstarten van het
systeem meldt deze me dat er RAM beschikbaar is tot adres 8000:0000. Een
teken dat het geheel werkt. 

Conclusie:
Het uitbreiden van het geheugen van de SYSTEM I van 128 Kb naar 256 Kb is
betrekkelijk eenvoudig. Hiervoor hoef je eigenlijk in het geheel niet
technisch aangelegd te zijn. Een uitbreiding naar 512 Kb is wat ingewikkel-
der. Als U een oud bord heeft en slecht de groene jumpers om hoeft te
schakelen, dan valt de gehele operatie nogal mee. Moet er echter gesoldeerd
worden, dan dient er de nodige voorzichtigheid betracht te worden. Mensen
die nog nooit een soldeerbout hebben gehanteerd kunnen dit werkje beter aan
een ervaren persoon overlaten. In ieder geval moet U niet 'sleutelen' aan
het systeem als er nog garantie op zit. Door het eigenhandig veranderen van
de componenten op het systeem vervalt de garantie ! 
Binnen de vereniging is vermoedelijk voldoende ervaring aanwezig om het
geheel te laten uitvoeren indien U niet al te technisch aangelegd bent. Een
geheugenuitbreiding op deze wijze is beslist de moeite waard om te overden-
ken. Een uitbreiding van 128 Kb naar 256 Kb komt op ongeveer 72 gulden
onderdelen en een uitbreiding naar 512 Kb op ongeveer 234 gulden. In dat
laatste geval houdt U de 64K-chips over. Misschien loont dan een adverten-
tie in Tulip Contact om deze te slijten. Er zijn ongetwijfeld scholen
aanwezig die voor de halve prijs de chips willen overnemen teneinde de
'oude' borden van 128 Kb naar 256 Kb te brengen. Zelfs de meest atechnische
individu kan deze handeling verrichten. 
Let er wel op dat U bij aankoop van 256K-chips zorgt voor chips met een
snelheid van 120 nanoseconde. (hoewel 150 nanosecondechips ook uitstekend
blijken te werken). Het merk van de chip doet er niet zoveel toe. In het
algemeen kan gezegd worden dat Texas Instrument-chips uitstekend functione-
ren. 

Jan Klaver





Als je werkt met een modem, dan wordt al snel de nieuwsgierigheid geprik-
keld omtrent de werking van de RS232 die als deur fungeert tussen computer
en modem (de RS232 is de seriele interface). Hoewel ik technisch niet
onderlegd ben wil ik toch een verslag doen van mijn bevindingen. Misschien
heeft iemand er iets aan.
In de SYSTEM I-manual is in bijlage E een overzicht te vinden van de I/O
PORT ADDRESS ASSIGNMENTS. Met de "Multifunction Universal Async Rec./Trans-
mitter" wordt de RS232 bedoeld. Daaronder staan de adressen vermeld van de
RS232-poorten en waarvoor ze gebruikt worden. Als je uitgaat van een
eenvoudige vorm van datacommunicatie heb je er maar enkele nodig. De
poorten die ik in diverse listings tegen kwam heb ik aan een nader onder-
zoek onderworpen. En dat zijn de poorten op adres FD00, FD02, FD0E en FD1E.
In FD00 en FD02 wordt de seriâle poort configuratie bijgehouden. FD0E is
het buffer register waarlangs de data naar buiten gaat en naar binnen komt
en FD1E is het status register waarin onder andere aangegeven wordt of er
data binnengekomen is.

Als U de inhoud van de diverse registers wilt bekijken of veranderen met
BASIC, dan gebruikt U hiervoor de statements INP en OUT.
Met  LET A = INP(&HFD00)  wordt de inhoud van het register op adres FD00 in
de variabele A geplaatst en met  OUT &HFD00,128  plaats U de waarde 128
(decimaal) in het register met adres FD00.

In het register op FD00 Hex (het command register #1) wordt de woordlengte
en het aantal stopbits bijgehouden.

Ik heb telkens met het programma CONFIG.COM de instelling van de seriele
poort verandert en vervolgens met INP gekeken wat de inhoud van de regis-
ters was. Om een beter beeld te krijgen van de registerinhoud (decimaal)
moet deze omgezet worden naar binair.
Levert A=INP(&HFD00) : PRINT A het getal 167 op, dan is het binaire patroon
10100111. 

Het veranderen van de woordlengte en het aantal stopbits heeft een verande-
ring tot gevolg in het register op adres FD00 hex. De eerste twee bits
bepalen de woordlengte en de volgende twee bits het aantal stopbits. De
waarden kunt U hieronder aantreffen. 
Als er als bitpatroon 01------ is gegeven betekent dat, dat alleen de twee
eerste bits van belang zijn voor dit onderdeel en de rest niet terzake
doet.
 
 Woordlengte  bitpatroon

     8        00------
     7        01------
     6        10------
     5        11------

  Stopbits     bitpatroon

     1        --00----
     1,5      --01----
     2        --10----

In het register op adres FD02 Hex wordt de baudrate en de pariteit bijge-
houden met het navolgende resultaat:

  Baudrate     bitpatroon
    
  19200       ----0011
   9600       ----0100
   4800       ----0101
   2400       ----0110
   1200       ----0111
    600       ----1000
    300       ----1001
    200       ----1010
    150       ----1011
    110       ----1100
    100       ----1101
     75       ----1110

 Pariteit     bitpatroon

   None       00------
   Even       11------
   Odd        10------

Hieronder volgt een klein BASIC-programmaatje waarmee U de inhoud van de
beide poorten kunt uitlezen en de daarmee overeenstemmende werkelijke
waarden kunt afdrukken.

100 LET COMREG1 = &HFD00     'poortnummer command register 1
110 LET COMREG2 = &HFD02     'poortnummer command register 2        
120 LET WLTEST = 192         'masker woordlengte test (=11000000)
130 LET SBTEST = 48          'masker stopbit test     (=00110000)
140 LET BRTEST = 15          'masker baudrate test    (=00001111)
150 LET PRTEST = 192         'masker pariteits test   (=11000000)
160 LET P1 = INP(&HFD00)     'lees byte van poort 1
170 LET P2 = INP(&HFD02)     'lees byte van poort 2
180 '
190 ' --- test woordlengte ---
200 '
210 LET WL=P1 AND WLTEST

door het 'AND'-en van de byte van poort 1 met 11000000 worden de de laatste
6 bits van dit byte op 0 gezet en blijven de eerste twee onveranderd (zie
elders in dit blad de beschrijving van de logische operatoren AND en OR).
Deze eerste twee bits bevatten de informatie over de woordlengte.
        
   bitpatroon     decimaal   betekenis 
   00------         0       8 bits
   01------        64       7 bits
   10------       128       6 bits
   11------       192       5 bits

220 IF WL =   0 THEN WL$="8"
230 IF WL =  64 THEN WL$="7"
240 IF WL = 128 THEN WL$="6"
250 IF WL = 192 THEN WL$="5"
260 '
270 ' --- test stopbits ---
280 '
290 LET SB = P1 AND SBTEST
300 IF SB =  0 THEN SB$="1"
310 IF SB = 16 THEN SB$="1,5"
320 IF SB = 32 THEN SB$="2"
330 '
340 ' --- test baudrate ---
350 '
360 LET B1=P2 AND BRTEST
370 IF B1 = 14 THEN BR$="75"
380 IF B1 = 13 THEN BR$="100"
390 IF B1 = 12 THEN BR$="110"
400 IF B1 = 11 THEN BR$="150"
410 IF B1 = 10 THEN BR$="200"
420 IF B1 =  9 THEN BR$="300"
430 IF B1 =  8 THEN BR$="600"
440 IF B1 =  7 THEN BR$="1200"
450 IF B1 =  6 THEN BR$="2400"
460 IF B1 =  5 THEN BR$="4800"
470 IF B1 =  4 THEN BR$="9600"
480 IF B1 =  3 THEN BR$="19200"
490 '
500 ' --- test pariteit ---
510 '
520 LET PR=P2 AND PRTEST
530 IF PR =   0 THEN PR$="NONE"
540 IF PR = 128 THEN PR$="ODD "
550 IF PR = 192 THEN PR$="EVEN"
560 '
570 '
580 ' -----afdruk huidige waarden-----
590 '
600 PRINT "woordlengte:     ";WL$
610 PRINT "stopbits:        ";SB$
620 PRINT "baudrate:        ";BR$
630 PRINT "pariteit:        ";PR$
640 END

Het instellen van bovenstaande waarden gebeurt meestal met CONFIG.COM. Als
U met CONFIG.COM de seriâle poort configureert wordt deze poort echter niet
direkt aangepast, maar wordt deze configuratie in IO.SYS opgenomen. Wilt U
dus uw nieuwe instelling gerealiseerd zien dan dient U het systeem te
resetten. Bij het opstarten wordt daarna de nieuwe IO.SYS versie in het
geheugen geladen en is de nieuwe seriâle poort instelling een feit. Om het
hiervoor genoemde resetten te omzeilen kunt U naast het aanpassen van
IO.SYS met CONFIG het navolgende programmaatje gebruiken om de poorten
meteen te installeren. Deze instelling is tijdelijk, dat wil zeggen dat als
U het systeem opnieuw opstart de waarden uit IO.SYS weer geladen worden.

100 'instellen nieuwe systeem variabelen
110 '
120 PRINT
130 INPUT "instellen woordlengte: (8,7,6,5)  ",INWL
140 WHILE INWL<5 OR INWL>8 OR INWL<>INT(INWL) 
150   INPUT "instellen woordlengte: (8,7,6,5)  ",INWL
160 WEND
170 IF INWL=5 THEN LET P1=(P1 AND 63) OR 192

Als woordlengte 5 ingesteld moet worden, dan moeten de eerste twee bits van
de byte P1 verandert worden in 11 terwijl de andere zes bits onveranderd
dienen te blijven. Door eerst P1 te 'AND'en met 63 (=00111111) veranderen
de eerste twee bits in een 0 en de rest blijft ongewijzigd. Vervolgens
wordt deze nieuwe waarde van P1 ge'OR'ed met 192 (=11000000) hierdoor
worden de eerste twee bits altijd 1 en blijft de rest ongewijzigd.


180 IF INWL=6 THEN P1=(P1 AND 63) OR 128
190 IF INWL=7 THEN P1=(P1 AND 63) OR 64
200 IF INWL=8 THEN P1=(P1 AND 63)
210 '
220 INPUT "instellen Stopbits: (1,1.5,2)   ",INSB
230 WHILE INSB<>1 AND INSB<>1.5 AND INSB<>2 
240   INPUT "instellen Stopbits: (1,1.5,2)   ",INSB
250 WEND  
260 IF INSB=1 THEN P1=(P1 AND 207) 
270 IF INSB=1.5 THEN P1=(P1 AND 207) OR 16
280 IF INSB=2 THEN P1=(P1 AND 207) OR 32
290 '
300 PRINT "instellen Baudrate:
310 PRINT "(19200,9600,4800,2400,1200,"
320 INPUT "600,300,200,150,110,100,75)  ",INBR
330 WHILE INBR<>19200 AND INBR<>9600 AND INBR<>4800 AND 
          INBR<>2400  AND INBR<>1200 AND INBR<>600  AND
          INBR<>300   AND INBR<>200  AND INBR<>150  AND 
          INBR<>110   AND INBR<>100  AND INBR<>75  
340   PRINT "(19200,9600,4800,2400,1200,"
350   INPUT "600,300,200,150,110,100,75)  ",INBR
360 WEND
370 IF INBR=19200 THEN P2=(P2 AND 240) OR 3
380 IF INBR= 9600 THEN P2=(P2 AND 240) OR 4
390 IF INBR= 4800 THEN P2=(P2 AND 240) OR 5
400 IF INBR= 2400 THEN P2=(P2 AND 240) OR 6
410 IF INBR= 1200 THEN P2=(P2 AND 240) OR 7
420 IF INBR=  600 THEN P2=(P2 AND 240) OR 8
430 IF INBR=  300 THEN P2=(P2 AND 240) OR 9
440 IF INBR=  200 THEN P2=(P2 AND 240) OR 10
450 IF INBR=  150 THEN P2=(P2 AND 240) OR 11
460 IF INBR=  110 THEN P2=(P2 AND 240) OR 12
470 IF INBR=  100 THEN P2=(P2 AND 240) OR 13
480 IF INBR=   75 THEN P2=(P2 AND 240) OR 14
490 '
500 PRINT "instellen pariteit:"
510 INPUT " (1=NONE,2=EVEN,3=ODD)  ",INPR
520 WHILE INPR<>1 AND INPR<>2 AND INPR<>3 
530   INPUT " (1=NONE,2=EVEN,3=ODD)  ",INPR
540 WEND
550 IF INPR=1 THEN P2=(P2 AND 63) 
560 IF INPR=2 THEN P2=(P2 AND 63) OR 192
570 IF INPR=3 THEN P2=(P2 AND 63) OR 128
580 PRINT

590 OUT &HFD00,P1       'en de nieuwe waarde van P1 
                         wordt naar de poort geschreven
600 OUT &HFD02,P2       'evenzo met de nieuwe waarde van P2
620 END

Dit laatste programma kunt U compileren om de seriele poort-instelling
meteen te realiseren.

Jan Klaver



Naar aanleiding van vragen met betrekking tot de V20 microprocessor is
Gerard van Lobbrecht in zijn boekenkast gedoken en stuurde een aantal
interessante artikelen op waaruit de eigenschappen van deze processor
duidelijk naar voren komen. Voor hen die het interesseert zijn hieronder de
belangrijkste kenmerken samengevat.
In Micro/Systems Journal van Nov/Dec 1985 is een artikel verschenen van de
hand van Stephen Davis. Hij legt de V20 (wordt geproduceerd door NEC en
heeft de technische naam: uPD70108) naast de 8088 en doet verslag van zijn
bevindingen.
Extern verschilt de V20 niet van de 8088. De pin-aansluitingen zijn exact
hetzelfde. Intern verschilt de V20 op twee manieren van de 8088. De V20
werkt sneller en de heeft een uitgebreidere instructieset.

DE V20 IS SNELLER.

Dat de V20 sneller is dan de 8088 komt door een aantal verschillen in de
uitvoering van de opdrachten. Een opdracht wordt in een processor uitge-
voerd door middel van microcodes in een intern programma en vinden plaats
met een bepaalde snelheid. Deze snelheid wordt aangeduid met frequentie
(uitgedrukt in Herz). Een 8 Mhz (8 miljoen Herz) processor werkt sneller
dan bijvoorbeeld een 4.77 Mhz processor. Per tijdseenheid voert de proces-
sor bepaalde instructies uit. Een bepaalde tijdseenheid noemt men een
klokcyclus. Elke microcode-instructie duurt 1 klokcyclus. Een vermenigvul-
digingsinstructie neemt meerdere microcode-instructies in beslag en duurt
bijvoorbeeld in een 8088 circa 100 klokcycli.

Ook het transport van data binnen het systeem loopt dus per klokcyclus. In
een 8088 verloopt het interne gegevenstransport via e`e`n 16-bits-databus
(vergelijk het maar met een 16-baans autoweg waarbij 16 auto's tegelijker-
tijd een bepaald punt kunnen passeren). 
Vaak moeten er in de 8088 extra klokcycli gebruikt worden om data- botsin-
gen in de interne bus te voorkomen. 

De V20 heeft twe`e` interne databussen. De tweede bus wordt gebruikt voor
het vergelijken (CMP-instructie) en voor rekenkundige instructies. Dit
betekent een voordeel van 1 klokcyclus.

Om een bepaalde byte in het geheugen te kunnen vinden is elke geheugen-
plaats voorzien van een adres. Als er dus data uit het geheugen gehaald
moeten worden moet de processor eerst het adres bepalen waar deze data te
vinden zijn. De 8088 gebruikt microcode om deze adressen te bepalen.
Hiervoor worden 5 tot 12 klokcycli gebruikt.

De V20 gebruikt geen microcode-subroutines om die adressen te bepalen, maar
bevat een Effectieve Address Generator (EAG) die een effectief address kan
bepalen in 2 klokcycli (Deze EAG is wel opgenomen in de 8086-familie).

Een derde snelheidsverbetering van de V20 ten opzichte van de 8088 is het
gebruik van een 'prefetch-pointer' apart van de 'instructiepointer'. Elke
opdracht die vanuit een programma moet worden uitgevoerd wordt aangegeven
met een wijzer (de instructiepointer). Als er een opdracht wordt uitgevoerd
wijst deze naar de positie waar zich de volgende opdracht in het geheugen
bevindt. De 8088 heeft slechts 1 wijzer. Normaal is dat niet bezwaarlijk,
doch als er in een programma gebruik wordt gemaakt van subroutines, dan
moet de positie van waaruit deze subroutine is aangeroepen worden bewaard,
immers als de subroutine volledig is doorlopen moet de volgende opdracht in
het hoofdprogramma worden uitgevoerd. De processor moet dus onthouden van
waar gesprongen is. De V20 heeft daar een extra wijzer voor. Hierdoor kan
de V20 een INT-functie (het aanroepen van een soort subroutine) uitvoeren
in 50 klokcycli tegenover de 63 cycli die een 8088 nodig heeft. 

Tenslotte heeft de V20 twee extra registers die efficientere microcode
mogelijk maken voor meerdere instructies.

UITGEBREIDERE INSTRUCTIESET VAN DE V20.

Naast deze snelheidsverbeteringen biedt de V20 drie extra instructiesets
meer dan de 8088. 

De eerste is de 80186 uitbreiding. Met name valt daarbij te noemen:
1.Ee`n commando om alle registers (= geheugenplaatsen van de processor) te
bewaren (PUSH ALL en POP ALL). Bij de 8088 moeten van alle registers
afzonderlijk aangegeven worden dat ze bewaard moeten worden. 
(Een register is te vergelijken met een flatgebouw. Er kan alleen iets in
en uit door de deur op de begane grond. Als er echter wat op de begane
grond staat en er moet iets nieuws inkomen, dan is het mogelijk de huidige
inhoud te bewaren door het een verdieping omhoog te brengen (PUSH). Als
later datgene dat zich op de begane grond bevind niet relevant meer is, kan
men alle gegevens weer een verdieping lager brengen (POP). De inhoud van
alle andere etages schuift telkens mee omhoog of omlaag.) 
2. Uitgebreidere mogelijkheden van rotate en shift instructies.
Met Rotate en Shift (roteer en schuif) heeft men de mogelijkheid de inhoud
van een byte naar links of naar rechts te verschuiven om daarmee de waarde
te veranderen. (Een verschuiving naar rechts betekent een deling door 2)
3. Een OUT en IN voor snellere Input en Output afhandeling.

Daarnaast kent de V20 verder nibble- (= 4 bits) en bit-instructies (test,
set, clear en complement) terwijl de 8088 minimaal op 1 byte (= 8 bits) kan
werken.

Tenslotte kent de V20 'enter emulation'- en 'exit emulation'- instructies,
welke de V20 de mogelijkheid biedt om een nieuwe verzameling van microcode
uit te voeren, namelijk de 8080 code (CPM80). Kortom met de juiste hulppro-
grammatuur is het zelfs mogelijk CP/M- programmatuur te draaien. 

WELKE V20 CHIPS ZIJN ER ?

Van de V20 chip zijn er momenteel 3 versies verkrijgbaar, een 5 Mhz, een 8
Mhz en een 10 Mhz versie. U moet dus eerst uitzoeken welke chip U moet
hebben. De 8088-1 versie draait op 4.77 Mhz. Ter vervanging kan hiervoor de
5 Mhz V20 geplaatst worden. De 8088-2 is een 8 Mhz-versie en verlangt ook
een 8 Mhz V20 ter vervanging. In een COMPACT heeft het geen zin een 10 Mhz
versie te plaatsen omdat dit geen verbetering t.a.v. de 8 Mhz versie geeft.
Het vervangen is betrekkelijk eenvoudig. U verwijdert de 8088 en plaatst
voorzichtig de V20 (Let op de inkeping aan de korte zijde van de
8088-processor!, de V20 inkeping moet dezelfde kant opwijzen).

De snelheidsverbetering hangt af van de aard van de werkzaamheden die de
processor moet uitvoeren en van de configuratie van uw hardware. Program-
ma's die veel lezen van en schrijven naar de diskdrive zullen niet merkbaar
versnellen. Programma's die veel rekenwerk verrichten zullen aanzienlijk
versnellen. Programma's die origineel voor de 8088 geschreven zijn en
specifiek van de cycli gebruik maken kunnen echter problemen opleveren.
(Copy-beveiligde programma's die gebruik maken van een 'timing scheme')

EN DE SYSTEM I DAN ?

In principe is het ook mogelijk om de 8086 in de System I te vervangen door
een V30 (technische benaming: uPD70116). In het lijfblad van de duitse
tulip gebruikers vereniging van april 1986 maakt Peter Walker de gebruiker
reeds attent op deze mogelijkheid. 
De V30 heeft volgens de beschrijving dezelfde eigenschappen als de V20, zij
het dan natuurlijk met een 16-bits externe data-bus.In Nederland wordt nu ruim een jaar een hulpmiddel bij het afdrukken van
scherminhouden via de overhead-projector op een groot scherm verkocht. Er
zijn er onderhand nogal wat op de markt verschenen. Met name voor het
onderwijs is dit een interessante ontwikkeling. Namen als Transvieuw en
Kodak Datashow zijn zo langzamerhand bij velen al bekend.
Helaas werken de apparaten alleen op de IBM-compatibles die uitgerust zijn
met een grafische kaart. Bij de Transvieuw wordt er in een vrij slot in de
computer een extra kaart geduwd. De KODAK datashow is gewoon via een 9-pins
RGB connector aan te sluiten. Dit laatste dreef mij er toe om het geheel
ook op de SYSTEM I te testen. Het resultaat bleek negatief te zijn. Jammer
voor de SYSTEM I-gebruikers. Misschien komt er voor dat type ooit eens een
dergelijk apparaat. Of misschien is er al een. Als U het weet mag U het
zeggen.





Kernsoftware brengt voor de Tulip System I reeds geruime tijd een programma
uit waarmee men, natuurlijk met behulp van een modem, contact kan zoeken
met het VIDITEL-systeem van de PTT.
Dit programma werkt echter alleen met een modem die niet voorzien is van
een interspeeder of met een modem waarbij men de interspeeder kan uitscha-
kelen.
Communiceren met VIDITEL heeft nogal wat voeten in de aarde. Dit komt omdat
VIDITEL werkt met twee verschillende snelheden waarop datatransport plaats-
vindt.
VIDITEL zendt de data naar ons op een snelheid van 1200 baud en verwacht
data van ons op een snelheid van 75 baud. In schema:

+----------+          +---------+     1200    +---------+
|          |          |         | <========== | | | COMPUTER | | MODEM | | VIDITEL | | | | | ==========> |         |
+----------+          +---------+       75    +---------+
 
Als het modem alleen wordt gebruikt om het signaal wat van de computer komt
om te zetten in signaal wat op de telefoonlijn moet en anders om, dan
verwacht het modem dus data van de computer op 75 baud en zendt data naar
de computer op 1200 baud. In schema:

+----------+   1200   +---------+     1200    +---------+
|          | <======= |         | <========== | | | COMPUTER | | MODEM | | VIDITEL | | | =======> |         | ==========> |         |
+----------+    75    +---------+       75    +---------+

Het probleem hierbij is dat de computer ingesteld moet worden op twee
verschillende snelheden van data transmissie en dat gaat niet zondermeer.
Op de systeemschijf die U met de SYSTEM I meegeleverd heeft gekregen staat
in de subdirectory BIN het programma CONFIG.COM waarmee U een aantal
systeemvariabelen kunt instellen. Als U met dit programma de seriâle poort
instelt (via deze poort communiceert de computer met het modem) dan kunt U
wel kiezen uit een aantal verschillende baudrates, doch daarbij wordt niet
gevraagd of het om zenden of ontvangen gaat. U stelt dus beide op een
gelijke snelheid in. Om het toch voor elkaar te krijgen dat het systeem op
1200 baud ontvangt en op 75 baud zendt, heeft Kernsoftware het volgende
toegepast:
Het systeem wordt geconfigureerd op 1200 baud, dus ontvangt data op 1200
baud en zendt in principe ook op 1200 baud. Echter, als er een byte klaar
staat voor verzending naar het modem wordt even snel de baudrate ingesteld
op 75 baud, het byte wordt verzonden en daarna wordt de baudrate weer op
1200 baud gezet.

De interspeeder in een modem doet eigenlijk hetzelfde. De interspeeder zet
alle signaal wat binnenkomt op 1200 baud om in signaal van 75 baud en
stuurt het naar VIDITEL. Een modem waar dus een interspeeder inzit stuurt
dat van VIDITEL door naar de computer op 1200 baud en verwacht signaal van
de computer op 1200 baud. In schema:

+----------+   1200   +---------+     1200    +---------+
|          | <======= |  MODEM  | <========== | | | COMPUTER | | + | | VIDITEL | | | =======> | INTERSP | ==========> |         |
+----------+   1200   +---------+       75    +---------+

Wilt U dus met een modem voorzien van een interspeeder (die niet uit te
schakelen is) en het programma VIDITEL.COM inloggen op VIDITEL, dan gaat
dat niet.
Een oplossing hiervoor is echter het programma VIDITEL.COM zo aan te passen
dat voordat elke byte verzonden wordt door de computer de baudrate niet
terug te stellen naar 75 baud maar deze op 1200 baud te laten staan (in de
praktijk wordt dat op 1200 baud zetten, hoewel deze baudrate al was
ingesteld). Deze aanpassing is betrekkelijk eenvoudig en volstaat met het
veranderen van 1 byte. (waarschijnlijk die op het relatieve adres D22C).
Hoe U dit zelf kunt doen volgt hierna.

* Maak eerst een copie van het VIDITEL.COM programma zodat U een reserve
exemplaar heeft. 
* Start de debugger op vanaf de startschijf in de BIN-directory. 

          A> CD\BIN RETURN

          A> DEBUG RETURN

* Vul het geheugen met nullen en laad het programma VIDITEL.COM
        
           - F 0 FFF0 0
           - N VIDITEL.COM
           - L

* Spit met het U-commando (Unassemble) de assemblerlisting door totdat U
het volgende op uw scherm krijgt: (meestal rond offsetadres 460). 
    
           - U 460          

BA02FD     MOV DX,FD02  
EC         IN AL,DX
24F0       AND AL,F0
0CFE       OR AL,FE  <---- door deze handeling wordt de EE OUT DX,AL baudrate ingesteld op 75 baud. BA1EFD MOV DX,FD1E verander FE in F7 en de baud- EC IN AL,DX rate wordt ingesteld op 1200 2420 AND AL,20 baud 3C20 CMP AL,20 75F6 JNZ 046F (i.p.v. 046F kan er ook een ander getal staan) 0CFE moet dus veranderd worden in 0CF7. Dit kan met de E- opdracht. Als er staat: 0CBB:046C 0CFE OR AL,FE | +---> offset-adres

dan telt U 1 op bij het ofset-adres en geeft het commando E , dus:

         - E 046D
         0CBB:046D FE.-- de cursor staat op de -- en tik 
                dan F7 gevolgd door RETURN. Er 
                         verschijnt dan weer:
         -

 
* Schrijf de verbeterde versie naar schijf en verlaat  DEBUG. 

         -  W (geef dan het commando W om het nieuwe      resultaat weg te
schrijven naar schijf)

         Writing xxxx bytes.
         
         - Q

         A>

U heeft dan een versie van VIDITEL.COM die ook werkt met een modem voorzien
van interspeeder.    

Jan Klaver






Op de systeemschijven zoals door TULIP-computers wordt meegeleverd met de
aangeschafte SYSTEM I staan in de SYS-directory een aantal files met exten-
tie SYS. Met deze files kunt U het operatingsystem aanpassen.

IBMDRV.SYS

Met dit file kunt U de SYSTEM I IBM-formaat diskettes (=360 Kb) laten lezen
(zoals bij IO.SYS versie 1.10) en eventueel ook beschrijven (IO.SYS versie
1.30 en nieuwer). Daarmee heeft U de mogelijkheid bestanden e.d. van IBM-
formaat schijven over te zetten op SYSTEM I-formaat schijven en andersom. U
kunt met de SYSTEM I geen IBM-formaat formateren, dus wilt U iets op een
IBM-formaat schijf schrijven, dan dient U eerst dit schijfje op een IBM (of
compatible) te formateren.

Het installeren:

Als U nog geen bestand CONFIG.SYS in de hoofddirectory heeft staan dan moet
U deze creeeren.
Telkens als U het systeem opstart worden allereerst de specifieke comman-
do's die in CONFIG.SYS staan uitgevoerd. CONFIG.SYS dient de volgende
commando's te bevatten:
          DEVICE = A:\SYS\IBMDRV.SYS
          SHELL  = A:\COMMAND.COM A:\ /P
Dit SHELL-commando dient altijd als laatste worden opgenomen.

Dus: (Op een systeem met 2 FD-drives)  

Systeem geeft:   U tikt in:
     A>          COPY CON CONFIG.SYS RETURN
                 DEVICE = A:\SYS\IBMDRV.SYS RETURN
                 SHELL  = A:\COMMAND.COM A:\ /P RETURN
                 ^Z RETURN  (CTRL en Z tegelijkertijd ingedrukt houden)
schrijft file
op schijf en
keert terug met

     A>

Reset dan het systeem (een keer uit en aan schakelen of het programma RESET
uit de BIN-directory draaien). Nadat IO.SYS geladen is verschijnt er op het
scherm:

     IBM-disk driver for 80 tracks drives - version 1.xx     

U kunt nu uw systeem op de normale manier blijven gebruiken, doch als U een
IBM-formaat schijfje in de B-drive schuift, dan kunt een overzicht krijgen
van de directory van deze schijf met behulp van het commando: 
     
     DIR C: RETURN

De B-drive is drive B voor de SYSTEM I-formaat schijven en drive C voor
IBM- formaat schijven.
Copieren van C naar A m.b.v.:
      
          COPY C:*.* A:


MEMDRV.SYS

Dit bestand bevat de nodige informatie om uw TULIP  uit te rusten met een
memory-disk (ook wel ramdisk genoemd). U creeert dan in het geheugen van de
computer als het ware een extra disk-drive. Het voordeel van het gebruik
van zo'n memory-disk is de snelle toegang. Maakt u bijvoorbeeld veel
gebruik van Wordstar, dan is het handig het wordstar programma op een
memory-disk  te plaatsen aangezien wordstar tijdens het gebruik herhaald
een bereoep doet op de zogenaamde overlay's. (bv. als u een LINE DEL
commando geeft hoort u hoe wordstar dit commando van de schijf haalt).
Een memory-disk kunt u alleen installeren als u meer dan 128Kb intern
geheugen heeft.

Het installeren:

Het installeren van de memory driver bestaat uit twee handelingen:
- het aanpassen van MS-DOS m.b.v. het programma CONFIG.COM
- het aanpassen van het bestand CONFIG.SYS

Het aanpassen c.q. creeeren van een file CONFIG.SYS verloopt analoog aan de
wijze waarop dit bij de IBM-driver is gebeurt. Ook een combinatie van beide
is mogelijk. Indien dit laatst het geval is wordt de C-drive de IBM-
diskdrive en de D-drive de memory-disk.

Dus:
Systeem geeft:    U tikt in:
  A>              COPY CON CONFIG.SYS  RETURN
                  DEVICE = A:\SYS\IBMDRV.SYS RETURN
                  DEVICE = A:\SYS\MEMDRV.SYS RETURN
                  SHELL  = A:\COMMAND.COM A:\ /P RETURN
                  ^Z RETURN  (CTRL en Z tegelijkertijd ingedrukt houden)

  schrijft file
  op schijf en
  keert terug met

  A>

Het file CONFIG.COM moet u aanpassen zodat er een deel van het interne
geheugen voor deze memory-disk gereserveerd wordt. Stel dat u 512 Kb intern
geheugen heeft en 384 Kb hiervan wilt gebruiken als memory-disk. (U mag uw
memory-disk zo groot maken als u zelf wilt, als er maar 128 Kb voor MS-DOS
beschikbaar blijft). U handelt dan als volgt:

Start het programma CONFIG.COM op:
A>  CD BIN  RETURN
A>  CONFIG A: RETURN

Op het scherm verschijnt dan het hoofdmenu van CONFIG.COM
Kies daarin het nummer waarachter vermeld staat: Memory size

Vervolgens verschijnt er weer een menu waaruit u een memory-size kunt
maken. U kiest de geheugengrootte die over moet blijven en dus niet
gereserveerd moet worden voor de memory-disk. In de gestelde situatie kiest
u dus voor 512 - 384 = 128 Kb.

Na uw keuze verschijnt het hoofdmenu weer waaruit u vervolgens terugkeert
naar MS-DOS m.b.v. keuze 1: Return to MS-DOS.
De nieuwe informatie wordt nu naar schijf geschreven doch wordt niet in de
huidige systeemtoestand verwerkt.

Als u vervolgens het systeem RESET, dan verschijnt er bij het opstarten op
uw scherm dat u een IBM-disk-driver heeft geinstalleerd en dat u een
memory- disk-driver heeft geinstalleerd.

U dient er wel op te letten dat de CONFIG.COM versie overeenkomt met de
IO.SYS versie waarmee U  het systeem heeft opgestart, anders geeft het
systeem een foutmelding.

Als u een systeem heeft met een grote geheugencapaaciteit is deze memory-
disk een handig hulpmiddel. Gebruik de memory-disk echter nooit om bestan-
den op te slaan die gedurende een sessie van samenstelling veranderen. Als
er onverhoeds iets mis mocht gaan met de stroomvoorziening en het systeem
valt uit, dan zijn ook alle bestanden die zich in de memory-disk bevinden
verdwenen.
Tegen bovenstaande regel zondig ik nog wel eens door de memory-disk te
gebruiken voor compileren van programma's. Als u niet met de BASIC-interpr-
eter werkt, doch met een compiler, dan geeft het gebruik van een memo-
ry-disk een enorme tijdwinst bij het compileren en linken.


PROGRUN.SYS/IBM-EMULATIE OP DE SYSTEM I

Compudata software brengt een programma op de markt met de naam PROGRUN-
.SYS. Dit programma kunt U analoog aan de IBM-driver en de memory-driver
installeren.

Wat doet dit programma ?

Gezien de verschillen in structuur van de IBM-compatible computers en de
SYSTEM I was Compudata genoodzaakt bij het implementeren van programma's
die standaard op deze compatibles draaien een noodgreep toe te passen zodat
deze programma's ook op de SYSTEM I draaien. Producten als LOTUS 123 en
OPEN ACCES zijn op deze wijze geimplementeerd.
Het programma PROGRUN.SYS is een zogenaamd emulatieprogramma dat de inter-
ruptstructuur van de SYSTEM I aanpast aan die van de IBM, zodat redelijk
veel programma's die specifiek voor IBM(achtigen) geschreven zijn ook op de
SYSTEM I draaien.
De eerste versies van dit programma zijn verschenen onder namen als RUN.COM
en PC.COM daarna verschenen de drivers onder de naam PROGRUN.SYS. Telkens
werden nieuwere versies meegeleverd met bovengenoemde pakketten. De
nieuwste versie PROGRUN 1.30 is een switchable versie wat wil zeggen dat
men kan switchen tussen SYSTEM I-mode en IBM-mode met behulp van twee
kleine programmaatjes.
Van deze switchable versie kunt U een van de twee geleverde PROGRUN-versies
in CONFIG.SYS opnemen. De ene versie zorgt ervoor dat er standaard in de
SYSTEM I-mode wordt opgestart en de andere dat er standaard in de IBM-mode
wordt opgestart. Met behulp van de programma's TUL.COM en IBM.COM kunt U
dan switchen tussen deze mode's.
Als U pakketten als LOTUS 123 of OPEN ACCESS heeft dan staat PROGRUN ook op
de schijf. U kunt PROGRUN ook los kopen bij Compudata, dan kost ze ongeveer
250 gulden (ex. BTW).
Naast de software die U bij Compudata kunt kopen blijkt dat met PROGRUN
veel meer IBM-software draait op de SYSTEM I.  Als echter in het programma
een beroep wordt gedaan op een grafische kaart of op een COM-poort of als
het programma zijn karakters via het BIOS op het scherm zet, dan moet ook
PROGRUN teleurstellen. Misschien is er onder de SYSTEM I gebruikers iemand
die tezijnertijd ook hierop een oplossing weet te vinden.
In de SYSTEM I-bibliotheek is een aantal programma's opgenomen die U alleen
kunt draaien als U PROGRUN heeft geinstalleerd. Dit is er dan bij vermeld.

PROGRUN past voor het simuleren van een IBM-achtige ook het toetsenbord
aan. Op de volgende bladzijde vindt U een door COMPUDATA gemaakt stencil
dat in principe bijgeleverd behoort te worden bij het programma PROGRUN.SYS

Het is nu ook mogelijk om met CTRL-ALT-DEL het systeem te rebooten. Een nog
grotere zichtbare overeenkomst krijgt U als uw systeem is uitgerust met de
IBM-characterprom. De karakters en cursor op uw scherm komen dan ook over-
een met die van een IBM.
















Bij het bekijken van het nieuwe keyboard zal het U opvallen dat een aantal
toetsen dubbel voorkomen. Dit geldt bijvoorbeeld voor de pijltjestoetsen
(omhoog, omlaag, links en rechts), PGup en PGdn die overeenkomen met BWD en
FWD. Een zestal toetsen zijn helemaal nieuw, dit zijn de volgende:

TOETS    BETEKENIS        FUNKTIE
color    F9               wordt bepaald door het programma
graph    F10              idem
rev      ALT              schakelt de ALTERNATE keyfunctie in
C        SCROLL LOCK      na inschakelen veranderd de scroll funktie,
                          afhankelijk van het programma.
CE       NUMM LOCK        bepaalt de functie van de numerieke toetsen 
                          (vergelijkbaar met SHIFT)
1        END              afhankelijk van het gebruikte programma

De NUMM LOCK toets draait de funktie van de numerieke toetsen om (perma-
nent), en met de SHIFT-toets zet U de funktie tijdelijk weer terug. De
werking is vergelijkbaar met de ALPHA LOCK toets die hetzelfde doet voor de
ALPHA toetsen.Spellbinder 5.30
Tulip I met IBM-karakterset.
Starprinter SG-10

Een nederlandstalig tekstverwerkingsprogramma behoort naar mijn mening ook
de nederlandse schrifttekens en accenten goed te kunnen weergeven, dit
zowel op het beeldscherm als ook door middel van de printer op papier.
Hiertoe te rekenen zijn, de c met cedille, de trema's, de accents aigu, de
accents grave en de circumflexen. Bedenk maar eens hoe woorden zoals ruãne,
pate` en naa"pen zouden klinken wanneer we de betreffende tekens weglaten.
Woorden zoals fac,ade en rec,u moeten met een c-cedille kunnen worden
geschreven.

Gelukkig heeft Spellbinder een aantal ingebouwde mogelijkheden. Buiten de
standaard karakters kunnen 16 zelf te definiâren karakters worden gebruikt
en naar de printer worden gestuurd.

We moeten er voor zorgen dat het beeldscherm en de printer synchroon gaan
lopen met onze tekstverwerker.

We beginnen met het beeldscherm. We willen de beschikking hebben over een
karakterset die ook de letters met accenten en trema's bevat. Standaard
bevat de TULIP deze karakters maar ten dele. Maar bovendien staan deze op
plaatsen die niet direct bereikbaar zijn voor Spellbinder. De TULIP's van
na 1 januari 1984 echter hebben ingebouwd een extra karakterset die de
c-cedille en de letters met accenten en trema's bevatten. Het is de
karakterset die ook door de IBM-computers wordt gebruikt. We moeten er dus
voor zorgen dat deze IBM-karakterset wordt ingeschakeld en de Tulip-karak-
terset wordt uitgeschakeld.

Kijken we vervolgens naar de Starprinter (SG-10) dan vertelt ons de
gebruiksaanwijzing dat deze in staat is een aantal zelf te definiâren
karakters in het geheugen te bewaren nadat deze vanaf de computer worden
geladen (downloading). Dit biedt perspectieven! We kunnen een i met twee
puntjes ontwerpen en deze als te gebruiken karakter naar het printergeheu-
gen sturen. Zo ook met de a',e',c,, de a`,e`,o`,  de a^,e^,o^,i^,u^, en
tenslotte de a",e",i",o",u".

Bovengenoemde twee actie's kunnen we bereiken door in MBASIC het volgende
programmaatje in te tikken.

 10 ' ==========================================================
 20 ' ==      OMSCHAKELEN NAAR IBM KARAKTERGENERATOR          ==
 30 ' ==      LADEN VAN STARPRINTER MET ACCENTTEKENS          ==
 40 ' ==========================================================
 50 '
 60 PRINT CHR$(27)+"<1"; 'kar.set 1 70 PRINT CHR$(27)+">2";                'graph.set 2
 80 PRINT CHR$(7)                       'comp. belsignaal
 90 PRINT CHR$(26);"OMGESCHAKELD NAAR IBM-KARAKTERGENERATOR!"
100 PRINT CHR$(27)+"P1832";             'knipperende cursor
110 LPRINT CHR$(27) "*" CHR$(1) CHR$(200) CHR$(215);
                                        'download komt eraan !
120 FOR N = 200 TO 215                  'ASCII 200 t/m 215 
130   FOR M = 1 TO 12                   'letter heeft 12 kolommen 
140     READ MM                         'lees uit DATA
150     LPRINT CHR$(MM);                'en plaats in download
160   NEXT M                            '
170 NEXT N                              '
180 PRINT "LETTERS MET ACCENTEN GELADEN IN STARPRINTER!"
190 LPRINT CHR$(7)                      'printer-belsignaal
200 FOR X = 1 TO 500                    'wachtlus
210 NEXT X 
220 LPRINT CHR$(7)                      'printer-belsignaal
230 END
240 '
250 '
260 '----- a,e,i,o,u met circumflex -----
270 '
280 DATA 138,  4, 10, 96, 10,160, 10, 96, 28,  2,  0,  0                    
 
290 DATA 138, 28, 34, 72, 34,136, 34, 72, 34, 24,  0,  0
300 DATA 151,  0, 98,  0,190,  0, 66,  0,  0,  0,  0,  0
310 DATA 138, 28, 34, 64, 34,128, 34, 64, 32, 28,  0,  0
320 DATA 138, 60,  2, 64,  2,128,  2, 64, 60,  2,  0,  0
330 '
340 '----- a,e met accent grave ---------
350 '
360 DATA 138,  4, 10,160, 10, 96, 10, 32, 28,  2,  0,  0
370 DATA 138, 28, 34,136, 34, 72, 34,  8, 34, 24,  0,  0
380 '
390 '----- c met cedille ----------------
400 '
410 DATA  10, 56, 69,  0, 69,  2, 68,  0, 68,  0,  0,  0
420 '
430 '----- a,e,o met accent aigu --------
440 '
450 DATA 138,  4, 10, 32, 10, 96, 10,160, 28,  2,  0,  0
460 DATA 138, 28, 34,  8, 34, 72, 34,136, 34, 24,  0,  0
470 DATA 138, 28, 34,  0, 34, 64, 34,128, 34, 28,  0,  0
480 '
490 '----- a,e,i,o,u met trema ----------
500 '
510 DATA 138,  4, 10,160, 10, 32, 10,160, 28,  2,  0,  0
520 DATA 138, 28, 34,136, 34,  8, 34,136, 34, 24,  0,  0
530 DATA 151,  0,162,  0, 62,  0,130,  0,  0,  0,  0,  0
540 DATA 138, 28, 34,128, 34,  0, 34,128, 34, 28,  0,  0
550 DATA 138, 60,  2,128,  2,  0,  2,128, 60,  2,  0,  0
560 '

Om het programma te bewaren kunnen we dit het beste wegschrijven onder de
naam ACCENT.BAS d.m.v. het commando SAVE"ACCENT".
Geef daarna het RUN-commando. De TULIP meldt dat er is omgeschakeld naar de
IBM-karakterset en de printer meldt dat de extra karakters zijn ontvangen.
Beide meldingen zijn hoorbaar d.m.v. pieptoontjes.

Nu de TULIP en de printer beschikken over de gewenste karakterset kunnen we
eens gaan kijken naar Spellbinder zelf.

Spellbinder heeft, zoals al in het begin van dit artikel vermeld, ook de
mogelijkheid een 16-tal extra karakters te kunnen verwerken. Dat komt goed
van pas want we hebben er ook 16 nodig. We moeten Spellbinder vertellen
welke 16 we willen gebruiken en met behulp van welke toetsen we deze
karakters op het beeldscherm en vervolgens naar de printer gestuurd willen
hebben.

Start Spellbinder op en tik het volgende programma in de type-mode in:

&6
;                 TOETSENBORD INPUT VERTAAL TABEL
;
0                ;begin van de tabel
;
'`' 135 255      ;de `-toets wordt interne waarde 135=c-cedille
;
255              ;einde van toetsenbord input vertaal tabel
;
&12
;
;                 DODE TOETS TABEL
;
'^'              ;tabel voor accent circumflex
'a' 008 128 255  ;
'e' 008 129 255  ;
'i' 008 130 255  ;
'o' 008 131 255  ;
'u' 008 132 255  ;
255
;
'{'              ;tabel voor accent grave
'a' 008 133 255  ;
'e' 008 134 255  ;
255
;
'}'              ;tabel voor accent aiqu
'a' 008 136 255  ;
'e' 008 137 255  ;
'o' 008 138 255  ;
255
;
'~'              ;tabel voor trema
'a' 008 139 255  ;
'e' 008 140 255  ;
'i' 008 141 255  ;
'o' 008 142 255  ;
'u' 008 143 255  ;
255
;
255              ;einde dode toets tabel
;
&8
;                 TOETSENBORD OUTPUT VERTAAL TABEL
;
0                ;begin van de tabel
;
128 131 255      ;interne waarde 128 wordt 131 a-circumflex
     129 136 255      ;interne waarde 129 wordt 136 e-circumflex
     130 140 255      ;interne waarde 130 wordt 140 i-circumflex
     131 147 255      ;interne waarde 131 wordt 147 o-circumflex     
132 150 255      ;interne waarde 132 wordt 150 u-circumflex   
     ;
     133 133 255      ;interne waarde 133 wordt 133 a-accent grave
     134 138 255      ;interne waarde 134 wordt 138 e-accent grave
     ;
     135 135 255      ;interne waarde 135 wordt 135 c-cedille
     ;
     136 160 255      ;interne waarde 136 wordt 160 a-accent aigu
     137 130 255      ;interne waarde 137 wordt 130 e-accent aigu
     138 162 255      ;interne waarde 138 wordt 162 o-accent aigu
;
     139 132 255      ;interne waarde 139 wordt 132 a-trema
     140 137 255      ;interne waarde 140 wordt 127 e-trema
     141 139 255      ;interne waarde 141 wordt 139 i-trema
     142 148 255      ;interne waarde 142 wordt 148 o-trema
     143 129 255      ;interne waarde 143 wordt 129 u-trema
;
255              ;einde van toetsenbord output vertaaltabel
;
&9
;                 PRINTER OUTPUT VERTAAL TABEL
;
0                ;begin van tabel
;
128 27 '$' 1 200 255   ;a-circumflex
129 27 '$' 1 201 255   ;e-circumflex
130 27 '$' 1 202 255   ;i-circumflex
131 27 '$' 1 203 255   ;o-circumflex
132 27 '$' 1 204 255   ;u-circumflex
;
133 27 '$' 1 205 255   ;a-grave     
134 27 '$' 1 206 255   ;e-grave      
;
135 27 '$' 1 207 255   ;c-cedille   
;
136 27 '$' 1 208 255   ;a-aiqu
137 27 '$' 1 209 255   ;e-aiqu      
138 27 '$' 1 210 255   ;o-aiqu    
;
139 27 '$' 1 211 255   ;a-trema
140 27 '$' 1 212 255   ;e-trema
141 27 '$' 1 213 255   ;i-trema     
142 27 '$' 1 214 255   ;o-trema     
143 27 '$' 1 215 255   ;u-trema   
;
255              ;einde van dode toets tabel
;

Let er op dat alles precies zo wordt ingetikt. Iedere komma en punt-komma
heeft een bepaalde functie en mag niet worden weggelaten. Zo ook met de
getallen 0 en 255.

Zet de cursor bovenaan de tekst en geef in de opdracht-mode het commando PI
(of PS voor de amerikaanse versie).
Wanneer alles goed is ingetikt komt de cursor onderaan te staan.
Wat doet nu bovenstaand programma?

Tabel 6 (toetsenbord input vertaal tabel) maakt dat het omgekeerde naar
links gerichte kommaatje intern verandert naar een waarde die Spellbinder
kan verwerken naar een c met cedille.

Tabel 12 (dode toets tabel) zorgt ervoor dat wanneer het {-teken direct
gevolgd door een klinker wordt getypt, de klinker met een accent-grave door
Spellbinder kan worden verwerkt. Zo ook met het }-teken, het ~-teken en de
^.

Tabel 8 (toetsenbord output vertaal tabel) vertaalt Spellbinder- waarden
naar waarden die de computer gebruikt om de juiste karakters op het scherm
weer te geven.

Tabel 9 (printer output vertaal tabel) zorgt er tenslotte voor dat de
Spellbinder-waarden worden omgezet naar de overeenkomstige printerinstruc-
ties, waardoor de betreffende tekens ook op papier worden gezet.

Om deze tabellen definitief in Spellbinder vast te leggen, moet het
volgende gebeuren.
Maak het scherm schoon met de opdracht WA(=wis alles) of DA(=delete all,
voor de amerikaanse versie) en geef de opdracht XS.
Wanneer U Spellbinder de volgende keer opstart zitten deze instructies er
ingebouwd. Maar vergeet niet als eerste het BASIC-programmaatje te runnen.
Het mooiste gaat dit wanneer u MBASIC ACCENT inbouwt in een AUTOEXECute-fi-
le.

Veel succes!
Jan en Adry Kalf


Naar aanleiding van het bovenstaande nog de volgende opmerkingen:

* Als U een System I heeft die niet voorzien is van de IBM-karakter-eprom's
dan bestaat de mogelijkheid deze te vervangen bij Tulip.
* Eenvoudige omschakel-programma's naar andere tekensets zijn ook te vinden
in de PD-bibliotheek van de System I.
*  Soortgelijke tabellen voor andere merken printers (zoals de   NL10 en de
Nakajima All) zijn ook te vinden in de PD-bibliotheek van de System I.
*  Van Spellbinder is naast de normale handleiding een technische handlei-
ding leverbaar. Hierin wordt het creâren van bovenstaande tabellen uitge-
breid uit de doeken gedaan. Deze handleiding is te verkrijgen bij Ebing
Data en kost circa 100 gulden.





Toen onze school een aantal jaren geleden het programma WordStar kocht
(versie 3.30) moest het programma eerst geãnstalleerd worden. Gelukkig
leverde Compudata toen een Batch-file en een aantal printer-files mee zodat
dit geen enkel probleem bleek te zijn. Het commando PRINTER STAR zorgde er
voor dat er een keurig geãnstalleerde WS.COM op de schijf werd gemaakt die
de STAR GEMINI 10X zonder problemen aanstuurde. 
Het tekstverwerken leerde ik met WordStar en ik ben dit programma trouw
gebleven. (Tulip Contact wordt ermee geredigeerd). 
Toen ik me bezig ging houden met het schrijven van lesmateriaal kreeg ook
de wijze waarop dit op papier wordt gezet mijn aandacht. De printermanual
liet blijken circa 12 verschillende lettertype's te kunnen verwerken. Met
WINSTALL wist ik de specifieke printer-aanstuur-code's in het pakket onder
te brengen. Tijdens het editen van tekst kon ik toen met behulp van diverse
control- combinaties te kennen geven dat een specifiek stuk tekst cursief
of enlarged etc. moest worden afgedrukt.
Echter het telkenmale opzoeken welke toetscombinatie nou de gewenste
printerinstelling verkreeg bracht me ertoe deze toetscombinaties onder te
brengen onder de functietoetsen.
Ik schreef in MBASIC een programmaatje dat de functietoetsen van een
bepaalde waarde voorzag en om de functietoetsen heen hing ik een zelf
geknipt malletje waarop de diverse betekenissen  waren aangebracht.
Dus het functietoetsen programma gedraaid en toen WordStar opgestart. En
toen begon het probleem. WordStar kwam weer terug met de standaard instel-
ling van de functietoetsen. Wat ik ook probeerde, niets hielp. Teneinde
raad heb ik DEBUG maar van stal gehaald om WS.COM eens door te spitten. Ik
ging op zoek naar de plaats waar de functietoetsen benoemd werden. Al snel
kwam ik er achter dat de inhoud van de diverse toetsen geplaatst is vanaf
adres 30F. Het bleek dat de eerste 12 toetsen 3 bytes tot hun beschikking
hadden, de volgende 3 toetsen kregen 4 bytes en de laatste toets kreeg 5
bytes. Door het veranderen van de inhoud van deze adressen met de inhoud
die ik wenste kreeg ik tenslotte gerealiseerd wat ik wilde: mijn eigen
functietoetsbenoeming.
Een tijdje later kreeg ik echter de wens een andere instelling te realise-
ren en daarbij waren de toegewezen drie bytes niet voldoende.
Ik moest dus een andere oplossing vinden. Nogmaals DEBUG van stal om nu te
zoeken waar WordStar de waarden onder de functietoetsen plaatst.
Na wat puzzelen vond ik de plaats waar dit gebeurt. WordStar plaatst eerst
de waarden van de system-edit-keys onder de toetsen en daarna worden de
functietoetsen gevuld. Door nu over dit laatste stuk heen te springen kon
ik voorkomen dat de functietoetsen gevuld werden en dat de buiten WordStar
om ingestelde waarden niet veranderden. 
In het openingsmenu van WordStar staat een optie R. Hiermee kan men buiten
WordStar om programma's draaien om daarna weer terug te keren in WordStar.
Mijn programma geschreven in MBASIC en daarna gecompileerd weigert met deze
optie echter alle diensten. Een "Interupt trap halt" is het enige wat ik
krijg. Toen ik echter het programma herschreef in PASCAL en het compileer-
de, bleek het prima te werken. Blijkbaar werkt die R-optie niet met
EXE-files, doch alleen met COM-files. 
Hierna treft U een beschijving van het wijzigen van WordStar zodat de
functietoetsen niet door WordStar benoemt worden en daarna een eenvoudig
TURBO PASCAL-programma om het COM-file te creeeren. Ik ben nieuwsgierig of
de IBM-compatibles hiermee ook kunnen werken. (Zo niet: dan is er altijd
nog Superkey, Smartkey of Newkey (Public Domain) om een en ander aan te
passen.)

MAAK WEL EERST EEN COPIE VAN WORDSTAR ZODAT U EEN ORGINEEL BEHOUD, MOCHT
HET ONVERHOEDS MISGAAN.

De WordStar patch:

Zorg dat DEBUG.COM en WS.COM op dezelfde schijf en in dezelfde directory
staan. Start dan DEBUG op en laadt meteen het file WS.COM. Verander daarna
twee bytes en schrijf het veranderde programma weer naar de schijf:

A> DEBUG WS.COM
- E 54B3 EB 36
- W
- Q
A>€

Creâer en compileer daarna het door U gewenste Pascal-programma dat de
inhoud van de functietoetsen insteld.(alleen voor SYSTEM I):

Program Functietoetsen;
var i:integer;
    a:array[1..16] of string[5];

begin
  a[1]  := 'AAP'  ;
  a[2]  := 'NOOT' ;
  a[3]  := 'MIES' ;
  a[4]  := 'WIM'  ;
  a[5]  := 'ZUS'  ;
  a[6]  := 'JET'  ;
  a[7]  := 'TEUN' ;
  a[8]  := 'VUUR' ;
  a[9]  := 'GIJS' ;
  a[10] := 'LAM'  ;
  a[11] := 'KEES' ;
  a[12] := 'BOK'  ;
  a[13] := 'WEIDE';
  a[14] := 'DOES' ;
  a[15] := 'HOK'  ;
  a[16] := 'DUIF' ;

  for i := 1 to 16 do
  begin
    writeln(chr(27),chr(102),chr(48+i),a[i],chr(0))
  end
end.

Hiermee wordt het aap-noot-mies onder de functietoetsen geplaatst. U kunt
zelf uw eigen varianten bedenken.

Als U niet de beschikking heeft over een Pascal-compiler, dan zijn er in de
PD-bibliotheek van de System I zijn ook nog wel enige programma's te vinden
waarmee U de functietoetsen een andere inhoud kunt geven. (Onder andere
FNTSN van Hans ten Have)

Jan Klaver



In de Nederlandse versie van WordStar, en dan betreft het release 3.40-1.1,
is een hinderlijke fout geslopen. Telkens als er een bestand wordt afge-
drukt, wordt voor elke pagina een formfeed gegeven. Het installatieprogram-
ma INSTALL heeft de mogelijkheid om deze formfeed aan/uit te schakelen,
echter het uitschakelen van deze formfeed heeft schijnbaar geen gevolgen:
de formfeed voor elke pagina blijft aanwezig.
Het probleem hierbij is een foutje in INSTALL. Met het installeren van
WS.COM worden op bepaalde plaatsen in dit programma de code's opgeslagen
die bij een specifieke functie horen. De code voor de formfeed-toggle wordt
echter door INSTALL op de verkeerde plek gezet. U kunt dit hinderlijke
foutje zelf teniet doen door in de geinstalleerde versie van WS.COM op
adres 04BB de waarde 0 te plaatsen indien U geen formfeed voor elke pagina
wilt. 
Het bovenstaande valt te realiseren als volgt:

- plaats de systeemschijf in drive A en switch naar de BIN- directory
middels het commando: CD \BIN
- plaats de schijf met daarop de door U geinstalleerde versie van WS.COM in
drive B.
- start vanaf de systeemschijf DEBUG op en geef daarna de volgende comman-
do's:

   Het systeem meldt:    U geeft:

   A>‹                   DEBUG       RETURN
   - ‹                   N B:WS.COM  RETURN
   - ‹                   L           RETURN
   - ‹                   E04BB       RETURN
   xxxx:04BB  FF.€       0           RETURN
   - €                   W           RETURN
   Writing 6400 bytes
   - €                   Q           RETURN
   A> €

(de waarde die op de plaats van xxxx staat is niet belangrijk!)

Als het goed is heeft U thans een WordStar-versie die zonder problemen de
bestanden op papier afdrukt.

Jan Klaver




WordPerfect 4.1 werkt op de SYSTEM I. Dit is geen 1 juni-grap !
Tot dusverre was het me wel gelukt om het edit-gedeelte van WP naar wens te
laten werken, echter de printer bleef zwijgen als hij karakters kreeg
aangestuurd. De tip:
- Maak een systeemschijf met daarop de bestandjes ANSI.SYS en PROGRUN.SYS.
- Maak vervolgens een bestandje CONFIG.SYS met de volgende inhoud:  DEVICE
= A:PROGRUN.SYS
           DEVICE = A:ANSI.SYS
- Plaats op de systeemschijf de WP-files. (Op een System I schijf kunnen
zowel de Master, de Printer en de Speller).
- Start WP op met het commando:     WP /NF /B-10 /D B:\
  (door de parameter NF weet WP dat het moet draaien op een niet volledige
IBM-compatible, door de parameter B-10 wordt er elke 10 minuten een backup
van het werkgeheugen op schijf gemaakt en door de parameter D B:\ worden de
werkfiles op schijf B opgeslagen. 
- Start vervolgens op met deze systeem-schijf en U komt automatisch in het
edit-gedeelte terecht.
- Als U vervolgens keuze PRINT (shift F7) doet dan kunt U een printer naar
wens installeren. Naast de keuze van het type printer moet U instellen via
welke poort de uitvoer naar de printer gaat. Kies hier keuze 8 en stuur de
uitvoer naar een file met de naam PRN. Hierdoor wordt werkt mijn printer
(NL10) voortreffelijk. (WP vraagt minimaal 256 Kb intern).

Jan Klaver.




Het is met WordPerfect mogenlijk om ASCII codes van 1 ! t/m 254 in een
tekst te zetten. Dat kan op twee manieren:

- Via keuzemogelijkheid CTRL-F3 en daarna uit het onder in beeld 
verschijnende menu keuze 3 te maken. Als U bijvoorbeeld â onder de toetscombinatie
ALT-E wilt hebben, drukt U deze toetscombinatie in, waarna achter ALT-E in het
overzicht een invers blokje oplicht. Als U dan de decimale waarde van de â,
gevolgd door RETURN intikt verschijnt dit teken. Telkens als U in een tekst de â
nodig heeft drukt U op ALT-E en het teken verschijnt op het scherm. Zo kunt U alle
toetscombinaties met ALT en CTRL vooraf definiâren. Als U WP beâindigt, wordt deze
instelling ook op schijf opgeslagen zodat U voor de volgende keer deze definitie
niet weer hoeft te maken.

- U houdt de ALT-toest ingedrukt en U typt de decimale ASCII-waarde in 

op het aparte numerieke toetsenbord. Zodra de ALT-toets los wordt gelaten ver-
schijnt daarna het karakter op het scherm. 

 
Als U een tekst met WordPerfect heeft aangemaakt en deze tekst naar de printer stuurt
bent U qua lettertype dat op papier verschijnt afhankelijk van de mogelijkheden van
de printer. WordPerfect heeft op dat gebied geen andere mogelijkheden te bieden.
Iedereen die echter een TULIP PC heeft kent min of meer het pakket MS-Windows met de
tekstverwerker Write. Met deze tekstverwerker kun je teksten laten afdrukken in
verschillende lettertypes (ook wel letterfonts genoemd).
Via een omweggetje kan ik echter toch de met WordPerfect aangemaakte tekst in
verschillende lettertypes op mijn printer laten afdrukken.
Ik gebruik daarvoor twee andere programma's nl. Fontasy en Lettrix
(er zijn trouwens nog meer van dit soort programma's). 
Beide programma's hebben hun voordelen en hun nadelen. Lettrix is een memory resident
programma en kan dus samenwerken met WordPerfect, dit kan Fontasy niet, zodat U
Fontasy pas kunt laten 'draaien' nadat de tekst is aangemaakt en U WordPerfect heeft
verlaten. 
Daar staat tegenover dat Fontasy veel meer letterfonts heeft dan Lettrix en tevens de
mogelijkheid heeft om tekeningen te maken. 
Van Lettrix (versie 3.6) is het bekend dat het, grotendeels, ook werkt op de SYSTEM
I.

 
FONTASY
 
Als U met WordPerfect een tekst file heeft gemaakt dan moet U dit file als ASCII-file
op schijf schrijven (middels CTRL-F5, keuze 1; bewaar het tekstfile als DOS-bestand).
Vervolgens wordt WordPerfect beâindigd waarna Fontasy kan worden opgestart. Het
programma Fontasy heeft een uitgebreide help functie en is vrij gemakkelijk te
bedienen. Als Fontasy eenmaal geladen is, kan een Fontasy-letterfont ingeladen
worden, waarna het met WordPerfect gemaakte tekst-file wordt ingeladen. Vervolgens
wordt deze tekst in het betreffende letterfont afgedrukt. 
Het is niet persÇ noodzakelijk eerst een Fontasy-letterfont in te laden want U kunt
in het tekstfile zelf ook Fontasy-commando's opnemen (de zogenaamde puntcommando's). 


Alle Fontasy-commando's bestaan uit een combinatie van twee letters welke in
WordPerfect door een punt voorafgegaan worden. Als dan het tekstfile ingeladen wordt
in Fontasy, worden de commando's vanzelf uitgevoerd. 
Als ik bijvoorbeeld wil dat een stukje tekst wordt afgedrukt in het 
letterfont FLEUR van Fontasy dan neem ik in het tekstfile de volgende regel op: 
 
.BF FLEUR (en dan het betreffende stukje tekst).
 
Op deze manier kunt U dus op ÇÇn vel een aantal verschillende lettertypes krijgen. 

LETTRIX

Lettrix is een memory-resident programma, hetgeen wil zeggen dat het ÇÇn keer
ingeladen moet worden en vanaf dat moment in het geheugen blijft zitten. Als door een
willekeurig pakket teksten worden aangeboden om te printen, vangt Lettrix daarbij
alle tekst op, vervormt ze en stuurt ze dan naar de printer. Hierdoor wordt bijvoor-
beeld de hoofdletter A niet met de normaal gedefiniâerde puntjes afgedrukt, doch met
de puntjes die Lettrix samenstelt.
Hoewel normaliter de printer de aard van de af te drukken karakters regelt wordt door
Lettrix, als het geladen is, het heft in handen genomen. De instelling die eerst op
de printer is gemaakt wordt volkomen genegeerd.

Wat is er nu allemaal mogelijk met Lettrix?
Normaal kennen de meeste printers slechts normale lettertypes en zo af en toe kan er
ook in NLQ worden afgedrukt. Het normale lettertype kan meestal ook nog worden
afgedrukt in een drietal pitches, dat wil zeggen het aantal karakters per inch.
Hierdoor is het dan mogelijk om 80, 96 en 136 karakters per inch afgedrukt te krijgen
(bijv. op de STAR NL10).
Als er dus vanaf de computer een byte komt om afgedrukt te krijgen kijkt de printer
als het ware in een bibliotheekje welke pennetjes op welk moment tegen het lint
moeten worden aangemept. Het is echter met de meeste matrixprinters ook mogelijk om
de computer te laten vertellen welke pennetjes aangeslagen moeten worden. Dit moet
dan per karakter pen voor pen gedefiniâerd worden. Lettrix is zo'n definiâer-
programma. Hij verzint het echter niet ter plekke, maar heeft een  uitgebreide
bibliotheek aan boord. In elk file in die bibliotheek is de definitie opgenomen met
welke pennetjes een karakter uit de karakterset moet worden afgedrukt. Per file een
verschillende definitie per karakterset.
In totaal staan er ruim 20 verschillende karakterfiles op de schijf. Die middels een
meegeleverd programma door de eigen hand ook nog kunnen worden uitgebreid. Tijdens de
verwerking kunnen er echter maximaal zeven verschillende karakterfiles resident in
het geheugen worden opgeslagen. Bij het opstarten moet de gebruiker er dus maximaal
zeven kiezen uit het aanbod en ze in het geheugen laden. 
Wil de gebruiker gebruik maken van andere letterfonts, dan moet het systeem gereset
worden en moet Lettrix opnieuw, en dan met de andere fonts, worden opgestart. 

Om in een tekstverwerkingsprogramma gebruik te kunnen maken van de diverse opties die
Lettrix biedt, maken we gebruik van de RECHTER-SHIFT en RETURN-toetsencombinatie. Als
deze twee toetsen tegelijkertijd worden ingedrukt verschijnt er een menu op het
scherm waarin ingesteld kan worden hoe de tekst moet worden afgedrukt. Op de SYSTEM I
gebeurt er door het indrukken van deze twee toetsen echter niets. Dit is vermoedelijk
te wijten aan het feit dat een druk op de RECHTER-SHIFT op de SYSTEM I een andere
code genereert dan op de TULIP PC. Hier valt vast nog wel iets op te vinden. Op de
TULIP PC moet ik mijn printer tijdens het oproepen van het menu hebben ingeschakeld.
Telkens als het menu dan wordt opgeroepen krijg ik een line-feed op de printer. Als
iemand weet hoe ik die linefeed's kan voorkomen, dan houd ik me aanbevolen.

Dus voordat U uw tekstverwerkingsprogramma o.i.d. in het geheugen laadt wordt eerst
Lettrix geladen middels een commando als:

LX/E ROMAN ORATOR OLDELISH ENGRAVED ABCBLOCK ARTDECO SCIENCE

Daarbij is LX de naam van het programma en de parameter /E dient ervoor om aan te
geven over welk type printer U beschikt. De parameter /E wordt gegeven als het een
Epson-achtige printer betreft, maar als U een ander merk printer heeft is er vast ook
wel een parameter mee te geven. Door het intikken van slechts LX verschijnt er een
menu met printertypes alsmede de parameter die bij betreffende printer gegeven moet
worden. (Alleen de Okidata schijnt nogal problemen op te leveren). De woorden ROMAN,
ORATOR e.d. zijn namen van karakterfiles waarin een bepaalt lettertype is gedefini-
erd. Er zijn 6 types 'drukwerk'-lettertypes, dus normaal printerschrift, 10 types
'pretwerk'-lettertypes, dus leuke lettertypes, 3 type taal-lettertypes, waarmee U
zelfs russisch, grieks of hebreeuws uit de printer kunt toveren en een drietal
technische lettertypes, o.a. het OCR-A schrift en tekens om diverse wiskundige en
natuurkundige formules af te drukken.

Als Lettrix geladen is zoals op bovenstaande wijze aangegeven is wordt alle tekst in
het lettertype ROMAN op de printer afgedrukt. De lettertypes in een tekst wijzigen is
mogelijk door het toevoegen van bepaalde codes. Zoals WordStar de zogenaamde punt-
commando's kent, kent Lettrix Backslash commando's. Een backslash (\) gevolgd door
een bepaald karakter zorgt ervoor dat Lettrix de tekst op een andere wijze naar de
printer stuurt. Zo kan met een backslash gevolgd door een cijfer (als er zeven
lettertypes zijn ingeladen is het maximale cijfer een 7) de printer laten overgaan op
een ander lettertype.
De backslash gevolgd door letters zijn meestal 'toggle'-commando's, dat betekent dat
een bepaalde parameter in en uit kan worden geschakeld. Het inschakelen gebeurt
meestal met een hoofdletter en het uitschakelen door een kleine letter. Zo wordt na
een ' \ P ' alle tekst vanaf die code in proportioneel schrift afgedrukt en na een '\
p ' weer normaal. Op dezelfde wijze kan met de C en de c compressed schrift worden
geactiveerd en I en i overgegaan worden naar cursief schrift. Ook kan men met
dergelijke code's onderstrepen, vet afdrukken, sub- en superscripts maken en op
dubbele breedte of dubbele hoogte afdrukken. Zelfs het instellen van het aantal
karakters per inch (de pitch) en het aantal regels per inch is mogelijk. Alles werkt
naar behoren ook op de SYSTEM I. Alleen als er karakter's worden afgedrukt die niet
in de ASCII-karakterset zitten (zoals het grafische spul), dan vermeld de 
handleiding dat er wordt teruggeschakeld naar normale mode. En dit is dus iets wat
met de SYSTEM I niet gebeurt. 
Al met al is Lettrix een welkome aanvulling op een tekstverwerkings-pakket en een
printer waarmee slechts weinig verschillende lettertypes kunnen worden afgedrukt. Het
is echter jammer dat Lettrix niet uit het geheugen te verwijderen is, als het er
eenmaal inzit. Als Lettrix geladen is met een aantal fonts en men wil iets in een
niet geladen font met de printer afdrukken dan is het nodig om het systeem te
resetten. Dit probleem schijnt met veel resident programma's te gelden. 
Houdt U er wel rekening mee dat specifieke Lettrix-commando's die U in een tekst
opneemt normaal op papier verschijnen als Lettrix niet geactiveerd is. Dit geldt
overigens ook voor Fontasy.
Hierna is een overzichtje gegeven van een aantal verschillende lettertype's die met
Lettrix gemaakt kunnen worden. Voor hen die gebaat zijn bij kwaliteits drukwerk is
het beslist aanbevelenswaardig en kan een goede concurent zijn van de margrietwiel-
printer-kwaliteit. Ik zou het pakket echter niet kopen voordat ik er van overtuigd
was dat alles met mijn printer ook werkte.  Op de SYSTEM I werkt het dus niet
perfect. 
Als iemand verbeteringen, andere suggesties of andere handigheden weet, schroom niet
te schrijven dan zal ik zorgen dat het in het TGV blad komt, voor iedereen die wel
WordPerfect (versie 4.1) heeft, maar niet de handleiding hebben, kan ik de
"les"-handleiding van Johan van Balkom (onze PC bibliothecaris) aanbevelen (voor de
goede gang van zaken deze handleiding is zelf gemaakt door Johan).  
                                          
Jos Reithofer 




QUEEN OP DE SYSTEM I

Het is mogelijk om het financiâel pakket Queen op de System I te gebruiken. Hiervoor
dient u een aantal zaken te regelen. Zo moet u gebruik maken van de versie 1.10 van
IO.SYS en dienen de functietoetsen te worden benoemd.
Bij deze versie van de IO.SYS werkt het programma CONFIG.COM niet zodat u een andere
manier van benoemen moet gebruiken. Een mogelijke oplossing is om het programma
FUNCTIE.EXE te gebruiken dat in de bibliotheek zit. 
De waarde die de toetsen moeten krijgen is afhankelijk van de
versie van het pakket Queen dat U bezit.
Functietoets:       oude versie          nieuwe versie
F1                  ctrl + Q             ctrl + Q
F2                  ctrl + W             ctrl + K
F3                  ctrl + X             ctrl + L
F4                  ctrl + Z             ctrl + Z
F5                  ctrl + \             ctrl + \
F6                  ctrl + ]             ctrl + ]
F7                  ctrl + ^             ctrl + ^
F8                  ctrl + _             ctrl + _

Bij het benoemen van de meeste toetsen is het geven van een RETURN mogelijk, echter
bij F5 moet u dit niet doen.
Het programma werkt nu goed behalve de bijgeleverde klok en calculator, deze laatste
is bij de SYSTEM I toch overbodig. Een ander voordeel van de SYSTEM I is dat u nu het
hele programma op ÇÇn schijf kunt houden. PROGRUN.SYS is wel nodig, maar dat had u
waarschijnlijk al begrepen. Zelf heb ik m.b.v. een batchfile de hele start procedure
geregeld. Dus zowel het laden van de functietoetsen als het laden van het programma.

Jan Wagenaar


Algemeen

Van Kernsoftware ontvingen we een heel pakket informatie met name over het produkt Q
& A (question and answer). U heeft daarover inmiddels in diverse bladen iets kunnen
lezen. Q & A draait op IBM-compatible machines (minimaal 512 Kb RAM) en bestaat uit
een geintegreerde tekstverwerker en een database. Het programma is voorzien van een
tikje kunstmatige intelligentie (geschreven in LISP), een beperkte hoeveelheid gewone
Nederlandse woorden worden door de software begrepen. Daarmee kan de gebruiker direkt
vragen stellen over gegevens die in de database liggen opgeslagen. Q & A heeft een
basis woordenschat van 400 woorden en dit kan worden uitgebreid door de gebruiker
zelf. Kernsoftware heeft een half miljoen gulden gespendeerd in het vertalen van Q &
A in het Nederlands. De Nederlandse versie kost ca 1595 excl. Hiervoor koopt men het
pakket en krijgt men een eendags basisopleiding en drie maanden gratis telefonische
ondersteuning kado.

Met betrekking tot Q & A ontvingen we van Kernsoftware nog de volgende aanvullingen:

Q & A vraagt minimaal 484 Kb intern VRIJ geheugen. Het beste is het om in de buurt
van de 490 Kb VRIJ geheugen te zitten om het pakket ten volle te kunnen benutten.
Ook moet erop gelet worden dat er regelmatig Backups van de bestanden gemaakt worden.
(*.DTF en *.IDX). Wanneer men dit niet doet en er toch tijdens het werken via Q & A
met die bestanden, de computer uit wordt gezet, of een (stroom)storing ontstaat, dan
zijn de bestanden waarschijnlijk NOOIT meer te gebruiken. Bij Kernsoftware kan men
toch nog proberen om de gegevens te herstellen, doch dit gaat zonder enige garantie
over de juistheid en de volledigheid.

Daarnaast is er een probleem ontstaan bij het maken van BACKUPs van een harde schijf.
Als bij die Backup niet alleen de datafiles, maar ook de Q & A-programmatuur zelf
wordt gebackupped dan wordt in die programmatuur het attribute 'Archive'  omgezet,
zodat Q & A daarna niet meer valt op te starten. Pakketten Q&A gekocht na 1-1-87
hebben dit probleem niet meer. Het beste kunt U Q&A NIET copieren.

Op de system I

Half juni ontving ik ter evaluatie van de firma Kernsoftware het pakket Q&A. Dit
pakket is inmiddels ruim bekend bij de IBM-compatible gebruikers. Kernsoftware heeft
er wat specialisten op los gelaten en deze hebben het voor elkaar gekregen dat het nu
ook draait op de SYSTEM I. In een vorig nummer van TULIP CONTACT is er al eens een
berichtje over Q&A geplaatst.
De gedeelten die ik heb kunnen testen werkten allemaal perfect. Slechts de printer
bleef zwijgen. De truc die ik toe pas met WordPerfect ging ook niet op. Kernsoftware
had echter de IBM-emulatie PROGRUN.SYS ook aangepast. In de nieuwe versie 1.31 is het
mogelijk om ook de printer aan te sturen via de poort LPT. 
Toen deze progrun-versie ook geinstalleerd was werkte het geheel perfect. Omdat ik
het pakket niet kende heb ik tijdens het evalueren ook veel tijd moeten besteden aan
de het onder de knie krijgen van diverse commando's. In het volgende nummer zal ik,
zo mogelijk, ook nog melding maken van de intelligente assistent waarmee het pakket
is uitgerust. Dit is een stukje intelligentie dat door het stellen van vragen in
'gewoon nederlands' gegevens uit bijvoorbeeld de database aan de gebruiker kan
verstrekken. 
De schermopbouw bij de SYSTEM I verloopt razend snel. Er wordt daarbij gebruik
gemaakt van het rechtstreeks schrijven in het geheugen. Dit kan omdat het beginadres
van het scherm tijdens de verwerking niet gewijzigd wordt. Dat tijdens het volschrij-
ven het scherm enige ruis liet zien is wel merkbaar, doch niet storend.
Inmiddels is er in Amerika een nieuwe versie van Q&A beschikbaar en is men daar druk
doende om een nog nieuwere versie te ontwikkelen. Kernsoftware die de pakketten
aanpast aan de nederlandse markt gaat de nieuwe versie niet aanpassen doch wacht met
dit werk op de nog nieuwere versie.
Nu het pakket ook voor de SYSTEM I beschikbaar is betekent dat een leuke bijkomstig-
heid voor de diverse scholen die met dit model TULIP werken en in hun lessen aandacht
willen besteden aan geintegreerde pakketten.Progrun in netwerk

Ons antwoord op de vraag of PROGRUN voor de SYSTEM I ook in een netwerk omgeving te
gebruiken is, leverde commentaar op van de heer Grootveld uit Vlaardingen. Het werkt
volgens hem uitstekend in een netwerkomgeving. De oplossing bij het gebruik van een
harde schijf is als volgt:
Neem in het bestandje CONFIG.SYS op de C-drive van de harde schijf (die iedere
sateliet ziet als A-drive) de regel DEVICE = PROGRUN.SYS op. Bij het opstarten wordt
PROGRUN dan geãnstalleerd 




Karakter-EPROMS en PC-FILE III

Als ik PC-file draai op de SYSTEM I (via PROGRUN) werkt dit feilloos. Afgezien van 2
karakters. Ik heb namelijk niet de nieuwe EPROM's maar de oude. (Omwisselkosten f
95,= en aanschafprijs f 165,= !!). Omwisselen is mij te duur.
Het enige probleem wat ik heb zijn de tekens ´ en ó (die bij mij verschijnen in
plaats van  en ) te veranderen in wat normalere tekens als bijvoorbeeld '(' en ')'.
Volgens het SYSTEM I handboek is het mogelijk om met escape sequences key-board
reassignment toe te passen.
1. Hoe moet ik dat doen ?
2. Als ik ´ en ó verander in  en  zou PC-file dit dan ook gebruiken?
                    W.J.Grootveld
                    Bleekstraat 40
                    3134 EB Vlaardingen

ANTWOORD:
De enige oplossing die ik zo snel zie is het wijzigen van de gewraakte karakters in
PC-file zelf. Dit kan je doen met behulp van NORTON of DEBUG. 
Het karakter . heeft hexwaarde 10h en de . heeft hexwaarde 11h. Verander niet alle
10h waarden in 28h en 11h waarden in 29h want het kan in het programma hier ook om
een hexadecimale code van een belangrijke assembleropdracht gaan in plaats van een
datacode. 
(JK)


Naslagwerkje

Als U al een tijdje zoekt naar een kort naslagwerkje om naast de System I te leggen
(bijvoorbeeld op scholen) dan is het de moeite waard eens het boekje Werken met de
Tulip uit de serie Administratie heden ten dage van Hoogheid, Fuchs en Heijkoop aan
te vragen bij Wolters Noordhoff. In dit boekje wordt heel in het kort iets verteld
over het opstarten, het toetsenbord, systeemprogrammatuur en MS-DOS. Inhoudelijk vind
ik het een goed boekje, alleen is het jammer dat er op de omslag een Extend staat
afgebeeld terwijl de inhoud betrekking heeft op de System I en dat men in het
hoofdstukje over de Basic-interpreter het programmeren in Basic heeft opgenomen. In
plaats van enkele basic-instructies (zoals PRINT, LPRINT etc) te behandelen, had men
m.i. beter iets dieper kunnen ingaan op de EDIT-functie in MBASIC en op functies als
LIST, RUN, SAVE, LOAD, MERGE, RENUM etc. JK


COO op de System I

De Wijs Software uit Tilburg brengt sinds kort een softwarepakket voor Computer
Ondersteunend Onderwijs op de markt. Het programma heet Socrates. In een foldertje
dat op de redactie binnenkwam zegt auteur drs. P.J.M. de Wijs dat Socrates een
vakonafhankelijk, Nederlandstalig, gebruikersvriendelijk en menugestuurd computerpro-
gramma is, waarmee leerstof op een didaktisch rijke wijze kan worden aangeboden aan
de leerling. Allerlei leerstofonderdelen worden samengesteld middels een tekstverwer-
ker (b.v. WordStar), waarna Socrates er op toe ziet dat de ingetikte leerstof op de
monitor verschijnt. Socrates kent verder interactieve processen waardoor open-vragen
mogelijk zijn. 
Socrates draait op de SYSTEM I en de IBM-Compatibles met tenminste 256 Kb intern
geheugen. Verder dient men de beschikking te hebben over een tekstverwerker.
De prijs van dit pakket bedraagt f 500,= per school/instituut/ bedrijf. Een demon-
stratiepakket kan besteld worden voor f 50,=
Wilt U meer informatie stuur dan even een briefje naar:
                 De Wijs Software Tilburg
                 Postbus 10460
                 5000 JL Tilburg
                 
                 
                 
Van deze en gene komen er nog al eens vragen binnen om een lijst met beschikbare
software voor de Tulip System I. De IBM-compatibles hebben t.a.v. dit punt niet
zoveel problemen omdat daar veel duidelijker is wat er voor die machines beschikbaar
is. Om een uitputtend overzicht te krijgen van de software die voor de Tulip System I
beschikbaar is, is uw hulp als SYSTEM I gebruiker gewenst. In het navolgende heb ik
al een groot aantal titels opgenomen waarvan ik weet dat ze draaien. In de meeste
gevallen is ook de leverancier van het betreffende produkt opgenomen. Als de
leverancier niet bekend is dan staat er onder die kop een vraagteken. Er kan ook wel
wat software tussen zitten die een IBM- emulatie vergt. Voor de preciese eisen kunt U
het beste contact opnemen met de leverancier.

TITEL                               LEVERANCIER         
MS-DOS operating system             Tulip Den Bosch
(laatste versie IO.SYS 1.32)
CP/M-86 operating system            Tulip Den Bosch

Microsoft MBasic-interpreter        Tulip Den Bosch (staat op                         
      systeemschijf)
GWBasic-interpreter                 ?
Comal 80-87 interpreter             ?

Microsoft MBasic-compiler           o.a. Kernsoftware Leiden
Microsoft Pascal-compiler           o.a. Kernsoftware Leiden
Microsoft Cobol-compiler            o.a. Kernsoftware Leiden
Microsoft Fortran77-compiler        o.a. Kernsoftware Leiden
(V 3.10)
Microsoft C-compiler (V 3.0)        o.a. Kernsoftware Leiden
Turbo Pascal Compiler               o.a. Kernsoftware Leiden
RM-Cobol compiler (V 2.1)           o.a. Kernsoftware Leiden
CIS-Cobol compiler                  o.a. Kernsoftware Leiden

Assembler Development Package       o.a. Kernsoftware Leiden
(V 1.10)
Conversieprog. TULIP-EXIDY          Kernsoftware Leiden
Norton Utilities (V 3.1)            diverse
Cash memory prog                    Kernsoftware Leiden

Kermit                              PD (aanpassing door Tulip)
Terminal emulatie progr.            Kernsoftware Leiden
Viditel comm. progr.                Kernsoftware Leiden

Wordstar (V 3.3)                    o.a. Kernsoftware Leiden
Spellstar (V 3.3)                   o.a. Kernsoftware Leiden
Mailmerge (V 3.3)                   o.a. Kernsoftware Leiden
Wordstar (V 3.4)                    o.a. Kernsoftware Leiden
Mailmerge (V 3.4)                   o.a. Kernsoftware Leiden
Infostar                            o.a. Kernsoftware Leiden
Calcstar                            o.a. Kernsoftware Leiden
Starindex                           Kernsoftware Leiden
Starburst                           Kernsoftware Leiden
Supersort                           Kernsoftware Leiden
MS-SORT                             Kernsoftware Leiden
Datastar                            Kernsoftware Leiden
dBase II (V 2.43)                   Kernsoftware Leiden
dBase II runtime module             Kernsoftware Leiden
dBase III (engels)                  Kernsoftware Leiden
Multiplan (engels v. 1.10)          o.a. Kernsoftware Leiden
Multiplan (nederl. v. 1.20)         ?
Dataflex (V 2.1B)                   o.a. Kernsoftware Leiden / 
                                         Altair A'dam
Spellbinder (V 5.3)                 o.a. Kernsoftware Leiden /
                                         Ebing Data
Open Acces (V 1.02)                 Kernsoftware Leiden
Lotus 1-2-3                         Kernsoftware Leiden
Papyrus tekstverw.                  ?
Mycalc spreadsheet                  ?
LOGO                                VLINC
Printmaster                         diverse

FiniVisy                            Unit 4
NOI-boekhoudpakket                  NOI

     Tron-pakketten                      Kernsoftware Leiden
 Financiele administratie           Finitron / Minitron
 Aan- en verkoop beheer systeem
 Projekten administratie
      Uren administratie 
 Loon/Salaris administratie         Salitron     Infotron   
 Leden administratie                Ledtron        Faktron    
 Relatie administratie              Reltron        Protron    
 Inkomsten belasting pakket                        Uitzendtron
 Assurantie Administratie
Bakkerij pakket
 konfektie Pakket
CASD (Comp. Aided Softw. Design)    Kernsoftware Leiden 
GE-GKS grafisch standaard pakket    Ponder Maarssenbroek

Diverse PD-software waaronder PC-FILE en zeer handige utilities (zie PD-overzicht
SYSTEM I).Een aanvulling op de lijst van software welke beschikbaar is voor de System I:

Pakket:                      Versie:   Min. intern geheugen (Kb):
---------------------------- --------- ---------------------
Alle -Tron pakketten                          128
m.u.v. Assutron en Faktron                    256
WordStar/Mailmerge            V3.40 NL        128
MS-Multiplan                  V1.02 NL        256
MS-Basic                                      128
MS-Pascal                     V3.1            256
MS-Fortran                    V3.1            256
MS-Cobol                      V2.00           256
MS-Cobol                      V3.00           128
dBase II                      V2.43 *         128
Spellbinder                   V5.3 NL         128
Dataflex                      ?2.0E           256
RM-Cobol                      ?2.0B           256
RM-Fortran                                    256
CIS-Cobol                                     256
Condor III                     2.11           256
Robotext                                      128
Robodata                                      128
Papyrus                                       256
CASD                                          256
Declamed A1 t/m A7                            256
Viditel PC                                    256
Turbo Pascal                  V3.01B          128
Turbo Pascal BCD              V3.01B          128
Turbo Pascal 8087             V3.01B          128
Reflex                                         ?
Autocad 2D                                    512
Autocad 3D                                    512
SPSS PC+                                      512
SPSS Advanced Statistics                      512
SPSS Tables                                   512
Open Access                   V1.02      
dBase III+ NL                 V1.1 NL     (in de maak)

Compudata logo