TSR PERMETTANT D'UTILISER LE BASIC A3.40 D'IBM SUR UN COMPATIBLE IBM
A l'adresse F600:0000h, les interprètes (ou interpréteurs) BASIC d'IBM supposent et nécessitent la présence d'un BASIC de ROM (ou BASIC cassette), version C1.00 ou C1.10, qui n'existe pas sur les compatibles IBM (appelés aussi compatibles PC ou clones IBM).
L'interprète BASIC A3.40 d'IBM constitue quelque peu une exception. Il s'agit d'une version 4.00 auquelle est ajoutée une grande partie du BASIC C1.10 d'IBM dans la limite du format COM.
Cf. viewtopic.php?t=6199
Elle essaye d'obtenir l'adresse du BASIC de ROM grâce à la fonction 22h de l'interruption 15h du BIOS -- qui remplit son rôle sur les derniers PS/2 -- pour savoir si elle diffère de F600:0000h. Ensuite, elle reconstitue cette ROM en fin de mémoire conventionnelle en récupérant les 5120 premiers octets qui lui manquent.
Bien que seuls les véritables PC IBM (PC, PC/XT, PC/AT et PS/2) soient équipés du BASIC cassette, il est aisé de détourner l'interruption 15h pour que sa fonction 22h pointe sur une copie des 5 premiers Ko de ROM. C'est le but du programme résident (TSR) BAS340 : permettre l'utilisation du BASIC A3.40 à la place de GW-BASIC 3.2x sur un compatible IBM dépourvu de BASIC cassette.
De plus, ce programme vérifiera s'il est nécessaire qu'il s'installe en recherchant un éventuel BASIC cassette ou sa propre présence. Il ne s'installe pas si la version de DOS rencontrée est antérieure à la 3.30 car le BASIC A3.40 refuserait de fonctionner.
Enfin, il peut se retirer de la mémoire sous une condition : que ce soit lui le dernier à avoir détourné l'interruption 15h du BIOS.
Code : Tout sélectionner IF EXIST C:\BASIC\BAS340.COM GOTO BASIC ECHO Programme BAS340.COM non trouvé ECHO. GOTO FIN :BASIC C:\BASIC\BAS340.COM BASICA.COM %1 %2 %3 %4 %5 %6 %7 %8 C:\BASIC\BAS340.COM R :FIN |
Code : Tout sélectionner BASICA [fichier BAS]
[< entrée]
[>[>] sortie]
[/C:tampon série]
[/D] (double précision permise pour les fonctions mathématiques)
[/F:nombre de tampons de fichiers disponibles]
[/M:[octets réservés aux données du BASIC][,paragraphes totaux alloués]]
[/S:taille maximale d'enregistrement dans un fichier à accès direct]
|
Code : Tout sélectionner ^B mot précédent (^Gauche) ^F mot suivant (^Droit) ^C ligne BASIC suivante ^J lie des lignes d'écran en ligne BASIC ^E efface fin de ligne BASIC ^L vide l'écran (^Orig) ^G sonnerie ^M valide ligne BASIC (Entrée) ^H retour arrière ^N fin de ligne BASIC (Fin) ^I tabulation (Tab) ^R bascule insertion/surfrappe (Inser) Clavier QWERTY (caractères ASCII 91 à 95) : ^[ efface la ligne BASIC (Echap) ^\ avance le curseur (Droit) ^] recule le curseur (Gauche) ^^ monte le curseur (Haut) ^_ descend le curseur (Bas) |
- le paramètre existe mais ne peut être converti en un nom valide ;
- le nom du programme suit la commande LH (LOADHIGH) de MS/DOS & PC/DOS et se retrouve en FCB#1.
C'est pourquoi, lorsqu'on le lance, BAS340 regarde l'octet 80h du PSP. S'il est à zéro, le reste de la ligne de commande (DTA) est forcément vide.
Si vous comptez utiliser des paramètres conjointement à LH, l'astuce des FCB par défaut n'est plus pratique. D'ailleurs, elles ne fonctionnent pas du tout avec la commande INSTALL du CONFIG.SYS de MS/DOS & PC/DOS.
Sous DR DOS, les commandes INSTALL & HIINSTALL du CONFIG.SYS ainsi que la commande HILOAD ne pertubent pas le fonctionnement des FCB par défaut.
