Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

qtos

POPIS QTOS (pre TURBO M/EMO)

Nedostatkom OS a základného BASICu okrem iného je neschopnosť racionálneho využitia pamäte RWM a pomalý prenos dát z kazety.

Systém QTOS (QROS) sa snaží uvedené nedostatky eliminovať. Je riešený originálnym spôsobom, kompromisne s ohľadom na nároky pamäte pre vlastnú réžiu. Do akej miery sa to podarilo nech posúdi užívateľ sám.

Z dôvodu zabezpečenia funkčnosti programov bez nutnosti ich úprav bola stanovená hlavná požiadavka kompatibility s DOS pre RAMDISK a rýchlej kazety s pôvodnou kazetou. Pamäť je využívaná ako RAMDISK, ktorý funguje ako nové zariadenie „Q:„. QTOS sprístupní nevyužitú pamäť pod OS resp. pri ATARI 130XE prídavnú pamäť do posledného bytu. Doplnený bude o nové funkcie a zariadenia (tlačiareň CENTRONIX, rýchla kazeta, RAMDISK).

QTOS je doplnkom operačného systému pre rýchlu kazetu a RAMDISK obdobne ako DOS pre disketu. Je predovšetkým určený pre programy, ktoré vyžadujú pamäť pod operačným systémom a teda nemôžu pracovať pod QROSom (typickým predstaviteľom je TURBOBASIC) a disketové programy. Ďalšou prednosťou QTOSu je schopnosť pracovať priamo aj s rýchlou kazetou i pôvodnou pomalou (600 Bd).

QTOS existuje v dvoch variantoch pre ATARI800 a 130XE, ktoré sa líšia z hľadiska užívateľa časťou formátovania RAMDISKu.

Rýchla kazeta je zadefinovaná ako zariadenie T: RAMDISK Q:, disketa D:.

Pre kazetovú verziu zariadenie Q:=zariadenie D: (vhodné pre užívateľov, ktorí nevlastnia diskety).

QTOS zaberá v pamäti miesto od adresy $0900 po max $1400 v závislosti od verzie.

Tlačiareň je paralelná s rozhraním Centronics s možnosťou grafickej tlače (zar.“P:„).

Zavedením QTOSu (z kazety resp. diskety) je tento prítomný až kým nedôjde k studenému štartu systému. Chráni sám seba voči prepísaniu obdobne ako DOS.

BOOTOVANIE

QTOS (QROS) umožňuje bootovanie (prvé zavedenie programu) z rôznych zariadení. Môže to byť buď kazeta C:, rýchla kazeta T:, Ramdisk Q:, alebo aj disketa D: (disketová verzia QTOSu). Bootovaný program môže byť v ľubovoľnom formáte: buď vo FILE alebo resp. v „kazetovom„.

Pre objasnenie, FILE tvar majú programy, ktoré potrebovali pri zavádzaní z kazety zavádzač BLC, resp. výkričníkový zavádzač. Takéto programy vznikli najčastejšie skopírovaním programov z diskety (súbory typu .COM). Pre prax to znamená zjednodušenie nahrávania programov, lebo odpadá nutnosť nahrávania floppy zavádzačov.

Po voľbe zariadenia sa zadáva názov programu, ktorý chceme do počítača zabootovať. Pri bootovaní chráni sám seba pred prepísaním správou: „Kolízia s QTOS„. Z uvedeného vyplýva, že najlepšie je využívať disketové programy, u ktorých ku kolízii nemôže dôjsť. Návrat do bootovacej časti QTOSu je zabezpečený cez návrat do DOSu, ktorú obyčajne obsahujú všetky systémové disketové programy či už priamo zadaním skoku, alebo stlačením RESET (LOGO,SOUNDMASCHINE). V užívateľských programoch môžeme podľa potreby využívať všetky zariadenia, ktoré QTOS dodefinuje do HATABS.

BASIC

Pri akejkoľvek chybe v bootovacej časti (trebárs aj stlačenie BREAK tlačítka) vedie k skoku do BASICu s tým, že je zachované všetko pre prácu pod QTOSom a BASICom, pričom dôjde k počiatočnej inicializácii. Toto je urobené zámerne, aby nebolo nutné pre BASIC nahrať zvláštny zavádzač. Naopak je možné ihneď z BASICu zasa spätne cez príkaz DOS skočiť do bootovacej časti QTOSu a zaviesť trebárs strojový program.

