Options-PROM för: | ABC800 | ABC7-21, art nr: 64 90140-06 |
ABC802 | Optionsdelen av DOS-Options PROM ABC32-11, art nr: 64 90190-02 | |
ABC806 | ABC76-1, art nr: 64 90238-01 |
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:.
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
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
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
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.
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:
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
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.
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
This page has been created by Sami Rautiainen. | |
Read the small print. | Last updated April 06, 2006. |