# Turbo-BASIC XL

       Aquest article tracta del Turbo-BASIC XL, un dialecte BASIC per a la Família Atari de 8 bits .
       Hi ha un article diferent que tracta del Turbo BASIC de Borland.
El Turbo-Basic XL és una versió avançada del llenguatge BASIC per a la Família Atari de 8 bits de microordinadors. És un subconjunt del Atari BASIC amb el qual és totalment compatible. També hi ha un compilador de programes creats amb Turbo-BASIC XL.
Les principals diferències amb el BASIC original d'Atari, consisteixen en:
* Major velocitat de procés
* Instruccions millorades per so i gràfics
* Ordres de E/S (Entrada/Sortida) o {en anglès: «I/O»} més flexibles i poderoses.
* Accés millorat a disquet.
* Construccions de programació estructurada
* Serveis de depuració {en anglès: debugging } simplificats
Aquest llenguatge va ser creat per Frank Ostrowski, qui més tard, va desenvolupar l'intèrpret GFA-BASIC per a la companyia GFA Systems. Turbo-BASIC XL va ser publicat per primera vegada el 1985 com el "llistat del mes" a la revista alemanya Happy Computers (Markt & Technik Verlag). De la mateixa manera, un any després va publicar un compilador per al Turbo-BASIC XL.

## Comparació amb el Atari-BASIC
### Compatibilitat

Turbo-BASIC XL és un subconjunt del Atari BASIC. Implementa totes les ordres d'Atari BASIC i està en el format de fitxer, per tant, els programes escrits en Atari BASIC, en general, seran directament a Turbo-BASIC XL sense necessitat de canvis. Però ho faran unes 3 o 4 vegades més ràpid. Això podria significar que algun joc escrit en Atari BASIC no funcionés bé en Turbo-BASIC XL.
Una altra causa d'incompatibilitat està donada per la diferència en el consum de memòria. El Turbo-BASIC XL, amb 16 KB, és gairebé el doble més gran que Atari BASIC. No obstant això, Turbo-BASIC XL deixa disponible aproximadament 34 KB de memòria per programes. És a dir, aproximadament més de 2 KB que l'Atari BASIC amb Atari DOS, ja que el Turbo-BASIC ocupa algunes àrees de memòria que no utilitza el Atari BASIC. No obstant això, sovint els programadors d'Atari BASIC fan servir aquestes àrees de memòria per emmagatzemar sub-programes en llenguatge de màquina. Pot ser que aquests programes no corrin sota Turbo-BASIC XL.

### Programació Estructurada

Un millora substancial sobre l'Atari BASIC va ser la introducció d'ordres per programació estructurada. Es va introduir " REPEAT ... until ", " WHILE ... WENDE ", " DO ... LOOP " i " IF ... ELSE ... ENDIF ".
L'utilitzar " PROC nom ... ENDPROC " permet definir subrutines, i se les anomena usant " EXEC nom ".
Es pot escriure programes complets en Turbo-BASIC XL, sense utilitzar instruccions GOTO . En els casos excepcionals en els quals sigui necessari fer un salt directe dins el programa es pot escriure " GO # etiqueta ".
Pel seu disseny, s'endevina que el turbo-BASIC XL va ser el precursor del GFA-BASIC, una altra implementació del llenguatge per Atari ST, Commodore Amiga, MS-DOS i Windows de PC que Ostrowski desenvolupar anys després.

### Instruccions per a gràfics

Atari BASIC ja tenia instruccions per maneres gràfics i per dibuixar punts i línies. Amb Turbo-BASIC XL, també es pot dibuixar cercles i lipses, farcit d'espais i text en pantalles gràfiques. Per exemple, usant BPUT i BGET es pot guardar blocs de memòria en un mitjà d'emmagatzematge extern (disquet) i després tornar a carregar a la memòria quan calgui.
Turbo-BASIC XL no té instruccions específiques per a programar gràfics jugador/projectil {Player/Missile en anglès} anomenats també" sprites ". Així que igual que en Atari BASIC s'ha d'usar PEEK i poke. No obstant això, l'ordre MOVE que permet moure blocs de memòria complets simplifica bastant la programació d'aquest tipus de gràfics.

### Ordres DOS

Amb ordres com DIR , DELETE , RENAMO , LOCK i Unlock , Turbo- BASIC XL pot gestionar directament la disquetera, sense necessitat d'usar les críptiques crides XIO (eXtended Input/Output - Entrada/Sortida estesa), del Atari BASIC. El que es pugui accedir directament al contingut del disquet, facilita enormement el treball de desenvolupament.

### Instruccions i funcions generals

Sota Turbo-BASIC XL, es pot treballar directament amb nombres hexadecimals, i disposa de poderoses instruccions per manejar seqüències de caràcters {a anglès: strings }. També hi ha una sèrie d'instruccions i funcions que no estan presents en el ATARI BASIC com DIV , MOD , CLS o PAUSE .

### Editor avançat

Turbo-BASIC XL utilitza el conegut editor d'Atari BASIC, però aquest va ser en gran expandit. Per facilitar la lectura, per defecte, els bucles {en anglès: loops } i els blocs IF-THEN-ELSE és indentar automàticament amb 2 espais. No obstant això, per als llistats a impressora o altres dispositius externs, aquesta característica és suprimir. Es pot minvar la velocitat del desplegament del codi font a la pantalla prement algun dels botons de consola (Option, Select, Start).
També es van afegir algunes instruccions, mitjançant les quals es poden renumerar o esborrar blocs complets de programa. Amb la instrucció DUMP es pot obtenir una taula de variables. Amb l'ordre TRACE es mostra els números de la línia en execució, facilitant la depuració dels programes.

### Autorun. BAS