RÝCHLA KAZETA

Je to nové zariadenie s označením T: , ktoré umožňuje rýchlejšiu, spoľahlivejšiu a komfortnejšiu prácu s kazetou. Umožňuje komunikovať až rýchlosťou 9600 Baudov so zachovaním zobrazovania ako v pôvodnom čítaní z pomalej kazety, s týmito vlastnosťami:

  • Selektívne vyhľadávanie programov podľa zadaného mena.
  • Možnosť jednoduchej verifikácie nahratých programov.
  • Možnosť opakovaného čítania chybného bloku bez potreby čítania celého programu od začiatku.
  • Priama možnosť komunikácie s inými počítačmi rýchlosťou až 60000 baudov. Obojsmerným prepojením počítačov tromi vodičmi možno bootovať, kopírovať programy a dátové súbory.
  • Softvérová možnosť menenia prenosovej rýchlosti na strane príjmu aj vysielania.
  • Kvalitná evidencia nahrávok umožnená službou DIREKTORY kazety a dátumom nahrávky.
  • K „sturbovaniu“ prevažnej väčšiny programov nie sú nutné žiadne úpravy programov.
  • Pred programy nie je potrebné dopĺňať žiaden zavádzač.
  • Úpravy datasetov sú odskúšané pre všetky dodávané typy.
  • Dodávku hardware interface datasetu s prípadnou montážou rieši ATARI klub TLMAČE.
  • Hardware rýchlej kazety umožňuje priamo pracovať s T2000 a s Turbom D.

Práca so zariadením T:

Meno programu zadávame ihneď za dvojbodku. Pri čítaní dát sa kontroluje prvých 11 bytov resp. po hviezdičku v zadanom názve programu. Na názov je možné použiť len veľké písmená a číslice v rozsahu jedného riadku na obrazovke s odporučením použiť 8 znakov pre názov a 3 pre typ (prípona názvu súboru).

Príklad: LOAD „T:MENO.TYP“ (basic)

QTOS pri čítaní vygeneruje na hornej časti obrazovky jeden riadok v grafike 0 a do tohto riadku zobrazuje všetko potrebné, inak ostáva obrazovka zachovaná s originálnym obrazom. Dátum, ktorý sa vždy nahrá na kazetu (zadáva sa pri formátovaní resp. funkciou XIO s BASICu ako bude popísané nižšie) sa zobrazuje na konci riadku. Riadok nad Display Listom sa sám zruší, ak počítač ukladá dáta.

PRÍKLAD:
XX MENO.TYP DD.MM.RR YY

Kde XX predstavuje číslo práve čítaného bloku v hexa tvare,
MENO.TYP – názov práve čítaného programu,
DD.MM.RR – dátum , kedy bola nahrávka vytvorená,
YY -číslo bloku, v ktorom nastala chyba čítania.

Podržaním klávesy SELECT počas čítania hlavičky dôjde k načítaniu programu, aj keď sa názov programu nezhoduje so zadaným názvom.

Verifikovať program môžeme jednoduchým spôsobom, ak zadáme hľadanie neexistujúceho programu, tak v pravom rohu sa objaví číslo chybného bloku, alebo tam bude číslo posledného bloku, v ktorom došlo k chybe (koncový blok predchádzajúceho programu).

RAMDISK

QTOS 130 využíva oblasť prídavnej pamäte ako inteligentný ramdisk, ktorý sa navonok chová ako zariadenie D: resp.Q:. Počítače rozšírené o prídavnú pamäť na 256kB vie QTOS130 využívať ako štyri diskety D1,D2,D3,D4 resp. Q1,Q2,Q3,Q4.

Tento ramdisk je na úrovni CIO kompatibilný s disketou, okrem príkazov LOCK a UNLOCK t.j. zamykanie a odomykanie súborov.

QTOS800 využíva pamäť pod operačným systémom a BASICom ako ramdisk. Čiže pri práci s ATARIBASICom má užívateľ navyše k dispozícii 21 kB pamäte RWM ako „disketu„. Pri formátovaní tohto ramdisku záleží na parametri ICAX1 odkiaľ bude ramdisk začínať.

Príklad:
XIO 254,#1,10*16,0,“Q:*“

