[Options PROM] [Luxor] [New] [Search] [Home]

Luxor Datorer

Options-PROM för:ABC800ABC7-21, art nr: 64 90140-06
  ABC802Optionsdelen av DOS-Options PROM ABC32-11, art nr: 64 90190-02
  ABC806ABC76-1, art nr: 64 90238-01

1. ALLMÄNT

Options-PROM enl ovan innehåller drivrutiner för kommunikation via I/O kort eller via datorns två serieutgångar för:

På kanal B (V24:) jobbar man med en sändings- och mottagningbuffert på 80 tecken, som är interruptstyrd. Vidare finns det rutiner för kontroll av paritet och XON/XOFF. När man gör OPEN eller PREPARE kan man kontrollera att skrivaren är ansluten, detta för att man inte skall bli hängande vid PRINT $nr. Enhålls inte DCD ges felmeddelande 42 (enheten ej klar).

Följande kommandon och instruktioner är tillgängliga:

	LIST PR:parameterblock
	LOAD PR:parameterblock
	PREPARE "PR:parameterblock" AS FILE nr
	OPEN "PR:parameterblock" AS FILE nr
	LIST V24:parameterblock
	LOAD V24:parameterblock
	PREPARE "V24:parameterblock" AS FILE nr
	OPEN "V24:parameterblock" AS FILE nr

Vid initiering med PREPARE ges formfeed (FF), dvs ny sida, vid stänging (CLOSE) av filen.

Parameterblocket består av upp till 11 tecken förutom enhetsnamn. För information om parameterblockt - se avsnitt 3. Kanal A (märkt CH. A) öppnas med PR: och kanal B (märkt CH. B) öppnas med V24:.

2. "SPLIT SPEED"

Datorn är vid leverans byglad för samma mottagnisngs- och sändningshastinghet, men kan byglas om till split speed, dvs olika hastigheter på sändning och mottagning.

Betr. ABC802 och ABC806, se avsnitt om BYGLINGAR i bruksanvisningen.

I ABC800 finns ett byglingsfält, S1 och S2, på PU-kortet, till höger om anslutningskabeln till tangentbordet.

I ABC800 ser byglingsfältet ut så här vid leverans:

            S1              S2

                            o
                            |
       o---o  o---o     o   o  o---o
       1   2  3   4     1   2  3   4

För att erhålla split speed ska S2 byglas om enligt nedan:

            S1              S2

                            o
                            
       o---o  o---o     o---o  o---o
       1   2  3   4     1   2  3   4

3. PARAMETERBLOCKETS UPPBYGGNAD

Om man inte vill använda de standardparametrar (default) som finns definierade i options-PROMmet, kan man byta ut en eller flera parametrar, utan att skriva om hela parameterblocket. Vill man ändra någon parameter i parameterblocket utan att skriva om samtliga parameter skriver man bara den nya parametern. I övriga positioner skrivs 'Ö'. Exempel:

OPEN "PR:ÖÖÖÖ2ÖÖÖÖ.ÖÖB" AS FILE Nr

Standardvärdena är markerade med def (default) nedan. Angivna stadardvärden gäller för både PR: och V24:.