En el moment d'inicialitzar l'ordinador {en anglès: boot }, Turbo-BASIC XL busca un fitxer BASIC amb el nom de" AUTORUN.BAS "en el mateix disquet. Si hi ha el carrega i executa automàticament. En canvi, per fer el mateix a Atari BASIC és necessària la intervenció d'un programa intermediari en llenguatge de màquina.
Si el programa BASIC de autocàrrega està compilat, ha de gravar amb el nom de "AUTORUN.CTB" i en el mateix disc ha d'estar present el fitxer amb la biblioteca de temps d'execució "runtime.com" al qual se l'ha anomenat com "autorun.sys" (vegeu la pàgina 6 del manual resumit més avall).

### Compilador

El 1986 es va publicar el compilador per Turbo-BASIC XL en el primer número especial dedicat a Atari-XL/XE de la revista Happy Computer. Els programes compilats s'executaven de mitjana tres vegades més ràpid que els programes interpretats per Turbo-BASIC XL. Comparat amb l'Atari BASIC sigui un factor d'acceleració de 10 a 12 vegades. A proves comparatives {en anglès: benchmarks} fetes el 1986 el compilador Turbo-BASIC XL va ser més ràpid que qualsevol dels compiladors de BASIC comercials disponibles en aquella època per als microcomputadors Atari. Els programes compilats amb Turbo-BASIC XL només es poden executar en ordinadors de la sèrie XL/XE.

### Distribució

Per als microcomputadors Atari, Turbo-BASIC XL va ser un dels llenguatges de programació més reeixits i al costat del Atari BASIC probablement el dialecte BASIC més estès. Els successors comercials d'Atari BASIC (BASIC A+, BASIC XL i BASIC XE) de la companyia Optimized Programari System (OSS), tenien instruccions significativament més poderoses i eren comparativament tan ràpids com el Turbo-BASIC XL. Però aquests van ser llenguatges de programació orientats al desenvolupament comercial d'aplicacions. No permetien compilar, fins i tot per al BASIC A+ni tan sols hi havia una biblioteca de temps d'execució {en anglès: runtime library } gratuïta. Això obligava a qui volgués fer ús d'un programa escrit en aquests llenguatges a haver de comprar l'intèrpret que podia costar entre 80 i 100 dòlars nord-americans, el que contrastava amb l'ínfim cost d'aconseguir el Turbo-BASIC XL que a més incloïa el compilador.

### Versions

Circulen diverses versions de Turbo-BASIC
* Turbo-BASIC 3.2q: versió de Turbo-BASIC compatible amb Sparta
* Frost BASIC 1.4: versió de Turbo-BASIC compatible amb equips 400/800
* Turbo-BASIC XL 1.5: compatible amb equips XL/XE, Atari DOS 2 <- ( la versió "oficial" ) i similars.
* TurboBASIC XL 2.0: idem

### Curiositats

Amb una mida de 18,108 bytes, el Turbo-BASIC XL va ser un dels programes més extensos publicats alguna vegada per la revista Happy Computer. En general el límit havia estat al voltant de 10 KB. Com que els programes van ser impresos en format hexadecimal, calia ingressar i revisar més de 40.000 caràcters al teclejar la llista generador de l'intèrpret. Els llistats del compilador i del carregador de temps d'execució En conjunt eren gairebé tan extensos.
El llistat de l'intèrpret va ser publicat en 3 oportunitats per Happy Computer. La primera vegada en l'exemplar de desembre de 1985. Després a la primera edició especial de Atari (1986) i novament en la segona edició especial d'Atari (1988).
En publicar-se el Turbo-BASIC XL com un programa per a ser mecanografiat {" tipeado "}, va ser percebut incorrectament, entre els usuaris d'Atari com si es tractés d'un programa de domini públic. Referent a això, mai va haver una publicació oficial de part de Markt & Technik. No obstant això, des de finals de 1980 molts dels usuaris d'Atari posseïen una còpia del Turbo-BASIC XL - pocs dels quals havien mecanografiat el programa de la revista o l'havien adquirit en forma de disquet d'un servei establert. El Turbo-BASIC XL ha d'haver estat el programa més piratejat per als microcomputadors Atari XL/XE.
Frank Ostrowski desenvolupar originalment seu intèrpret BASIC en un Atari 800. No obstant això, aquesta versió no va ser publicada sinó fins al 1986 sota el nom de Turbo-BASIC v1.4 (sense l'agregat de XL). Això té només valor històric, perquè en aquell temps la màquina Atari-800 ja es feia servir molt rarament i deixava només 23 KB de memòria lliure per als propis programes.

## Enllaços externs

* http://www.tmeyer.de/atari/index.html - Té escanejat l'article original en alemany que descriu el Turbo-BASIC XL. A més ve el llistat per teclejar que va aparèixer a la revista Happy Computer.
* http://www.page6.org/pd_lib/special/disks/ds006.zip - Una imatge. ATR amb Turbo-BASIC XL (l'intèrpret (autorun.sys), el compilador (compiler.com), i la biblioteca de temps d'execució (runtime.com) i alguns programes d'exemple. (n ° 6 de la discoteca de la revista britànica "Page 6")
* http://www.page6.org/pd_lib/special/pd_ds006.htm - Informació i un petit manual en anglès sobre el turbo-BASIC XL 1.5.
* http://page6.org/pd_lib/special/pd_ds020.htm - Imatge de disquet amb informació addicional sobre Turbo-BASIC XL. (N ° 20 de la discoteca de la revista "Page 6")
* TurboTari Arxivat 2007-09-30 a Wayback Machine. - És un emulador estès: BASIC (basat en el Turbo-Basic XL) i més d'una arquitectura binària 6502 d'Atari i d'un DOS per a PC. Encara que és funcional, el desenvolupament no ha avançat des de gener 2003.