Jednotlivé parametre majú význam:
254 – číslo, ktoré určuje druh operácie (formátovanie=254)
#1 – číslo kanála
10*16 – ICAX1 definuje začiatok RAMDISKU a tým aj jeho veľkosť (je to vyšší byt adresy). V tomto prípade to bude od $A000 po $FFFF ($A0=16*10=160). Na tomto mieste je možné použiť ľubovoľné číslo v rozsahu (0-12)*16. Pre prax má význam hodnota 10,12,2. 10 pre prácu pod BASICom – k dispozícii je 22016 bytov. 12 pre prácu s napr. ATMASOM, SPEDSCRIPTOM a pod. = 13824 bytov. 2 len pre kopírovanie programov, kedy sa oblasť $2000-$FFFF využíva ako pamäť ramdisku, čiže aj 800-kári majú možnosť kopírovania extrémne dlhých programov, max. 54784 bytov.
0 – ICAX2 tento parameter QTOS nevyužíva
„Q:*“ – definuje zariadenie ramdisk.

Pri formátovaní žiada QTOS zadať aktuálny dátum, ktorý sa vždy nahrá na kazetu z dôvodu lepšej orientácie v programoch. Aktualizovať dátum je možné hocikedy pomocou XIO 255,#1,0,0,“T:“

PRÍKLAD pre ATARI130: XIO 254,#1,0,0,“Q:*
resp. rozšírený počítač: XIO 254,#1,0,0,“Q2:*“ – ramdisk číslo 2 ako disketová mechanika D2: atď.

SLUŽBY QTOSu

Ďalej budeme o XIO funkciách hovoriť ako o službách. Tieto služby sú:

OPEN – XIO 3,…
CLOSE -XIO 12,…
GET#n,A
INPUT#n,A$
PRINT#n,A$
PUT#n,A
FORMAT -XIO 254,… formátovanie ramdisku
DELETE -XIO 33,… rušenie súboru v ramdisku
RENAME -XIO 32,0,0,“Q:STAREMEN.O,NOVEMENO.TYP“ – premenovanie
STATUS -XIO 13,#1,0,0,“Q:jano.typ“ opýtanie sa na stav, existenciu programu jano.typ v ramdisku.
NOTE#1,A,B -XIO 38,… vráti číslo „SEKTORU“ a pozíciu v ňom
POINT#1,A,B -XIO 37,… nastaví ukazovateľ na daný sektor a pozíciu v ňom.

Poznámka NOTE a POINT vedia pracovať len s premennými a nie priamo s hodnotami.

Niektoré jazyky napr. TBASIC má už priamo príkaz DELETE „Q:JANO.TBA“ , ktorý program JANO.TBA zruší v ramdisku. Vždy sú ale prístupné cez dané XIO a z hocijakého jazyka. Ramdisk QTOSu je “ zamontovaný „ do OS systémovo a preto je záruka, že bude pracovať s programami, ktoré sú písané „korektným“ spôsobom a neodvolávajú sa na špeciálne adresy OS.

Disketové programy, ktoré sa odvolávajú na SIO nepobežia pod QTOSom.

PRÍKLAD OTVORENIA RAMDISKU:

10 OPEN #n,X,0,“Q:JANO.BAS“
n – číslo kanála, ľubovoľné z voľných kanálov (1-6)
X – týmto číslom špecifikujeme na aký účel kanál vlastne otvárame. Predovšetkým či ide o čítanie, alebo zápis do ramdisku.

ČÍTANIE – ak X=6, otvoríme kanál n pre čítanie direktory ramdisku. – ak X=4,5 ide o čítanie dát zo súboru JANO.BAS

Pre čítanie je možné otvoriť ľubovoľný počet súborov, tento počet je limitovaný počtom voľných kanálov.

ZÁPIS – ak X=8 ide o „normálne“ otvorenie pre zápis, – ak X=9 ide o zápis tzv. APPEND, kedy sa do existujúceho súboru dáta zapisujú až na jeho koniec, teda súbor JANO.BAS chceme rozšíriť o nové dáta. Táto funkcia je možná len u súboru, ktorý je ako posledný v ramdisku (pozri popis PIP nižšie).

