Pred časom som postavil jednodoskáč SBC6120 RBC Edition,
ktorý je založený na mikroprocesore HD-6120. Tento mikroprocesor je
označovaný ako " PDP-8 on the chip ". PDP-8 boli 12 bitové minipočítače
firmy DEC. SBC6120 RBC je upravená verzia pôvodného SBC6120.
Lákalo
ma na ňom, že to bolo niečo iné ako 8080. PDP-8 používal na komunikáciu s užívateľom ďalekopis
(v manuáloch uvádzaný typ ASR 33) takže o nejakej grafike sa asi nedá hovoriť. PDP-8 na grafický výstup vo svojej dobe používal :
Ploter napr. Calcomp 563 pre kreslenie na papier.
Osciloskopický displej. Bol to analógový osciloskop v režime
zobrazovania XY, ktorý sa ovládal cez napäťový D/A prevodník. Tento
spôsob umožňoval kresliť na obrazovke osciloskopu obrázky metódou po
bodoch. Polohu jednotlivých bodov určovalo napätie privedené na vstupy X
a Y osciloskopu. Aby bol obraz stabilný - bez blikania, bolo ho treba
cyklicky vykresľovať. Preto bol počet naraz
zobrazovaných bodov limitovaný rýchlosťou počítača a dobou dosvitu
luminoforu obrazovky osciloskopu. DEC dodávala napr. typ 34D. Pozostával s osciloskopu
Tektronix RM-503 a kariet D/A prevodníkov.
Grafický vektorový terminál. Známe boli od firmy Tektronix napr. Tektronix 4010
Tieto terminály
nezobrazujú obraz rastrovým sposobom ako TV (teda TV s CRT obrazovkou )
ale znaky aj grafika sa zobrazuje pomocou vektorov podobne ako na
plotri. Používajú pamäťovú obrazovku
tzn. nepotrebujú obnovovať obraz ako TV obrazovky s dosvitom luminoforu
rádove v milisekundách. Výhodou tohto riešenia je, že terminál
nepotrebuje pamäť obrazu lebo čo sa raz vykreslí ostane na obrazovke). Nevýhodou, že sa dá zmazať len celá obrazovka naraz. Terminál pracuje v alfanumerickom alebo grafickom režime. Bežné
znaky abecedy zobrazuje ako obyčajný terminál a po prepnutí do grafiky
vykresluje vektory (úsečky). Prepínanie medzi režimami a parametre
vektorov sa posielajú do terminálu ako sekvencie ASCII znakov.
Jazyk Focal 1969 dodávaný k PDP8 obsahuje funkciu FDIS pre kreslenie na displeji
DEC 34D. Na stránke o SBC6120 RBC sú odkazy na stiahnutie image diskov. Na obraze disku sbc6120_os8_games_18jun2016.img - OS/8 V3Q + BASIC Games sa nachádza verzia focalu PS/8 1971 (súbor PFOCAL.SV). Po preštudovaní manuálu som narazil na strane 25 na postup úpravy funkcie FDIS pre použitie s grafickým terminálom Tektronix 4002, čo je
jeden z predchodcov T4010. Tak som podľa manuálu preložil verziu s driverom
pre T4002, komunikujúcu po sériovej linke (je aj verzia s paralelným rozhraním). Namiesto T4002 sa dá použiť známy program Teraterm, ktorý obsahuje emulátor T4010. Po
zakliknutí možnosti Auto switch VT<->TEK na karte Setup / Terminal, sa automaticky
aktivuje okno grafického terminálu ak sa detekuje znak pre aktiváciu
grafického režimu.
POSTUP :
- zapneme SBC6120 RBC, so spomínaným image na CF karte
- z monitora nabootujeme príkazom B do operačného systému OS/8
- preložíme novú verziu PFOCAL-u s novým názvom TFOCAL :
.R PAL8 ENTER
*TFOCAL<FOCDEF,FDIS,FOCOVR,FOCINT,FOCLIB ENTER
.R ABSLDR ENTER
*FOCAL,4WDMOD,TFOCAL,INITAL/1=10200 ESC
.SAVE SYS:TFOCAL ENTER
- na disku musíme teraz mať súbor TFOCAL.SV
- nastavíme TeraTerm
Teraz môžeme okno VT TEK zatvoriť.
- spustíme TFOCAL príkazom
R TFOCAL
- na úvodnú otázku odpovieme Y
- ohlási sa promt *
- ako príklad spustíme program WEB.FC, ktorý nakreslí pavúka v jeho sieti príkazom
LIBRARY RUN WEB
- aktivuje sa grafické okno a nakreslí obrázok, odteraz sa môžeme preklikávať medzi oboma oknami alebo VT TEK okno zatvoriť, aktivuje sa automaticky pri grafike
- program môžeme vylistovať príkazom WRITE ALL
Treba mať na pamäti, že FOCAL pozná len veľké písmená.
Ďalej môžeme vyskúšať vložiť nasledujúci program, ktorý som vytvoril modifikáciou programu uvedeného v knihe L.Granát, H.Sechovský Počítačová grafika. Najprv zmažeme program WEB príkazom
ERASE ALL
01.01 C OBRAZEC Z KNIHY POCITACOVA GRAFIKA
01.02 C VYKRESLUJE NA TERMINALI T4002
02.01 S X1=850
02.02 S Y1=350
02.03 S X2=500
02.04 S Y2=350
02.05 S X3=500
02.06 S Y3=0
02.09 S D=0.07
02.15 S I=30
03.01 S W=FOUT(27)+FOUT(12)
03.05 F J=1,I;D 5
03.10 D 10;F J=1,I;D 5
03.15 D 15;F J=1,I;D 5
03.20 D 20;F J=1,I;D 5
04.02 T !!!!
04.10 Q
05.01 S W=FDIS(0,X1,Y1)
05.05 S W=FDIS(1,X2,Y2)
05.10 S W=FDIS(1,X3,Y3)
05.13 S W=FDIS(1,X1,Y1)
05.15 S X=(X2-X1)*D+X1
05.20 S Y=(Y2-Y1)*D+Y1
05.25 S X2=(X3-X2)*D+X2
05.30 S Y2=(Y3-Y2)*D+Y2
05.35 S X3=(X1-X3)*D+X3
05.40 S Y3=(Y1-Y3)*D+Y3
05.45 S X1=X
05.50 S Y1=Y
10.01 S X1=850
10.02 S Y1=350
10.03 S X2=500
10.04 S Y2=350
10.05 S X3=500
10.06 S Y3=700
15.01 S X1=150
15.02 S Y1=350
15.03 S X2=500
15.04 S Y2=350
15.05 S X3=500
15.06 S Y3=700
20.01 S X1=150
20.02 S Y1=350
20.03 S X2=500
20.04 S Y2=350
20.05 S X3=500
20.06 S Y3=0
01.02 C VYKRESLUJE NA TERMINALI T4002
02.01 S X1=850
02.02 S Y1=350
02.03 S X2=500
02.04 S Y2=350
02.05 S X3=500
02.06 S Y3=0
02.09 S D=0.07
02.15 S I=30
03.01 S W=FOUT(27)+FOUT(12)
03.05 F J=1,I;D 5
03.10 D 10;F J=1,I;D 5
03.15 D 15;F J=1,I;D 5
03.20 D 20;F J=1,I;D 5
04.02 T !!!!
04.10 Q
05.01 S W=FDIS(0,X1,Y1)
05.05 S W=FDIS(1,X2,Y2)
05.10 S W=FDIS(1,X3,Y3)
05.13 S W=FDIS(1,X1,Y1)
05.15 S X=(X2-X1)*D+X1
05.20 S Y=(Y2-Y1)*D+Y1
05.25 S X2=(X3-X2)*D+X2
05.30 S Y2=(Y3-Y2)*D+Y2
05.35 S X3=(X1-X3)*D+X3
05.40 S Y3=(Y1-Y3)*D+Y3
05.45 S X1=X
05.50 S Y1=Y
10.01 S X1=850
10.02 S Y1=350
10.03 S X2=500
10.04 S Y2=350
10.05 S X3=500
10.06 S Y3=700
15.01 S X1=150
15.02 S Y1=350
15.03 S X2=500
15.04 S Y2=350
15.05 S X3=500
15.06 S Y3=700
20.01 S X1=150
20.02 S Y1=350
20.03 S X2=500
20.04 S Y2=350
20.05 S X3=500
20.06 S Y3=0
Výsledok uvedeného programu |
Program môžeme vložiť do SBC6120RBC cez možnosť Send file (ako textový súbor) alebo skopírovať text programu cez Ctrl C a vložiť pravým tlačítkom myši. Kedže focal je interpreter, musí sa nastaviť aj line delay na cca 200msec aby počítač stíhal spracovávať jednotlivé riadky programu.
Takto nahratý (vložený) program spustíme príkazom
GO
Na disku je viacero programov určených pre grafický výstup na T4002.
Zoznam focal programov na disku si môžeme vypísať príkazom
LIBRARY LIST Samotný focal ukončíme príkazom
LOGICAL EXIT
Detailný manuál k jazyku FOCAL PS/8 tu.
Vzhľadom na to, že terminály T4002 a T4010 nie sú 100% kompatibilné, uvediem rozdiely.
Aby korektne
fungovali focalovské programy napísané pre T-4002 na emulátore T-4010, treba
upraviť sekvencie pre zmazanie obrazovky :
T4002: SET DUMMY=FOUT(24)
T4010: SET DUMMY=FOUT(27)+FOUT(12)
Nefunguje INCREMENTAL PLOT MODE.
Funkciu FJOY() na obsluhu joysticku sa mi nepodarilo rozbehať.
Podrobnosti viď manuál FOCAL PS/8.
Na záver pár informácií k vektorovým terminálom Textronix.
Popis parametrov T4002 (manuál sa mi nepodarilo dohľadať)
Manuál k T4006 veľmi podobný T4002
Manuál k T4010A niekoľko dosiek mi zostalo, ak by sa niekto rozhodol pre stavbu SBC6120RBC.
No comments:
Post a Comment