1:a tecknet anger terminal eller printertyp.
Bokstav Typ
C Centronics (endast PR:)
P SP1 (endast PR:)
T Terminal (endast V24: - CH. B)
U UART (endast PR:)
V (def) V24 simulerad UART (PR: CH. A eller V24: CH.B
W Datavision (endast V24: - CH. B)

Exempel: LIST PR:V

2:a tecknet anger paritet och XON/XOFF.

A B C D - Ingen paritetcheck+XON/XOFF
F G H I - Paritetscheck
E O M S - Ingen paritetcheck
T U V W - Paritetscheck + XON/XOFF
| | | |
| | | +-- Space
| | +---- Mark
| +------ Odd (udda)
+-------- Even (jämn)

Som standardvärde gäller bokstaven S (paratet space och ingen paritetscheck).

Exempel: LIST PR:VS

3:e tecknet anger antalet "NUL" (ASCII-tecken nr noll) som sänds efter radframmatning.
Bokstav Antal
A (def) 0
B 2
C 4
. .
. .
Z 50

Exempel: LIST PR:VSA

4:e tecknet anger antal tecken/rad.
Siffra Antal
1 40
2 72
3 (def) 80
4 120
5 132
6 158
7 254

Exempel: LIST PR:VSA3

För att detta ska ha någon inverkan måste formatstyrtecken som genererar CRLF väljas (se 6:e tecknet).

5:e tecknet anger antal rader som ska hoppas över vid sidslut (performeringsskip).
Siffra Antal
0 0
1 1
2 2
3 3
4 4
5 5
6 (def) 6
7 7
8 8
9 9

Exempel: LIST PR:VSA36

6:e tecknet anger formatstrycken för skrivare samt överföringstyp i terminalmode.

A E I M - Ej CRLF vid radslut, ej FF-simulering
B F J N - Ej CRLF vid radslut, FF-simulering
C G K O - CRLF vid radslut, ej FF-simulering
D H L P - CRLF vid radslut, FF-simulering
| | | |
| | | +-- Halv duplex, om CR mottages genereras LF
| | +---- Full duplex, om CR mottages genereras LF
| +------ Halv duplex, ej extra LF om CR mottages
+-------- Full duplex, ej extra LF om CR mottages

CRLF = Vagnretur och radframmatning.
CR = Vagretur (Carriage return).
LF = Radframmatning (Line feed).
FF = Ny sida (Form feed).

Som standardvärde gäller B (Ej CRLF vid radslut, FF-simulering för skrivare och full duplex, ej extra LF om CR mottages i terminalmode).

FF-simulering fungerar endast mot skrivare. FF-simulering betyder att datorns printerrutin skickar ett antal LF (Line feed) för att komma till nästa sida. Ej FF-simulering betyder attt printerrutinen skickar FF (Form Feed) som sedan tas om hand i skrivaren som gör sidframmatning. CR och LF genering bryter raden vid radslut efter angiven radlägd.

Exempel: LIST PR:VSA26B

7:e och 8:e tecknen anger antal rader/sida.

Här anges antal rader per sida. Man kan ange högst 99 rader. Som standardvärde gäller 72 rader/sida, detta motsvarar en pappershöjd på 12".

OBS! Antalet måste alltid anges med två siffror.
Siffra Antal
01 1
02 2
. .
. .
72 (def) 72
. .
. .
99 99

Exempel: LIST PR:VSA36B72

9:e tecknen anger överföringshastighet (baudrate).

Om datorn byglas om för split speed anger denna parameter mottagningshastigheten. I annat fall gäller parametern för både sändnings- och mottagningshastighet.

OBS! Siffran skall föregås av en punkt.
Siffra Hastinghet (baud)
0 75
1 110
2 300
3 600
4 1200
5 (def) 2400
6 4800
7 9600
8 19200

Exempel: LIST PR:VSA36B72.5

10:e tecknen anger sädningshastighet (gäller endast i split speed).
Siffra Hastinghet (baud)
0 75
1 110
2 300
3 600
4 1200
5 (def) 2400
6 4800
7 9600
8 19200

Exempel: LIST PR:VSA36B72.55

11:e tecknet.

Test sker genom att kontrollera DCD (pin 8 i kontakt CH. A och CH. B) vid OPEN eller PREPARE, Om DCD saknas får man felmeddelande 42, enheten ej klar.

Möjlighet att maska högsta biten i dataordet.

OBS! Om man ör mode E,F,G eller H bör man köra utan paritets test eller med paritet "SPACE".

Nedanstående gäller endast CH.B.

Normal XON/XOFF hantering innebär att options-PROMmet skickar XOFF när det är 50 tecken-postioner lediga i bufferten. XON skickas när det finns 70 eller fler tecken-postioner lediga i bufferten.
Special XON/XOFF hantering innebär att options-PROMmet skickar XON när man gör INPUT, INPUT LINE eller GET. XOFF sänd när man har fått alla data. Under tiden som man håller på att gämta data så fungerer XON/OFF hanteringen som så kallad 'normal XON/XOFF hantering'.

A B C D - Bit 7 är oförändrad på inkommande data
E F G H - Bit 7 tas bort på inkommande data
I J K L - Reserverad
M N O P - Reserverad
| | | |
| | | +-- DCD test vid OPEN/PREPARE, special XON/XOFF hantering
| | +---- Ingen DCD test, special XON/XOFF hantering
| +------ DCD test OPEN/PREPARE, normal XON/XOFF hantering
+-------- Ingen DCD test, normal XON/XOFF hantering

Som default gäller bokstaven A.

Exempel: LIST PR:VSA36B72.55A

4. TERMINALMODE

Med options-PROM kan datorn användas som terminal på två olika sätt. Dels som bildskärmsterminal, se 4.1 nedan, eller tillsammans med BASICprogram, se 4.2.

4.1 Bildskärmsterminal

Vid användning av datorn som terminal motsvarar detta en ADM-3A bildskärmsterminal. När denna form av terminal används ska första tecket efter V24: vara ett T. I övrigt byggs parameterblocket upp enligt ovan. Interfacet, som kommunikationen sker över, är RS232C/V24 anslutning. Dataordet består av 1 startbit, 7 databitar, 1 paritetsbit och 1 stoppbit. Övergång till terminalmode kan ske på något av följande sätt:

LOAD V24:TSA30B24.22A

OPEN "V24:TSA30B24.22A" AS FILE 1
INPUT #1,A$

OPEN "V24:TSA30B24.22A" AS FILE 1
INPUT LINE #1,A$

OPEN "V24:TSA30B24.22A" AS FILE 1
GET #1,A$

Det är möjligt attt fördefiniera PF-tangenter innan man går in i terminalmode. (PF-tangenterna för ABC802/806 med tangentbord ABC55 finns beskrivna i respektive bruksanvisning). När man trycker en definierad PF-tangenten skickas den sträng som har definierats, t ex PF1 har definierats som "LOGIN" detta innebär att när PF1 trycks ner tangent skapar man en strängvariabel, först i varabeln läggs ASCII-koden för funktionstangenten och därefter den sträng som skall skickas när funktionstangenten trycks ner. Sedan upprepas ASCII-kod och sträng för nästa funktionstangent etc. När man har definierat de funktionstangenter som man vill använda måste strängen avslutas med ASCIIkod 255. Se nedanstående exempel:

A$=CHR$(192+"LOGIN"+CHR$(13,193)+"HELP"+CHR$(13,194)+"LIB"+CHR$(13,255)
POKE PEEK2(65500)+8,VAROOT(A$),SWAP%(VAROOT(A$))
LOAD V24:TEA30E24.22A

Uthopp ur terminalmode kan ske på fölande tre sätt:

  1. Genom att trycka med en PF-tangent (funktionstangent) som inte är fördefinierad. Detta ger ffelmeddelande 53. Om man använder ett BASICprogram kan detta fel hanteras med en felhanterare.
  2. Genom att datorn tar emot ENQ (ASCII-värde 5). Detta ger felmeddelande 34. Om man använder ett BASICprogram kan detta fel hanteras med en felhanterare.
  3. Genom att datorn tar emot STX (ASCII-värde 2). De efterföjande tecknen from till CR (ASCII-värde 13) kommer att hamna i den strängvariabel som används. Detta gäller bara INPUT #nr och INPUT LINE #nr.

Följande tangentkoder används i terminalmode:

Man kan placera markören i valfri position på bildskärmen genom att skicka ASCII-värde 27,61 följt av tvä tecken som anger rad och kolumn. Tredje ASCIItecken, värde mellan 32 och 55, placerar markören på rad 0 till 23. Fjörde ASCII-tecknet, värde mellan 32 och 71/111, anger kolumn.

Exempel:
Följande ASCII-tecken tas emot: 27,61,42,57. Detta medför att markören placeras på ett rad 10 och kolumn 25.

För att anvämda datorn som Datavisionsterminal, måster datorn kopplas om för split speed, se ansitt2. (ABC800M går ej att använda som Datavisionsterminal. OptionsPROMmet i ABC806 innehåller inger frivrutin för Datavision, med drivrutinen kan laddas från skiva, se separat bruksanvsing.

Skriv:
LOAD V24:WEA10K24.40A

4.2 Terminal

Vill man ha utskrift på fil, t ex skrivare eleer flexskiva, skriver man ett V efter enheten V24:. I övrigt byggs parameterblocket upp enligt avsnitt 3. Se programexemplet nedan.

För att kontrollera om man har den nya versionen av options-PROM kan man i ett program skriva:

IF PEEK2(PEEK2(65500))<>10 THEN felhanterare

För att erhålla en sörre inputbnuffert än 80 tecken skriv:

DIM Buffert$=Storlek
POKE PEEK2(65500)+2,VAROOT(Buffert$),SWAP%(VAROOT(Buffert$))
OPEN "V24:" AS FILE nr

De inkommande tecknen lagras i detta fall i strängvariabeln "Buffert$".

OBS! POKE måste göra innan man gör OPEN.

Antal tecken i inputbufferten kontrolleras med:

Antal tecken=PEEK2(PEEK2(65500)+6)

För att se hur mycket tecken de finns ledigt i outputbufferten skriver man:

Ledig plats=PEEK2(PEEK2(65500)+2)

Vid använding av GET och PUT har man följande dataformat: 1 startbit, 8 databitar och 1 stoppbit. Med INPUT, INPUT LINE och PRINT är dataformatet följande: 1 startbit, 7 databitar, 1 paritetsbit och 1 stoppbit.

Nedastående exempel visar hur man kan använda datorn som terminal tillsammans med ett BASIC-program. Ta alltid för vana att avsluta programmen genom att trycka PF1, varvid alla filer stängs. I programexemplen som sänder en fil startas sändingen med PF2.

För ABC802/806 med tangentbord ABC55 finss översättningstabell över PF-tangenterna i respektive bruksanvisning.

Exempel

Exempel 1
100 REM !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
110 REM !                             !
120 REM !          TERMINAL           !
130 REM !      Exempel på hur man     !
140 REM !      sparar inkommande      !
150 REM !         text på fil         !
160 REM !       Avbryt med PF1        !
170 REM ! (c)LUXOR DATORER AB  MOTALA !
180 REM !       Ver. 1.2              !
190 REM !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
200 EXTEND
210 INTEGER
220 !
230 !
240 !
250 IF PEEK2(PEEK2(65500))<>8 AND PEEK2(PEEK2(65500))<>10 THEN 490
260 DIM Buffer$=10000
270 POKE PEEK2(65500)+2,VAROOT(Buffer$),SWAP%(VAROOT(Buffer$))
280 DIM Filname$=16
290 !
300 !
310 !
320 !
330 !
340 PRINT CHR$(12) '* Terminal * Spara inkommande tecken'
350 PRINT STRING$(PEEK2(65364),61)
360 PRINT CUR(3,0) 'Sparas under filnamn:';
370 INPUT ''Filname$
380 !
390 !
400 !
410 OPEN 'V24:VEA30E24.2' AS FILE 1
420 PREPARE Filname$ AS FILE 2
430 Dummy$=FNPos$(1)
440 IF PEEK2(PEEK2(65500)+6)<>0 THEN PRINT FNInchr$;
450 IF SYS(5)=128 THEN Dummy$=FNInchar$
460 IF ASCII(Dummy$)=192 THEN 510 ELSE PRINT Dummy$;
470 GOTO 430
480 !
490 PRINT 'Fel typ av options-PROM!' CHR$(7)
500 !
510 CLOSE 1
520 CLOSE 2
530 END
540 !
550 !
560 ! Läs tecken från V24:, skriv på fil
570 !
580 DEF FNInchar$ LOCAL Dummy$=1
590   Dummy$=FNPos$(0)
600   GET #1,Buffer$
610   PUT #2,Buffer$
620   Dummy$=CHR$(ASCII(Buffer$) AND 127)
630   RETURN Dummy$
640 FNEND
650 !
660 !
670 ! Läs tecken från tangenbord, skriv på V24:
680 !
690 DEF FNInkey$ LOCAL Dummy$=1
700   GET Dummy$
710   IF ASCII(Dummy$)=192 THEN RETURN Dummy$
720   PRINT #1,Dummy$;
730   RETURN Dummy$
740 FNEND
750 !
760 !
770 !
780 !
790 DEF FNPos$(Släckt) LOCAL Minne
800   IF PEEK(65364)=40 THEN 950
810   !
820   ! Cursor 80 tecken
830   !
840   OUT 56,10
850   OUT 57,40-32*Släckt
860   Minne=30720+PEEK(65363)*80+PEEK(65362)
870   OUT 56,14
880   OUT 57,SWAP%(Minne)
890   OUT 56,15
900   OUT 57,Minne
910   RETURN ''
920   !
930   ! Cursor 40 tecken
940   !
950   POKE 31744+PEEK(65363)*128-PEEK(65363)/8*984+PEEK(65362),128*Släckt
960   RETURN ''
970 FNEND

[Options PROM] [Luxor] [New] [Search] [Home]
This page has been created by Sami Rautiainen.
Read the small print. Last updated April 06, 2006.