Pre zápis je možné na „nerozšírenom“ počítači otvoriť max. jeden súbor , na rozšírenom môžeme naraz zapisovať vždy do jedného v každom z ramdiskov, čiže max. do štyroch. To napríklad zrýchľuje prácu s MAC65, kedy stačí pri preklade zadať ASM,#Q1:SUBOR.LST,#Q2:SUBOR.COM,#Q3:XREF a máme v každom z ramdiskov všetky súbory naraz nepomerne rýchlejšie ako na diskete. QTOS nedovolí zapísať súbor do ramdisku ak tam taký už je, s výnimkou, ak je tento posledný. Tým núti užívateľa k opatrnosti, aby si nepoškodil nejaký súbor.

Je možné súbor otvoriť aj pre zápis a čítanie naraz, kedy je možné pomocou NOTE a POINT dynamicky meniť DÁTA v súbore, vtedy X=12.

GET#n,A načíta do premennej A hodnotu z kanála n, ktorý musí byť samozrejme otvorený

INPUT#n,A$ – načíta do reťazcovej premennej A$ reťazec znakov s dĺžkou, akou tam bol uložený.

Najlepšie to bude vysvetliť na krátkych príkladoch:

PROGRAM na výpis direktory v BASICu:

10 OPEN #1,6,0,“Q:*.*“:REM OPEN DIREKTORY
20 GET#1,A:PUT#16,A:GOTO 20:REM čítanie byt po byte a zobrazovanie cez editor

alebo

10 DIM A$(100)
20 OPEN #1,6,0,“Q:*.*“
30 INPUT#1,A$: REM načítanie názvu prvého programu
40 ?A$:REM jeho zobrazenie
50 GOTO 30:REM cyklus

Programy skončia chybovým hlásením ERROR 136 – chyba konca súboru, pretože dôjde k pokusu čítať, aj keď súbor už skončil.

Ramdisk sa môže použiť na čokoľvek, len sa to treba naučiť využívať a v porovnaní s disketou sú operácie s ním nepomerne rýchlejšie.

Celý program do ramdisku môžeme uložiť príkazom SAVE „Q:DIR.BAS“ alebo ako textový súbor LIST „Q:list.bas“ a tam nám zostane dovtedy, kým ho nezrušíme alebo ramdisk nepreformátujeme resp. nevypneme počítač. Môže dôjsť aj k havárii systému a studenému štartu. Vtedy stačí znovu nahrať QTOS a súbory v ramdisku môžeme použiť. To platí aj pre ATARI800, tým však nechcem tvrdiť, že neexistujú programy, ktoré zničia aj ramdisk.

Takýto ramdisk sa dá jednoduchým spôsobom obsluhovať aj programovať a je možné v reálnom čase ukladať dáta z kazety ihneď do neho (samozrejme len v strojáku) . Preto mohol vzniknúť program ako je PIP, ktorý v podstate len kumuluje všetky funkcie QTOSu.

QTOS je zaujímavý aj pre disketárov, pretože umožňuje priamo aj z BASICu využiť inak nevyužitú pamäť, ako inteligentné zariadenie Q:.

ZMENA PRENOSOVEJ RÝCHLOSTI

QTOS umožňuje veľmi jednoduchým prepojením počítačov výmenu dát a pri takomto spojení môže byť navolená podstatne vyššia prenosová rýchlosť. Naopak kvôli prenositeľnosti z mgf na mgf je vhodné používať nižšiu rýchlosť, preto aj posledné verzie tohto systému sú vygenerované pre 6600 Baudov.

Samotný príkaz na nastavenie príjmovej rýchlosti je cez XIO22,#1,rychL,rychH,“T:*

– kde rychL a rychH určujú deliaci pomer (L=dolný, H=horný byt) spojených časovačov.

6600 Baudov rychL=127 rychH=0
9600 Baudov rychL=86 rychH=0
cca 32000 Baudov rychL=5 rychH=0 atď.

Vysielacia rýchlosť sa nastavuje cez: XIO 222,#1,rychL,rychH,“T:*“

DÁTUM
Zmenu dátumu dosiahneme cez XIO 255,#1,0,0,“T:“, kedy nás počítač vyzve na zadanie dátumu vo forme: DD.MM.RR
TLAČIAREŇ
Je navrhnutá CENTRONICS s vlastnou obsluhou a transformáciou riadiacich dát, aby tlač pracovala s tlačiarňami typu D100, PRT, CONSUL. Prenáša sa všetkých osem bitov „invertorovane“ kvôli grafike a odrušeniu pomocou budičov realizovaných invertormi. Signál pripravenosti tlačiarne je vedený na JOY vstup a platnosť dát potvrdzuje signál COMMAND na strane sériového konektoru.

Záver
QTOS zabezpečuje všetky popisované funkcie „korektným“ spôsobom tak, aby spustený program „nezbadal“, že nepracuje s disketou, ale s ramdiskom. Typickým programom, ktorý v podstate len využíva temer všetky možnosti QTOSu je PIP, ktorý sám o sebe je jednoduchým a krátkym programom, pritom však umožňuje všetky možné operácie s dátami , ktoré v praxi prichádzajú do úvahy.

Popis práce s programom PIP

PIP je systémový program na efektívnu prácu pod QTOS aj QROS. Je stavaný podobne ako u veľkých počítačov. Nahráva sa klasicky cez OPTION+START. Slúži okrem iného skôr na kopírovanie programov, nie na ich spúšťanie. Nie je to loader. Na obrazovke sa objaví po nahraní výpis príkazov:

  1. HELP alebo LIST vypíše znovu všetky príkazy.
  2. FORMAT skrátene môžeme písať F., je príkaz na formátovanie RAMDISKu. Má nasledovnú syntax:
    a) Pre QROS 130, QROS 800, alebo QTOS:
    F.Q:“ a stlačíme RETURN
    b) Pre QTOS 800:
    F.Q:C“ a stlačte RETURN. C za dvojbodkou znamená, že RAMDISK začína od adresy $C0000 po $FFFF. Na kopírovanie si môžete dovoliť aj „F.Q:2“, teda od $2000 do $FFFF. Vtedy ale nemôžeme ľubovolne skákať napr. do BASIC a späť bez poršenia programov v RAMDISKu, alebo pri tvorení editoru je obrazovka predefinovaná na $BC20 resp. $9C20, čo sa udeje po príkaze DOS. Ďalej je dôležité si uvedomiť, že pri naťahovaní (bootovaní) programov z RAMDISKu nesmie dôjsť ku kolíziám medzi ukladacou adresou programu a RAMDISKom.
    QTOS automaticky pridáva dátum ku kópiám programov. Je to vhodné, aspoň viete o ktorú verziu programu ide.
  3. COPY (C.) – príkaz na kopírovanie programov a súborov medzi rôznymi zariadeniami.
    C:“ v QROSe je rýchla kazeta, v QTOSe pomalá (600Bd)
    Q:“ ramdisk
    E:“ obrazový editor
    S:“ obrazovka
    T:“ rýchla kazeta v QTOSe
    K:“ klávesnica
    P:“ tlačiareň CENTRONICS, alebo ATARI

Syntax je nasledovný:

C.Q:PISKVORKY.BAS=T:PIS*

znamená, že sa bude kopírovať program z rýchlej kazety, začínajúci na PIS, do RAMDISKu. Prípona .BAS je nepovinná. Ak dáme napríklad kopírovať na E:, bude sa znázorňovať kopírovaný program na obrazovke.

Ak napríklad kopírujeme z normálnej rýchlosti do RAMDISKu:

C.Q:PISKVORKY=C:

Potom kopírujeme z RAMDISKu na rýchlu kazetu:

C.T:PISKVORKY=Q:PIS*
  1. DIR (.) – vypíše direktory programov v RAMDISKu. Ak dáme DIR T: , bude vypisovať programy z pásky.
  2. DEL – mazanie programu resp. súboru z RAMDISKu

DEL Q:JANO – vymaže program JANO.

  1. RENAME (REN., RE.) – premenovanie programu v RAMDISKu

RE. Q:FERO,JANO
alebo
REN. Q:FERO,JANO
kde FERO – staré meno, JANO – nové meno.

Zdroje:

  1. Popis programu QTOS – ATR súbor qtos-qros-1.atr, qtos-qros-2.atr
  2. PIP – spravodaj MARTIN 02/90, Ing. Višňovský P. – QROS-QTOS

Opravil ing. Marcel Koložváry

Nasledujúce video demonštruje kopírovanie hry DECATHLON na ramdisk Q a následne z neho na virtuálnu rýchlu kazetu T: . Prevádzané na emulátore Altirra.