Bienvenue sur le wiki de Nuit debout, nous sommes le 2980 mars.




Villes/Montluçon/sciences/PC-BASIC

De NuitDebout
Aller à : navigation, rechercher

PC-BASIC est un logiciel gratuit, multi-plateforme interprète pour GW-BASIC, Advanced BASIC (BASICA), PCjr Cartridge Basic et Tandy 1000 GWBASIC.

Il interprète ces dialectes BASIC avec un haut degré de précision, dans le but de compatibilité bogue pour bogue.

PC-BASIC émule vidéo et audio du matériel le plus commun sur lequel ces BASICs utilisés pour exécuter.

PC-BASIC peut lire texte brut, tokenised et fichiers .BAS protégés.

Il met en oeuvre l'arithmétique flottante dans le format Microsoft binaire (MBF) et peut donc lire et écrire des fichiers de données binaires créés par GW-BASIC.

PC-BASIC est un logiciel libre et open source publié sous la GPL version 3.

Voir aussi la [page d'accueil PC-BASIC] (http://robhagemans.github.io/pcbasic/).

! [] (Https://robhagemans.github.io/pcbasic/screenshots/pcbasic.png)

Contribuer à PC-BASIC[modifier | modifier le wikicode]

Merci pour votre intérêt à contribuer au PC-BASIC!


rapports de bugs[modifier | modifier le wikicode]

Si vous trouvez des bugs, s'il vous plaît les signaler sur le [Page SourceForge de discussion] (https://sourceforge.net/p/pcbasic/discussion/bugs/) ou [ouvrir une question sur GitHub] (https://github.com/ robhagemans / pcbasic / numéros).

Dans votre rapport de bug, s'il vous plaît préciser:

  • Quelle version de PC-BASIC vous utilisez;
  • Quel est le système que vous utilisez, y compris la version et si elle est 64-bit ou 32-bit exploitation;
  • Ce que tu as fait;
  • Qu'est-ce que vous vous attendiez à arriver;
  • Qu'est-il arrivé à la place.

La meilleure chose à faire dans un rapport de bogue est d'afficher un petit programme BASIC qui déclenche le bogue ou le comportement indésirable.

Cela permet souvent moi de voir ce qui se passe tout de suite, sinon je peux l'essayer pour moi-même. Il est presque magique comme ça.

Une fois que vous postez votre rapport, s'il vous plaît consulter dans les prochains jours: souvent, il est pas évident pour moi depuis le premier rapport que le problème exact est, puisque les gens utilisent différentes configurations, ont des attentes différentes et de faire des hypothèses différentes. Je vais souvent réponds assez rapidement pour vous demander un peu plus d'informations.

Code contributifs[modifier | modifier le wikicode]

La base de code actuel de PC-BASIC a été écrit par un seul auteur, Rob Hagemans. Cela ne veut pas dire qu'il doit rester. Si vous souhaitez contribuer code pour PC-BASIC, s'il vous plaît contacter l'auteur au _robhagemans@users.sourceforge.net_.

Vous aurez besoin de se mettre d'accord pour vos contributions de code pour être distribué sous la licence [License Expat MIT] (https://opensource.org/licenses/MIT). Ceci est une licence plus permissive que PC-BASIC est (actuellement) publié sous. La raison pour laquelle je demande une licence permissive pour les contributions est que cela me permet de re-licence le code à une date ultérieure.

Installation à partir des sources[modifier | modifier le wikicode]

Pour installer à partir des sources, télécharger la distribution source et décompresser l'archive TGZ. Les paquets suivants sont nécessaires ou recommandés lors de l'installation PC-BASIC de la source:

| package | OS | Statut | Nécessaire pour |-----------------------------------------------------------------|--------------------|--------------|---------------------------------------- | [Python 2.7.6] (http://www.python.org/download/releases/2.7.6/) | tout | nécessaire | | [Pywin32] (https://sourceforge.net/projects/pywin32/) | fenêtres | nécessaire | | [PyXDG] (http://freedesktop.org/wiki/Software/pyxdg/) | Linux, autre | nécessaire | | [PyGame 1.9.1] (http://www.pygame.org/download.shtml) | tout | essentielle | sons et graphiques | [NumPy] (https://sourceforge.net/projects/numpy/files/) | tout | essentielle | sons et graphiques | [Pyserial] (https://pypi.python.org/pypi/pyserial) | tout | recommandé | accès au port série physique ou émulé | [PyParallel] (https://pypi.python.org/pypi/pyserial) | Windows, Linux | option | accès au port parallèle physique | [Pexpect] (http://pexpect.readthedocs.org/en/latest/install.html) | OSX, Linux, autre | option | `Shell` native

Dans cette liste, _autre_ fait référence aux systèmes d'exploitation autres que Windows, Linux ou OSX.

Sur ** de Windows **, vous devez télécharger tous les paquets nécessaires à partir des sites Web des projets liés ci-dessus.

Télécharger `launcher.exe` de la [ANSI | tuyau page release] (http://github.com/robhagemans/ansipipe/releases/) et placez-le dans le répertoire où` pcbasic.py` est situé. Vous pouvez maintenant exécuter pc-base avec la commande `lanceur python pcbasic.py`. Sans ANSI | pipe, PC-BASIC fonctionne, mais vous être incapable d'utiliser les interfaces à base de texte (les options `` -t` et -b`) car ils n'imprimer que du charabia sur la console.

L'ANSI | source de tuyau de C est inclus avec PC-BASIC; si vous préférez cela à télécharger le binaire du lanceur, vous pouvez le compiler à partir des sources en exécutant `winbuild.bat`. Vous aurez besoin d'un compilateur C de travail (MinGW ou Microsoft Visual C ++) sur votre système.

Sur ** OSX **, il existe plusieurs versions de Python 2.7 et tous les téléchargements doivent correspondre à votre version et de l'architecture du processeur. Il est un peu délicat, je le crains. L'option la plus simple semble être l'installation à la fois Python et PyGame par MacPorts ou Homebrew.

Sur les distributions Linux ** avec APT ou DNF ** (y compris Debian, Ubuntu, Mint et Fedora), le script d'installation va installer automatiquement les dépendances si elle est exécutée avec les privilèges root.

Le script d'installation peut également être utilisé sur d'autres Unix ** ** systèmes ou lorsqu'ils ne sont pas l'installation en tant que root. Les dépendances peuvent souvent être installés par votre gestionnaire de paquets. Par exemple, sur les systèmes basés sur Debian:

       sudo apt-get install python2.7 python-xdg python-pygame python-numpy python-serial python-pexpect python-parallèle xsel

Sur Fedora:

       sudo DNF installer python pyxdg pygame numpy pyserial python-pexpect xsel

Sur FreeBSD:

       sudo pkg installer python27 PY27-xdg PY27-jeu PY27-numpy PY27-série PY27-pexpect xsel

Notez que PyParallel ne sont pas disponibles à partir des prises en pension de Fedora et FreeBSD. PyParallel ne supporte pas BSD; sur Fedora, vous aurez besoin d'installer de la source si vous avez besoin d'accéder aux ports parallèles physiques. Cependant, étant donné que la plupart des machines modernes ne sont pas réellement des ports parallèles, vous ne avez probablement pas besoin. PyParallel est _not_ nécessaire pour l'impression sur un CUPS ou imprimante Windows.

Compilation des sources de dépôt GitHub[modifier | modifier le wikicode]

Les instructions ci-dessus renvoient à la source * Distribution *, qui a pré-construit les fichiers de documentation et d'autres subtilités. Si vous souhaitez utiliser le code source tel quel dans le repo GitHub, vous aurez besoin pour construire les docs vous. Notez que `-h` pcbasic échouera si vous omettez ce. Compiler la documentation nécessite les modules Python [ `Lxml`] (https://pypi.python.org/pypi/lxml/3.4.3) et [` markdown`] (https://pypi.python.org/pypi/Markdown). Bien sûr, vous aurez également besoin [ `git`] (https://git-scm.com/) et toutes les dépendances de PC-BASIC énumérés ci-dessus.

1. Clone le repo github

       git clone --recursive https://github.com/robhagemans/pcbasic.git

2. Compiler la documentation

       python prepare.py

3. Exécutez pcbasic directement à partir du répertoire source

       python pcbasic

Pour éviter tout doute, vous devez ignorer `setup.py`, qui est seulement nécessaire pour générer des paquets avec `setuptools`.


questions de Pygame[modifier | modifier le wikicode]

La 1.9.1 libération de PyGame, tel qu'il est actuellement distribué avec Ubuntu et d'autres, malheureusement, contient encore quelques bugs qui ont déjà été résolus dans le code PyGame amont. Cette section décrit des solutions de contournement pour ces bugs qui peuvent être utilisés jusqu'à ce qu'une nouvelle version de PyGame est libéré avec les principales distributions.

X11 presse-papiers[modifier | modifier le wikicode]

PyGame copier-coller ne fonctionne pas correctement sur les systèmes basés sur X11. Si vous rencontrez ce problème, installez l'un des [ `xsel`] (http://www.vergenet.net/~conrad/software/xsel/) ou [ `Xclip`] (https://sourceforge.net/projects/xclip/) services publics et PC-BASIC travailleront autour de la question.

messages Joystick de débogage[modifier | modifier le wikicode]

Quelques messages de débogage ont été laissés dans le code de production pour la manipulation du joystick.

Le résultat est un flux ennuyeux de messages de débogage sur la console qui se produit lorsque vous utilisez un joystick.

Si cela vous dérange, vous devez installer PyGame de la source; voir ci-dessous.

Segmentation fault[modifier | modifier le wikicode]

Parfois, vous pouvez exécuter dans un accident avec le message d'erreur suivant:

   Erreur fatale de Python: (pygame parachute) Segmentation Fault
   Aborted (core dumped)

Malheureusement, la seule solution de contournement que je connais est d'installer PyGame des sources actuelles de développement.

Installation PyGame des sources actuelles de développement[modifier | modifier le wikicode]

1. Installez les dépendances. Ce sont les paquets dont je avais besoin sur Ubuntu 15.04:

       sudo apt-get install mercurial libpython-dev python-numpy ffmpeg libsdl1.2-dev libsdl-ttf2.0-dev libsdl-font1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libportmidi-dev libswscale -dev libavformat-dev libftgl-dev libsmpeg-dev


2. Faire un répertoire de travail pour votre construction, changer en elle et obtenir la source

       hg clone https://bitbucket.org/pygame/pygame

3. Configurer

       ./configure
   Le script vous avertira si vous dépendances manquantes.

4. Compiler

       faire

5. Installez dans votre `/ usr / arbre local`

       sudo make install

Voir aussi la [PyGame dépôt source sur BitBucket] (https://bitbucket.org/pygame/pygame/wiki/VersionControl).

PC-BASIC interprète[modifier | modifier le wikicode]

    • Copyright © 2013-2016 Rob Hagemans. **

Code promo valide chez _Source de [1](https://github.com/robhagemans/pcbasic)._

Ce programme est un logiciel libre: vous pouvez le redistribuer et / ou modifier selon les termes de la [GNU General Public License] (http://www.gnu.org/licenses/gpl-3.0.en.html) telles que publiées par la Free Software Foundation, soit la version 3 de la licence, ou (À votre choix) toute version ultérieure.

Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE; sans même la garantie implicite de COMMERCIALISATION ou D'ADAPTATION À UN USAGE PARTICULIER. Voir le GNU General Public License pour plus de détails.

Vous devriez avoir reçu une copie de la GNU General Public License long avec ce programme; sinon, écrivez à la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.



Guide de démarrage rapide[modifier | modifier le wikicode]

Contributeurs[modifier | modifier le wikicode]

PC-BASIC ne serait pas exister sans les codes contribuant, signaler les bogues, envoyant des patches, et documenter le comportement de GW-BASIC. Merci à tous!

- ** Rob Hagemans **, auteur principal - ** Wengier Wu **, des corrections de bugs, des conseils pour le soutien CJK - ** WJB **, des corrections de bugs - ** Jan Bredenbeek **, des corrections de bugs, des conseils pour le soutien de BASICODE - ** Ronald Herrera **, les essais, la chasse aux bugs - ** Miguel Dorta **, les essais, les ports série - ** Patrik **, les essais, les ports série - ** Duane **, les essais, les ports série


épaules des géants[modifier | modifier le wikicode]

PC-BASIC dépend des projets open-source suivants:

 * [Python] (http://www.python.org)
 * [PyGame] (http://www.pygame.org)
 * [Simple DirectMedia Layer (SDL)] (http://www.libsdl.org)
 * [NumPy] (http://www.numpy.org)
 * [PyXDG] (http://freedesktop.org/wiki/Software/pyxdg/)
 * [Python pour les extensions de Windows (pywin32)] (https://sourceforge.net/projects/pywin32/)
 * [Pyserial] (http://pyserial.sourceforge.net/pyserial.html)
 * [Pexpect] (http://pexpect.readthedocs.org/en/latest/)
 * [ANSI | tuyau] (https://github.com/robhagemans/ansipipe)


Documentation technique[modifier | modifier le wikicode]

Bâtiment PC-BASIC aurait été impossible sans les immenses quantités de la documentation technique qui a été mis à disposition en ligne. Il a prouvé pas être possible d'établir une liste complète de la documentation utilisée. Beaucoup merci à tous ceux qui font de l'information technique disponible gratuitement, et excuses à ceux dont la contribution que je l'ai pas reconnu ici.

Format de fichier tokenised GW-BASIC[modifier | modifier le wikicode]

 * ** Norman De Forest ** s 'séminal [documentation de jetons GW-BASIC] (http://www.chebucto.ns.ca/~af380/GW-BASIC-tokens.html).
   _Ce Documentation a été le point de départ pour le développement de PC-BASIC._
 * ** [Décodeur GW-BASIC en ligne] Dan Vanderkam ** s '(http://www.danvk.org/wp/2008-02-03/reading-old-gw-basic-programs/)

format de fichier protégé GW-BASIC[modifier | modifier le wikicode]

 * ** Paul Kocher **, _La cryptogramme ordinateur supplement_ ** 19 **, American cryptogramme Association, Été 1994

Matériel vidéo[modifier | modifier le wikicode]

 * ** John Elliott ** s '[pages Vintage PC] (http://www.seasip.info/VintagePC/)
 * ** Dan Rollins ** '[TechHelp] (http://webpages.charter.net/danrollins/techhelp/0089.HTM) pages sur la mise en page de mémoire vidéo PC
 * ** Grand Hiérophante ** s '[Nerdly Pleasures Blog] (http://nerdlypleasures.blogspot.com)

Microsoft Binary Format[modifier | modifier le wikicode]

 * Les contributions du forum par ** [Julian Brucknall] (http://www.boyet.com/Articles/MBFSinglePrecision.html) ** et ** [Adam Burgoyne] (http://www.experts-exchange.com/Programming /Languages/Pascal/Delphi/Q_20245266.html)**

Format de cassette de données[modifier | modifier le wikicode]

 * ** ** Brutman Mike d '[Analyse du format de la cassette de données IBM PC] (http://www.brutman.com/Cassette_Waveforms/Cassette_Waveforms.html)
 * ** Dan Tobias ** '[IBM documentation de format de cassette de données de PC] (http://fileformats.archiveteam.org/wiki/IBM_PC_data_cassette)

BASICODE[modifier | modifier le wikicode]

 * ** Documentation du [format BASICODE] Janny Looyenga ** s '(http://www.nostalgia8.nl/basicode.htm)
 * ** Prof. documentation du [format de fichier cassette BASICODE] Dr. Horst Völz ** s '(http://www.kc85emu.de/scans/rfe0190/Basicode.htm)

ports série[modifier | modifier le wikicode]

 * ** Craig Peacock ** 'de la documentation sur [interfacer le port série] (http://retired.beyondlogic.org/serial/serial.htm)
 * ** Christopher E. Strangio ** 'de tutoriel sur [la norme RS232] (http://www.camiresearch.com/Data_Com_Basics/RS232_standard.html)
 * [QB64 documentation](http://www.qb64.net/wiki/index.php/Port_Access_Libraries#Serial_Communication_Registers)

Informations techniques sur de nombreux sujets[modifier | modifier le wikicode]

 * [Vogons] (http://www.vogons.org/)
 * ** Erik S. Klein ** s de '[forums informatiques cru] (http://www.vintage-computer.com)
 * ** Peter Berg ** s '[site QBasic / QuickBasic Pete] (http://www.petesqbsite.com/)

Polices[modifier | modifier le wikicode]

 * ** Henrique Peron ** s '[pack codepage CPIDOS] (http://www.freedos.org/software/?prog=cpidos)
 * ** Dmitry Bolkhovityanov ** s de '[police Uni-VGA] (http://www.inp.nsk.su/~bolkhov/files/fonts/univga/)
 * ** Roman Czyborra **, ** Qianqian Fang ** et [GNU unifont] des autres (https://savannah.gnu.org/projects/unifont)
 * [DOSBox] (http://www.dosbox.com) polices VGA
 * ** Andries Brouwer ** s '[IPC documentation du format de fichier de police] (http://www.win.tue.nl/~aeb/linux/kbd/font-formats-3.html)


mappages Unicode-codepage[modifier | modifier le wikicode]

 * [Le Consortium Unicode et contributeurs] (http://www.unicode.org/Public/MAPPINGS/VENDORS)
 * [Projet GNU libiconv] (https://www.gnu.org/software/libiconv/)
 * [Aivosto] (http://www.aivosto.com/vbtips/charsets-codepages.html)
 * ** Konstantinos Kostis ** '[Index Charsets] (http://www.kostis.net/charsets/)
 * [IBM CDRA] (http://www-01.ibm.com/software/globalization/cdra/)
 * ** Masaki Tojo ** s de '[Camellia] (https://github.com/mtojo/camellia)

Bibliographie[modifier | modifier le wikicode]

 * _GW-BASIC Guide_ de 3,23 utilisateur, Microsoft Corporation, 1987.
 * _IBM Personal Computer Library de référence du matériel: BASIC_, IBM 1982.
 * _Tandy 1000 BASIC, A Guide_ Référence, Tandy Corporation.
 * ** William Barden, Jr. **, _Graphics Et audio pour les 1000s Tandy et PC Compatibles_, Microtrend 1987.
 * ** Don Inman ** et ** Bob Albrecht **, _La GW-BASIC Reference_, Osborne McGraw-Hill, 1990.
 * ** Thomas C. McIntyre **, _BLUE: BASIC Langue utilisateur Essay_, 1991, [en ligne] (https://web.archive.org/web/20060410121551/http://scottserver.net/basically/geewhiz. html).

Outils de développement[modifier | modifier le wikicode]

PC-BASIC est développé en utilisant [Git] (https://git-scm.com/) contrôle de source, [GEdit] (https://wiki.gnome.org/Apps/Gedit) et [Atom] (https://atom.io/) texte éditeurs sur un système [Ubuntu] (http://www.ubuntu.com/) Linux et hébergé sur [GitHub] (https://github.com/) et [SourceForge] (https://sourceforge.net/).

Emballage et documentation dépend des projets suivants:

 * [PyInstaller] (http://www.pyinstaller.org)
 * [Nullsoft Scriptable Install System] (http://nsis.sourceforge.net)
 * [7-Zip] (http://www.7-zip.org)
 * [Le système de base de GNU] (http://www.gnu.org/)
 * ** Tom Rothamel ** s '[Pygame Subset pour Android] (https://web.archive.org/web/20150712040220/http://pygame.renpy.org/) (remplacé par [RAPT] (http: //www.renpy.org/doc/html/android.html))
 * [LXML] (http://lxml.de)
 * [Markdown] (https://pypi.python.org/pypi/Markdown)


Emulateurs[modifier | modifier le wikicode]

Ces excellents émulateurs ont été des outils indispensables pour documenter la comportement de divers dialectes Microsoft BASIC.

 * [DOSBox] (http://www.dosbox.com)
 * [MESS] (http://www.mess.org)
 * [PCE PC Emulator] (http://www.hampa.ch/pce/)

aperçu

Un libre, multi-plateforme émulateur pour la famille GW-BASIC des interprètes.

PC-BASIC est un logiciel gratuit, multi-plateforme interprète pour GW-BASIC, Advanced BASIC (BASICA), PCjr Cartridge Basic et Tandy 1000 GWBASIC. Il interprète ces dialectes BASIC avec un haut degré de précision, dans le but de compatibilité bogue pour bogue. PC-BASIC émule vidéo et audio du matériel le plus commun sur lequel ces BASICs utilisés pour exécuter. PC-BASIC court texte brut, tokenised et fichiers .BAS protégés. Elle met en oeuvre l'arithmétique flottante dans le format Microsoft binaire (MBF) et peut donc lire et écrire des fichiers de données binaires créés par GW-BASIC.

PC-BASIC est un logiciel libre et open source publié sous la GPL version 3.

Voir aussi la page d'accueil PC-BASIC.

Guide de démarrage rapide[modifier | modifier le wikicode]

Ce guide de démarrage rapide couvre l'installation et l'utilisation élémentaire du PC-BASIC. Pour plus d'informations, s'il vous plaît se référer à la documentation du PC-BASIC complète qui couvre les options d'utilisation, ligne de commande et une approche globale de référence du langage GW-BASIC. Cette documentation est également inclus avec la version PC-BASIC actuelle.

Si vous trouvez des bugs, s'il vous plaît les signaler sur la page de discussion SourceForge ou ouvrir une question sur GitHub. Il serait très utile si vous pourriez inclure un court morceau de code BASIC qui déclenche le bug. Installation

distributions packagées peuvent être téléchargés à partir de l'un des emplacements suivants:

 versions PC-BASIC sur GitHub
   versions PC-BASIC sur SourceForge

Sous Windows:

 exécuter le programme d'installation
   pour commencer, cliquez sur PC-BASIC dans votre menu Démarrer

Sur OS X:

 monter l'image de disque
   pour commencer, cliquez deux fois sur l'application PC-BASIC

Sous Linux et autres Unix:

 décompressez l'archive
   exécuter sudo ./install.sh.  Vous pouvez être invité à installer d'autres dépendances à travers le système de gestion des paquets de votre OS.
   pour commencer, cliquez sur PC-BASIC dans votre menu Applications ou exécuter pcbasic sur la ligne de commande.

Si les options ci-dessus sont sans objet ou si vous préférez installer de la source, s'il vous plaît consulter INSTALL.md pour obtenir des instructions détaillées. Kit de survie BASIC

Cliquez sur l'icône de l'application PC-BASIC ou exécutez pcbasic sur la ligne de commande Windows, OSX ou Linux et PC-BASIC démarre en mode direct sans programme chargé. La cible d'émulation par défaut est GW-BASIC 3.23 sur un PC compatible IBM générique avec une carte vidéo VGA.

PC-BASIC démarre en mode direct, une interface de style années 1980 opéré par l'exécution des commandes BASIC directement. Il n'y a pas de menu, ni y at-il des indices visuels que nous sommes venus à attendre d'un logiciel moderne.

Quelques commandes essentielles pour vous aider à vous déplacer: LOAD "PROGRAM" charge le fichier de programme nommé program.bas en mémoire, mais ne fonctionne pas encore. LISTE affiche le code BASIC du programme en cours. RUN démarre le programme en cours. SAVE "PROGRAM", A enregistre le programme en cours d'un fichier texte lisible par l'homme nommé program.bas. NEW supprime immédiatement le programme actuel de la mémoire. SYSTÈME sort PC-BASIC immédiatement, en rejetant tout programme ou des données non enregistrées.

Utilisez l'une des combinaisons de touches Ctrl + Pause, Ctrl + Scroll Lock, Ctrl + C ou F12 + B pour interrompre un programme en cours et revenir en mode direct. Configuration

Vous pouvez fournir des options pour modifier le comportement de PC-BASIC en modifiant le fichier de configuration. Si vous installez le package Windows, le programme d'installation crée automatiquement un raccourci vers ce fichier dans le dossier du menu de démarrage PC-BASIC. Le fichier peut aussi être trouvé à l'emplacement suivant: Fichier de configuration OS Windows% APPDATA% \ pcbasic \ PCBASIC.INI OS X ~ / Library / Application Support / pcbasic / PCBASIC.INI Linux ~ / .config / pcbasic / PCBASIC.INI

Par exemple, pour commencer avec la cible d'émulation réglée sur Tandy 1000 GW-BASIC, comprend la ligne suivante sous [pcbasic] dans le fichier de configuration:

preset = tandy

Un fichier de configuration par défaut sera créé la première fois que vous exécutez PC-BASIC. Voir les commentaires dans ce fichier ou consulter la documentation pour plus d'informations et des exemples d'options.

Si vous démarrez PC-BASIC à partir de l'invite de commande (sous Windows, est le C: \> prompt), vous pouvez fournir directement les options de configuration. Par exemple:

pcbasic program.bas exécute le fichier de programme nommé directement program.bas. pcbasic --preset = tandy commence avec la cible d'émulation réglée sur Tandy GW-BASIC sur un Tandy 1000. pcbasic --preset = PCjr commence avec la cible d'émulation réglée sur cartouche BASIC sur un PCjr IBM. -h pcbasic montre toutes les options de ligne de commande disponibles.

Si vous utilisez PC-BASIC de l'invite de commande sous Windows, assurez-vous d'exécuter le binaire pcbasic.com. Vous ne verrez aucune sortie si vous appelez le binaire pcbasic.exe. Obtenir des programmes

Les pages suivantes ont téléchargements de programmes GW-BASIC, beaucoup d'informations et d'autres liens.

 La page Geocities archivé de KindlyRat a un certain nombre de jeux classiques et les services publics.
   PeatSoft fournit de la documentation GW-BASIC, les services publics et certains plus de jeux.
   Neil C. Obremski gw-basic.com a quelques nouveaux jeux amusants récentes dans GW-BASIC.
   Leon Peyre a une belle collection de programmes GW-BASIC, y compris le (en) célèbre premier jeu PC IBM DONKEY.BAS.
   Brooks deForest fournit ses étonnants Tandy jeux GW-BASIC, tous libérés dans le domaine public.
   Archive de TVDog est une grande source d'informations et de programmes GW-BASIC pour le Tandy 1000.
   Phillip Bigelow fournit des programmes scientifiques écrits en GW-BASIC.
   Gary Peek fournit des sources GW-BASIC diverses qu'il a mises dans le domaine public.
   La page Classique BASE Jeux SA Moore fournit les jeux de base du livre classique de David Ahl.
   Dernier livre de Joseph Sixpack de GW-BASIC a beaucoup de programmes de bureau et de services publics, y compris la feuille de calcul PC-CALC.
   Geewhiz Collection de Thomas C. McIntyre a des applications d'affaires, des jeux et du matériel de référence.
   cd.textfiles.com a des tonnes de vieux shareware, parmi lesquels quelques bons jeux GW-BASIC.

Guide de l'utilisateur L'environnement de travail[modifier | modifier le wikicode]

La première chose que vous verrez lors du démarrage de PC-BASIC est l'environnement de travail. Comme GW-BASIC, mais contrairement à pratiquement tous les compilateurs et interprètes modernes, l'environnement de travail de PC-BASIC sert à la fois comme un environnement de développement et comme une toile sur laquelle exécuter directement les commandes BASIC. A quelques exceptions près, pratiquement toutes les commandes qui peuvent être exécutées dans l'environnement de travail peuvent être utilisés dans un programme, et vice versa.

L'écran de PC-BASIC défaut dispose de 25 lignes et 80 colonnes. La ligne 25 est utilisé par PC-BASIC pour afficher les raccourcis clavier, ce qui signifie que vous ne pouvez pas l'utiliser pour taper sur. Dans certains modes vidéo, il n'y a que 40 ou 20 colonnes.

lignes logiques dépassent la largeur de la ligne physique: si vous continuez à taper au-delà de la largeur de l'écran, le texte se terminera à la ligne suivante, mais PC-BASIC sera toujours considérer comme faisant partie de la même ligne. Une ligne logique peut être au plus 255 caractères; si vous tapez plus de 255 caractères, il ignore le reste. Une ligne peut également être enveloppé par une ligne d'alimentation, entrée avec Ctrl + Entrée.

Si vous appuyez sur Entrée, PC-BASIC tentera d'exécuter la ligne logique sur lequel le curseur est placé comme une commande. Lorsque la commande est exécutée correctement, PC-BASIC affiche l'invite Ok. S'il y a une erreur, il affiche un message d'erreur suivi par Ok. Si la ligne commence par un nombre, elle sera stockée sous la forme d'une ligne de programme. Aucune invite est affichée. touches spéciales

Les touches suivantes ont un effet spécial dans l'environnement de travail: ↑ ou Ctrl + 6 Déplacez le curseur vers le haut, à l'exception de la ligne supérieure. ↓ ou Ctrl + - Déplacez le curseur vers le bas, sauf à la ligne 24. ← ou Ctrl +] Déplacez le curseur vers la gauche. Le bord gauche de l'écran entoure, à l'exception de la ligne supérieure. → ou Ctrl + / Déplacer le curseur à droite. Le bord droit de l'écran entoure, sauf à la ligne 24. Ctrl + ← ou Ctrl + B Déplacer à la première lettre du mot précédent. Les mots se composent de lettres A-Z et chiffres 0-9. Ctrl + → ou Ctrl + F Déplacer à la première lettre du mot suivant. Tab ou Ctrl + I Déplacer le curseur sur le taquet de tabulation suivant. Les taquets de tabulation sont 8 colonnes. Backspace ou Ctrl + H Supprimer le caractère à gauche du curseur, changent tous les autres personnages sur la logique en ligne une position vers la gauche et changer les attributs de ces caractères à l'attribut actuel. Au bord gauche de l'écran, cela fait la même chose que Del. Suppr ou Ctrl + Backspace Supprimer le caractère au niveau du curseur et changent tous les autres caractères d'une position vers la gauche, la modification des attributs de courant. Esc ou Ctrl + [Supprimer la ligne logique actuelle. Ctrl + Fin ou Ctrl + E Supprimer tous les caractères du curseur jusqu'à la fin de la ligne logique. Ctrl + Pause ou Ctrl + C ou Ctrl + Scroll Lock Aller à la première colonne de la ligne suivante, sans exécuter ou de stocker la ligne sous le curseur. Entrée ou Ctrl + M Exécuter ou stocker la ligne logique actuelle. La ligne complète sur l'écran est considéré comme faisant partie de la commande, même si vous ne tapez. Une ligne commençant par un nombre est stocké sous la forme d'une ligne de programme. Fin ou Ctrl + N Déplacer le curseur à la première position après la fin de la ligne logique. Accueil ou Ctrl + K Déplacer le curseur vers le haut à gauche de l'écran. Ctrl + Accueil ou Ctrl + L Effacer l'écran et déplacer le curseur vers le haut à gauche de l'écran. Ctrl + Entrée ou Ctrl + J Déplacer vers la première colonne de la ligne suivante, reliant les deux lignes en une seule ligne logique. Ctrl + G Beep le haut-parleur. Pause ou Ctrl + Num Lock Pause. Appuyez sur une autre touche pour reprendre. Ctrl + sortie Prt Sc Basculer écho de l'écran à l'imprimante (ou un autre périphérique connecté à LPT1 :). Maj + Prt Sc Imprimer l'écran. Ins ou Ctrl + R Basculer en mode insérer. En mode d'insertion, les caractères sont insérés plutôt que écrasées à l'emplacement actuel. Si l'insertion provoque la ligne d'étendre la largeur de l'écran physique, la ligne logique se prolonge sur la ligne suivante. Les touches fléchées mode d'insertion de sortie.

Quand un programme est lancé, les commandes du programme sont suivis jusqu'à ce que le programme se ferme et revient en mode ou jusqu'à ce que l'entrée de l'utilisateur est requise diriger. Quand un programme est en cours d'exécution, quelques touches ont un effet immédiat: Pause ou l'exécution de Pause Ctrl + Num Lock. Appuyez sur une autre touche pour reprendre. Ctrl + Pause ou Ctrl + Arrêt défil Arrêter l'exécution et revenir en mode direct. Un message Break est imprimé. Ctrl + C Si ctrl-c-break = True: arrêter l'exécution et revenir en mode direct. Un message Break est imprimé.

Si l'entrée de l'utilisateur est requise par l'entrée de déclarations, LINE INPUT, ou RANDOMIZE, la plupart des touches ont le même effet que dans le mode direct. Les touches suivantes ont un effet différent: Ctrl + Pause ou Ctrl + C ou Ctrl + Arrêt défil Arrêter l'exécution et revenir en mode direct. Un message Break est imprimé. Entrez entrée Terminer et revenir au mode précédent. Raccourcis clavier

Les touches de fonction et la touche alt peuvent être utilisés comme raccourcis clavier pour certains mots-clés. Les valeurs par défaut pour les touches de fonction sont: F1 LISTE F2 RUNEnter F3 LOAD "F4 SAVE" F5 F6 contenter, "LPT1:" Entrez F7 TRONEnter F8 TROFFEnter F9 keyspace F10 ECRAN 0,0,0Enter

Les raccourcis des touches de fonction peuvent être redéfinis avec l'énoncé KEY. Les raccourcis sont affichés au bas de l'écran.

Les mots-clés suivants peuvent être entrés avec Alt + première lettre. Les raccourcis Alt ne peuvent pas être redéfinis.

 AUTO BSAVE COLOR EFFACER AUTRE POUR GOTO HEX $ INPUT KEY LOCATE MOTOR SUIVANT OUVERT TIRAGE SCREEN puis en utilisant VAL WIDTH XOR 

mots-clés alternatifs[modifier | modifier le wikicode]

Dans PC-BASIC, la touche F12 peut être utilisé pour saisir des touches spéciales qui ne sont pas présents sur certains claviers. F12 + B Pause F12 + P Pause F12 + C Caps Lock F12 + N Num Lock F12 + Scroll Lock S

La touche F12 peut également être utilisé en combinaison avec les touches numériques réguliers et les touches fléchées pour saisir des chiffres à partir du clavier numérique. Les combinaisons de F12 ne sont pas présents dans le GW-BASIC.

En outre, comme dans GW-BASIC, la touche Alt peut être utilisé pour saisir des caractères par leurs points de code (valeurs ASCII). Cela se fait en appuyant sur la touche Alt et en tapant le point de code comme une valeur décimale sur le pavé numérique, puis en relâchant la touche Alt. opérations du Presse-papiers

Contrairement à GW-BASIC, vous pouvez copier et coller du texte dans le presse papier. Cela peut être fait avec la souris ou avec la touche F11.

Utilisation du presse-papiers avec la souris fonctionne dans le style de X11: Le bouton gauche est sélectionner et copier; bouton du milieu est la pâte.

Les combinaisons de touches suivantes fonctionnent également le presse-papiers: F11 + ↑ ↓ ← → Sélectionnez une région de l'écran. F11 + A Sélectionner tout. F11 + C Copier. F11 + V Coller du presse-papiers. touches de commande Emulator

Dans PC-BASIC, F11 + F basculer en mode plein écran. Programmes et fichiers

PC-BASIC peut contenir un programme BASIC à la fois dans la mémoire. Pour entrer dans une ligne de programme, commencer par un numéro de ligne et entrez les commandes BASIC après. La longueur maximale d'une ligne de programme est de 255 caractères, y compris le numéro de ligne et tous les espaces. La ligne de programme ne sera pas exécuté immédiatement, mais stockée dans le programme. lignes du programme sont classés par numéro de ligne, de sorte que la ligne 10 est exécutée avant la ligne 20. Toutes les lignes de programme doivent avoir un numéro de ligne. Les numéros de ligne varient entre 0 et 65535 inclus. Il est impossible d'entrer un numéro de ligne supérieure à 65529, mais ceux-ci peuvent exister dans les programmes chargés. Dans une ligne de programme, les états sont séparés par des virgules.

Pour exécuter le programme, tapez la commande RUN. PC-BASIC va maintenant exécuter toutes les lignes de programme pour l'intérieur de l'environnement de travail. Vous ne pouvez pas déplacer le curseur ou entrer des commandes alors que le programme est en cours. Si et quand le programme se termine, il va rendre le contrôle de l'environnement de travail pour vous. Vous pouvez interrompre un programme à tout moment en utilisant l'une des combinaisons de touches Ctrl + Pause ou Ctrl + Scroll Lock. Le programme s'arrête immédiatement, imprimer un message de rupture et de rendre le contrôle de vous.

Dans GW-BASIC, vous ne pouvez pas utiliser Ctrl + C pour interrompre un programme en cours d'exécution. Cependant, de nombreux claviers modernes ne possèdent pas une pause ou la touche Scroll Lock, ce qui rendrait impossible d'interrompre un programme qui ne sort pas. Par conséquent, par défaut, traite de PC-BASIC Ctrl + C comme si elle était Ctrl + Break. Set ctrl-c-break = False si vous préférez le comportement de style GW-BASIC. Lorsque vous utilisez l'interface texte ou de ligne de commande, cette option est ignorée.

Un programme peut être stocké sur un lecteur en utilisant la commande SAVE, dans l'une des trois façons suivantes:

  • Texte brut, lisible par tout éditeur de texte: SAVE "MYPROG", A
  • Tokenised, prenant moins d'espace de stockage: SAVE "MYPROG"
  • Protégé, qui est un format crypté: SAVE "MYPROG", P

Dans les trois cas, le programme sera écrit dans le répertoire de travail courant avec le nom MYPROG.BAS.

PC-BASIC peut lire et écrire des fichiers protégés créés par GW-BASIC. Contrairement à GW-BASIC, cependant, il ne désactive pas accéder au contenu non crypté du fichier. Le cryptage utilisé par GW-BASIC a été rompu il y a plusieurs décennies, de sorte que le mode protégé a offert peu de protection de toute façon; interdisant l'accès est un petit risque de sécurité car elle permettrait à quelqu'un de vous envoyer un programme que vous ne pouvez pas inspecter avant de l'exécuter. Cependant, il est possible de désactiver l'accès des fichiers protégés en activant l'option strict de protection.

Vous pouvez lire un fichier de programme en mémoire avec LOAD "MYPROG". Cela effacera le programme actuellement en mémoire et le remplacer par une lecture à partir du répertoire de travail courant. Pour accéder à des fichiers dans un répertoire différent, spécifiez un chemin à partir du répertoire en cours. La spécification de chemin suit les conventions DOS. Le seul séparateur de chemin d'accès valide est le backslash \. Par exemple, LOAD "PROGRAMMES \ MYPROG".

Vous pouvez charger ou d'exécuter un programme immédiatement sur le démarrage PC-BASIC en utilisant la charge ou les options d'exécution. Par exemple, pcbasic --run = MYPROG.BAS

Les arguments de ces options peuvent être fournis en tant que chemins de PC-BASIC ou chemins d'accès dans le formulaire standard pour votre système d'exploitation.

PC-BASIC peut être utilisé pour convertir entre les trois formats de programmes: soit en chargeant le programme et l'enregistrement dans le format de votre choix, ou à partir de la ligne de commande en utilisant l'option de conversion. Pour convertir un fichier tokenised ou protégé en texte brut, vous pouvez utiliser, par exemple: pcbasic --convert = A PROGRAMP.BAS PROGRAMA.BAS Accès à vos lecteurs

Par défaut, la lettre de lecteur Z: est mappé sur le répertoire de travail courant et est le lecteur en cours. En particulier, il n'a pas été mappé à Windows Z: lecteur, si cela existe. Vous pouvez tracer des commandes et d'autres endroits du système de fichiers comme des lettres de lecteur PC-BASIC en utilisant l'option de montage. Par exemple, --mount pcbasic = A: / home / moi / BasicFloppy, C: / home / moi / Stuff ou, sous Windows, --mount pcbasic = A: C: \ Users \ Me \ BasicFloppy, C: C: \ Users \ Me \ Stuff tracera ces endroits au PC-BASIC A: et C: les lecteurs.

Si vous voulez que les lettres de lecteur de PC-BASIC soient les mêmes que celles de Windows, activez l'option carte-lecteurs. Utilisez ceci avec prudence, car cela signifie que vos programmes peuvent maintenant lire et écrire sur tous les lecteurs que Windows vous permet d'accéder.

PC-BASIC utilise les conventions DOS pour les noms de fichiers et les chemins. Ce sont subtilement différents de conventions à court de noms de fichiers Windows et pas si subtilement différent de conventions Unix. Cela peut conduire à des effets surprenants en présence de plusieurs fichiers qui correspondent au même nom DOS. Pour éviter de telles surprises, il est préférable d'exécuter PC-BASIC dans un répertoire de travail propre et utiliser tout en majuscules format 8.3 pour tous les fichiers. fichiers de base compatibles

De nombreux dialectes BASIC utilisent les mêmes .BAS d'extension, mais leurs fichiers ne sont pas compatibles. PC-BASIC exécute les fichiers de programme GW-BASIC seulement. Quelques conseils pour reconnaître les programmes GW-BASIC:

  • fichiers GW-BASIC stockées sous forme de texte sont des fichiers texte avec les numéros de ligne.
  • fichiers Tokenised sont des fichiers binaires qui commencent par octet magique & hFF.
  • Les fichiers protégés sont des fichiers binaires qui commencent par octet magique & hFE.

En particulier, les fichiers QBASIC (qui ont aucun numéro de ligne) et les fichiers QuickBASIC (octet magique et HFC) ne fonctionnera pas.

PC-BASIC va accepter à la fois DOS et Unix conventions newline pour les programmes stockés sous forme de texte brut. Toute ligne ne commençant pas par un nombre sera considéré comme une continuation (par LF) de la ligne précédente. Ce comportement est différent de GW-BASIC, qui accepte uniquement les fichiers texte avec CR fins de ligne LF. En conséquence, dans les cas exceptionnels où une ligne de programme se poursuit par le biais LF juste avant un certain nombre, des fichiers texte GW-BASIC correctes ne peuvent pas être chargés correctement. Si vous rencontrez un tel cas, utilisez l'option stricte-newline pour permettre un comportement GW-BASIC. Si stricte-newline est activée, les fichiers texte au format standard Unix (terminaisons de ligne LF, aucun caractère de fin de fichier) ne parviennent pas à charger. Sous Linux ou Mac, utilisez un utilitaire tel que unix2dos pour convertir des programmes enregistrés en tant que fichiers texte avant de les charger. Lors de l'enregistrement en tant que texte, PC-BASIC utilise toujours les fins de ligne CR LF et & H1A à la fin de fichier. Paquets

PC-BASIC peut exécuter des programmes emballés. Un paquet est tout simplement une archive d'annuaire ou zip. Le répertoire ou le contenu fichier zip seront chargés dans le répertoire de travail actuel. Si un fichier de configuration nommé PCBASIC.INI est présent à l'intérieur de ce répertoire, ses paramètres sont chargés; habituellement, l'un de ces paramètres sera un argument de l'exécution des liens vers un programme BASIC inclus dans l'archive ou un répertoire. PC-BASIC reconnaîtra zipfiles quel que soit leur extension. Une extension suggérée pour les packages de PC-BASIC est .BAZ. Les forfaits sont un choix pratique si un programme a besoin de changer de nombreuses options de PC-BASIC pour fonctionner comme vous le souhaitez, ou si elle a besoin d'une configuration de répertoire de travail particulier.

packages ZipFile sont décompressés dans un répertoire temporaire chaque fois qu'ils sont chargés. Le répertoire temporaire est supprimé lorsque PC-BASIC ferme. Avec des forfaits fichier zip, il est donc pas possible d'enregistrer des fichiers et les rouvrir à la prochaine exécution de l'emballage. Tapes et BASICODE

Les interfaces de périphériques CAS1 avec l'émulateur de cassette. Les bandes ont jamais été très populaire sur l'IBM PC, et en effet uniquement disponible avec le PC d'origine et le PCjr. Il n'y a pas beaucoup de cassettes IBM PC à l'état sauvage. Toutefois, si vous tombez sur l'un, tout ce que vous avez à faire pour le lire avec PC-BASIC est l'enregistrer dans un .WAV (RIFF WAVE) fichier et l'attacher à l'CAS1: appareil avec le CAS1 = WAV: option filename. Vous pouvez également générer vos propres images de bande et stocker vos programmes sur elle. fichiers WAV générés par PC-BASIC sont grandes mais très facilement comprimé dans une archive ZIP; cela fonctionne mieux et conduit à des fichiers plus petits que le transcodage à un format audio lossy comme MP3.

Comme alternative à .WAV, vous pouvez stocker des cassettes au format CAS. Ceci est tout simplement un peu-dump de la bande et est interchangeable avec des images de bande pour le PCE IBM PC émulateur.

BASICODE était un format de codage audio beaucoup plus fréquent, qui a connu une grande popularité, en particulier aux Pays-Bas, le Royaume-Uni et Allemagne de l'Est. BASICODE a été distribué par des bandes ou diffusion audio sur la radio. La lecture dans un matériel spécial de PC nécessaire, habituellement brancher un magnétophone à un port série ou parallèle. Dans PC-BASIC, bandes BASICODE sont lus à travers le dispositif de CAS1 à la place, en attachant un fichier .WAV avec le CAS1 = BC: option filename. PC-BASIC va charger le BASICODE, en insérant les espaces nécessaires entre les mots-clés où la norme de BASICODE laisse ces out. Notez que vous aurez besoin d'un programme Bascoder pour exécuter le BASICODE, et ce n'est pas distribué actuellement avec le PC-BASIC.

Sécurité Si vous avez un Bascoder nommé BASCODER.BAS, la façon d'exécuter un programme de BASICODE programme nommé de la bande est: LOAD "BASCODER" CHAIN ​​MERGE "PROGRAM CAS1"

PC-BASIC fait des choix par défaut avec la sécurité de base à l'esprit, mais ne bac à sable pas ses programmes de manière significative. programmes BASIC ont un accès plus ou moins complet à votre ordinateur. Vous devez les traiter avec la même prudence que vous shell scripts ou binaires. Par conséquent, ne pas exécuter un programme à partir de l'Internet que vous ne l'avez pas inspecté la première utilisation LIST ou --convert pcbasic = Un nom de fichier sur la ligne de commande. Vous ne voudriez pas simplement télécharger un exécutable à partir de l'Internet et l'exécuter soit, non? Connexion à des périphériques d'impression

Vous pouvez imprimer à partir de programmes de PC-BASIC en accédant au LPT1: périphérique. PC-BASIC envoie la sortie à l'imprimante par défaut de votre système d'exploitation, sauf si vous modifiez l'lpt1 = option. Pour imprimer via une imprimante nommée MyPrinter, définissez lpt1 = IMPRIMANTE: MyPrinter. Vous pouvez également joindre des imprimantes au LPT2: et LPT3: dispositifs.

La sortie sera envoyé à l'imprimante lorsque vous fermez PC-BASIC. Si vous préférez, vous pouvez plutôt envoyer chaque page séparément à l'imprimante en réglant l'impression-trigger = page. Vous pouvez même envoyer chaque ligne séparément, mais cela n'a de sens que sur une imprimante tracteur alimenté (comme il était courant à l'apogée de GW-BASIC).

Il est facile d'imprimer un fichier au lieu d'une imprimante: set lpt1 = FICHIER: sortie.txt pour envoyer tous les LPT1: sortie de l'imprimante dans le fichier texte sortie.txt.

Les états d'impression LPRINT et LLIST envoient toujours leur production à LPT1 de PC-BASIC: appareil.

La présentation des documents imprimés est laissée à votre système d'exploitation: ce sera la présentation par défaut des fichiers texte. Si vous Wist changer la façon dont les documents sont imprimés, s'il vous plaît consulter les paramètres de votre OS. Sous Windows, par exemple, les fichiers texte sont imprimés par notepad.exe et en changeant les paramètres par défaut dans cette application va changer la façon dont les documents PC-BASIC sont imprimés. Vous aurez besoin de définir une police d'imprimante qui comprend les caractères dont vous avez besoin d'imprimer. Sur les systèmes Unix, PC-BASIC va utiliser l'utilitaire paps si elle est disponible; cela sélectionnera automatiquement les polices qui prennent en charge les caractères dont vous avez besoin. ports série et parallèle

PC-BASIC fournit les périphériques série COM1: et COM2 :. Pour faire usage de ceux-ci, vous avez besoin de les attacher à un port de communication sur votre ordinateur avec le com1 = ou com2 = option. Pour joindre le premier port série physique, réglez com1 = PORT: 0 (ou, alternativement, com1 = PORT: COM1 sous Windows ou com1 = PORT: / dev / ttyS0 sous Linux). Si vous ne disposez pas d'un port série, vous pouvez émuler un en envoyant les communications sur une prise réseau: set com1 = SOCKET: localhost: 7000 et tout COM1: le trafic sera envoyé par socket 7000.

Pour accéder à un port parallèle, fixez-le à l'un des LPT1 :, LPT2: ou LPT3 :. Par exemple, définissez lpt2 = PARPORT: 0 à joindre premier port parallèle de votre ordinateur pour LPT2 :. Modification des cibles d'émulation de l'interface

Par défaut, PC-BASIC émule GW-BASIC sur un système avec des capacités vidéo VGA. Cependant, il peut émuler plusieurs autres configurations, qui diffèrent les unes des autres en termes de vidéo et de la capacité audio, polices, taille de la mémoire, ainsi que la syntaxe de base disponibles. La meilleure façon de définir la cible d'émulation est en utilisant une option prédéfinie. Par exemple, exécutez pcbasic --preset = PCjr. Autres disponibles presets cibles d'émulation sont: Preset Emulation cible PCjr IBM PCjr avec cartouche BASIC, y compris la vidéo de PCjr et les capacités sonores de 3 voix et la syntaxe BASIC étendu. tandy Tandy 1000 avec GW-BASIC, y compris Tandy capacités vidéo et audio 3-voix et la syntaxe BASIC étendu. Olivetti Olivetti M24 ou AT & T PC 6300. cga IBM ou compatible avec Color Adapter / Graphics et un moniteur composite. Cela permet à l'émulation colorburst composite. ega IBM ou compatible avec Graphics Adapter Extended. vga IBM ou compatible avec Video Graphics Array. mda IBM ou compatible avec l'adaptateur Monochrome Display et moniteur monochrome teinté de vert. hercules IBM compatible avec Hercules Graphics Adapter et moniteur monochrome teinté de vert. stricte Choisissez compatibilité stricte avec GW-BASIC sur la commodité, la sécurité, rime ni raison.

Presets sont des groupes d'options qui sont définies dans le fichier de configuration par défaut. Vous pouvez créer vos propres presets en créant un en-tête dans votre fichier de configuration privée avec le nom du nouveau preset, suivie par les options que vous souhaitez appliquer. Par exemple, si vous définissez: [my_preset] video = vga syntaxe = PCjr vous pouvez maintenant exécuter pcbasic --preset = my_preset pour démarrer une émulation d'une machine hypothétique avec une carte vidéo VGA en cours d'exécution PCjr Cartridge BASIC. caractéristiques de compatibilité GW-BASIC

PC-BASIC vise un très haut niveau de compatibilité avec GW-BASIC. Cependant, certaines fonctionnalités de compatibilité sont désactivées par défaut pour des raisons de commodité ou de sécurité. Ces caractéristiques peuvent être activées à l'aide des options individuelles de ligne de commande. Le plus haut niveau de compatibilité avec GW-BASIC peut être atteint par la mise en preset = strict, qui arrête toutes les caractéristiques de commodité et de sécurité qui provoquent des différences avec GW-BASIC. codepages

PC-BASIC prend en charge un grand nombre de codepages existants qui étaient communs à l'époque GW-BASIC était populaire, y compris deux octets jeu de caractères codepages utilisés pour le chinois, le japonais et le coréen. Vous pouvez choisir votre codepage en utilisant le codepage = option. Par exemple, codepage = 936 sélectionne le codepage GBK couramment utilisé sur le continent chinois. PC-BASIC va charger et sauvegarder tous les fichiers de programme comme si codé dans le codepage vous sélectionnez.

Il est également possible de charger et enregistrer des programmes dans le format UTF-8 norme aujourd'hui commune, en activant l'option utf8. Lorsque utf8 est activé, la source de programme en texte brut sera sauvegardé et chargé dans la norme UTF-8. S'il vous plaît noter que vous aurez toujours besoin de sélectionner un codepage qui fournit tous les caractères Unicode que vos besoins du programme.

Notez que PC-BASIC ne met pas en œuvre les fonctionnalités suivantes relatives à certains de ces codepages:

Le texte bidirectionnel

Tout le texte est imprimé gauche à droite indépendante du codepage sélectionné. Pour écrire des chaînes dans une langue qui est écrit de droite à gauche, la séquence de caractères logique doit être inversée afin que l'ordre semble correct visuellement. Bien que ce soit gênant, il est en ligne avec le comportement de GW-BASIC. Cela affecte les pages de codes marqués par B dans le tableau.

La combinaison de caractères

 PC-BASIC reconnaît les points de code d'un octet (où chaque glyphe montre sur une seule cellule sur l'écran) et les points de code à deux octets (où un seul glyphe prend deux cellules sur l'écran).  Les caractères combinatoires (tels que les caractères combinatoires de codepages 874 et 1258) ne sont donc pas représentés correctement: au lieu d'être combiné avec leur caractère de base précédent comme un seul glyphe combiné, ces combinaisons seront affichés comme des glyphes distincts.  Lorsqu'elles sont disponibles, codepages alternatives avec des caractères précomposés donnera de meilleurs résultats.  Cela affecte les pages de codes marqués par C dans le tableau. 

Les codepages suivants sont disponibles. PC-BASIC utilise le numéro de page de code Microsoft OEM lorsque cela est sans ambiguïté. Les pages de code devraient se mettre d'accord avec les sources Microsoft pour les plages et h80- & HFF. Ranges & h00- & H1F et & H7F sont mises en œuvre comme les caractères IBM Special Graphic où certaines sources de page de code va lister ceux-ci comme les caractères de contrôle correspondant. Pour codepages non officiels et ceux avec numérotation contradictoires, les noms de codes de pages sont utilisés à la place des numéros. codepage_id Codepage Langues Remarques 437 DOS latine États-Unis English 720 Transparent ASMO Arabe B 737 DOS grec grec 775 DOS Baltic Rim estonien, letton et lituanien 806 IBM-PC Devanagari Hindi 850 DOS Latin 1 langues d'Europe occidentale 851 DOS grec 1 grec 852 DOS latine 2 Central langues européennes 853 DOS latine 3 langues d'Europe du Sud 855 DOS cyrillique 1 serbe, macédonien et bulgare 856 DOS hébreu hébreu B 857 DOS latine 5 turc 858 DOS latin 1 avec Euro occidentaux langues européennes 860 DOS portugais portugais 861 DOS islandais Icelandic 862 DOS hébreu hébreu B 863 DOS canadienne français français 864 DOS arabe arabe B 865 DOS Nordic danois et norvégien 866 DOS cyrillique 2 Russian 868 DOS Urdu Urdu B 869 DOS grec 2 grec 874 TIS-620 Thai C 932 Shift-JIS (variante) japonais 934 DOS / V Corée Korean 936 GBK; GB2312 / EUC-CN surensemble Chinois simplifié 938 DOS / V Taiwan traditionnelle chinoise 949 IBM-PC Corée KS; EUC-KR superset 950 Big-5 (variante) traditionnelle chinoise 1258 Vietnamiens C alternativnyj GOST Alternativnyj Variant armscii8a russe ArmSCII-8a coréenne; cp899 FreeDOS arménienne Big5-2003 Big-5 (Taiwan 2003) Chinois Big5-HKSCS Les traditionnelles Big-5 (Hong Kong 2008) Chinois georgian-académie traditionnelle Académie standard Georgian georgian-ps Parlement géorgien standard iransystem Iran Système persan B ISCII-as ISCII Assamais assamais C ISCII-être ISCII bengali bengali C ISCII-de ISCII Devanagari hindi, le marathi, le sanskrit, konkani, Nepali C ISCII-gu ISCII gujarati gujarati C ISCII-ka ISCII Kannada Kannada C ISCII-ma ISCII malayalam malayalam C ISCII ou ISCII Oriya Oriya C ISCII-pa ISCII Punjabi Punjabi C ISCII-ta ISCII Tamil Tamil C ISCII-te ISCII Telugu Telugu C Kamenicky Kamenický; cp895 tchèque koi8-r KOI8-R russe koi8-ru KOI8-RU ukrainiens, biélorusses, russes koi8-u KOI8-U ukrainiens, russes mazovia Mazovie; cp667, 991, 790 Polonais mik MIK, FreeDOS cp3021 Osnovnoj bulgare GOST Osnovnoj Variant pascii russe PASCII Kashmiri, le persan, le sindhi, l'ourdou B ruscii RUSCII ukrainienne, russup3 russe Cornell soutien russe pour russup4ac russe Exceller Software Support russe DOS for Academic russe DOS russup4na Exceller Software support russe pour le russe DOS de non-académique VISCII VISCII, FreeDOS cp30006 vietnamienne

Vous pouvez ajouter des codepages à PC-BASIC, en ajoutant un fichier avec son application en Unicode au codepage / répertoire.

Polices[modifier | modifier le wikicode]

PC-BASIC émule les polices raster distinctives des machines compatibles IBM. Les polices ROM des adaptateurs originaux IBM et Tandy (qui sont dans le domaine public dans un certain nombre de pays) ont été inclus dans PC-BASIC. Ceux-ci fournissent l'émulation la plus précise. Cependant, les ROM de police seulement inclus une page de code unique - DOS latine États-Unis 437.

Pour prendre en charge les pages de code au-delà de 437, par défaut de PC-BASIC à la police CPIDOS utilisé par défaut dans FreeDOS et DOSBox. Cette police est très similaire dans le style à la police IBM VGA, mais a un support pour beaucoup plus de pages de code, en particulier de l'Ouest et du Moyen-Orient alphabets. Si CPIDOS ne comprend pas les caractères dont vous avez besoin, essais de PC-BASIC pour les trouver au sein d'UNI-VGA, qui est également très similaire au style VGA. Si cela ne suffit pas, PC-BASIC retombe GNU unifont pour les caractères manquants. glyphes occidentaux unifont sont moins similaires à la police VGA, mais il fournit un support pour le plein plan multilingue de base Unicode. Par exemple, tous les Chinois, les glyphes japonais et coréens dans PC-BASIC sont tirées de unifont.

Il est possible de modifier le choix de la police en utilisant la police = option. Vous pouvez fournir une liste de polices, où la dernière police spécifiée est le plus préféré.

PC-BASIC lit les polices dans le format .hex introduit par unifont. Il est facile de définir des polices personnalisées dans ce format: il peut être modifié dans un éditeur de texte normal. Voir le projet unifont pour un outil de création. Vous pouvez ajouter des polices personnalisées pour PC-BASIC en les installant dans la police / sous-répertoire du répertoire d'installation de PC-BASIC.

Par défaut, les polices suivantes sont disponibles: font_name Nom Tailles Codepages unifont GNU unifont 16 tous univga Uni-VGA police 16 de nombreux freedos FreeDOS CPIDOS font 8, 14, 16 de nombreux cga IBM Couleur / Graphics Adapter police 8 437 seulement mda IBM Monochrome Display Adapter police 14 437 seulement vga Video Graphics IBM tableau font 8, 14, 16 437 seulement Olivetti Olivetti / AT & T font 16 437 seulement tandy1 Tandy-1000 police ancienne version 8 437 seulement tandy2 Tandy-1000 police nouvelle version 8 437 seulement

GNU unifont contient glyphes pour tous les points de code définis du plan multilingue de base d'Unicode 7.0, ce qui en fait une excellente police de repli. Ses glyphes ne sont pas, cependant, très semblables à ceux qui ont été utilisés sur les machines DOS; tant Uni-VGA et les polices FreeDOS CPIDOS sont donc plus approprié, quand ils ont les glyphes nécessaires. Redirection I / O

supports PC-BASIC redirigeant entrée et la sortie de la GW-BASIC façon: sortie redirigée avec la sortie = option sera envoyée à l'écran ainsi que le fichier spécifié, alors que l'entrée redirigée avec entrée = est prise uniquement à partir du fichier spécifié. Notez que la sortie de l'écran à travers le SCRN: appareil et l'entrée au clavier par l'intermédiaire du KYBD: dispositif ne sont pas redirigée. Les fichiers sont lus et écrits dans le codepage ensemble avec PC-BASIC.

Notez qu'il est également possible d'utiliser l'installation de votre système d'exploitation pour rediriger la sortie de la console en utilisant les opérateurs <et>. Il est préférable de définir l'interface = none pour que I / O est redirigé via la console. Cela produira des fichiers dans le codage standard de votre console, ce qui est souvent UTF-8 sur Unix et Windows-1252 sur Windows. Interface de ligne de commande

Vous pouvez exécuter PC-BASIC comme une interface de ligne de commande en définissant l'interface = cli (ou -b). Aucune fenêtre sera ouverte: vous pouvez taper des commandes BASIC directement dans votre invite de commande / Terminal. Utilisez les touches fléchées horizontales pour se déplacer sur la ligne courante que vous éditez; utilisez les touches fléchées verticales pour afficher les lignes d'écran ci-dessus et ci-dessous. Copier et coller ne sont disponibles que si le shell appelant leur fournit. Sous Windows, Ctrl + Pause prendra fin immédiatement PC-BASIC. Vous pouvez utiliser Ctrl + C pour interrompre le programme. La combinaison de touches de fin de fichier (Ctrl + D sur Unix, Ctrl + Z sous Windows) va quitter PC-BASIC.

Vous pouvez utiliser l'interface de ligne de commande pour exécuter une ou quelques commandes de base directement, comme ceci:

moi @ mybox $ pcbasic -bqe = "1 + 1"

 2

moi @ mybox $

Aux fins de script, il est également possible d'exécuter PC-BASIC sans interface en définissant l'interface = none ou -n. Si ce paramètre est réglé, PC-BASIC prendra entrée de et envoyer la sortie à la console en UTF-8 sans autre modification. Cette fonction est utile en combinaison avec la redirection et la tuyauterie. interface texte-

Il y a aussi une interface de texte plein-écran disponible: il permet par l'interface de réglage = texte (ou -t). L'interface à base de texte est très similaire à l'interface graphique par défaut, mais fonctionne dans votre invite de commande ou de la fenêtre Terminal.

Dans les interfaces à base de texte et de ligne de commande, les graphiques ne sont pas disponibles. Toute tentative d'ouverture d'un mode écran graphique conduira à une erreur d'appel de fonction illégale. En outre, de nombreuses combinaisons de touches Ctrl et Alt ne sont pas disponibles.

Sur les systèmes Unix uniquement, vous pouvez obtenir le son dans les interfaces de texte et de ligne de commande sur le haut-parleur du PC si vous installez l'utilitaire de bip et activez l'héritage pilote PC-parleur ou l'émulation. Les réglages et options

PC-BASIC a un certain nombre de paramètres qui modifient la façon dont il fonctionne. Ces paramètres peuvent être modifiés en définissant des options sur la ligne de commande ou par la modification du fichier de configuration.

Dans les deux méthodes, les options ont le même nom et la syntaxe. Dans ce qui suit, nous allons souvent faire référence à un paramètre d'option particulière; rappelez-vous que vous pouvez définir ce à partir de la ligne de commande, ainsi que dans le fichier de configuration.

Options de ligne de commande[modifier | modifier le wikicode]

Vous pouvez entrer des options de ligne de commande si vous démarrez PC-BASIC de la console (également connu sous le nom d'invite de commandes ou de terminal, ce qui est normalement CMD ou PowerShell sous Windows), en faisant précéder le nom de l'option avec deux tirets, comme suit: pcbasic --preset = tandy --ctrl-c-break = True

Sur la ligne de commande, vous pouvez laisser l'expression = True qui est commun dans les options de commutation. Certaines options ont une alternative, nom court composé d'une seule lettre précédée d'un seul tableau de bord, que vous pouvez utiliser sur la ligne de commande. Vous pouvez combiner plusieurs options courtes avec un seul tableau de bord. Les fichiers de configuration

Vous pouvez modifier les options en ajoutant ou en supprimant des lignes dans votre fichier de configuration local, qui se trouve à l'emplacement suivant:

Windowss

 %AppData% \ pcbasic \ PCBASIC.INI

OS X

 ~ / Library / Application Support / pcbasic / PCBASIC.INI

Linux

 ~ / .config / Pcbasic / PCBASIC.INI

Changer une option dans le fichier de configuration en ajoutant une ligne dans la section [pcbasic], comme ceci: [pcbasic] preset = tandy ctrl-c-break = True

Vous ne pouvez pas utiliser des arguments de position ou le nom court d'options dans le fichier de configuration. Vous pouvez également ne pas laisser de côté l'expression = True.

Le fichier de configuration doit être un fichier texte encodé en ASCII ou UTF-8. Synopsis pcbasic [programme | package [sortie]] [--allow code-piquez [= True | = False]] [--altgr [= True | = False]] [--append [= True | False =]] [--aspect = x, y] [-b] [--border = largeur] [--caption = titre] [--capture-caps [= True | = False]] [--cas1 = Type: valeur] [--cga-bas [= True | = False]] [--codepage = codepage_id] [--config = config_file] [--com1 = Type: valeur] [--com2 = Type: valeur] [--convert = {A | B | P}] [--copy-paste = copy_button, paste_button] [--ctrl-c-break [= True | = False]] [--current-device = {CAS1 | @ | A | B ... | Z}] [--dimensions = x, y] [-d] [--double [= True | = False]] [-e = command_line] [--exec = command_line] [--font = font_name [, font_name ...]] [--fullscreen [= True | = False]] [-h] [--help] [-i] [--input = fichier_entrée] [--interface = {none | cli | texte | graphique}] [-k = keystring] [--keys = keystring] [-l = programme] [--load = programme] [--logfile = log_file] [--lpt1 = Type: valeur] [ --lpt2 = Type: valeur] [--lpt3 = Type: valeur] [--map-disques [= True | = False]] [-f = NUMBER_OF_FILES] [--max-files = NUMBER_OF_FILES] [-m = max_memory [, basic_memory_blocks]] [--max-memory = max_memory [, basic_memory_blocks]] [-s = record_length] [--max-reclen = record_length] [--monitor = {rgb | composite | mono}] [- mono-teinte = r, g, b] [--mount = lecteur: chemin, [lecteur: chemin ...]] [-n] [--nobox [= True | = False]] [--nokill [= True | = False]] [--nosound [= True | = False]] [--output = output_file] [--pcjr terme = terminal_program] [--peek = [seg: addr: val [, seg: addr : val ...]]] [--pen = {left | milieu | right | none}] [--preset = option_block] [--print-trigger = {line | page | fermer}] [-q] [ --quit [= True | = False]] [--reserved-memory = nombre_octets] [--resume [= True | = False] [-r = programme] [--run = programme] [--scaling = { lisse | croquante | natif}] [-c = size] [--serial-buffer-size =] [--shell = {none | native | commande]] [--state = state_file] [--strict-caché trapézoidale [= True | = False]] [--strict-newline [= True | = False]] [--strict-protect [= True | = False]] [--syntax = {avancée | PCjr | tandy} ] [-t] [--text-width = {40 | 80}] [--utf8 [= True | = False]] [-v] [--version] [--video = carte] [--video -Mémoire = size] [-w] [--wait [= True | = False]] arguments positionnels

programme

 Si un programme .BAS est spécifié comme premier argument de position, il sera exécuté.  Le --run, --load et les options --convert remplacent ce comportement. 

paquet

 Si un paquet ou un répertoire zipfile est spécifié comme premier argument de position, tout fichier de configuration contenu PCBASIC.INI sera chargé;  habituellement, il exécutera un fichier de programme dans le package.  Toutes les autres options de ligne de commande remplacent le fichier de configuration de package, noter en particulier le potentiel de la --run, --load et les options --convert pour modifier le comportement de l'emballage. 

sortie

 Si un second argument de position est spécifié, il définit le fichier de sortie pour la conversion de format de fichier.  Cet argument est ignoré sauf si l'option --convert est donnée. 

options de

--allow code-tisonner [= True | = False]

 Permettre aux programmes de Poke dans la mémoire de code. 

--altgr [= True | = False]

 Si True (par défaut), interpréter la touche Alt droite comme Alt Gr au lieu de Alt.  La touche Alt gauche est toujours considérée comme Alt. 

--append [= True | = False]

 Si elle est utilisée avec --output = output_file, l'output_file est ajouté à plutôt que écrasé. 

--aspect = x, y

 Réglez le format d'affichage pour x: y.  A seulement un effet si elle est combinée avec --interface = graphique. 

-b

 Utilisez l'interface de ligne de commande.  Ceci est identique à --interface = cli. 

= largeur --border

 Régler la largeur de la bordure de l'écran en tant que pourcentage de 0-100.  Le pourcentage se réfère à la largeur totale des frontières des deux côtés comme une fraction de la largeur de l'écran utilisable.  A seulement un effet si elle est combinée avec --interface = graphique. 

--caption = title

 Définir la légende de la barre de titre de la fenêtre de PC-BASIC.  Titre par défaut est PC-BASIC. 

--capture-caps [= True | = False]

 Laissez PC-BASIC gérer la touche Caps Lock.  Cela peut ou peut ne pas interférer avec sa propre manipulation du système d'exploitation de cette clé.  A seulement un effet si elle est combinée avec --interface = graphique. 

--cas1 = Type: valeur

 Joindre une ressource au CAS1: dispositif de cassette.  Type: la valeur peut être
 WAV: wav_file
       Connectez-vous au fichier wav_file RIFF Wave avec des données modulées en format de cassette IBM PC. 
   CAS: cas_file
       Connectez-vous au PCE / PC-BASIC bande CAS Image cas_file. 
   BC: wav_file
       Connectez-vous au fichier wav_file RIFF Wave avec des données modulées en format BASICODE. 

--cga-bas [= True | = False]

 Utilisez les palettes de faible intensité dans les modes CGA.  A seulement un effet si combiné avec --video = {cga | cga_old | ega | vga}. 

--codepage = codepage_id

 Chargez le codepage spécifié.  Le codepage détermine quels caractères sont associés à un octet de caractère donné ou, dans le cas de codepages double octet, deux octets de caractères.  Les codepages disponibles sont stockés dans le codepage / répertoire;  par défaut, ce sont:
 720 737 775 437 806 850 851 852 853 855 856 857 858 860 861 862 863 864 865 866 868 869 874 932 934 936 938 949 950 1258 alternativnyj armscii8a Big5-2003 big5-HKSCS georgian-academy georgian-ps iransystem ISCII-as iscii- be-ka-gu ISCII-de-ma ISCII ISCII ou ISCII-pa-ta ISCII ISCII-te Kamenicky koi8-r koi8-ru koi8-u mazovia mik Osnovnoj pascii ruscii russup3 russup4ac russup4na VISCII 
 .  Voir la liste des codepages dans le Guide de l'utilisateur pour plus de détails. 

--config = config_file

 Lire un fichier de configuration.  La configuration par défaut du système est toujours lu en premier, mais un groupe prédéfini d'options dans un fichier de configuration remplace l'ensemble du groupe présélectionner équivalent par défaut. 

--com1 = Type: valeur

 Joindre une ressource à la COM1: périphérique série.  Type: la valeur peut être l'une des suivantes.
 PORT: device_name
       Se connecter à un périphérique série.  device_name peut être un nom de périphérique tel que COM1 ou / dev / ttyS0 ou un numéro, où le premier port série est le numéro 0. 
   SOCKET: host: socket
       Se connecter à un socket TCP sur un hôte distant ou local. 
   STDIO [: [CRLF]]
       Connectez-vous à I / S standard de la coque appelant.  Si CRLF est spécifié, PC-BASIC remplace les caractères CR LF sur sa sortie et LF avec CR sur son entrée.  Ceci est plus intuitive sur shells Unix.  Lorsque vous utilisez une console Unix, vous devez utiliser stty -icanon pour permettre PC-BASIC de lire correctement entrée. 
 Si cette option est spécifiée, le COM1: périphérique est indisponible. 

--com2 = Type: valeur

 Joindre une ressource au COM2: périphérique série.  Voir --com1. 

--convert = {A | B | P}

 Autre programme à l'un des formats suivants:
 UNE
       texte brut
   B
       Tokenised
   P
       Protégé
 Si la sortie est pas spécifiée, écrire sur la sortie standard.  Si le programme n'a pas été spécifié, utilisez l'argument de --run ou --load.  Si aucun de ceux sont donnés, lire à partir de l'entrée standard.  Remplacements --resume, --run et --load. 

--copy-coller = copy_button, paste_button

 Choisissez les boutons de la souris pour les opérations de presse-papiers.  copy_button et paste_button sont choisis de gauche, au milieu, à droite, aucun. 

--ctrl-c-break [= True | = False]

 Si False, suivez le comportement GW-BASIC où Ctrl + C casse AUTO et INPUT, mais pas l'exécution ou LIST programme.
   Si vrai, traiter Ctrl + C exactement comme Ctrl + Pause et Ctrl + Scroll Lock quand --interface = graphique.
   Avec --interface = {text | cli}, Ctrl + C est toujours traité comme Ctrl + Break.
   Par défaut est True. 

--current-device = {CAS1 | @ | A | B ... | Z}

 Réglez le dispositif actuel à la lettre de lecteur indiqué PC-BASIC ou CAS1 pour le dispositif de cassette.  Le dispositif choisi doit être monté à un emplacement réel en utilisant --mount (ou --cas1 si le dispositif de cassette est choisi).  Par défaut est Z, avec le Z: dispositif monté sur votre lecteur en cours. 

--dimensions = x, y

 Définir les dimensions de la fenêtre de x par y pixels.  Ceci remplace --scaling = native et --aspect.  A seulement un effet si elle est combinée avec --interface = graphique. 

-d --double [= True | = False]

 Activer les fonctions mathématiques transcendantes double précision.  Ceci est équivalent à l'option / j en GW-BASIC. 

-e = command_line --exec = command_line

 Exécuter command_line BASIC.  Les commandes spécifiées sont exécutées avant d'entrer en mode direct ou en cours d'exécution d'un programme. 

--font = font_name [, font_name ...]

 Utilisez les polices spécifiées pour l'interface.  Les dernières polices spécifiées ont priorité, les précédents sont repli.  Par défaut est unifont, univga, freedos (ie la police de freedos a la préférence).  Les polices disponibles sont stockées dans la police /.  Par défaut, les polices suivantes sont disponibles:
 unifont univga freedos cga mda vga olivetti tandy1 tandy2 
 .  Voir la liste des polices dans le Guide de l'utilisateur pour plus de détails. 

--fullscreen [= True | = False]

 Mode plein écran.  A seulement un effet si elle est combinée avec --interface = graphique. 

-h --help

 Afficher un message d'aide et quitter. 

-je

 Cette option est ignorée.  Il est inclus uniquement pour la compatibilité avec GW-BASIC / i. 

--input = fichier_entrée

 Récupérer l'entrée du clavier de fichier_entrée, sauf si KYBD: est lu de manière explicite.  Entrée de Kybd: fichiers est toujours lue à partir du clavier, suivant le comportement GW-BASIC. 

--interface = {none | cli | texte | graphique}

 Choisissez le type d'interface.  Les types d'interface suivants sont disponibles:
 aucun
       Filtre pour l'utilisation avec des tuyaux.  Aussi -n.
   cli
       Interface de ligne de commande.  -b également.
   texte
       basée sur le texte de l'interface.  En outre -t.
   graphique
       Interface graphique.
 La valeur par défaut est graphique. 

-k = keystring --keys = keystring

 Insérez le keystring dans la mémoire tampon du clavier. 

-l = programme --load = programme

 Démarrez en mode direct avec le programme BASIC chargé. 

--logfile = log_file

 Ecrire des messages d'erreur et d'avertissement à LOG_FILE au lieu de stderr. 

--lpt1 = Type: valeur

 Joindre une ressource au LPT1: périphérique parallèle.  Type: la valeur peut être
 IMPRIMANTE: printer_name
       Se connecter à un Windows, LPR ou imprimante de CUPS.  Si printer_name est pas spécifié, l'imprimante par défaut est utilisée. 
   DOSSIER: file_name
       Connectez-vous à un fichier ou un périphérique tel que / dev / stdout sur Unix ou sur Windows LPT1. 
   STDIO [: [CRLF]]
       Connectez-vous à la sortie standard de la coque d'appel.  Si CRLF est spécifié, PC-BASIC remplace les caractères CR LF sur sa sortie.  Ceci est plus intuitive sur shells Unix. 
   PARPORT: numéro_port
       Se connecter à un port parallèle Centronics, où numéro_port est 0 pour le premier port parallèle, etc. PARPORT fonctionne uniquement avec les ports parallèles physiques;  par exemple, une imprimante Windows ou un autre périphérique mappé avec NET USE LPT1: ne peuvent être attachés avec FILE: LPT1 
 Si cette option est spécifiée, LPT1: est connecté à l'imprimante par défaut. 

--lpt2 = Type: valeur

 Joindre une ressource au LPT2: périphérique parallèle.  Voir --lpt1.  Si cette option est spécifiée, LPT2: est indisponible. 

--lpt3 = Type: valeur

 Joindre une ressource au LPT3: périphérique parallèle.  Voir --lpt1.  Si cette option est spécifiée, LPT3: est indisponible. 

--map durs [= True | = False]

 Sous Windows, affectez toutes les lettres de lecteur Windows vers les lettres de lecteur PC-BASIC.  Sur les autres systèmes, affecter à:
 Z:
       le répertoire courant
   C:
       la racine du système de fichiers
   H:
       le répertoire personnel de l'utilisateur.

-f = NUMBER_OF_FILES --max fichiers = NUMBER_OF_FILES

 Définir le nombre maximal de fichiers ouverts à NUMBER_OF_FILES.  Ceci est équivalent à l'option / f GW-BASIC.  Par défaut est 3. 

-m = max_memory [, basic_memory_blocks] --max mémoire = max_memory [, basic_memory_blocks]

 Définir la taille maximale du segment de mémoire de données à max_memory et la taille maximale de la mémoire de données disponibles pour BASIC basic_memory_blocks * 16.  PC-Basic, le minimum de ces valeurs est simplement la taille de la mémoire de données;  les deux valeurs sont autorisées pour la compatibilité avec l'option / m de GW-BASIC. 

-s = record_length --max-reclen = record_length

 Régler la longueur maximale d'enregistrement des fichiers RANDOM à record_length.  Par défaut est 128, le maximum est 32767. Ceci est équivalent à l'option / GW-BASIC. 

--monitor = {rgb | composite | mono}

 Définit le type de moniteur à imiter.  types disponibles sont:
 rgb
       moniteur couleur RGB (par défaut).
   composite
       Composite moniteur couleur. 
   mono
       Monochrome moniteur.
 Sur l'écran 2 avec --video = {PCjr | tandy | cga | cga_old}, --monitor = composite permet d'artefacts (brut) de couleur. 

--mono-teinte = r, g, b

 Spécifiez la teinte monochrome que les valeurs de rouge-vert-bleu r, g, b, chacun dans l'intervalle 0-255.  A seulement un effet si elle est combinée avec --monitor = mono. 

--mount = lecteur: chemin, [lecteur: chemin ...]

 Attribuez le chemin chemin pour conduire la lettre de lecteur :.  Le chemin peut être absolu ou relatif.  Par défaut, Z: est affecté au répertoire de travail courant et pas d'autres lettres de lecteur sont affectées. 

-n

 PC-BASIC comme un filtre de ligne de commande Exécuter.  Identique à --interface = none. 

--nobox [= True | = False]

 la reconnaissance de la boîte-dessin Disable pour les pages de codes du jeu de caractères à deux octets.  Par défaut, les séquences de caractères de boîte de dessin sont reconnus par un algorithme qui est pas aussi intelligent qu'il pense qu'elle est, et affichées sous forme de boîte de dessin plutôt que comme des caractères DBCS.  Si --nobox est réglé, ils seront affichés comme DBCS. 

--nokill [= True | = False]

 Laisser BASIC pour capturer Alt + F4.  Interface graphique uniquement.  Par défaut, Alt + F4 est capturé par la plupart des systèmes d'exploitation comme un signal quitter, et mettra fin à PC-BASIC.  Set --nokill pour permettre BASIC pour capturer Alt + F4 à la place.  Ceci est utile si votre programme utilise cette combinaison de touches. 

--nosound [= True | = False]

 Désactiver la sortie audio. 

--output = output_file

 Envoyer la sortie de l'écran à output_file, sauf si SCRN: est écrit explicitement.  Sortie à SCRN: les fichiers seront toujours affichés sur l'écran, comme dans GW-BASIC. 

--pcjr terme = terminal_program

 Réglez le programme de terminal géré par la commande TERM PCjr à terminal_program.  Cela n'a d'effet avec --syntax = {PCjr | tandy}. 

--peek = [seg: addr: val [, seg: addr: val ...]]

 Définir PEEK valeurs prédéfinies.  Si elle est définie, DEF SEG :?  PEEK (adr) retournera val. 

--pen = {left | milieu | right | none}

 Réglez le bouton de la souris pour l'émulation de stylo optique.  Par défaut est à gauche.  Si la valeur none, l'émulation de stylo lumière est éteinte.  Sur Android, gauche signifie la saisie tactile. 

--preset = option_block

 machine à charge des options prédéfinies.  Une option prédéfinie correspond à une section définie dans un fichier de configuration par un nom entre crochets, comme
   [ce]
   --preset = ceci va charger tous les paramètres définis dans cette section.  presets disponibles dépendent de votre fichier de configuration.  Voir la liste des paramètres prédéfinis par défaut dans le Guide de l'utilisateur. 

--print-trigger = {line | page | fermer}

 Réglez le déclencheur pour vider le tampon d'impression à l'imprimante.
 ligne
       L'imprimante est activé après chaque saut de ligne.
   page
       L'imprimante est activé après chaque saut de page.
   Fermer
       L'imprimante est activée uniquement lorsque les sorties PC-BASIC.
 Default est proche. 

-q --quit [= True | = False]

 Quittez l'interprète lorsque l'exécution arrête.  Si combiné avec --run, PC-BASIC se ferme lorsque le programme se termine.  Si elle est définie en mode direct, PC-BASIC quitte après la première commande est exécutée. 

--reserved-mémoire = nombre_octets

 nombre_octets réserve de la mémoire au bas du segment de données.  Pour la compatibilité avec GW-BASIC.  Par défaut est 3429 octets.  L'abaissement de cette valeur est plus chaîne et de l'espace variable disponible pour une utilisation par des programmes. 

--resume [= True | = False

 Resume de l'état enregistré.  Remplacements --run et --load. 

-r = programme --run = programme

 Exécutez le programme spécifié.  Remplacements --load. 

--scaling = {lisse | croquante | natif}

 Choisir la méthode mise à l'échelle.
 lisse
       L'affichage est facilement mise à l'échelle la plus grande taille qui permet le rapport d'aspect correct. 
   croustillant
       L'affichage est mis à l'échelle à la même taille que des lisses, mais sans lissage. 
   originaire de
       Mise à l'échelle et le ratio d'aspect sont optimisés pour la taille de pixel native de l'écran, sans lissage.  --scaling = remplacements indigènes --aspect. 
 Par défaut est lisse.  A seulement un effet si elle est combinée avec --interface = graphique. 

-c = taille --serial-buffer-size =

 Régler la taille du tampon série d'entrée.  Par défaut est 256. Si la valeur 0, les communications série sont désactivés. 

--shell = {none | native | commande]

 Réglez l'interpréteur de commandes exécuté sur la commande SHELL au shell natif du système d'exploitation ou d'un shell personnalisé géré par commande.  Par défaut est none, qui désactive la commande SHELL. 

--state = state_file

 Définir le fichier-état enregistrer sur state_file.  Par défaut est PCBASIC.SAV dans le répertoire Application Data. 

--strict-lignes cachées [= True | = False]

 Désactiver l'inscription et l'enregistrement dans le texte brut de lignes au-delà de 65530, comme dans GW-BASIC.  Utilisez car cela permet l'exécution des lignes cachées de code avec soin. 

--strict-newline [= True | = False]

 Parse CR et LF dans les fichiers strictement comme GW-BASIC.  Sur Unix, vous aurez besoin de convertir vos fichiers texte DOS d'abord si vous utilisez cette option. 

--strict-protect [= True | = False]

 Désactiver l'inscription et l'enregistrement dans le texte brut des fichiers protégés, comme dans GW-BASIC.  Utilisez car cela permet l'exécution des lignes cachées de code avec soin. 

--syntax = {avancée | PCjr | tandy}

 Choisissez dialecte BASIC.  dialectes disponibles sont:
 Avancée
       Microsoft GW-BASIC et IBM BASICA
   PCjr
       IBM PCjr cartouche BASIC
   tandy
       Tandy 1000 GW-BASIC.
 Par défaut est avancé. 

-t

 Utilisez l'interface à base de texte.  Identique à --interface = text. 

--text-width = {40 | 80}

 Définissez le nombre de colonnes en mode texte au démarrage.  Par défaut est 80. 

--utf8 [= True | = False]

 Utilisez UTF-8 pour les programmes en texte brut.  Si vrai, les programmes stockés sous forme de texte seront convertis du format UTF-8 sur LOAD et UTF-8 sur SAVE.  Si False, le codepage PC-BASIC sera utilisé. 

-v --version

 Imprimer PC-BASIC chaîne de version et de sortie. 

--video = carte

 Réglez la carte vidéo pour émuler.  cartes vidéo disponibles:
 vga
       Video Graphics Array
   ega
       Enhanced Graphics Adapter
   cga
       Couleur / Graphics Adapter
   cga_old
       Couleur / Graphics Adapter (ancienne version, affecte composite)
   mda
       Adapter Monochrome Display
   Hercule
       Hercules Graphics Adapter
   PCjr
       graphiques IBM PCjr
   tandy
       Tandy 1000 graphiques
   olivetti
       graphiques Olivetti M24
 Par défaut est vga. 

--video mémoire = taille

 Réglez la quantité de mémoire vidéo émulé disponibles.  Ceci affecte le nombre de pages vidéo qui peuvent être utilisés.  Sur PCjr et Tandy, cela peut être modifié lors de l'exécution par la CLEAR;  au moins 32768 doit être disponible pour accéder à l'écran 5 et 6. ECRAN par défaut est 16384 ou PCjr et Tandy et 262144 sur d'autres préréglages de la machine. 

-w --wait [= True | = False]

 Si, attend PC-BASIC vrai pour une touche avant de fermer la fenêtre à la sortie.  Ne fonctionne que pour --interface = graphique ou --interface = text.  Par défaut est False. 

Options GW-BASIC

GW-BASIC a reconnu un certain nombre d'options de ligne de commande DOS de style sur la ligne de commande lors de l'appel à partir de DOS avec une commande comme BASIC, BASICA ou GWBASIC. Ceux-ci sont compensées par PC-BASIC avec seulement des modifications mineures, habituellement juste remplacer la barre oblique / avec un tiret -. La syntaxe GW-BASIC est montré ici pour référence seulement; utilisez la syntaxe Unix-style avec PC-BASIC.

/ J devient -d

 Activer les fonctions mathématiques à virgule flottante double précision. 

/ F: n devient -f = n

 Définissez le nombre maximal de fichiers ouverts. 

/ S: n devient -s = n

 Réglez la longueur maximale d'enregistrement des fichiers RANDOM. 

/ C: n devient -c = n

 Définissez la taille du tampon de réception pour les périphériques COM. 

/ I: n devient -i = n

 Aucun effet. 

/ M: n, m devient -m = n, m

 Définissez l'emplacement le plus de mémoire à n et la taille maximale de mémoire BASIC m * 16 octets. 

> Nom de fichier devient --output = filename

 Ecrire la sortie de l'écran pour le nom de fichier. 

>> Filename devient --output = filename --append

 Ajouter la sortie de l'écran pour le nom de fichier. 

<Nom de fichier devient --input = filename

 Lire la saisie au clavier du nom de fichier. 

Exemples

pcbasic

 Démarrez PC-BASIC en mode direct, émulant GW-BASIC / BASICA avec graphiques VGA. 

pcbasic --codepage = 950

 Démarrez PC-BASIC en utilisant le Big-5 codepage. 

pcbasic Foobar.baz

 Démarrez PC-BASIC avec le paquet Foobar.  Chargez les paramètres de l'emballage;  habituellement ce sera exécuter un programme principal contenu dans le paquet. 

pcbasic Foobar.baz --convert = A --utf8

 Inscrivez le programme principal du paquet Foobar sur la sortie standard au format UTF-8. 

pcbasic MYPROG.BAS --mount = A: ./ fichiers, B: ./ MoreFiles

 Montez les fichiers sous-répertoire du répertoire courant que le lecteur A: et MoreFiles sous-répertoire que le lecteur B :, puis exécutez MYPROG.BAS. 

pcbasic --mount = A: C: \ fakeflop

 Exécutez PC-BASIC avec Windows répertoire C: \ fakeflop monté en tant que lecteur A:. 

Z pcbasic: \ INFO.BAS --preset = mda --mono-teinte = 255,128,0

 Exécutez INFO.BAS dans le répertoire courant sur un MDA émulé avec de l'ambre teinté moniteur. 

pcbasic /home/me/retro/COMP.BAS --preset = cga --monitor = composite

 Run COMP.BAS stocké dans / home / moi / rétro sur une machine CGA émulé avec un moniteur composite. 

pcbasic PCJRGAME.BAS --preset = PCjr -k = 'start \ r'

 Run PCJRGAME.BAS sur un PCjr émulé et se nourrissent dans les frappes startEnter. 

pcbasic BANNER.BAS --lpt2 = IMPRIMANTE:

 Exécutez BANNER.BAS en mode par défaut avec l'imprimante par défaut attaché à LPT2 :. 

pcbasic --resume

 Resume session, le PC-BASIC plus récemment fermé. 

pcbasic -qbe = "1 + 1"

 Exécutez la commande BASIC PRINT 1 + 1 dans l'interface de ligne de commande et retourner au shell appelant. 

guide de langue

Cette documentation décrit la langue de PC-BASIC, qui vise à imiter fidèlement GW-BASIC 3.23, IBM Advanced BASIC, IBM cartouche BASIC et Tandy 1000 GW-BASIC.

Le guide linguistique BASIC couvre le sujet de la langue par thème, le regroupement thématique des éléments de langage utilisés à des fins connexes. S'il vous plaît se référer à la référence du langage BASIC pour une description formelle des éléments de Langage et leur syntaxe. Travailler avec des programmes Déclaration Description AUTO Entrer la ligne numérotation automatique CHAÎNE mode Charger un nouveau programme et l'exécuter, en préservant les variables communes Set COMMON variables communes SUPPRIMER Supprimer les lignes du programme EDIT Imprimer une ligne de programme à l'écran pour programme lignes LISTE édition d'impression à l'écran programme lignes LLIST d'impression à la charge de l'imprimante Lire un nouveau programme à partir du fichier MERGE Superposez un fichier de programme sur le programme actuel NEW Effacer le programme actuel de la mémoire RENUM Remplacer les numéros de ligne du programme RUN Démarrez le programme en cours SAUVEGARDER magasin le programme actuel de déposer TRON Activer numéro de la ligne de traçage TROFF Désactiver le numéro de ligne de traçage SYSTEM Quitter le flux de contrôle de l'interpréteur BASIC

Un programme est normalement exécuté à partir de son numéro de ligne le plus bas (ou le numéro de la ligne appelée par RUN). Déclarations sur une ligne sont exécutées de gauche à droite. Lorsque toutes les déclarations sur une ligne sont terminées, l'exécution se déplace vers le numéro de la ligne la plus basse suivante, et ainsi de suite jusqu'à aucun numéro de ligne sont laissés. états des flux de contrôle peuvent être utilisés pour modifier ce flux normal de executon.

Les instructions END et STOP servent dans un programme pour arrêter son exécution et revenir en mode direct. Lorsque STOP est utilisé, un message de rupture est imprimé. De mode direct, CONT peut être exécuté pour reprendre le programme là où il a été arrêté. Bien FIN semble destiné à mettre fin au programme, il ne fait pas obstacle à l'utilisateur de reprendre avec CONT.

sauts inconditionnelles peuvent être faites avec GOTO. Le déroulement du programme se poursuivra au numéro de ligne indiqué dans l'instruction GOTO. En raison de l'absence de boucle sophistiquée, la ramification et des constructions de rupture de la langue de PC-BASIC, des sauts inconditionnels sont essentiels et utilisés fréquemment.

L'instruction GOSUB saute à un sous-programme. Semblable à GOTO, cela est un saut inconditionnel; Cependant, l'emplacement de l'appel est enregistré et le programme continuera son débit là après le sous-programme se termine par une instruction RETURN. Les sous-programmes sont un peu comme des procédures en ce sens qu'ils permettent morceaux de code qui effectuent une tâche donnée à être séparée du corps principal du programme, mais ils ne sont pas avoir une portée distincte puisque toutes les variables de PC-BASIC sont globaux. Ils ne possèdent pas les valeurs de retour. Il est même possible de sauter d'un sous-programme partout dans le programme en fournissant l'instruction RETURN avec un numéro de ligne.

L'instruction ON fournit une ramification construction alternative. Une valeur entière est utilisée pour sélectionner l'une d'une liste de numéros de lignes, et l'exécution se poursuit à partir de là. Il peut être utilisé avec un saut GOTO comme wellas avec un appel de routine GOSUB.

ON, GOTO et GOSUB peuvent également être utilisées en mode direct pour démarrer un programme ou sous-programme sans réinitialiser les variables.

L'IF-THEN-ELSE construction teste une condition et exécuter différentes branches de code sur la base de sa valeur de vérité. Cela ne veut pas un produit d'assemblage de blocs; tout le code dans les branches then et else doit tenir sur une seule ligne. Pour cette raison, la ramification est souvent utilisé en combinaison avec des sauts GOTO. Par exemple: 10 INPUT "Quel âge avez-vous"; AGE% 20% SI AGE> 30 THEN 100 30 SI AGE% <30 THEN 200 ELSE PRINT "Vous êtes âgé de 30 ans." 40 END 100 PRINT "Vous êtes plus de 30." 110 END 200 PRINT "Vous n'êtes pas encore 30." 210 FIN

La construction de boucle WHILE-WEND répète le bloc de code entre WHILE et WEND tant qu'une condition donnée reste vrai.

La construction FOR-NEXT répète un bloc de code alors qu'un compteur reste dans une plage donnée. Le compteur est réglé sur une valeur de départ lors de la première passe de l'état FOR et incrémentée de la valeur incrémentielle à chaque passage de NEXT. Par exemple: 10 POUR I = 1 A 10 20 PRINT STRING $ (I, "*"); EN UTILISANT " [##]"; I 30 NEXT I

constructions Looping peuvent être imbriquées.

Flux de contrôle est également affectée par l'événement et la récupération d'erreur. Déclaration description Continuer CONT programme interrompu ELSE Ignorez le reste de la ligne (ELSE autonome) d'exécution FIN Arrêt du programme pour le démarrage d'une boucle for GOSUB Appeler un sous-programme GOTO Sauter vers un autre emplacement dans le programme IF Branch sur une condition SUIVANTE Iterate un pour -loop ON Calculé saut ou appel de routine RETURN Retour de sous-programme ARRET Interrompre l'exécution du programme WEND Itérer un certain temps en boucle WHILE Entrez un Arrays en boucle et des variables Déclaration description de DEFDBL Spécifiez la variable plage de nom pour double précision flotteurs DEFINT Spécifiez la variable intervalle de nom pour les entiers DefSng Spécifiez la variable plage de nom pour simple précision flotteurs DEFSTR Spécifiez la variable plage de noms pour les chaînes DIM Allouer un tableau ERASE Désallouer un tableau louer Attribuer une valeur à une OPTION base variable Définir l'index de départ des tableaux SWAP Swap deux variables conversion de type Fonction description ASC Caractère à valeur ordinale valeur CHR $ ordinale à caractère HEX $ Entier à la représentation de chaîne hexadécimale octobre $ Entier à la représentation de chaîne octal valeur STR $ numérique à la représentation de chaîne décimale représentation VAL chaîne à valeur numérique valeur CDBL numérique à double précision float CINT valeur numérique en entier valeur CSNG numérique à simple précision représentation float CVD byte à double précision représentation float CVI byte vers entier CVS représentation byte à simple précision float MKD $ Double précision float à la représentation d'octets MKI $ Entier à octet MKS de représentation $ float simple précision à la représentation d'octets opérations de chaîne Déclaration description de LSET Copie une valeur justifiée à gauche dans une chaîne tampon MID $ Copie une valeur dans le cadre d'un tampon de chaîne RSET Copier une valeur justifiée à droite dans une mémoire tampon de chaîne Fonction description INSTR Trouver gAUCHE Left $ len cordes longueur MID $ Substring dROIT $ Right SPACE substring $ Répéter espaces STRING $ caractères Répéter texte et la Déclaration d'écran description de CLS Effacer les couleurs et la palette des valeurs écran jeu de couleurs LOCATE Réglez la position et la forme du curseur pALETTE écran texte Attribuer une couleur à un attribut PALETTE UTILISATION Attribuer une gamme de couleurs aux attributs PCOPY Copier un écran Imprimer IMPRIMER expressions à la vue de l'écran PRINT Définir le texte zone de défilement WIDTH Définit le nombre de colonnes de texte sur la fonction d'écran description de CSRLIN ligne actuelle du curseur POS colonne actuelle du curseur ECRAN Caractère ou attribut à l'emplacement donné l'imprimante Déclaration description de LCOPY ne rien faire LPRINT impression expressions à la fonction d'imprimante description LPOS position de la colonne de tête d'impression saisie clavier Déclaration description entrée Récupérer l'entrée d'utilisateur sur la console lINE INPUT Récupérez une ligne d'entrée de l'utilisateur sur la fonction de la console Description de INKEY $ non bloquante lu depuis l'entrée du clavier $ Blocage lecture à partir du clavier à touches de fonction macros Déclaration Description de KEY Gérer la visibilité de la macro liste KEY fonction-clé définir une fonction-clé calculs macro et mathématiques fonctions mathématiques fonction Description ABS valeur absolue ATN COS arctangente cosinus EXP exponentielle FIX troncature INT Floor LOG Natural logarithme SIN Sinus SGN Inscription racine SQR place TAN Tangente aléatoire des nombres Déclaration description de RANDOMIZE initialiser le générateur de nombres aléatoires Fonction description RND pseudo-aléatoires numériques Périphériques et fichiers du fichier des opérations Déclaration description fermer Fermer un champ de fichier Attribuer une chaîne un tampon d'enregistrement à accès aléatoire GET Lire un enregistrement à partir d'un fichier d'entrée à accès aléatoire Lire une variable à partir d'un fichier d'entrée lINE Lire une ligne d'un verrou de fichier verrouille un fichier ou une plage d'enregistrements contre toute autre utilisation OUVERT Ouvrir un fichier de données PUT Write la mémoire tampon à accès aléatoire enregistrement sur le disque RÉINITIALISER Fermer tous les fichiers UNLOCK Déverrouille un fichier ou une plage d'enregistrements contre d'autres WIDTH utilisation Définir le nombre de colonnes de texte dans un fichier WRITE écrire des expressions dans un fichier Fonction description EOF Fin du fichier LOC Localisation dans le fichier LOF Longueur du fichier $ INPUT Lire une chaîne à partir d'un fichier Devices

PC-BASIC reconnaît les périphériques DOS de style suivantes, qui peuvent être utilisés en ouvrant un fichier sur eux. Certains appareils permettent de spécifier d'autres paramètres de fichiers, tels que les spécifications de prise de contact pour les appareils de série, un nom de fichier pour les appareils à cassettes et un chemin d'accès pour les périphériques de disque. Lors de l'utilisation sur les périphériques de disque, en spécifiant un chemin d'accès est obligatoire.

Les alias de nom de fichier listés ici ne sont disponibles que si le dispositif actuel est un périphérique de disque. alias de nom de fichier de périphérique autorisés modes Description de SCRN: CON SORTIE L'écran. Sortie à SCRN: a en grande partie le même effet que la sortie droite en utilisant PRINT. Une différence réside dans le réglage de largeur qui est indépendante de la largeur réelle de l'écran. KYBD: CON ENTREE Le clavier. Entrée lire à partir de KYBD: n'est pas affiché à l'écran. Les touches spéciales comme les touches fléchées sont enregistrées différemment que lors de l'utilisation INPUT ou $ INPUT droite. LPT1: LPT2: LPT3: PRN pour LPT1: SORTIES ports parallèles ALEATOIRES 1-3. dispositifs LPT peuvent être fixés sur le port parallèle physique, à une imprimante ou à un fichier texte avec les options --lptn. Ouverture d'une imprimante pour RANDOM a le même effet que l'ouverture pour SORTIE; tenter des opérations aléatoires de fichiers va augmenter le mode de fichier incorrect. COM1: COM2: AUX pour COM1: ENTREE SORTIE APPEND ports série ALEATOIRES 1-2. dispositifs COM peuvent être attachés à un port série physique ou à une prise réseau avec les options --comn. CAS1: ENTREE SORTIE Cassette pilote de bande. dispositifs CAS peuvent être attachés à un WAV (RIFF Wave) ou d'un CAS (image de bande de bitmap) fichier avec l'option --cas1. A: - Z: et @: appareils APPEND RANDOM disque ENTRÉE DE SORTIE. Ces dispositifs peuvent être montés dans un répertoire sur le système de fichiers hôte avec l'option --mount. Ils ne correspondent pas automatiquement des lettres de lecteur sous Windows, sauf si l'option --map-lecteurs est réglé. NUL INPUT OUTPUT de l'appareil APPEND RANDOM Null. Ce dispositif ne produit pas d'octets lors de l'ouverture pour l'entrée et absorbe tous les octets lorsqu'il est ouvert pour la sortie.

GW-BASIC reconnaît en outre le peu utilisé périphérique suivant, qui ne sont pas mis en œuvre dans PC-BASIC. Périphériques autorisés modes description CONS: SORTIE L'écran (console). Sortie vers CONS: est affiché directement à la position du curseur lorsque vous appuyez sur Entrée. Il ne met pas à jour la valeur de fin de ligne pour l'interprète, ce qui signifie qu'il ne se déplace pas avec Backspace ou Del et ne sont pas stockées dans les lignes de programme si elle apparaît au-delà de la fin de la ligne existante. CONS: peut être ouvert avec un mode d'accès, mais l'effet est toujours à l'ouvrir pour la sortie. Déclaration graphique Description de CIRCLE Dessiner une section d'ellipse ou arc TIRAGE Dessiner une forme définie par une Graphics chaîne de langage de macros GET Stocker une zone d'écran comme une ligne de sprite Dessinez un PAINT segment de ligne Flood-fill une région PSET connecté Mettez un PRESET pixel Changer un pixel fond attribut PUT Dessinez un sprite à l'écran de l'écran Modifier l'affichage du mode vidéo Réglez le graphique viewport fenêtre Définir les coordonnées logiques Fonction description POINT pointeur graphique coordonnées POINT Pixel attribut PPAFM Convertir entre les coordonnées physiques et logiques Déclaration sonore description de Beep Beep le haut-parleur BEEP Président commutateur NOISE Générer du bruit JOUER Faites un morceau encodé en Musique Langue Macro SOUND Générer une tonalité sonore commutateur Fonction description LECTURE Longueur de la file d'attente de la musique de fond joystick et un stylo Déclaration description STRIG joystick commutateur Fonction description PEN condition STICK stylo lumière Coordonnée du joystick axe STRIG condition joystick feu disques de boutons et DOS

L'instruction SHELL est, par défaut, désactivé; ceci afin d'éviter des surprises désagréables. Dans GW-BASIC sous MS-DOS, SHELL ouvre une invite DOS ou exécute des commandes en elle. Les coquilles de commande des systèmes d'exploitation modernes fonctionnent différemment que ceux de DOS; en particulier, il est impossible de récupérer les modifications dans les variables d'environnement, de sorte que de nombreux cas d'utilisation de SHELL simplement ne fonctionnerait pas; par exemple, changer le lecteur en cours sur Windows. En outre, les shells Unix ont une syntaxe qui est complètement différent de celui du DOS. Vous pouvez, toutefois, permettre à SHELL en réglant le shell = l'option native. Déclaration Description de CHDIR Changer le répertoire courant Liste FICHIERS les fichiers dans le répertoire courant TUENT Supprimer un fichier sur un périphérique de disque MKDIR Créer un nouveau répertoire NOM Renommer un fichier sur le disque RMDIR Supprimer un répertoire ENVIRON Set une chaîne SHELL environnement shell Entrez un DOS shell Fonction Description ENVIRON $ Chaîne du shell table d'environnement communications série Déclaration description de GET Lire octets à partir d'un port série PUT Ecrire octets à un terme de port série Ouvrez le traitement de l'événement d'émulation de terminal

le piégeage de l'événement permet de définir des sous-programmes qui sont exécutés en dehors du cours normal de fonctionnement. Les événements qui peuvent être piégés sont:

 Les intervalles de temps (ON TIMER)
   (ON KEY enfoncements de touches)
   entrée du port série (ON COM)
   file d'attente musicale épuisement (ON PLAY)
   triggers Joystick (ON STRIG)
   activation de stylo Light (ON PEN)

Event subroutines piégeage sont définis comme des sous-programmes réguliers. A l'instruction RETURN, le cours normal de l'exécution du programme est reprise. Événement piégeage peut être activée et désactivée ou interrompue temporairement avec les déclarations de la forme PEN ON, PEN OFF, PEN STOP. le piégeage de l'événement a lieu seulement pendant l'exécution du programme et est en pause pendant que le programme est dans un piège d'erreur. Si un événement se produit lors de l'événement de piégeage est en pause, l'événement est déclenché immédiatement lorsque l'événement de piégeage est reprise. Déclaration Description de COM Gérer l'événement du port série piégeage KEY Gérer événement clavier piégeage KEY Définir clé piège événement clavier piégeage ON Définir sous-programme d'événements de piégeage PEN Gérer événement stylo lumière piégeage événement JOUER Gérer la file d'attente de la musique piégeant STRIG Gérer événement joystick piégeant TIMER Gérer événement timer piégeage La gestion des erreurs

Normalement, toute erreur interrompt l'exécution du programme et imprimer un message sur la console (exceptions sont Division Débordement et par zéro, qui impriment un message mais ne pas interrompre l'exécution). Il est possible de gérer les erreurs plus gracieusement en définissant une routine de gestion des erreurs avec l'ON ERROR GOTO instruction line_number. Les mises en chantier de routine de gestion des erreurs au numéro de ligne line_number donné et continue jusqu'à ce qu'une instruction REPRENDRE est rencontrée. Erreur piégeage est en effet à la fois quand un programme est en cours d'exécution et en mode direct. Erreur piégeage est éteint avec l'ON ERROR GOTO 0 déclaration. Si une erreur se produit, ou la récupération d'erreur est éteint, alors que le programme exécute une routine de piégeage d'erreur, le programme se termine et un message d'erreur est affiché. Déclaration Description ERROR Soulever une erreur ON ERROR Définir un REPRENDRE Fin gestionnaire d'erreurs de gestionnaire d'erreur et revenir à l'exécution Fonction Code de la dernière erreur numéro ERL ligne des fonctions définies par l'utilisateur dernière erreur Déclaration description DEF FN Description de ERR Erreur normale Définir une nouvelle fonction Description de la fonction FN défini par l'utilisateur fonction Date et heure Déclaration description DATE $ Réglez le temps de date système $ Réglez l'heure du système Date fonction description DATE $ System comme un temps système $ TIME chaîne comme un temps de système TIMER chaîne en secondes depuis minuit Y compris les données dans une déclaration de programme description des données Définir les données à utiliser par le programme LIRE Récupérer une entrée de données RESTORE réinitialiser la mémoire de pointeur de données et les ports de la machine

Seuls certains plages de mémoire et les ports sélectionnés sont émulés dans PC-BASIC. Certaines des régions les plus fréquemment consultés de mémoire sont émulées et peut être lu et (parfois) écrit. Il est lu et écrire un soutien pour la mémoire vidéo, la police RAM et les emplacements du segment bas de la mémoire, y compris le tampon de clavier sélectionné. En outre, il est lu support pour la police de ROM, variable, un tableau et de la mémoire de chaîne, des tampons FIELD ainsi que le code du programme lui-même. L'écriture dans le code de programme est désactivée par défaut, mais peut être activée avec l'option allow-code poche. Un certain nombre de ports de la machine liés aux modes d'entrée et de vidéo clavier sont également pris en charge. Déclaration Description de BLOAD Charger un fichier binaire en mémoire BSAVE Enregistrer une région de mémoire à déposer CLEAR Efface la mémoire BASIC DEF SEG Définissez le segment de mémoire OUT Ecrire un octet à un port POKE machine Ecrire un octet à un emplacement de mémoire ATTENDEZ Attendez une valeur sur une machine Fonction description port FRE Montant de la libre Byte mémoire INP dans le port de la machine PEEK Byte à l'adresse de mémoire VARPTR adresse de mémoire de la variable $ VARPTR représentation Octet de longueur et adresse mémoire des caractéristiques variables non encore mis en œuvre

Les éléments de langage suivants ne sont pas actuellement pris en charge dans le PC-BASIC. La syntaxe mot-clé est pris en charge, donc aucune erreur de syntaxe devrait être soulevée si les états ou fonctions sont utilisées correctement. Cependant, les déclarations ne font rien et les fonctions renvoient zéro ou la chaîne vide.

Ces éléments de langage peuvent être mises en œuvre dans les futures versions de PC-BASIC. Déclaration Description de PC-BASIC MOTOR de mise en œuvre Allumez le moteur de cassette Ne rien Fonction Description PC-BASIC ERDEV de mise en œuvre valeur d'erreur de périphérique Retour 0 ERDEV $ Nom du dispositif erreur soulevant Retour "" EXTERR Extended de l'information d'erreur DOS retour 0 fonctionnalités non prises en charge

GW-BASIC était un programme DOS en mode réel, ce qui signifie qu'il avait un contrôle total sur un 8086 ordinateur compatible IBM. Il y avait un accès direct à tous les domaines de la mémoire et tous les périphériques. Certains programmes de base utilisé ce fait, en utilisant des sous-routines code machine pour effectuer des tâches pour lesquelles BASIC n'a pas fourni le soutien. pistes PC-BASIC sur des machines modernes qui peuvent être fondées sur des architectures totalement différentes et ne permettent pas aux applications d'accéder directement à la mémoire. Par conséquent, il est impossible d'exécuter du code de la machine sur PC-BASIC. Si vous avez besoin du code machine, vous aurez besoin d'utiliser l'émulation de CPU complète telle que fournie par DOSBox, Bochs ou VirtualBox.

De même, la fonctionnalité IOCTL dépend d'une interruption MS-DOS et envoie une chaîne de commande de l'appareil à tout pilote de périphérique DOS. La syntaxe de ces chaînes est dépendant du périphérique. Depuis PC-BASIC émule ni DOS, ni quel appareil pourrait être l'analyse de la chaîne de contrôle, il est possible d'utiliser cette fonctionnalité.

Les éléments de langage suivants ne sont donc pas pris en charge dans PC-BASIC. La syntaxe mot-clé est pris en charge, donc aucune erreur de syntaxe devrait être soulevée si les états ou fonctions sont utilisées correctement. Cependant, les déclarations ne font rien ou soit augmenter illégal appel de fonction; les fonctions renvoient zéro ou la chaîne vide ou soulèvent illégale appel de fonction. Déclaration Description de PC-BASIC CALL de mise en œuvre Appeler un sous-programme de code machine Ne rien faire APPELS Appel d'un sous-programme FORTRAN Ne rien faire DEF USR Définir une fonction de code machine Ne rien IOCTL Envoyer une chaîne de commande de l'appareil à un dispositif Soulever appel de fonction Description de la fonction PC-BASIC mise en œuvre illégale IOCTL $ response de périphériques pour IOCTL Raise illégal appel de fonction USR code machine fonction retour référence 0 Langue

Cette documentation décrit la langue de PC-BASIC, qui vise à imiter fidèlement GW-BASIC 3.23, IBM Advanced BASIC, IBM cartouche BASIC et Tandy 1000 GW-BASIC.

Les différences avec les langues d'origine ne se posent, et lorsque cela est le cas, ils sont documentés.

S'il vous plaît noter que la documentation officielle de Microsoft pour les langues d'origine est plutôt hit-and-miss; il laisse plusieurs fonctionnalités non documentées et décrit de manière incorrecte les autres. Pour éviter de faire les mêmes erreurs, la présente documentation a été écrit à partir de zéro en référence au comportement réel. Les erreurs dans ce document sont donc tout mon propre. S'il vous plaît me contacter si vous les rencontrez. Métasyntaxe

Dans les descriptions de la syntaxe BASIC, les conventions suivantes sont applicables. rendu exact du balisage peut varier en fonction des moyens utilisés pour afficher cette documentation.

audacieux

 Tapez exactement comme indiqué.

italique

 Remplacer par metavariable approprié.

[une]

 Les entités entre crochets sont facultatifs.

{A | b}

 alternatives disjointes dont l'un doit être choisi.

[A | b]

 alternatives disjointes en option.

une ...

 entité précédente peut être répétée.

Définitions

Une ligne de programme se compose d'un numéro de ligne suivi d'une instruction composée. lignes du programme sont terminés par un CR ou ou à la fin du fichier (éventuellement par le biais d'un caractère EOF). Tout sur une ligne de programme après un caractère NUL est ignoré.

Un numéro de ligne est un nombre entier dans l'intervalle [0-65535]. Notez que les numéros de ligne 65530-65535 ne peuvent pas être saisies à partir de la console ou un fichier de programme de texte, mais peuvent faire partie d'un fichier de programme tokenised.

Une instruction composée est constituée d'états séparés par deux points: déclaration [déclaration] ...

Une expression prend l'une des formes suivantes: unary_operator {literal | variables | array_element | fonction} expression binary_operator expression (expression) dont les éléments sont décrits les sections littéraux, variables, opérateurs et fonctions.

Un élément de tableau prend la forme array {[| (} numeric_expression [, numeric_expression] ... {) |]} littéraux littéraux cordes

Les chaînes littérales sont de la forme suivante: "[caractères] {NUL | CR | EOF |"} où les caractères est une chaîne de caractères. Tout caractère de la page de code actuel peut être utilisé, avec les exceptions suivantes, tous qui terminent la chaîne littérale (en dehors des autres effets qu'ils peuvent avoir):

 NUL (CHR $ (& h00))
   CR (CHR $ (& h0D))
   EOF (CHR $ (& H1A))
   "(CHR $ (& h22))

Les chaînes sont aussi légalement mis fin à la fin du fichier en l'absence d'un caractère EOF.

En dehors de ceux-ci, les chaînes de caractères ne doivent pas contenir les caractères dans la plage ASCII & h0D- & H1F, qui conduisent à des résultats imprévisibles. Il n'y a pas de mécanisme d'échappement. Pour inclure un des caractères ci-dessus dans une chaîne, utilisez la concaténation de chaîne et la fonction CHR $. littéraux numériques

Les littéraux numériques ont l'une des formes suivantes: | - [.] [+] [0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | | 8 9] ... [0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9] ... [{e | e | D | d} [+ | -] [0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ] ...] | # |! |%] et {h | h} [0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | a | b | c | d | e | f] ... et [O | o] [0 | 1 | 2 | 3 | 4 | 5 | 6 | 7] ...

littéraux hexadécimaux ne doivent pas contenir d'espaces, mais décimales et octaux littéraux mai. Le o caractère littéraux octal est facultative: ils peuvent être spécifiés tout aussi & o777 ou & 777.

Hexadécimal et littéraux octal désignent des nombres entiers et ne comprennent pas un signe. Ils doivent se situer entre [& H0- & HFFFF], dont la gamme [& h8000- & HFFFF] est interprété comme complément négatif entier de deux; par exemple, & HFFFF = -1. Les signes peuvent apparaître à gauche du &, mais ceux-ci forment une expression et ne font pas partie du littéral lui-même.

À virgule flottante littéraux doivent être spécifiés dans la notation décimale. Le séparateur décimal est le point. Une base 10 exposant peut être spécifié après E dans des flotteurs simple précision, ou après D dans flotteurs double précision. Trailing% est ignoré et ne signifie pas un entier littéral. Trailing! ou # marquent le littéral comme simple ou double précision, respectivement.

Des exemples de littéraux numériques valides sont -1 42 42! 42 # 1,3523523 0,235435 ± 3 3.. .e .D 1.1e + 7 1.1d + 7 1e2 1e-2 & 7 & HFFFF & O20 & h & 65537% 1.1%

Notez que des expressions telles que & o-77 sont légales; ceux-ci ne sont cependant pas octal négatives, mais plutôt l'expression & o (octal vide, zéro) moins 77 (décimal 77). Variables

Les noms de variables doivent commencer par une lettre; tous les caractères du nom de la variable (à l'exception du sigil) doivent être des lettres de A à Z, les chiffres 0-9, ou un point. Seuls les 40 premiers caractères du nom sont significatifs. Un nom de variable ne doit pas être identique à un mot réservé ou un mot réservé, plus sigil. Par conséquent, par exemple, vous ne pouvez pas nommer une variable TO! mais vous pouvez le nommer AS !. Les noms de variables peuvent contenir un mot réservé. Les noms de variables peuvent aussi commencer par un mot réservé, à l'exception de NRS et FN. Ainsi, FNORD% et USRNME $ ne sont pas des noms de variables juridiques alors Tache de rousseur% et LUSR $ sont.

Pour chaque nom, quatre variables différentes peuvent exister correspondant aux quatre types. Autrement dit, vous pouvez avoir un $, A%, A! et A # que différentes variables. Lequel de ceux est également connu sous le nom A dépend des paramètres DEFINT / DEFDBL / DefSng / DEFSTR. Par défaut, A est égal à la simple précision A !.

En outre, les matrices A $ (%), A (A)! (), A # () sont séparés à partir des grandeurs scalaires du même nom. Types et sigils

PC-BASIC reconnaît quatre types de variables, qui se distinguent par leur sigil ou de type caractère, le dernier caractère du nom complet de la variable: sigil Type taille plage de précision $ string 3 octets en plus attribués espace de chaîne 0-255 caractères% entiers 2 octets -32.768 à 32.767 exactes! simple précision float 4 octets ± 2.938726 · 10-39- ± 1.701412 · 1038 ~ 6 chiffres significatifs

   double précision float 8 octets ± 2,938735877055719 · 10-39- ± 1,701411834604692 · 1038 ~ 16 chiffres significatifs 

Notez que les flotteurs double précision peuvent contenir plus de décimales que flotteurs simple précision, mais les numéros pas plus ou moins.

Alors que tous les entiers sont signés, certains états vont interpréter des nombres entiers négatifs comme complément à leurs deux. Arrays

Les tableaux sont indexés avec ronds ou crochets; même les supports de mélange est autorisé. Voici tous les éléments juridiques du tableau: A [0], A (0), A (0], A [0). Les tableaux multidimensionnels sont spécifiés en séparant les indices avec des virgules: A (0, 0), A [0, 0, 0], etc.

Par défaut, les tableaux sont indexés à partir de 0. Ceci peut être changé à 1 en utilisant OPTION BASE 1.

Les tableaux peuvent être attribués en spécifiant le plus grand indice autorisé en utilisant DIM. Si tous les indices du tableau sont 10 ou moins, ils ne doivent pas être explicitement attribués. Le premier accès du réseau (lecture ou écriture) attribue automatiquement avec un indice maximum de 10 et le même nombre d'indices comme dans le premier accès. Pour ré-allouer un tableau, l'ancien tableau doit d'abord être supprimé avec CLEAR ou ERASE. Conversions

PC-BASIC va convertir implicitement entre les trois types de données numériques. Lorsqu'une valeur d'un premier type est affecté à une variable, un élément de tableau ou d'un paramètre d'un autre type, il est converti selon les règles suivantes:

 flotteurs simple et double précision sont convertis en entier en arrondissant au nombre entier le plus proche.  Demis sont arrondis loin de zéro.  Si le nombre entier résultant est en dehors de la plage autorisée pour les entiers, Overflow est élevé.
   flotteurs double précision sont convertis en des flotteurs par simple précision arrondi gaussienne de la mantisse, où le nouveau bit le moins significatif de la mantisse est arrondie si la fraction binaire écrêté-off est supérieure à une demi-;  moitiés sont arrondies au même.
   Entiers sont convertis à leur représentation exacte comme flotteurs simple ou double précision.
   flotteurs simple précision sont convertis à leur représentation exacte flotteurs double précision.
   Il n'y a pas de conversion implicite entre les chaînes et tous les types numériques.  Tenter d'assigner une valeur de chaîne à une variable numérique, élément de tableau ou d'un paramètre (ou vice versa) augmentera Incompatibilité de type. 

Opérateurs Ordre de priorité

L'ordre de priorité des opérateurs est la suivante, à partir étroitement lié (haute priorité) à faiblement lié (faible priorité):

 ^
       * / 
   \
   MOD
       + - (Unaire et binaire) 
       = <>> <<> <= = <> = => 
   NOT (unaire)
   ET
   OU
   XOR
   EQV
   LUTIN

Les expressions entre parenthèses () sont évaluées en premier. Tous les opérateurs binaires sont laissés associatif: les opérateurs de même priorité sont évalués de gauche à droite. Exemples

 Exponentiation est plus étroitement lié à la négation: -1 ^ 2 = - (1 ^ 2) = -1, mais (-1) ^ 2 = 1.
   Exponentiation est gauche associative: 2 ^ 3 ^ 4 = (2 ^ 3) ^ 4 = 4096.

les erreurs

   Si un opérateur autre que +, - ou NOT est utilisé sans opérande de gauche, une erreur de syntaxe est soulevée.  A la fin d'une instruction, si un opérateur est utilisé sans opérande de droite, opérande manquant est élevé.  Si cela se produit ailleurs dans une instruction, comme entre parenthèses, une erreur de syntaxe est soulevée. 

opérateurs mathématiques

Les opérateurs mathématiques fonctionnent sur des expressions numériques seulement. Notez cependant que + peut prendre le rôle de l'opérateur de concaténation si les deux opérandes sont des chaînes. Opération code Résultat x ^ y Exponentiation x élevé à la puissance de yx * y Multiplication des produits de x et yx / y Division Quotient de x et yx \ y Tronqué division entière quotient de x et yx MOD y Modulo Entier reste de x par y ( avec le signe de x) x + y Addition Somme des x et yx - y soustraction Différence de x et y + y unaire valeur plus de y - valeur négative Négation y de y

Le cas échéant, le résultat de l'opération sera mis à niveau vers un type capable de tenir le résultat des données. Par exemple, diviser des nombres entiers 3 par 2 donnera une simple précision 1,5. Cependant, l'opérateur d'exponentiation ^ donnera au plus un résultat simple précision, sauf si la double option est utilisée. les erreurs

 Si l'un des opérandes est une chaîne, Incompatibilité de type sera soulevée.  L'exception est + qui ne fera que soulever Incompatibilité de type se soit, mais pas les deux opérandes sont des chaînes.
   Si y = 0, x / y, x MOD y et x \ y soulèvera la division par zéro.
   Si x = 0 et y <0, x ^ y soulèvera la division par zéro.
   Si le résultat d'une opération est trop grand pour tenir dans un type de données à virgule flottante, Overflow est soulevée.
   Si opérandes ou résultat de \ ou MOD ne sont pas dans [-32768-32767], Overflow est soulevée.
   Si x <0 et y est un nombre fractionnaire, x ^ y soulèvera Illegal appel de fonction.

opérateurs relationnels

Les opérateurs relationnels peuvent fonctionner sur numérique, ainsi que les opérandes de chaîne; cependant, si un opérande est une chaîne et l'autre numérique, Incompatibilité de type est élevé.

Les opérateurs relationnels renvoient soit 0 (pour faux) ou -1 pour vrai. Code d'opération Résultat = Egal Vrai si a est égal à b, sinon false. <>> <Différent False si un est égal à b, vrai autrement. <Moins Vrai si a est inférieur à b, sinon false. > Supérieur Vrai si a est supérieur à b, sinon false. <= = <Inférieur ou égal False si un est supérieur à b, vrai autrement. > = => Supérieur ou égal False si un est inférieur à b, vrai autrement.

En cas d'utilisation sur des opérandes numériques, les deux opérandes sont comparés en tant que nombres à virgule flottante selon l'ordre habituel de nombres. L'égal opérateur teste pour l'égalité à l'intérieur de la précision de la machine pour la plus haute précision des deux types d'opérateurs.

Lorsque l'on compare les chaînes, l'ordre est le suivant.

 Deux chaînes sont égales seulement si elles sont de la même longueur et chaque code de caractère de la première chaîne est d'accord avec le code de caractère correspondant du second.  Ceci inclut tout espace ou des caractères non imprimables.
   Chaque position de caractère des cordes est comparée à commencer par le premier caractère.  Quand une paire de caractères différents est rencontrée, la chaîne avec le caractère de moindre point de code est inférieure à la chaîne avec le caractère d'une plus grande point de code.
   Si les chaînes sont de longueur différente, mais égale à la longueur de la chaîne la plus courte, la chaîne la plus courte est inférieure à la chaîne plus longue.

opérateurs binaires

PC-BASIC n'a pas de type Boolean et ne met pas en œuvre les opérateurs booléens. Il, cependant, mettre en œuvre les opérateurs de bits.

Opérateurs binaires fonctionnent sur des expressions numériques seulement. À virgule flottante opérandes sont arrondis à des nombres entiers avant d'être utilisés. Opération code Résultat PAS y Complement -y-1 x ET y Bitwise conjonction Le binaire entre x et yx OU y disjonction Bitwise Le OU binaire de x et yx XOR y Bitwise exclusive ou Le XOR de x et yx EQV y Bitwise équivalence PAS (x XOR y) x implication NOT (x) OU y IMP y Bitwise

Ces opérateurs peuvent être utilisés comme des opérateurs booléens uniquement si -1 est utilisé pour représenter vrai pendant que 0 représente faux. Notez que PC-BASIC représente des nombres entiers négatifs en utilisant le complément à deux, donc PAS 0 = -1. L'interprétation booléenne opérateurs binaires est donnée dans le tableau ci-dessous. Opération code Résultat PAS y Négation logique Vrai si y est faux et vice versa x ET y Conjonction Seul vrai si x et y sont de véritables x OU y disjonction Seulement false si x et y sont fausses x XOR y Exclusive ou Vrai si la vérité les valeurs de x et y diffèrent x EQV y Equivalence vrai si les valeurs de vérité de x et y sont les mêmes x IMP y Implication vrai si x est faux ou y est vrai

Sachez que lorsqu'il est utilisé sur des entiers autres que 0 et -1, les opérateurs binaires ne peuvent pas être interprétées comme des opérateurs booléens. Par exemple, 2 et 1 retourne 0. Erreurs

 Si l'un des opérandes est une chaîne, Incompatibilité de type sera soulevée.
   Si les opérandes ou résultats ne sont pas dans [-32.768 à 32.767], Overflow est soulevée.

Opérateurs de chaîne

L'opérateur de concaténation est +. Il dispose d'un binaire ainsi qu'une forme unaire. Le moins unaire peut également être utilisé sur les chaînes, mais n'a aucun effet. Code d'opération Résultat x + y concaténation La chaîne formée par x suivie d'y + y unaire Valeur Plus d'y - y unaire Minus Valeur des erreurs y

 Si l'un (mais pas les deux) opérandes à une concaténation sont numériques, Incompatibilité de type sera soulevée.
   Si LEN (x) + LEN (y)> 255, x + y soulèveront cordes trop longtemps.

Les fonctions

Fonctions ne peuvent être utilisés dans le cadre d'une expression dans une instruction; ils peuvent prendre des valeurs d'entrée entre parenthèses et de produire une valeur de retour. Par exemple, dans PRINT ABS (-1) la fonction ABS est utilisé dans une expression dans une instruction PRINT; dans Y = SQR (X) + 2 la fonction SQR est utilisé dans une expression dans une instruction LET.

Certains ouvrages de référence utilisent également des termes tels que la variable système pour les fonctions qui ne prennent pas une entrée, probablement parce que dans la syntaxe GW-BASIC ces fonctions ont pas entre parenthèses, à la différence des langues dans la famille C (et même quelques notions de base modernes). Toutefois, cela est tout simplement la syntaxe GW-BASIC pour les fonctions sans entrées. Par exemple, on peut faire DEF FNA = 1: PRINT FNA dans laquelle aucun parenthèses. ABS y = ABS (x)

Renvoie la valeur absolue de x si x est un nombre et la valeur de x si x est une chaîne. Paramètres

 x est une expression.

ASC val = ASC (char)

Renvoie le point de code (valeur ASCII) pour le premier caractère de l'omble. Paramètres

 omble est une expression avec une valeur de chaîne.

les erreurs

 omble a une valeur numérique: incompatibilité de type.
   omble est égal à "": Illegal appel de fonction.

ATN y = ATN (x)

Renvoie la tangente inverse de x. Paramètres

 x est une expression numérique qui donne l'angle en radians.

Remarques

 Sauf PC-BASIC est exécuté avec l'option double, cette fonction retourne une valeur simple précision.
   ATN (x) est différent du chiffre le moins significatif de GW-BASIC.

les erreurs

 x a une valeur de chaîne: Type mismatch.

CDBL y = CDBL (x)

Convertit l'expression numérique x à une valeur double précision. les erreurs

 x a une valeur de chaîne: Type mismatch.

CHR $ omble = CHR $ (x)

Renvoie le caractère avec le point de code x. Paramètres

 x est une expression numérique dans l'intervalle [0-255].

les erreurs

 x a une valeur de chaîne: Type mismatch.
   x est pas dans [-32768 à 32767]: Overflow.
   x est pas dans [0-255]: Illegal appel de fonction.

CINT y = CINT (x)

Convertit l'expression numérique x à un entier signé. les erreurs

 x a une valeur de chaîne: Type mismatch.
   x est pas dans [-32768 à 32767]: Overflow.

COS cosinus = COS (angle)

Renvoie le cosinus de l'angle. Sauf PC-BASIC est exécuté avec l'option double, cette fonction retourne une valeur simple précision. Paramètres

 angle est une expression numérique qui donne l'angle en radians.

Remarques

 La valeur de retour diffère généralement de la valeur retournée par GW-BASIC dans le chiffre significatif.

les erreurs

 angle a une valeur de chaîne: Type mismatch.

CSNG y = CSNG (x)

Convertit l'expression numérique x à une valeur simple précision. les erreurs

 x a une valeur de chaîne: Type mismatch.

CSRLIN y = CSRLIN

Retourne la ligne d'écran du curseur sur la page active. La valeur de retour est dans la gamme [1-25]. Remarques

 Cette fonction ne prend aucun argument.

CVI y = CVI (s)

Convertit une chaîne de deux octets à un entier signé. Paramètres

 s est une expression de chaîne qui représente un entier en utilisant le codage de complément à deux little-endian.  Seuls les deux premiers octets sont utilisés.

les erreurs

 s a une valeur numérique: incompatibilité de type.

CVS y = CVS (s)

Convertit une chaîne de quatre octets à une simple précision en virgule flottante. Paramètres

 s est une expression de chaîne qui représente un nombre simple précision dans Microsoft Binary Format.  Seuls les quatre premiers octets sont utilisés.

les erreurs

 s a une valeur numérique: incompatibilité de type.

CVD y = CVD (s)

Convertit une chaîne de huit octets à un double précision nombre à virgule flottante. Paramètres

 s est une expression de chaîne qui représente un nombre double précision dans Microsoft Binary Format.  Seuls les huit premiers octets sont utilisés.

les erreurs

 s a une valeur numérique: incompatibilité de type.

= DATE de $ de $ DATE (fonction)

Renvoie la date du système en tant que chaîne dans le format "mm-dd-yyyy". Remarques

 Cette fonction ne prend aucun argument.

ENVIRON $ valeur = ENVIRON [] $ (x)

Renvoie une variable d'environnement. Paramètres

x est une expression.

 Si x a une valeur de chaîne, renvoie la valeur de la variable d'environnement x ou la chaîne vide si aucune variable avec le nom x est défini dans le tableau de l'environnement.
   Si x a une valeur numérique, il doit être dans [1-255].  Renvoie l'entrée xième dans le tableau de l'environnement.

les erreurs

 x est la chaîne vide: Illegal appel de fonction.
   x est un nombre non [-32768 à 32767]: Overflow.
   x est un nombre non [1-255]: Illegal appel de fonction.

EOF is_at_end = EOF (file_num)

Renvoie -1 si le fichier avec le numéro file_num a atteint la fin de fichier; 0 autrement. Le fichier doit être ouvert dans le mode INPUT ou RANDOM. EOF (0) renvoie 0. Remarques

 Si file_num est ouvert à KYBD :, effectue un blocage lecture et retourne -1 si CTRL + Z est entré, 0 sinon.  Le caractère saisi est ensuite fait écho à la console.

les erreurs

 file_num a une valeur de chaîne: Type mismatch.
   file_num est un nombre pas dans [-32768 à 32767]: Overflow.
   file_num est un nombre non [0-255]: Illegal appel de fonction.
   file_num est pas 0 ou le numéro d'un fichier ouvert: Numéro de fichier incorrect.
   Le fichier avec le numéro file_num est en SORTIE ou en mode APPEND: le mode de fichier incorrect.

ERDEV zéro = ERDEV

Renvoie 0. Remarques

 Dans GW-BASIC, renvoie la valeur d'une erreur de périphérique.
   Cette fonction est pas implémentée dans PC-BASIC.
   Cette fonction ne prend aucun argument.

ERDEV $ empty = ERDEV [] $

Renvoie la chaîne vide. Remarques

 Dans GW-BASIC, retourne le nom de l'appareil d'une erreur de périphérique.
   Cette fonction est pas implémentée dans PC-BASIC.
   Cette fonction ne prend aucun argument.

ERL ERROR_LINE = ERL

Retourne le numéro de ligne où la dernière erreur a été soulevée. Remarques

 Si l'erreur a été soulevée par une déclaration directe, retourne 65535.
   Si aucune erreur n'a été relevée, renvoie 0.
   Cette fonction ne prend aucun argument.

ERR error_code = ERR

Retourne le numéro de la dernière erreur. Remarques

 Si aucune erreur n'a été relevée, renvoie 0.
   Si la dernière erreur était une erreur de syntaxe soulevée par une déclaration directe, renvoie 0.
   Cette fonction ne prend aucun argument.

EXP y = EXP (x)

Renvoie l'exponentielle de x, soit e à la puissance x. Paramètres

 x est une expression de number- valeur.

Remarques

 Sauf PC-BASIC est exécuté avec l'option double, cette fonction retourne une valeur simple précision.
   La valeur de retour diffère parfois dans le chiffre le moins significatif de GW-BASIC.  Pour de grandes valeurs de x, la différence peut être de 3 chiffres.

les erreurs

 x a une valeur de chaîne: Type mismatch.
   x est plus grand que le logarithme naturel de la valeur maximale simple précision: Overflow.

EXTERR zéro = EXTERR (x)

Renvoie 0. Paramètres

 x est une expression numérique dans [0-3].

Remarques

 Dans GW-BASIC, cette fonction renvoie des informations sur l'erreur à partir de MS-DOS.
   Cette fonction est pas implémentée dans PC-BASIC.

les erreurs

 x a une valeur de chaîne: Type mismatch.
   x est pas dans [-32768 à 32767]: Overflow.
   x est pas dans [0-3]: Illegal appel de fonction.

FIX ensemble = FIX (nombre)

Number Renvoie tronquée vers zéro. Paramètres

 nombre est une expression numérique.

Remarques

 FIX tronque vers zéro: il supprime la partie fractionnaire.  En revanche, INT tronque vers l'infini négatif.  Pour x négatifs FIX (x) -INT (x) = 1.

les erreurs

 nombre est une chaîne d'expression: incompatibilité de type.

résultat FN = FN [] nom [(arg_0 [, Arg_1] ...)]

Évalue la fonction définie par l'utilisateur préalablement défini avec le nom DEF FN. Les espaces entre les FN et le nom sont en option. Paramètres

 est le nom d'une fonction définie précédemment.
   arg_0, Arg_1, ... sont des expressions, étant donné que les paramètres de la fonction.

les erreurs

 Aucune fonction nommée nom est défini: la fonction de l'utilisateur non défini.
   Le nombre de paramètres diffère de la définition de la fonction: Erreur de syntaxe.
   Le type d'un ou plusieurs paramètres diffère de la fonction définition: incompatibilité de type.
   Le type de retour est incompatible avec sigil du nom de la fonction: Type de décalage.
   La fonction appelée est récursive ou mutuellement récursives: Out of memory. 

FRE free_mem = FRE (x)

Renvoie la mémoire de base disponibles. Paramètres

x est une expression.

 Si x a une valeur numérique, il est ignoré.
   Si x a une valeur de chaîne, la collecte des ordures est effectué avant de retourner la mémoire disponible. 

HEX $ hex_repr = HEX $ (x)

Retourne une chaîne avec la représentation hexadécimale de x. Paramètres

 x est une expression numérique dans [-32768 à 65535].  Les valeurs de x négatifs sont présentés comme complément à deux.

les erreurs

 x est pas dans [-32768 à 65535]: Overflow.
   x a une valeur de chaîne: Type mismatch.

INKEY $ key = INKEY $

Renvoie une pression de touche de la mémoire tampon du clavier. Si la mémoire tampon du clavier est vide, renvoie la chaîne vide. Dans le cas contraire, la valeur de retour est une chaîne de caractères d'un ou deux contenant le code e-ASCII de la touche enfoncée. Remarques

 Cette fonction ne prend aucun argument.
   Quand une touche F1-F10 de fonction est pressée, INKEY $ renvoie les lettres de la macro associée - à moins que cette macro a été mis à vider la déclaration KEY, auquel cas il renvoie le code e-ASCII pour la touche de fonction.

Code = INP INP (port)

Renvoie la valeur d'un port de la machine émulée. Paramètres

port est une expression numérique dans [0-65535]. Port Effect & h60 Retourne le scancode clavier pour la touche actuelle enfoncée ou la dernière touche relâchée. Les scancodes retournés par INP (& h60) sont ceux qui figurent dans le tableau des scancodes clavier. Si une clé est actuellement vers le bas, la valeur de retour est son scancode. Si aucune touche est enfoncée, la valeur de retour est le scancode de la dernière touche relâchée, incrémenté de 128. & H201 Renvoie la valeur du port de jeu (port joystick). Cette valeur est construite comme suit: Bit Signification 0 joystick 2 x axe 1 joystick 1 y 2 axes joystick 1 axe x 3 joystick 2 y 4 axes joystick 2 bouton 1 5 joystick 1 bouton 2 6 joystick 1 bouton 1 7 joystick 2 bouton 2 les bits de boutons sont 0 lorsque le bouton est tiré, 1 sinon. Les valeurs de l'axe sont normalement 0 mais sont mis à 1 par OUT & H201, x, puis retomber à 0 après un délai. Plus le délai est élevé, plus la valeur de l'axe. d'autres valeurs renvoie zéro. Remarques

 Seul un nombre limité de ports de la machine sont émulés dans PC-BASIC.

les erreurs

 port est pas dans [-32768 à 65535]: Overflow.
   port a une valeur de chaîne: Type mismatch.

ENTREE $ CHARS = entrée [] $ (num_chars [[#] file_num])

Retourne une chaîne de caractères NUM_CHARS à partir du clavier ou, si file_num est fourni, à partir d'un fichier texte. Paramètres

 num_chars est une expression numérique dans [1-255].
   file_num est une expression numérique qui renvoie le numéro d'un fichier texte ouvert en mode INPUT.  Le # est facultative et n'a aucun effet.

Remarques

 Ceci est un blocage lu.  Il attendra des caractères s'il n'y en a pas dans la mémoire tampon.
   Tous les caractères de contrôle, à l'exception Ctrl + Pause, Ctrl + Arrêt défil et Pause sont transmis à la chaîne par $ INPUT.  Ctrl + Pause et l'exécution de pause Ctrl + Arrêt défil Pause alors que les arrêts jusqu'à ce qu'une autre touche est pressée (et non lu).
   Lors de la lecture à partir du clavier directement ou par KYBD :, touches fléchées, Del, Début, Fin, Pg Up, Pg Dn sont passés comme des caractères NUL.  Les touches de fonction sont ignorées si elles sont les événements piégés, sinon la fonction-clé macro remplacement est actif comme normal.

les erreurs

 num_chars est pas dans [-32.768 à 32.767]: Overflow.
   num_chars est pas dans [1-255]: Illegal appel de fonction.
   file_num est pas un fichier ouvert: Numéro de fichier incorrect.
   file_num est inférieur à zéro: Illegal appel de fonction.
   file_num est supérieure à 32767: Overflow.
   file_num est pas ouvert pour INPUT: mode de fichier incorrect.
   num_chars ou file_num sont des chaînes: Incompatibilité de type.
   file_num est ouvert à un port COM et ceci est la première entrée, LINE INPUT ou INPUT $ appel sur ce port depuis le tampon a rempli complètement (c.-à-LOF (file_num) est devenu zéro): débordement de mémoire tampon de communication.

INSTR position = INSTR ([début,] parent, enfant)

Renvoie l'emplacement de la première occurrence de l'enfant substring dans parent. Paramètres

 parents et enfants sont les expressions de chaîne.
   commencer est une expression numérique dans [1-255], en précisant la position à partir de où chercher;  si non spécifié, la recherche commence au caractère 1.

Remarques

 Si l'enfant ne sont pas une sous-parent se produisant à ou avant le début, INSTR renvoie 0.

les erreurs

 démarrage a une valeur de chaîne ou d'un parent ou d'un enfant ont des valeurs numériques: incompatibilité de type.
   début est pas dans [-32768 à 32767]: Overflow.
   début est pas dans [1-255]: Illegal appel de fonction.

ensemble INT = INT (nombre)

Retourne le nombre tronqué vers l'infini négatif. Paramètres

 nombre est une expression numérique.

Remarques

 FIX tronque vers zéro: il supprime la partie fractionnaire.  En revanche, INT tronque vers l'infini négatif.  Pour x négatifs FIX (x) -INT (x) = 1.

les erreurs

 nombre est une expression de chaîne, Incompatibilité de type.

IOCTL $ result = IOCTL [] $ ([#] file_num)

Déclenche illégale appel de fonction. Remarques

 Dans GW-BASIC, IOCTL $ lit la réponse à IOCTL à partir d'un appareil.
   Cette fonction est pas implémentée dans PC-BASIC.

les erreurs

 file_num a une valeur de chaîne: Type mismatch.
   file_num est pas dans [-32.768 à 32.767]: Overflow.
   file_num est pas un fichier ouvert: Numéro de fichier incorrect.
   Dans le cas contraire: Illegal appel de fonction

LEFT $ enfant = LEFT $ (parent, num_chars)

Renvoie les caractères les plus à gauche NUM_CHARS de parent. Paramètres

 parent est une expression de chaîne.
   num_chars est une expression numérique dans [0-255].

Remarques

 Si num_chars est zéro ou parent est vide, LEFT $ retourne une chaîne vide.
   Si num_chars est supérieure à la longueur de la mère, le rendement parent.

les erreurs

 parent a une valeur numérique ou num_chars a une valeur chaîne: Incompatibilité de type.
   num_chars est pas dans [-32.768 à 32.767]: Overflow.
   num_chars est pas dans [0-255]: Illegal appel de fonction.

longueur LEN = LEN (string)

Retourne le nombre de caractères dans la chaîne. Paramètres

 chaîne est une expression de chaîne.

les erreurs

 chaîne a une valeur numérique: incompatibilité de type.

emplacement LOC = LOC (file_num)

Renvoie l'emplacement actuel dans le fichier ouvert sous le numéro file_num.

 Si le fichier est ouvert pour INPUT, OUTPUT ou APPEND, LOC renvoie le nombre de blocs de 128 octets lus ou écrits depuis l'ouverture du fichier.
   Si le fichier est ouvert pour RANDOM, LOC renvoie le numéro d'enregistrement dernier lu ou écrit.
   Si le fichier est ouvert pour un dispositif COM, LDC renvoie le nombre de caractères dans le tampon d'entrée, avec un maximum de 255.
   Si le fichier est ouvert à KYBD :, LOC renvoie 0.

Paramètres

 file_num est une expression numérique dans l'intervalle [0-255].

Remarques

 file_num ne doit pas être précédé d'un #.
   Dans SORTIE ou le mode APPEND, avant écrit tout retourne LOC 0. Après le caractère 128e est écrit, LOC renvoie 1.
   En mode INPUT, avant toute lit retourne LOC 1. Après le caractère 129e est lu, LOC renvoie 2.

les erreurs

 file_num a une valeur de chaîne: Type mismatch.
   file_num est pas dans [-32.768 à 32.767]: Overflow.
   file_num est pas dans [0-255]: Illegal appel de fonction.
   file_num est pas un fichier ouvert: Numéro de fichier incorrect.
   file_num est ouvert à un dispositif LPT: mode de fichier incorrect.

longueur LOF = LOF (file_num)

Retourne le nombre d'octets dans le fichier ouvert sous file_num. Paramètres

 file_num est une expression numérique dans l'intervalle [0-255].

Remarques

 Si file_num est ouvert à un COM: dispositif, LOF renvoie le nombre d'octets libres dans le tampon d'entrée.

les erreurs

 file_num a une valeur de chaîne: Type mismatch.
   file_num est pas dans [-32.768 à 32.767]: Overflow.
   file_num est pas dans [0-255]: Illegal appel de fonction.
   file_num est pas un fichier ouvert: Numéro de fichier incorrect.
   file_num est ouvert à un dispositif LPT: mode de fichier incorrect.

LOG y = LOG (x)

Renvoie le logarithme naturel de x. Paramètres

 x est une expression numérique supérieure à zéro.

Remarques

 Sauf PC-BASIC est exécuté avec l'option double, cette fonction retourne une valeur simple précision.
   LOG (x) peut différer de GW-BASIC par 1 dans le chiffre le moins significatif.

les erreurs

 x a une valeur de chaîne: Type mismatch.
   x est nul ou négatif: Illegal appel de fonction.

Position LPOS = LPOS (printer_number)

Renvoie la position de la colonne pour une imprimante. Paramètres

 printer_number est une expression numérique dans [0-3].  Si elle est 0 ou 1, la position LPT1 est retournée.  Si elle est 2, LTP2 :;  3, LPT3 :.

Remarques

 Dans GW-BASIC, en entrant dans le mode direct, LPT1: (mais pas d'autres imprimantes) est rouge et sa position est remise à 1. Ce ne sont pas mis en œuvre dans PC-BASIC.

les erreurs

 printer_number a une valeur de chaîne: Type mismatch.
   printer_number est pas dans [-32768 à 32767]: Overflow.
   printer_number est pas dans [0-3]: Illegal appel de fonction.

MID $ (function) substring = MID $ (string, la position [, longueur])

Renvoie une sous-chaîne de chaîne commençant à la position, à compter de 1. La chaîne a une longueur de longueur si elle est spécifiée, par défaut 1. Paramètres

 chaîne est une expression de chaîne.
   position est une expression numérique entre 1 et la longueur de la chaîne, y compris.
   longueur est une expression numérique dans [0-255].

les erreurs

 chaîne a une valeur de nombre ou la position ou la longueur des valeurs de chaîne: Type mismatch.
   la position ou la longueur ne sont pas dans [-32768 à 32767]: Overflow.
   la position est pas dans [1-255]: Illegal appel de fonction.
   longueur est pas dans [0-255]: Illegal appel de fonction.

MKD $ octets = MKD $ (double)

Renvoie l'interne de 8 octets Microsoft Binary Format représentation d'un numéro de double précision. les erreurs

 double a une valeur de chaîne: Type mismatch.

MKI $ octets = MKI $ (int)

Retourne le 2 octets représentation little-endian interne d'un entier. les erreurs

 int a une valeur de chaîne: Type mismatch.
   int est pas dans [-32768 à 32767]: Overflow.

MKS $ octets = MKS $ (simple)

Renvoie l'interne de 8 octets Microsoft Binary Format représentation d'un nombre de précision unique. les erreurs

 seule a une valeur de chaîne: Type mismatch.

Octobre $ octal = octobre $ (x)

Retourne une chaîne avec la représentation octal de x. Paramètres

 x est une expression numérique dans [-32768 à 65535].  Les valeurs de x négatifs sont présentés comme complément à deux.

les erreurs

 x a une valeur de chaîne: Type mismatch.
   x est pas dans [-32768 à 65535]: Overflow.

valeur PEEK = PEEK (adresse)

Renvoie la valeur de la mémoire au niveau du segment * 16 + adresse où segment est le segment courant réglé avec DEF SEG. Paramètres

 adresse est une expression numérique dans [-32768-65535].  Les valeurs négatives sont interprétées comme complément à leurs deux.

Remarques

 La mémoire est que partiellement émulée dans PC-BASIC.  Voir modèle de mémoire pour les adresses prises en charge.  En dehors des zones émulé, PEEK retourne 0.
   Les valeurs pour adresse particulière de la mémoire peuvent être préréglés sur la ligne de commande en utilisant l'option de coup d'oeil.  Ceci peut être utilisé pour assurer la compatibilité avec les anciens programmes.  Ces valeurs remplacent les valeurs vidéo ou de segment de données, si elles sont dans ces endroits.

les erreurs

 adresse a une valeur de chaîne: Type mismatch.
   adresse se trouve pas dans [-32768 à 65535]: Overflow.

PEN (fonction) x = PEN (mode)

Lit le crayon optique. Qu'est-ce que cette fonction retourne dépend du mode: Mode Valeur de retour 0 Boolean; si le stylet a été en baisse depuis le dernier sondage. 1 x coordonnée du dernier stylo position 2 coordonnée y de la dernière plume position 3 Boolean; si le stylo est actuellement en baisse de 4 x coordonnée de la position actuelle du stylet 5 coordonnée y de la position actuelle du stylo 6 caractères coordonnée de ligne de la dernière plume position 7 de la colonne de caractères coordonnées de la dernière plume position 8 caractères coordonnée de ligne de la colonne actuelle de 9 caractères de position de plume coordonner des courants Paramètres de position du stylet

 mode est une expression numérique dans [0-9].

Remarques

 Dans PC-BASIC, pour stylo lu bouton de la souris enfoncé.  Pour la position du stylet lire la position du pointeur de la souris.

les erreurs

 mode a une valeur de chaîne: Type mismatch.
   mode est pas dans [-32768-32767]: Overflow.
   mode est pas dans [0-9]: Illegal appel de fonction.

PLAY (fonction) = longueur PLAY (voix)

Retourne le nombre de notes dans la file d'attente de musique de fond. La valeur de retour est dans [0-16]. Paramètres

 la voix est une expression numérique dans [0-255].  Si la syntaxe = {PCjr | tandy}, indique pour quel canal ton de voix le nombre de notes doit être retourné.  Si la voix est pas dans [0-2], la file d'attente pour la voix 0 est renvoyé.  Pour d'autres choix de la syntaxe, la valeur de la voix n'a pas d'effet.

Remarques

 Il y a au plus 16 notes dans la file d'attente de la musique.  Certains manuels GW-BASIC prétendent qu'il peut y avoir jusqu'à 32, mais seulement dans la réalité lecture revient au cours des 16 dernières notes.

les erreurs

 voix a une valeur de chaîne: Type mismatch.
   la voix est pas dans [0-255]: Illegal appel de fonction.
   la voix est pas dans [-32768 à 32767]: Overflow.

PPAFM transformed_coord = PPAFM (original_coord, fn)

Plans entre viewport et logique (WINDOW) coordonne. Si aucune VIEW a été défini, les coordonnées de viewport sont coordonnées physiques.

En fonction de la valeur de fn, PPAFM transforme de logique de coordonnées viewport ou vice versa: fn Valeur de retour 0 retour viewport donné x x 1 retour viewport logique y étant donné y logique 2 retour x logiques viewport donnée x 3 retour logique y viewport donnée y Paramètres

 fn est une expression numérique dans [0-3].

Remarques

 Dans un premier temps, en mode texte, PPAFM renvoie 0.
   Dans GW-BASIC, PPAFM se comporte anormalement sur les changements d'écran, où il renvoie parfois des résultats comme si le dernier réglage de WINDOW avait persisté.  Ce comportement n'a pas été mis en œuvre dans PC-BASIC.

les erreurs

 Tout des paramètres a une valeur de chaîne: Type mismatch.
   Une coordonnée physique est pas dans [-32768 à 32767]: Overflow.
   fn est pas dans [-32768 à 32767]: Overflow.
   fn est pas dans [0-3]: Illegal appel de fonction.

POINT (coordonnées courant) coord = POINT (fn)

Retours une coordonnée active de l'écran graphique. Cela est généralement la dernière position à laquelle un pixel a été tracée, le second coin donné dans une commande LIGNE, ou le centre de la fenêtre si rien n'a été tracée. fn est une expression numérique dans [0-3].

La coordonnée de retour dépend de la valeur de fn: fn Valeur de retour 0 viewport x 1 viewport y 2 x logique 3 Paramètres y logiques

 fn est une expression numérique dans [0-3].

Remarques

 En mode texte, renvoie la coordonnée active de tout mode graphique précédent;  si aucun mode graphique est actif, renvoie 0.

les erreurs

 fn a une valeur de chaîne: Type mismatch.
   fn est pas dans [-32768 à 32767]: Overflow.
   fn est pas dans [0-3]: Illegal appel de fonction.

POINT (attribut pixel) attrib = POINT (x, y)

Renvoie l'attribut du pixel à la logique de coordonnées x, y. Paramètres

 x, y sont des expressions numériques dans [-32768 à 32767].

Remarques

 Si x, y est en dehors de l'écran, renvoie -1.

les erreurs

 La fonction est appelée en mode texte: Illegal appel de fonction.
   x ou y a une valeur de chaîne: Type mismatch.
   x ou y ou les coordonnées physiques qu'ils traduisent ne sont pas dans [-32768 à 32767]: Overflow.

POS pos = POS (fictif)

Renvoie la position de la colonne actuelle du curseur, dans l'intervalle [1-80]. Paramètres

 dummy est une expression valide de tout type;  sa valeur n'a pas d'effet.

DROIT $ enfant = RIGHT $ (parent, num_chars)

Renvoie les caractères les plus à droite NUM_CHARS de parent. Si num_chars est zéro ou parent est vide, RIGHT $ retourne une chaîne vide. Si num_chars est supérieure à la longueur de la mère, le rendement parent. Paramètres

 parent est une expression de chaîne.
   num_chars est une expression numérique dans [0-255].

les erreurs

 num_chars a une valeur de chaîne: Type mismatch.
   num_chars est pas dans [-32.768 à 32.767]: Overflow.
   num_chars est pas dans [0-255]: Illegal appel de fonction.

RND aléatoire = RND [(x)]

Renvoie un nombre pseudo-aléatoire dans l'intervalle [0-1). x est une expression numérique. Si x est égal à zéro, RND répète le dernier numéro pseudo-aléatoire. Si x est supérieur à zéro, un nouveau nombre pseudo-aléatoire est retournée. Si x est négatif, la valeur de x est utilisée pour générer un nouveau germe de nombre aléatoire; après cela, un nouveau nombre pseudo-aléatoire est retournée. La graine est générée d'une manière différente que par HASARD. Remarques

 La fonction RND de PC-BASIC génère des nombres pseudo-aléatoires à travers un générateur de congruence linéaire, avec modulo 224, multiplicateur 214.013 et incrémenter 2531011. Ce reproduit exactement les nombres aléatoires de la RND de GW-BASIC.
   Il convient de noter, toutefois, que ce soit un très mauvais générateur de nombres aléatoires: ses paramètres impliquent une période de récurrence de 224, ce qui signifie que, après moins de 17 millions d'appels RND se terminera autour et commencer à courir à travers la même série exacte des nombres partout encore.  RND ne doit pas être utilisé pour la cryptographie, les simulations scientifiques ou toute autre chose à distance sérieux.

les erreurs

 x a une valeur de chaîne: Type mismatch.

ECRAN (fonction) value = SCREEN (ligne, colonne [fn])

Renvoie le point de code ou attribut de couleur pour le caractère à la position rangée, col. Paramètres

 ligne est une expression numérique dans la gamme [1-25].
   col est une expression numérique entre 1 et la largeur de l'écran (40 ou 80).
   fn est une expression numérique dans [0-255].  Si elle est nulle ou non spécifié, le point du caractère de code est retourné.  Si elle est non nulle, en mode texte l'attribut est renvoyée;  dans d'autres écrans, 0 est renvoyé.

les erreurs

 Tout paramètre a une valeur de chaîne: Type mismatch.
   fn est pas dans [0-255]: Illegal appel de fonction.
   fn est pas dans [-32768 à 32767]: Overflow.
   ligne est pas à l'intérieur du courant secteur VIEW PRINT: Illegal appel de fonction.
   KEY ON et rang = 25: Illegal appel de fonction.
   col est pas dans [1, width]: Illegal appel de fonction.

signe SGN = SGN (nombre)

Renvoie le signe du nombre: 1 pour le positif, 0 pour zéro et -1 pour le négatif. Paramètres

 nombre est une expression numérique.

les erreurs

 nombre a une valeur de chaîne: Type mismatch.

SIN sinus = SIN (angle)

Retourne le sinus de l'angle. Paramètres

 angle est une expression numérique donnant l'angle en radians.

Remarques

 Sauf PC-BASIC est exécuté avec l'option double, cette fonction retourne une valeur simple précision.
   Le sinus retourné généralement diffère de la valeur retournée par GW-BASIC dans le chiffre significatif.

les erreurs

 angle a une valeur de chaîne: Type mismatch.

SPACE $ espaces = SPACE $ (nombre)

Retourne une chaîne d'espaces numériques. Paramètres

 nombre est une expression numérique dans [0-255].

les erreurs

 nombre a une valeur de chaîne: Type mismatch.
   nombre est pas dans [-32768 à 32767]: Overflow.
   nombre est pas dans [0-255]: Illegal appel de fonction.

SQR root = SQR (nombre)

Renvoie la racine carrée du nombre. Paramètres

 nombre est une expression numérique.

Remarques

 Sauf PC-BASIC est exécuté avec l'option double, cette fonction retourne une valeur simple précision.

les erreurs

 nombre a une valeur de chaîne: Incompatibilité de type

STICK pos = STICK (axe)

Renvoie une coordonnée d'un axe de joystick. Toutes les coordonnées retournées sont dans l'intervalle [1-254] avec 128 indiquant la position neutre. axe Valeur de retour 0 1er joystick coordonnée x 1 1er joystick coordonnée y 2 2ème manette coordonnée x 3 2ème manette coordonnée y Paramètres

 axe est une expression numérique dans [0-3] et indique quel axe à lire.

les erreurs

 axe a une valeur de chaîne: Incompatibilité de type
   axe est à [-32768-32767]: Overflow.
   axe est à [0-3]: Illegal appel de fonction.

STR $ rééd = STR $ (nombre)

Renvoie la représentation de chaîne du nombre. Paramètres

 nombre est une expression numérique.

les erreurs

 nombre a une valeur de chaîne: Type mismatch.

STRIG (fonction) result = STRIG (mode)

Renvoie l'état des boutons joystick de déclenchement. STRIG renvoie les résultats suivants, toutes les valeurs booléennes: Mode Valeur de retour 0 1er joystick, 1er déclencheur a été enfoncé depuis le dernier sondage. Une première manette de commande, premier déclencheur est actuellement enfoncée. 2 2e joystick, 1er déclencheur a été enfoncé depuis le dernier sondage. 3 2e joystick, 1er déclencheur est actuellement pressé. 4 1er joystick, 2e déclencheur a été enfoncé depuis le dernier sondage. 5 première manette, deuxième gâchette est actuellement enfoncée. 6 2e joystick, 2e déclencheur a été enfoncé depuis le dernier sondage. 7 deuxième manette, deuxième gâchette est actuellement enfoncée. Paramètres

 mode est une expression numérique dans [0-7].

Remarques

 La fonction STRIG retourne des résultats corrects quel que soit le STRIG ON état ou si STRIG (0) a été appelé en premier.

les erreurs

 mode a une valeur de chaîne: Type mismatch.
   mode est pas dans [-32768-32767]: Overflow.
   mode est pas dans [0-7]: Illegal appel de fonction.

STRING $ string = STRING $ (longueur, char)

Renvoie une chaîne de longueur fois le caractère de l'omble. Paramètres

 Si l'omble est une expression numérique, il doit être dans [0-255] et est interprété comme le point le caractère de code.
   Si l'omble est une expression de chaîne, son premier caractère est utilisé.

les erreurs

 longueur a une valeur de chaîne: Type mismatch.
   carbonisation est la chaîne vide: Illegal appel de fonction.
   char ou longueur est pas dans [-32768 à 32767]: Overflow.
   char ou longueur est pas dans [0-255]: Illegal appel de fonction.

TAN TAN tangente = (angle)

Renvoie la tangente de l'angle. Paramètres

 angle est une expression numérique donnant l'angle en radians.

Remarques

 Sauf PC-BASIC est exécuté avec l'option double, cette fonction retourne une valeur simple précision.
   La tangente retourné généralement diffère de la valeur retournée par GW-BASIC dans le chiffre significatif.
   Pour angle proche de multiples de π / 2, la tangente est divergente ou proche de zéro.  Les valeurs retournées auront très faible précision dans ces cas.

les erreurs

 angle a une valeur de chaîne: Type mismatch.

TIME $ (fonction) temps = TIME $

Renvoie l'heure actuelle BASIC sous la forme "HH: mm: ss". Remarques

 Cette fonction ne prend aucun argument.

TIMER (fonction) secondes = TIMER

Retourne le nombre de secondes depuis minuit sur l'horloge de base interne. Remarques

 mises à jour TIMER dans les tiques de 1/20 seconde.
   Les deux moins significatifs octets de TIMER sont souvent utilisés comme une graine pour le générateur de nombres pseudo-aléatoires par RANDOMIZE TIMER.  Étant donné que ces octets ne prennent des valeurs à partir d'un ensemble limité, qui est en fait pas particulièrement bonne semence aléatoire.  Cependant, le générateur de nombres pseudo-aléatoires inclus avec GW-BASIC et PC-BASIC est si faible qu'il ne devrait pas être utilisé pour quelque chose de sérieux de toute façon.
   Cette fonction ne prend aucun argument.

valeur = USR USR [n] (expr)

Retourne zéro. Paramètres

 n est un chiffre [0-9].
   expr est une expression.

Remarques

 Dans GW-BASIC, appelle une fonction code machine et renvoie sa valeur de retour.
   Cette fonction est pas implémentée dans PC-BASIC.

les erreurs

 n est pas un chiffre [0-9]: Erreur de syntaxe.

valeur VAL = VAL (string)

Renvoie la valeur numérique de la chaîne d'expression de chaîne. Parsing arrête dès que le premier caractère est rencontré qui ne peut pas faire partie d'un nombre. Si aucun caractère sont analysés, VAL renvoie zéro. Voir la section sur les littéraux numériques pour les formats numériques reconnus. Remarques

 Les espaces avant ou même à l'intérieur d'un certain nombre sont ignorées: VAL ( "1 0") renvoie 10.
   Si la chaîne contient un des caractères de séparation ASCII CHR $ (28) (fichier séparateur), CHR $ (29) (séparateur de groupe) ou CHR $ (31) (séparateur d'unité), VAL retourne zéro.  Ce n'est pas le cas avec CHR $ (30) (fiche séparateur).  Ce comportement est conforme à la GW-BASIC.

les erreurs

 chaîne a une valeur numérique: incompatibilité de type.

VARPTR pointeur = VARPTR ({nom | #file_num})

Retourne l'adresse mémoire du nom de la variable ou du fichier bloc de contrôle du numéro de dossier file_num. Paramètres

 nom est une variable définie précédemment ou élément de tableau entièrement indexés.
   file_num est un numéro de dossier juridique.

Remarques

 VARPTR peut être utilisé avec PEEK pour lire la représentation interne d'une variable.

les erreurs

 nom n'a pas été défini précédemment: Illegal appel de fonction.
   file_num a une valeur de chaîne: Type mismatch.
   file_num est pas dans [1, MAX_FILES], où MAX_FILES est le nombre maximal de fichiers tel que défini par l'option max-fichiers: Numéro de fichier incorrect.

VARPTR $ pointeur = VARPTR $ (nom)

Retourne l'adresse mémoire du nom de la variable sous la forme d'une chaîne de 3 octets. Le premier octet est la longueur de l'enregistrement des points de pointeur à:

2

 pour les entiers

3

 pour cordes (longueur + pointeur vers l'espace de chaîne)

4

 pour les flotteurs simple précision

8

 pour les flotteurs double précision

Les deux derniers octets sont l'adresse de pointeur (comme retourné par VARPTR) pour little-endian. les erreurs

 nom n'a pas été défini précédemment: Illegal appel de fonction.

Déclarations

Une ligne de programme est composé d'un numéro de ligne et un ou plusieurs états. Si plusieurs états sont mis sur une seule ligne, ils doivent être séparés par des virgules. Les déclarations peuvent être vides. Chaque énoncé a sa propre syntaxe idiosyncrasique.

De nombreux ouvrages de référence sur GW-BASIC distinguent les commandes et les déclarations; cette distinction découle de la conception Dartmouth originale du langage BASIC, dans lequel les commandes ne faisaient pas partie de la langue et ne pouvait pas être utilisé dans les programmes, mais ont été plutôt utilisé pour contrôler l'interprète lui-même. Cependant, dans GW-BASIC cette distinction est moins utile et donc cette référence comprend ce qui est traditionnellement considéré comme des commandes dans la catégorie des déclarations. AUTO AUTO [line_number |.] [, [Incrément]]

Lancer la numérotation automatique des lignes. Les numéros de ligne sont générés automatiquement lorsque vous appuyez sur Entrée. Si une ligne de programme existe à un numéro de ligne généré, a * est affiché après le numéro de la ligne. Pour éviter d'écraser cette ligne, laissez-le vide et appuyez sur Entrée. Pour arrêter la numérotation automatique de la ligne, appuyez sur Ctrl + Pause ou Ctrl + C. La ligne en cours d'édition à ce moment ne sont pas sauvegardées. BASIC sera de retour en mode commande, même si AUTO a été exécuté à partir d'une ligne de programme. Paramètres

 La numérotation des lignes commence à line_number, si spécifié.  Si .  est spécifié, la numérotation des lignes commence à la dernière ligne qui a été stocké de programme.  Dans le cas contraire, la numérotation des lignes commence à 10.
   Chaque numéro de la ligne suivante est incrémenté par incrément, si spécifié.  Si une virgule est utilisée sans spécifier un incrément, le dernier incrément spécifié dans une commande AUTO est utilisé.  Sinon, incrémenter par défaut à 10.

les erreurs

 line_number est pas une valeur non signée entier dans [0-65529]: Erreur de syntaxe.
   Lorsque la numérotation automatique de la ligne est activée et vous appuyez sur Entrée sur une ligne vide avec un nombre plus grand que 65519: numéro de ligne défini.
   incrément est 0: Illegal appel de fonction. 

BIP BIP

Beep le haut-parleur à 800Hz pour 0,25s. les erreurs

 Si une erreur de syntaxe est soulevée, le bip est encore produit.

BEEP (switch) BEEP {ON | OFF}

Cette déclaration n'a aucun effet. Remarques

 Seulement juridique avec le = {PCjr | tandy} syntaxe option.
   Sur les ordinateurs PCjr et Tandy, BEEP OFF serait éteindre le haut-parleur interne.  Le PC-BASIC, à la fois interne et haut-parleur externe sont émulées par le même système de sonorisation.

BLOAD BLOAD file_spec [, offset]

Charge un fichier d'image de mémoire dans la mémoire. Paramètres

 Le file_spec d'expression de chaîne est une spécification de fichier valide indiquant le fichier à lire l'image de la mémoire à partir.
   offset est une expression numérique dans l'intervalle [-32.768 à 65.535].  Il indique un décalage dans le segment actuel DEF SEG où le fichier doit être stocké.  Si non spécifié, le décalage stocké dans le fichier BSAVE sera utilisé.  Si elle est négative, le complément de ses deux sera utilisé.

les erreurs

 Le fichier chargé est pas au format BSAVE: le mode de fichier incorrect.
   file_spec contient des caractères non autorisés: Numéro de fichier incorrect (sur CAS1 :);  Nom de fichier incorrect (sur les unités de disque).
   file_spec a une valeur numérique: incompatibilité de type.
   offset est pas dans l'intervalle [-32768 à 65535]: Overflow.

BSAVE BSAVE file_spec, offset, longueur

Enregistre une région de mémoire dans un fichier image. Paramètres

 Le file_spec d'expression de chaîne est une spécification de fichier valide indiquant le fichier à écrire.
   offset est une expression numérique dans l'intervalle [-32.768 à 65.535] indiquant le décalage dans le segment courant DEF SEG par où commencer la lecture.
   longueur est une expression numérique dans l'intervalle [-32768 à 65535] indiquant le nombre d'octets à lire.
   Si le décalage ou la longueur sont négatives, leur complément à deux sera utilisé.

les erreurs

 file_spec a une valeur numérique: incompatibilité de type.
   file_spec contient des caractères non autorisés: Numéro de fichier incorrect (sur CAS1 :);  Nom de fichier incorrect (sur les unités de disque).
   offset est pas dans l'intervalle [-32768 à 65535]: Overflow.
   longueur est pas dans l'intervalle [-32768 à 65535]: Overflow.

CALL CALL address_var [(p0 [p1] ...)]

Ne fait rien. Remarques

 Dans GW-BASIC, CALL exécute un sous-programme en langage machine.
   Cette déclaration n'a pas été mis en œuvre dans PC-BASIC.

Paramètres

 address_var est une variable numérique.
   P0, P1, ... sont des variables.

les erreurs

 address_var est une variable chaîne: Incompatibilité de type.
   address_var est un littéral: Erreur de syntaxe.

APPELS APPELS address_var [(p0 [p1] ...)]

Ne fait rien. Remarques

 Dans GW-BASIC, APPELLE exécute un sous-programme FORTRAN.
   Cette déclaration n'a pas été mis en œuvre dans PC-BASIC.

Paramètres

 address_var est une variable numérique.
   P0, P1, ... sont des variables.

les erreurs

 address_var est une variable chaîne: Incompatibilité de type.
   address_var est un littéral: Erreur de syntaxe.

CHAINE [MERGE] file_spec [[line_number_expr] [, ALL] [, DELETE plage [, ign]]]

Charge un programme à partir du fichier dans la mémoire et l'exécute, le transfert éventuellement des variables.

Si All Est specified, Toutes les cessionnaires des variables. Sont  Dans le cas contraire, les variables spécifiées dans une déclaration commune sont transférés.
   Si MERGE est spécifié, le programme chargé est fusionné dans le programme existant.  Pour pouvoir l'utiliser, le fichier de programme indiqué par file_spec doit être au format texte brut.
   Si SUPPR est spécifié, la gamme des numéros de ligne est supprimé du code existant avant la fusion.  Cela est inutile sans MERGE.

Paramètres

Le file_spec d'expression de chaîne is a spécification de fichier valide indiquant le programme Initiation à lire à partir chier.
   line_number_expr est une expression numérique.  Il sera interprété comme un numéro de ligne dans le nouveau programme et l'exécution va commencer à partir de ce numéro de ligne.  Si line_number_expr est négatif, il sera interprété comme son complément à deux.
   plage est une plage de numéro de ligne dont le numéro de ligne de fermeture est spécifiée et existe avant la fusion.
   ign est optionnel et ignoré.

Remarques

CHAÎNE conserver le reglage OPTION DE BASE.
   variables communes restent COMMON pour la chaîne suivante.
   Seulement si ALL est spécifié, les définitions DEF FN sont préservés.
   Seulement si MERGE est spécifié, définitions DEFINT, DEFSTR, DefSng, DEFDBL sont préservés.
   Si spécifié, ALL doit précéder SUPPRIMER;  si non spécifié, pas de virgule doit être mis à sa place et que deux virgules doit précéder DELETE.

les erreurs

file_spec une Une valeur numérique: incompatibilité de Type.
   file_spec contient des caractères non autorisés: Numéro de fichier incorrect (sur CAS1 :);  Nom de fichier incorrect (sur les unités de disque).
   Le fichier spécifié dans file_spec ne peut pas être trouvé: Fichier non trouvé.
   MERGE est spécifié et le programme chargé n'a pas été enregistré en mode texte clair: le mode de fichier incorrect.
   Un numéro de ligne dans la plage est supérieure à 65529: Erreur de syntaxe.
   Si une erreur de syntaxe est soulevée par CHAIN, pas de lignes sont supprimés et le nouveau programme ne sont pas chargés.
   Le numéro de la ligne de clôture dans la gamme n'existe pas: Illegal appel de fonction
   Si line_number_expr n'évalue pas à un numéro de ligne existante dans le nouveau programme, Illégal appel de fonction est élevée, mais la charge ou de fusion est en cours d'exécution.

CHDIR CHDIR dir_spec

Changer le répertoire courant sur un périphérique de disque à dir_spec. Chaque unité de disque a son propre répertoire en cours. Paramètres

Le dir_spec d'expression de chaîne is a spécification de fichier valide indiquant non folder existant Sur un périphérique de disque.

les erreurs

Aucun chemin correspondant is found: Chemin d'Accès introuvable.
   dir_spec a une valeur numérique: incompatibilité de type.
   dir_spec est vide: Nom de fichier incorrect.

CIRCLE CIRCLE [STEP] (x, y), le rayon [[color] [, [start] [, [fin] [aspect]]]

Dessiner une ellipse ou d'un secteur ellipse. Paramètres

Le point de milieu de l'ellipse se SITUE en (x, y).  Si l'étape est indiquée, le point médian est (x, y) à l'écart de la position actuelle.
   le rayon est le rayon, en pixels, le long de l'axe.
   la couleur est l'attribut de couleur.
   Si début et de fin sont spécifiés, un secteur de l'ellipse est tirée de radians de début à la fin radians, avec zéro radians l'intersection avec l'axe des x droite.  Si une valeur négative est spécifiée, le secteur d'arc est reliée par une ligne à mi-chemin.
   aspect indique le rapport entre le rayon y et le rayon x.  Si elle est pas spécifié, la valeur standard pour le mode écran est utilisé (voir là), de manière à rendre l'ellipse apparaît comme un cercle sur le matériel d'origine.

Remarques

Verser aspect <> 1, l'algorithme used milieu n'à pas de pixels Parfaitement Reproduire les ellipses de GW-BASIC.

les erreurs

L'instruction is exécutée en mode de texte: appel illégal de fonction.
   début ou la fin est pas dans [0-2π]: Illegal appel de fonction.
   La déclaration se termine par une virgule: Missing opérande.

EFFACER EFFACER [expr] [, [mem_limit] [, [stack_size] [, video_memory]]]

Efface toutes les variables, les tableaux, les fonctions utilisateur DEF FN, les définitions de type DefType, et les déclarations communes. Ferme tous les fichiers. Désactive tous les sons. Remet JOUENT Etat et définit la musique au premier plan. Efface tous les pièges ERROR. Remet ERR et ERL à zéro. Désactive tous les événements. Active PEN et STRIG off. Réinitialise le générateur de nombres aléatoires. Efface la pile de boucle. Remet l'état DRAW et la position graphique actuelle. Paramètres

mem_limit PRECISES la limite supérieure de mémoire utilisable.  Par défaut est la taille de la mémoire précédente.  taille de la mémoire par défaut est 65534.
   stack_size spécifie la quantité de mémoire disponible pour la pile BASIC.  Par défaut est la taille de la pile précédente.  taille de la pile par défaut est 512.
   video_memory spécifie la quantité de mémoire disponible pour l'adaptateur vidéo.  Ce paramètre est uniquement juridique avec l'une des options de syntaxe = {PCjr, tandy}.  Au lieu d'utiliser CLEAR l'option de mémoire vidéo peut également être utilisé pour définir la taille de la mémoire vidéo.

Remarques

Le mais de expr is inconnue.
   Si elle est appelée dans une boucle FOR-NEXT ou WHILE-WEND, une erreur sera soulevée lors de la déclaration NEXT ou WEND, étant donné que les piles de boucle ont été effacés.

les erreurs

Directeur Tous les arguments d'une Une valeur de chaîne: Type mismatch.
   mem_limit, stack_size ne sont pas dans [-32.768 à 65.535]: Overflow.
   mem_limit ou STACK_SIZE égal à 0: Illegal appel de fonction.
   mem_limit est égal à -1 ou 65535: Out of memory.
   mem_limit ou expr sont trop faibles: Manque de mémoire.
   expr est pas dans [-32768-32767]: Overflow.
   expr est négatif: Illegal appel de fonction.

FERMER FERMER [[#] file_0 [[#] file_1] ...]

Ferme les fichiers. Si aucun numéro de fichier sont spécifiés, tous les fichiers ouverts sont fermés. Le dièse (#) est facultative et n'a aucun effet. Paramètres

file_1, file_2, ... des expressions are des Numériques Donnant Numéros de fichier.

Remarques

Aucune erreur is déclenchée si le Nombre de Fichiers Précise ne pas are ouverts.

les erreurs

file_1, file_2, ... ne pas are Dans [-32.768 à 32.767]: Overflow.
   file_1, file_2, ... ne sont pas dans [0-255]: Illegal appel de fonction.
   file_1, file_2, ... ont une valeur de chaîne: Type mismatch.
   La déclaration se termine par une virgule, opérande manquant.
   Si une erreur se produit, seuls les fichiers avant la valeur erratique sont fermés.

CLS CLS [x] [,]

Efface l'écran ou une partie de celui-ci. Si x est pas spécifié, dans SCREEN 0 la vue région de texte est effacé; dans d'autres écrans, les graphiques voir la région est effacée. La virgule est facultative et n'a aucun effet. Paramètres

x est une expression d'une valeur de numérique qui détermine ce qui est autorisé:

Si x = 0, l'ensemble de l'écran is effacé.
   Si x = 1, la vue graphique région est effacé.
   Si x = 2, la région d'affichage de texte est effacé.

les erreurs

x is Une valeur de chaîne: Type mismatch.
   x est pas dans [-32768 à 32767]: Overflow.
   x est pas dans [0, 1, 2]: Illegal appel de fonction.
   Aucune virgule est spécifié, mais plus de texte suit: Illegal appel de fonction.
   Une virgule est spécifié suivie par plus: Erreur de syntaxe.
   Si une erreur se produit, l'écran ne sont pas effacées.

COLOR (mode texte) COLOR [plan] [, [background] [, frontière]]

Modifie les attributs de premier plan et d'arrière-plan en cours. Tous les nouveaux caractères imprimés prendront les attributs nouvellement créées. Les caractères existants sur l'écran ne sont pas affectés. Paramètres

premier plan de is a expression numérique Dans [0-31].  Ceci spécifie le nouvel attribut de premier plan.  Attributs 16-31 clignotent versions des attributs 0-15.
   arrière-plan est une expression numérique dans [0-15].  Ceci spécifie le nouvel attribut de fond.  Il est pris MOD 8: Les valeurs 8-15 produisent la même couleur que 0-7.
   la frontière est une expression numérique dans [0-15] spécifiant l'attribut border.

Textmode attributs attribut (couleur) Contexte 0 1 2 3 4 5 6 7 FG 0 00 XX 10 XX 20 XX 30 XX 40 XX 50 XX 60 XX 70 XX 1 01 XX 11 XX 21 XX 31 XX 41 XX 51 XX 61 XX 71 XX 2 02 XX 12 XX 22 XX 32 XX 42 XX 52 XX 62 XX 72 XX 3 03 XX 13 XX 23 XX 33 XX 43 XX 53 XX 63 XX 73 XX 4 04 XX 14 XX 24 XX 34 XX 44 XX 54 XX 64 XX 74 XX 5 05 XX 15 XX 25 XX 35 XX 45 XX 55 XX 65 XX 75 XX 6 06 XX 16 XX 26 XX 36 XX 46 XX 56 XX 66 XX 76 XX 7 07 XX 17 XX 27 XX 37 XX 47 XX 57 XX 67 XX 77 XX 8 08 XX 18 XX 28 XX 38 XX 48 XX 58 XX 68 XX 78 XX 9 09 XX 19 XX 29 XX 39 XX 49 XX 59 XX 69 XX 79 XX 10 0a XX 1a XX 2a XX 3a XX 4a XX 5a XX 6a XX 7a XX 11 0b XX 1b XX 2b XX 3b XX 4b XX 5b XX 6b XX 7b XX 12 0c XX 1c XX 2c XX 3c XX 4c XX 5c XX 6c XX 7c XX 13 0d XX 1d XX 2d XX 3d XX 4d XX 5d XX 6d XX 7d XX 14 0e XX 1e XX 2e XX 3e XX 4e XX 5e XX 6e XX 7e XX 15 0f XX 1f XX 2f XX 3f XX 4f XX 5f XX 6f XX 7f XX 16 80 XX 90 XX a0 XX b0 XX c0 XX d0 XX e0 XX f0 XX 17 81 XX 91 XX a1 XX b1 XX c1 XX d1 XX e1 XX f1 XX 18 82 XX 92 XX a2 XX b2 XX c2 XX d2 XX e2 XX f2 XX 19 83 XX 93 XX a3 XX b3 XX c3 XX d3 XX e3 XX f3 XX 20 84 XX 94 XX a4 XX b4 XX c4 XX d4 XX e4 XX f4 XX 21 85 XX 95 XX a5 XX b5 XX c5 XX d5 XX e5 XX f5 XX 22 86 XX 96 XX a6 XX b6 XX c6 XX d6 XX e6 XX f6 XX 23 87 XX 97 XX a7 XX b7 XX c7 XX d7 XX e7 XX f7 XX 24 88 XX 98 XX a8 XX b8 XX c8 XX d8 XX e8 XX f8 XX 25 89 XX 99 XX a9 XX b9 XX c9 XX d9 XX e9 XX f9 XX 26 8a XX 9a XX aa XX ba XX ca XX da XX ea XX fa XX 27 8b XX 9b XX ab XX bb XX cb XX db XX eb XX fb XX 28 8c XX 9c XX ac XX bc XX cc XX cc XX ec XX fc XX 29 8d XX 9d XX ad XX bd XX cd XX dd XX ed XX fd XX 30 8e XX 9e XX ae XX être XX CE XX de XX ee XX fe XX 31 8f XX 9f XX af XX bf XX cf XX df XX ef XX ff XX Textmode attributs attribut (monochrome) Contexte 0 1 2 3 4 5 6 7 FG 0 00 XX 10 XX 20 XX 30 XX 40 XX 50 XX 60 XX 70 XX 1 01 XX 11 XX 21 XX 31 XX 41 XX 51 XX 61 XX 71 XX 2 02 XX 12 XX 22 XX 32 XX 42 XX 52 XX 62 XX 72 XX 3 03 XX 13 XX 23 XX 33 XX 43 XX 53 XX 63 XX 73 XX 4 04 XX 14 XX 24 XX 34 XX 44 XX 54 XX 64 XX 74 XX 5 05 XX 15 XX 25 XX 35 XX 45 XX 55 XX 65 XX 75 XX 6 06 XX 16 XX 26 XX 36 XX 46 XX 56 XX 66 XX 76 XX 7 07 XX 17 XX 27 XX 37 XX 47 XX 57 XX 67 XX 77 XX 8 08 XX 18 XX 28 XX 38 XX 48 XX 58 XX 68 XX 78 XX 9 09 XX 19 XX 29 XX 39 XX 49 XX 59 XX 69 XX 79 XX 10 0a XX 1a XX 2a XX 3a XX 4a XX 5a XX 6a XX 7a XX 11 0b XX 1b XX 2b XX 3b XX 4b XX 5b XX 6b XX 7b XX 12 0c XX 1c XX 2c XX 3c XX 4c XX 5c XX 6c XX 7c XX 13 0d XX 1d XX 2d XX 3d XX 4d XX 5d XX 6d XX 7d XX 14 0e XX 1e XX 2e XX 3e XX 4e XX 5e XX 6e XX 7e XX 15 0f XX 1f XX 2f XX 3f XX 4f XX 5f XX 6f XX 7f XX 16 80 XX 90 XX a0 XX b0 XX c0 XX d0 XX e0 XX f0 XX 17 81 XX 91 XX a1 XX b1 XX c1 XX d1 XX e1 XX f1 XX 18 82 XX 92 XX a2 XX b2 XX c2 XX d2 XX e2 XX f2 XX 19 83 XX 93 XX a3 XX b3 XX c3 XX d3 XX e3 XX f3 XX 20 84 XX 94 XX a4 XX b4 XX c4 XX d4 XX e4 XX f4 XX 21 85 XX 95 XX a5 XX b5 XX c5 XX d5 XX e5 XX f5 XX 22 86 XX 96 XX a6 XX b6 XX c6 XX d6 XX e6 XX f6 XX 23 87 XX 97 XX a7 XX b7 XX c7 XX d7 XX e7 XX f7 XX 24 88 XX 98 XX a8 XX b8 XX c8 XX d8 XX e8 XX f8 XX 25 89 XX 99 XX a9 XX b9 XX c9 XX d9 XX e9 XX f9 XX 26 8a XX 9a XX aa XX ba XX ca XX da XX ea XX fa XX 27 8b XX 9b XX ab XX bb XX cb XX db XX eb XX fb XX 28 8c XX 9c XX ac XX bc XX cc XX cc XX ec XX fc XX 29 8d XX 9d XX ad XX bd XX cd XX dd XX ed XX fd XX 30 8e XX 9e XX ae XX être XX CE XX de XX ee XX XX fe 31 8f XX 9f XX XX af bf XX cf XX XX df ef XX ff XX Remarques

La syntaxe et l'effet de couleur is Différente Dans les modes Différents d'écran: COULEUR (mode texte), COLOR (ECRAN 1), (SCREEN 3-9).
   Au moins un paramètre doit être fourni et la déclaration ne doit pas se terminer par une virgule.

les erreurs

Tout des paramêtres a Une valeur de chaîne: Type mismatch.
   Tous les paramètres ne figure pas dans [-32.768 à 32.767]: Overflow.
   premier plan est pas dans [0-31], fond se trouve pas dans [0-15] ou à la frontière ne sont pas dans [0-15]: Illegal appel de fonction.
   Déclaration est utilisé dans ECRAN 2: Illegal appel de fonction.

COLOR (ECRAN 1) COLOR [palette_0] [, palette [, override]]

Affecte de nouvelles couleurs à la palette d'attributs.

palette_0 is a expression numérique Dans [0-255].  Ceci définit la couleur de la palette associée à l'attribut 0;  par défaut, l'arrière-plan a cet attribut.  Tous les pixels avec cet attribut changent de couleur.  La valeur de la palette de couleurs est tirée de l'ensemble 64-couleur.  palette_0 est prise MOD 64.
   palette est une expression numérique dans [0-255] qui spécifie la palette:
       palette ensembles impairs de la palette CGA standard (cyan, magenta, gris).
       palette définit même la palette de remplacement (vert, rouge, brun).
   Tous les pixels avec des attributs 1,2,3 changent de couleur à la nouvelle palette.
   override est une expression numérique dans [0-255].  Si override est spécifié, la palette est définie comme ci-dessus, mais en utilisant override au lieu de palette.  palette est alors ignoré.

palettes CGA Attribut Palette 0 Palette 1 palette Alternate Couleur Lo Salut Couleur Lo Salut Couleur Lo Salut 0 Noir Noir Noir 1 Vert Cyan Cyan Magenta 2 Rouge Rouge 3 Brun Blanc Blanc Remarques

La syntaxe et l'effet de couleur is Différente Dans les modes Différents d'écran: COULEUR (mode texte), COLOR (ECRAN 1), (SCREEN 3-9).
   Au moins un paramètre doit être fourni et la déclaration ne doit pas se terminer par une virgule.

les erreurs

Tout des paramêtres a Une valeur de chaîne: Type mismatch.
   Tous les paramètres ne figure pas dans [-32.768 à 32.767]: Overflow.
   Tous les paramètres ne figure pas dans [0-255]: Illegal appel de fonction.

COLOR (SCREEN 3-9) COULEUR [plan] [, palette_0 [, dummy]]

Modifie l'attribut de premier plan en cours et la couleur pour l'attribut 0. Paramètres

Plan premier is a expression numérique Dans [0-15] Céci Définit le nouvel plan de premier attribut.  Ceci ne concerne que les nouveaux caractères imprimés ou pixels tracés.
   palette_0 est une expression numérique dans [0-15] Ceci définit la couleur associée à l'attribut 0;  par défaut, l'arrière-plan a cet attribut.  Tous les pixels avec cet attribut changent de couleur.  Dans ÉCRAN 7 et 8, la couleur palette_0 est tirée de la première 8 de la 16 couleurs EGA set.  palette_0 est prise MOD 8. IN SCREEN 9, la valeur de couleur est tirée de l'ensemble 64-couleur.
   dummy est une expression numérique avec une valeur de [0-255] La valeur de mannequin est ignoré.

palette par défaut EGA Attribut Couleur 0 Black 1 Blue 2 Vert 3 Cyan 4 Red 5 Magenta 6 Brown 7 de faible intensité blanc 8 Gris 9 Light Blue 10 Lumière 11 Green Light Cyan 12 Light 13 Red Light Magenta 14 Jaune clair 15 haute intensité blanche EGA liste couleur 0 8 16 24 32 40 48 56 1 9 17 25 33 41 49 57 2 10 18 26 34 42 50 58 3 11 19 27 35 43 51 59 4 12 20 28 36 44 52 60 5 13 21 29 37 45 53 61 14 22 30 6 38 46 54 62 7 15 23 31 39 47 55 63 notes

La syntaxe et l'effet de couleur is Différente Dans les modes Différents d'écran: COULEUR (mode texte), COLOR (ECRAN 1), (SCREEN 3-9).
   Au moins un paramètre doit être fourni et la déclaration ne doit pas se terminer par une virgule.

les erreurs

Tout des paramêtres a Une valeur de chaîne: Type mismatch.
   Tous les paramètres ne figure pas dans [-32.768 à 32.767]: Overflow.
   premier plan se trouve pas dans [1-15];  fond est pas dans [0-15];  ou factice est pas dans [0-255]: Illegal appel de fonction.

COM COM (port) {ON | OFF | STOP}

ON: Permet ON COM (port) Événement du port série piégeage Emule.
   OFF: désactive le piégeage.
   STOP: arrête le piégeage jusqu'à COM (port) ON est utilisé.  Les événements qui se produisent pendant le piégeage est arrêté déclenchera immédiatement lorsque le piégeage est réactivé.

Paramètres

Port is a expression numérique d'Une valeur de 1 ou 2. Céci PRECISES le port de série (COM1: ou COM2 :) is pris au piège.

COMMUNE COMMUNE [var_0 var_1 ...]

Spécifie les variables à transmettre sous forme de variables communes au programme appelé avec CHAIN. La déclaration peut se terminer par une ou plusieurs virgules. Paramètres

var_0, var_1, ... Sont des Noms de Variables OÜ des tableaux.  Les noms de tableau doivent être suivies par des parenthèses ou des crochets.  Les supports peuvent aussi être mélangés: un (] b [).

CONT CONT [rien]

Reprend l'exécution d'un programme qui a été arrêté par STOP, FIN, Ctrl + C ou Ctrl + Break. Remarques

Tout Ce costume est qui le mot-clé CONT is ignorée.
   Cette déclaration ne peut être utilisé en mode direct.
   Si une pause est rencontrée dans GOSUB routine appelée à partir d'une ligne directe continue (par exemple GOSUB 100: IMPRIMER A $), CONT remplacera la ligne directe en cours d'exécution.  Comme les déclarations de sous-programme à la position après la GOSUB dans la vieille ligne directe, des choses étranges peuvent se produire si les commandes sont donnés après CONT.  Dans GW-BASIC, cela peut conduire à des erreurs étranges dans les lignes non-existantes programme comme l'analyseur exécute octets qui ne font pas partie d'une ligne de programme.  Dans PC-BASIC, si la nouvelle ligne directe est plus courte, l'exécution s'arrête après le retour;  mais si la ligne directe est prolongée au-delà de l'ancienne position de retour, l'analyseur tente de reprendre à cette position de retour, avec des effets étranges.

les erreurs

Aucun programme chargé, Un pas de programme N'a Ete EXECUTE, après juin ligne de programme was Modifié OÜ après CLEAR: Vous ne can pas continuateur.
   La rupture a eu lieu dans une ligne directe: Vous ne pouvez pas continuer.
   CONT est utilisé dans un programme: Vous ne pouvez pas continuer.

DATA DATA [const_0] [, [const_1]] ...

Indique les données qui peuvent être lues par une instruction READ. Paramètres

const_0, const_1, ... et littéraux are cordes ous can be vide.  Les chaînes littérales peuvent être donnés avec ou sans guillemets.  Si les guillemets sont omis, espaces avant et après est ignoré et des virgules ou des colons mettra fin à la déclaration de données.

les erreurs

Si le Type du littéral ne correspond pas à l'instruction de Celle READ Correspondante, juin erreur de syntaxe se produit sur l'instruction de Données.

DATE $ (déclaration) DATE $ = date

Définit la date système. date est une expression de chaîne qui représente une date dans l'un des formats: "mm-jj-aaaa", "jj / mm / aaaa", "mm-dd-yy", "mm / jj / aa".

Parmi ceux-ci,

mm Doit Être dans [01-12].
   dd doit être dans [01-31].
   aaaa doit être dans [1980-2099].
   yy doit être dans l'une des gammes:
       [00-77], interprété comme 2000-2077;  ou
       [80-99], interprété comme 1980 à 1999.

Remarques

La date de system is pas Changé réellement;  plutôt, PC-BASIC se souvient le décalage de la vraie date du système.  Cela évite nécessitant une autorisation utilisateur pour modifier l'heure du système.
   GW-BASIC semble accepter les dates non valides telles que "31/02/2000".  PC-BASIC soulève illégal appel de fonction pour ces derniers.

les erreurs

la date à laquelle une Une valeur numérique: incompatibilité de Type.
   la date ne sont pas dans le format spécifié ci-dessus: Illegal appel de fonction.

DEF FN DEF FN nom [] [(de arg_0 [, Arg_1] ...)] = expression

Définit une fonction appelée FNname (ou le nom FN: espaces entre les FN et le nom sont en option). En appelant FNname (...), l'expression est évaluée avec les paramètres fournis substitués. Tous les noms de variables utilisés dans la fonction qui ne sont pas dans la liste des arguments se réfèrent aux variables globales correspondantes. Le résultat de l'évaluation est la valeur de retour de FNname. Le type de la valeur de retour doit être compatible avec le type indiqué par son nom. Remarques

This déclaration ne can be used Sur une ligne de programme.
   Comme la fonction doit être une expression unique et PC-BASIC n'a pas un opérateur ternaire, il n'y a aucun moyen de définir une fonction récursive qui se termine en fait.

Paramètres

nom Doit Être nom non de la variable juridique.
   arg_0, Arg_1, ... doit être des noms de variables juridiques.  Ce sont les paramètres de la fonction.  Les variables du même nom peuvent ou peuvent ne pas exister dans le programme;  leur valeur est pas affectée ou utilisée par la fonction définie.
   expression doit être une expression juridique de PC-BASIC.

les erreurs

L'instruction is exécutée directement au lieu d'Une ligne de programme: Illegal direct.
   Si le type de la valeur de retour est incompatible avec le type de nom, aucune erreur est soulevée à la déclaration DEF FN;  cependant, une incompatibilité de type sera soulevée lors du premier appel de FNname.

DEFINT, DEFDBL, DefSng, DEFSTR {DEFINT | DEFDBL | DefSng | DEFSTR} first_0 [- last_0] [, first_1 [- last_1]] ...

Définit le type qui est supposé si aucun sigil est spécifié quand un nom de variable est utilisée. La déclaration définit le type par défaut pour les variables commençant par une lettre des plages spécifiées.

Le type par défaut est réglé sur:

DEFINT

ENTIER (%)

DEFDBL

double (#)

DefSng

uniques (!)

DEFSTR

string ($)

Paramètres

first_0, last_0, ... des are lettres de l'alphabet.  Paires de lettres reliées par un tiret - indiquent des plages inclusives.

Remarques

DefSng AZ is le règlage par défaut.

DEF SEG DEF SEG [= adresse]

Définit le segment de mémoire pour être utilisé par BLOAD, BSAVE, CALL, PEEK, POKE et NRS. Paramètres

adresse is expression de juin numérique Dans [-32768 à 65535].

Remarques

Si l'adresse is négative, Elle Est interprétée Comme complément à des ses deux.
   Si l'adresse est pas spécifié, le segment est défini sur le segment de données GW-BASIC.

les erreurs

une adresse Une valeur de chaîne: Type mismatch.
   adresse se trouve pas dans [-32768 à 65535]: Overflow.

DEF USR DEF USR [n] = adresse

Ne fait rien. Paramètres

n HNE chiffre non compris Entre 0 et 9 inclus.
   adresse est une expression numérique dans [-32768-65535].

Remarques

Dans GW-BASIC, this déclaration Définit l'adresse de départ d'en juin fonction langage assembleur.
   Cette déclaration n'a pas été mis en œuvre dans PC-BASIC.
   Si l'adresse est négative, elle est interprétée comme complément à ses deux.

les erreurs

n is pas non chiffre Dans [0-9]: Erreur de syntaxe.
   adresse a une valeur de chaîne: Type mismatch.
   adresse se trouve pas dans [-32768 à 65535]: Overflow.

EFFACER EFFACER [line_number_0 |.] [- [Line_number_1 |].]

Supprime une plage de lignes du programme. arrête également l'exécution du programme et renvoie le contrôle à l'utilisateur. Paramètres

line_number_0 et line_number_1 are les Numéros de ligne Dans la gamme [0-65529], en precisant la gamme inclusive des Numéros de ligne à supprimer.
   UNE .  indique la dernière ligne modifiée.
   Si le point de départ est omis, la gamme va commencer au début du programme.
   Si le point final est omis, la gamme se terminera à la fin du programme.
   Si aucune plage est spécifiée, l'ensemble du programme sera supprimé.

les erreurs

line_number_0 ous line_number_1 is supérieur à 65529: Erreur de syntaxe.
   La plage spécifiée ne comporte pas de lignes de programme stockées: Illegal appel de fonction.

DIM DIM nom {(| [} limit_0 [, limit_1] ... {) |]}

Alloue de la mémoire pour les tableaux. L'instruction DIM fixe également le nombre d'indices du tableau. Un tableau ne peut être attribuée qu'une fois; de ré-allouer un tableau, ERASE ou EFFACER doit être exécuté en premier. Si un tableau est utilisé pour la première sans instruction DIM, il est automatiquement attribué avec ses indices maximum fixé à 10 pour chaque position de l'index utilisé. Si la déclaration de DIM un tableau spécifie pas d'indices, il est attribué un indice unique avec un maximum 10. Le moins indice autorisé est déterminé par OPTION BASE. Paramètres

 nom est un nom de variable juridique spécifiant le tableau à allouer.
   limit_0, limit_1, ... sont des expressions numériques qui spécifient le plus grand indice permis à cette position.

Remarques

 supports mixtes sont autorisés.
   La taille des réseaux est limitée par la mémoire de base disponibles.
   Le nombre maximum d'indices est, théoriquement, 255. Dans la pratique, il est limité par la limite de 255 octets sur la longueur des lignes de programme.

les erreurs

 nom a déjà été dimensionné: définition en double.
   Un index est vide: Erreur de syntaxe.
   Un index est manquant à la fin: opérande manquant.
   limit_0, limit_1, ... ont une valeur de chaîne: Type mismatch.
   limit_0, limit_1, ... ne sont pas dans [-32.768 à 32.767]: Overflow.
   limit_0, limit_1, ... sont négatifs: Illegal appel de fonction.
   Le réseau dépasse la taille de l'espace disponible variables: Out of memory.

TIRAGE TIRAGE gml_string

Dessine la forme spécifiée par gml_string, une expression de chaîne dans Graphics Macro Language (GML). Graphics Macro référence Langue

commandes de mouvement

 [B] [N] mouvement
   où la valeur par défaut est de se déplacer et d'en tirer;  les préfixes optionnels signifient:
   B déménagement, mais ne pas tracer
   N retour à un point d'origine après déménagement
   et le mouvement est l'un des:
   U [n] jusqu'à n étapes
   L [n] à gauche n étapes
   D [n] vers le bas n étapes
   R [n] à droite n étapes
   E [n] et n étapes droite
   F [n] vers le bas et n étapes droite
   G [n] vers le bas et n pas gauche
   H [n] et à gauche n étapes
   M {+ | -} x, [+ | -] y déplacer (x, y) étapes
   Mx, y déplacer pour voir la région de coordonnées (x, y)
 où n est un entier dans [-32.768-32767] et x, y sont des nombres entiers [0-9999].  Où en option, n 1 par défaut.

les commandes d'échelle

 Sn régler la taille de pas à n / 4.  La taille de l'étape par défaut est 1 pixel.  n est un entier dans [1-255]
   TAn définir l'angle à n degrés.  L'angle par défaut est de 0 degrés.  n est un entier dans [-360 à 360]
   Un ensemble à l'angle 0 pour n = 0, 90 pour n = 1, 180 pour n = 2, 270 pour n = 3.  n est un entier dans [0-3]

commandes de couleur

 Cn définir l'attribut de premier plan à n, où n est un entier dans [-32768 à 32767] Voir COLOR.
   Pn, b inondation remplir avec l'attribut n et limite attribut b, n, b sont des nombres entiers dans [0-9999] Voir PAINT.

commande Subroutine

 Xs exécuter une sous-chaîne
 s est l'un des éléments suivants:
 un nom variable de chaîne suivie par un point virgule (;)
       le résultat de VARPTR $ () sur une variable de chaîne

Les variables numériques n, x, y, b dans les commandes ci-dessus peuvent être:

 un littéral entier, par exemple TIRAGE "U100"
   une variable numérique nom ou élément de tableau var précédé de = et suivie;.  Par exemple, DESSINER "U = VAR;"  ou TIRAGE "U = A (1);"
   le résultat de VARPTR $ (var) précédé de =.  Par exemple, DESSINER "U =" + VARPTR $ (VAR)

Remarques

 L'instruction CLS réinitialise la taille de pas de 1 pixel, un angle de 0 ° et la position du centre de la région d'affichage.
   La valeur n dans la commande TA, A et C peut être laissé de côté, mais seulement si la commande se termine par un point-virgule.  n 0 par défaut.
   Dans GW-BASIC, les arguments numériques de U, L, D, R, E, F, G, H et C peuvent être dans l'intervalle [-99999 à 99.999];  cependant, les résultats pour un grand nombre sont imprévisibles.  Ce ne sont pas mis en œuvre dans PC-BASIC.

les erreurs

 gml_string a une valeur numérique: incompatibilité de type.
   gml_string a des erreurs dans le GML: Illegal appel de fonction.
   Une variable référencée dans la chaîne GML est de type incorrect: incompatibilité de type.

EDIT EDIT {line_number |.}

Affiche la ligne de programme spécifié avec le curseur positionné pour l'édition. line_number doit être une ligne qui existe dans le programme, ou un point (.) pour indiquer la dernière ligne stockée. les erreurs

 Non line_number est spécifié: numéro de ligne défini.
   Plus de caractères sont écrits après le numéro de ligne: Illegal appel de fonction.
   line_number est pas dans [0-65529]: Illegal appel de fonction.
   n'existe pas Le numéro de ligne spécifié: numéro de ligne défini.

AUTRE AUTRE [quelque chose]

Sauf partie d'une instruction IF sur la même ligne, rien après ELSE est ignoré de la même manière que, après 'ou: REM. Aucun colon: précédant l'instruction ELSE est nécessaire. Voir SI pour une utilisation normale. FIN FIN

Ferme tous les fichiers, arrête l'exécution du programme et renvoie le contrôle à l'utilisateur. Aucun message est imprimé. Il est possible de reprendre l'exécution à l'instruction suivante en utilisant CONT. ENVIRON ENVIRON command_string

Définit une variable d'environnement shell. Paramètres

command_string est une expression de chaîne de l'une des formes suivantes:

"VARIABLE = VALEUR"

 pour définir VARIABLE à VALUE; 

"VARIABLE ="

 à VARIABLE unset. 

les erreurs

 command_string a une valeur numérique: incompatibilité de type.
   command_string n'a pas la forme requise: Illegal appel de fonction.

ERASE ERASE array_0 [, array_1] ...

De-alloue des tableaux. Les données stockées dans les tableaux sont perdues. Paramètres

 array_0, array_1 ... sont des noms de réseaux existants.  Les noms doivent être spécifiés sans crochets.

les erreurs

 Aucun nom de tableau sont données: Erreur de syntaxe.
   array_0, array_1 ... n'existent pas: Illegal appel de fonction.
   Si une erreur se produit, les tableaux nommés avant l'erreur sont effacées.

ERROR ERROR numéro_erreur

Déclenche l'erreur avec le numéro numéro_erreur. Paramètres

 numéro_erreur est une expression avec une valeur numérique.

les erreurs

 numéro_erreur a une valeur de chaîne: Type mismatch.
   numéro_erreur est pas dans [-32768-32767]: Overflow.
   numéro_erreur est pas dans [1-255]: Illegal appel de fonction.

FIELD FIELD [#] file_number [, width_0 AS NAME_0 [, width_1 AS name_1] ...]

Affecte variables dans le tampon d'enregistrement à accès aléatoire. Le tampon d'enregistrement est une région de mémoire de longueur définie par l'instruction OPEN; la longueur d'enregistrement par défaut est de 128 octets. L'instruction FIELD attribue une partie de cette région à une ou plusieurs variables de chaîne de longueur fixe, de sorte que la valeur de ces chaînes est tout ce qui arrive à être dans le tampon d'enregistrement à cet endroit. Remarques

 Une instruction FIELD sans variables spécifiées n'a pas d'effet.
   Une autre instruction FIELD sur le même fichier spécifiera une alternative cartographie du même tampon de fichier;  toutes les applications seront en vigueur simultanément.
   Une affectation subséquente ou louer ou MID $ déclaration sur NAME_0, name_1 ... seront dis- associer la variable de chaîne de la mémoire tampon de champ.
   Utilisez LSET, RSET ou MID $ pour copier les valeurs dans un tampon de FIELD.
   Utilisez GET pour lire les valeurs du fichier dans la mémoire tampon de champ, en changeant les variables.
   Utilisez PUT pour écrire le tampon de champ dans le fichier.

Paramètres

 file_number est une expression numérique qui donne le nombre d'un fichier à accès aléatoire ouvert.  Le # est facultative et n'a aucun effet.
   width_0, width_1, ... sont des expressions numériques donnant la longueur des variables de chaîne
   NAME_0, name_1 ... sont des variables de chaîne.

les erreurs

 file_number est pas dans [0-255]: Illegal appel de fonction.
   file_number est pas le nombre d'un fichier ouvert: Numéro de fichier incorrect.
   file_number est ouvert sous un autre mode que RANDOM: Mode de fichier incorrect.
   La déclaration se termine par une virgule: Missing opérande.
   Aucun numéro de fichier est spécifié: opérande manquant.
   Les longueurs dans une instruction FIELD ajouter jusqu'à un nombre plus grand que la longueur d'enregistrement de la mémoire tampon de champ: débordement de terrain.
   NAME_0, name_1 ... spécifier un non-variable chaîne: Incompatibilité de type.

FICHIERS FILES [filter_spec]

Affiche les fichiers adaptant le filtre spécifié dans le répertoire spécifié sur un périphérique de disque. Si filter_spec est pas spécifié, affiche tous les fichiers dans le répertoire de travail courant. Paramètres

 filter_spec est une expression de chaîne qui est un peu comme une spécification de fichier, mais permet éventuellement le nom du fichier partie pour contenir des caractères génériques.

Remarques

 Le filtre de nom de fichier peut contenir les caractères génériques suivants:
  ?  Correspond à tout caractère légal de nom de fichier.
   * Correspond une série de noms de fichiers caractères juridiques.
   Le filtre ne correspond MS-DOS noms de style.
   série de caractères appariés ne pas étirer à travers des séparateurs répertoire \ ou séparateurs d'extension .. Pour faire correspondre tous les fichiers avec toutes les extensions, utilisez *. *.
   Par ailleurs, si tous les fichiers dans un répertoire spécifié sont nécessaires, mettre fin au nom du répertoire avec un backslash \.

les erreurs

 filter_spec a une valeur numérique: incompatibilité de type.
   filter_spec est la chaîne vide: Nom de fichier incorrect.
   Le filtre spécifié ne correspond pas à tous les fichiers: Fichier non trouvé.

POUR POUR loop_var = commencer à arrêter [étape de STEP]

Lance une boucle FOR-NEXT.

Dans un premier temps, loop_var est configuré pour démarrer. Ensuite, les déclarations entre la déclaration FOR et l'instruction NEXT sont exécutées et loop_var est incrémenté par l'étape (si l'étape est pas spécifiée, par 1). Cette opération est répétée jusqu'à ce que loop_var est devenue supérieure à l'arrêt. L'exécution se poursuit alors à l'instruction suivante NEXT. La valeur de loop_var égale arrêt + étape après la boucle. Paramètres

 loop_var est une variable numérique.
   démarrage, l'arrêt et l'étape sont des expressions numériques.

les erreurs

 Aucune instruction NEXT se trouve pour correspondre à l'instruction FOR: POUR LA PROCHAINE sans se produit à l'instruction FOR.
   loop_var est une variable de chaîne ou de démarrer, arrêter, ou à la fin a une valeur chaîne: Incompatibilité de type.
   loop_var est un élément de tableau: Erreur de syntaxe.
   loop_var est une variable entière et un démarrage, l'arrêt ou l'étape est en dehors de l'intervalle [-32768, 32767]: Overflow.

GET (fichiers) GET [#] file_number [, record_number]

Lire un enregistrement du fichier file_number à accès aléatoire à la position record_number. Le dossier peut être consulté par les variables de champ ou par le biais $ INPUT, INPUT ou LINE INPUT. Paramètres

 file_number est une expression numérique qui donne le nombre d'un fichier à accès aléatoire ouvert.  Le # est facultative et n'a aucun effet.
   record_number est une expression numérique dans [1-33554432] (2 ^ 25), et est interprété comme le numéro d'enregistrement.

Remarques

 Si le numéro d'enregistrement est au-delà de la fin du fichier, le tampon de fichier est rempli d'octets nuls.
   Le numéro d'enregistrement est stocké sous forme de simple précision;  cette précision est pas assez élevé pour distinguer des enregistrements uniques à proximité de la valeur maximale de 2 ^ 25.

les erreurs

 record_number est pas dans [1-33554432]: Numéro d'enregistrement Bad.
   file_number est pas dans [0-255]: Illegal appel de fonction.
   file_number est pas le nombre d'un fichier ouvert: Numéro de fichier incorrect.
   file_number est ouvert sous un autre mode que RANDOM: Mode de fichier incorrect.
   file_number est pas spécifié: opérande manquant.

GET (communications) GET [#] com_file_number [, nombre_octets]

Lire nombre_octets octets de la mémoire tampon de communication ouvert sous le numéro de fichier com_file_number. Le dossier peut être consulté par les variables de champ ou par le biais $ INPUT, INPUT ou LINE INPUT. Paramètres

 file_number est une expression numérique qui donne le nombre d'un fichier ouvert à un dispositif de COM.  Le # est facultative et n'a aucun effet.
   nombre_octets est une expression numérique entre 1 et la longueur du tampon de COM, inclus.

Remarques

 Si octets est 32768 ou plus, se bloque GW-BASIC.  Cette fonctionnalité est pas implémentée dans PC-BASIC.
   Dans GW-BASIC, Dispositif d'erreur d'E / S est élevé pour erreur de dépassement, le cadrage d'erreur, et de briser interruption.  Erreur appareil est déclenchée si DSR est perdue au cours d'E / S.  Erreur de parité est déclenchée si la parité est activé et la parité incorrecte est rencontrée.  Ceci est indiqué dans le manuel;  il n'a pas été testé.

les erreurs

 octets est inférieur à 1: Numéro d'enregistrement Bad
   octets est inférieur à 32768 et supérieure à la longueur de la mémoire tampon de COM: Illegal appel de fonction.
   com_file_number est pas spécifié: opérande manquant.
   com_file_number est pas dans [0-255]: Illegal appel de fonction.
   com_file_number est pas le nombre d'un fichier ouvert: Numéro de fichier incorrect.
   Si le tampon d'entrée série est complète, à savoir LOF (com_file_number) = 0, et LOC (com_file_number) = 255: débordement de mémoire tampon de communication
   Si le transporteur baisse pendant GET, se bloque jusqu'à ce que la touche Ctrl + Pause est enfoncée.

GET (graphiques) GET (x0, y0) - [STEP] (x1, y1), array_name

Enregistre une zone rectangulaire de l'écran graphique dans un tableau. La zone stockée est un rectangle parallèle aux bords de l'écran, délimitée par le haut-gauche et les coordonnées en bas à droite x0, y0 et x1, y1. Si STEP est spécifié, x1, y1 est un décalage de x0, y0. La zone est telle que ces points d'angle sont à l'intérieur.

L'image stockée dans le réseau peut alors être mis sur l'écran en utilisant PUT. Aux fins de l'EEG, tout tableau est considéré comme une chaîne d'octets. La taille en octets d'un tableau peut être calculée comme number_elements * byte_size avec byte_size égal à 2 pour les entiers (%), 4 pour unique (!) Et 8 pour le double (#). Tableau taille en octets pour la chaîne est 3, mais des tableaux de chaînes ne sont pas autorisés dans GET. Pour calculer le nombre d'éléments, gardez à l'esprit que OPTION BASE 0 est la valeur par défaut; auquel cas un tableau avec indice maximum 10 a 11 éléments. Cela fonctionne par le biais de tableaux multidimensionnels.

Le format de tableau est la suivante: Octet Contient 0, 1 x Nombre de pixels, unsigned int. Dans ECRAN 1, cette valeur est doublée. 2, 3 Nombre de pixels y, unsigned int. 4- Des données de pixels. Les données sont disposées dans des mots de 2 octets. Le premier mot de 16 bits contient le bit 0 des 16 premiers pixels de la rangée supérieure. Le deuxième mot tient le second bit, etc. Les données sont mot-alignés à la fin de chaque ligne. Ainsi, dans un mode écran avec 4 bits par pixel, la première ligne prend au moins 8 octets (4 mots), même si elle est constituée d'un seul pixel. Le nombre de bits par pixel dépend du mode ECRAN. Paramètres

 array_name est le nom d'un tableau numérique dimensionné avec suffisamment d'espace pour stocker la zone.
   x0, y0, x1, y1 sont des expressions numériques.

Remarques

 En mode PCjr / Tandy, dans l'écran 6, GET magasins une superficie de deux fois la largeur du rectangle spécifié.

les erreurs

 Le tableau n'existe pas: Illegal appel de fonction.
   array_name fait référence à un tableau de chaînes: Incompatibilité de type.
   La zone est trop grande pour le tableau: Illegal appel de fonction.
   x0, ... y1 sont des expressions de chaîne: Type mismatch.
   X0, ... y1 ne sont pas dans [-32768 à 32767]: Overflow.
   X0, ... y1 sont en dehors de la vue ou la fenêtre courante: Illegal appel de fonction

GOSUB GO [] SUB line_number [quelque chose]

Saute à un sous-programme à line_number. La prochaine instruction RETURN revient à la déclaration après GOSUB. Tout ce qui suit line_number jusqu'à la fin de l'instruction est ignorée. Si elle est exécutée à partir d'une ligne directe, GOSUB exécute le sous-programme et le retour suivant renvoie l'exécution à la ligne directe. Paramètres

 line_number est un numéro de ligne existante littérale.
   D'autres caractères sur la ligne sont ignorées jusqu'à la fin de la déclaration.

Remarques

 Si aucun RETURN est rencontrée, pas de problème.
   Un espace optionnel est autorisé entre GO et SUB;  il ne sera pas retenu dans le programme.

les erreurs

 Si line_number n'existe pas: Undefined numéro de ligne.
   Si line_number est supérieur à 65529, seuls les 4 premiers caractères sont lus (par exemple 6553)

GOTO GO [] À LINE_NUMBER [quelque chose]

Saute à LINE_NUMBER. Tout ce qui suit line_number jusqu'à la fin de l'instruction est ignorée. Si elle est exécutée à partir d'une ligne directe, GOTO commence l'exécution du programme à la ligne spécifiée. Paramètres

 line_number est un numéro de ligne existante littérale.
   D'autres caractères sur la ligne sont ignorées jusqu'à la fin de la déclaration.

Remarques

 Tout nombre de places en option est autorisée entre GO et TO, mais ils ne seront pas conservées dans le programme.
   Si line_number est supérieur à 65529, seuls les 4 premiers caractères sont lus (par exemple GOTO 65530 est exécuté comme GOTO 6553)

les erreurs

 line_number n'existe pas: numéro de ligne défini.

SI SI truth_value [,] {THEN | GOTO} [compound_statement_true | line_number_true [rien]] [AUTRE [compound_statement_false | line_number_false [quelque chose]]]

Si truth_value est non nul, exécute des sauts de compound_statement_true ou line_number_true. Si elle est nulle, exécute compound_statement_false ou saute à line_number_false. Paramètres

 truth_value est une expression numérique.
   line_number_false et line_number_true sont les numéros de ligne existants.
   compound_statement_false et compound_statement_true sont des instructions composées, composé d'au moins une déclaration, suivie éventuellement d'autres déclarations séparées par des virgules.  Les états composés peuvent contenir des déclarations imbriquées IF-THEN-ELSE.

Remarques

 La virgule est optionnel et ignoré.
   clauses AUTRE sont facultatifs;  ils sont liés à la déclaration la plus intérieure libre IF si imbriqué.  clauses ELSE supplémentaires qui ont pas de correspondance IF sont ignorées.
   Toutes les clauses doivent être sur la même ligne de programme.
   THEN et GOTO sont interchangeables;  dont l'un est choisi est indépendant si l'on indique une déclaration ou un numéro de ligne.  GOTO PRINT 1 est très bien.
   Comme dans GOTO, quoi que ce soit après le numéro de ligne est ignoré.

les erreurs

 Si truth_value a une valeur de chaîne: Type mismatch.
   truth_value est égal à 0 et line_number_false est un numéro de ligne non-existante, ou truth_value est non nul et line_number_true est un numéro de ligne non-existante: numéro de ligne défini.

INPUT (console) INPUT [;] [invite {; |,}] var_0 [, var_1] ...

Prints invitent à l'écran et attend pour l'utilisateur de valeurs d'entrée pour les variables spécifiées. Le point-virgule avant l'invite, le cas échéant, arrête une nouvelle ligne d'être imprimé après les valeurs ont été saisies. Si l'invite est suivie par un point-virgule, il est imprimé avec une fuite?. Si l'invite est suivi d'une virgule, pas de point d'interrogation est ajouté. Paramètres

 invite est une chaîne littérale.
   var_0, var_1, ... sont des noms de variables ou éléments du tableau entièrement indexés.

Remarques

 Les valeurs entrées doivent être séparées par des virgules.  Espaces avant et après est jeté.
   Les valeurs de chaîne peuvent être saisies avec ou sans guillemets doubles ( ").
   Si une chaîne avec une virgule, avant ou arrière des espaces est nécessaire, les citations sont la seule façon d'y entrer.
   Entre une citation de clôture et la virgule à la fin de l'entrée, seul espace blanc- est autorisé.
   Si les guillemets sont nécessaires dans la chaîne elle-même, le premier caractère ne doit être ni un devis ni des espaces.  Il est impossible d'entrer dans une chaîne qui commence avec une citation par INPUT.
   Si un var_n donné est une variable numérique, la valeur saisie doit être littéral.
   Les personnages au-delà du 255e caractère de la ligne de l'écran sont jetés.
   Si l'entrée de l'utilisateur est interrompu par Ctrl + Break, CONT sera ré-exécuter l'instruction INPUT.

les erreurs

 Si la valeur saisie pour une variable numérique est un littéral numérique valide, ou le nombre de valeurs entrées ne correspond pas au nombre de variables dans la déclaration,? Refaire du début est imprimé et toutes les valeurs doit être saisi à nouveau.
   Une erreur de syntaxe qui est causée après l'invite est imprimée est uniquement soulevée après que la valeur shave été saisie.  Aucune valeur sont stockées.

INPUT (fichiers) ENTRÉE # file_num, var_0 [, var_1] ...

Lit chaîne ou variables numériques à partir d'un fichier texte ou le tampon de champ d'un fichier d'accès aléatoire. Paramètres

 file_num est le numéro d'un fichier ouvert en mode INPUT ou un fichier à accès aléatoire ouvert en mode RANDOM.
   var_0, var_1, ... sont des noms de variables ou éléments du tableau entièrement indexés.

Remarques

 Le # est obligatoire.  Il peut ou peut ne pas être d'espace entre INPUT et #.
   Les valeurs de chaîne peuvent être saisies avec ou sans guillemets doubles ( ").
   Les valeurs numériques sont terminées par, LF, CR,.
   cordes Unquoted sont terminées par LF, CR,.
   Les chaînes entre guillemets sont terminés par la citation de clôture.
   Toute inscription se termine par le caractère EOF ou son caractère 255e.
   Espaces avant et après est jeté.
   Si l'entrée ne peut pas être converti en le type demandé, une valeur zéro est retourné.
   Si file_num est ouvert à INPUT N ° KYBD lit à partir du clavier jusqu'à ce qu'un retour ou une virgule est rencontré (comme dans un fichier).  Les touches fléchées et supprimer sont transmis leurs caractères de contrôle (non scancodes!) Précédés de CHR $ (& HFF).

les erreurs

 L'entrée est demandée après la fin d'un fichier texte a été atteint ou un caractère EOF a été rencontrée: Entrée passé fin.
   Le dernier caractère de la mémoire tampon de champ est en lecture: débordement de terrain.
   file_num a une valeur de chaîne: Type mismatch.
   file_num est supérieure à 32767: Overflow.
   file_num est inférieur à zéro: Illegal appel de fonction.
   file_num est pas un fichier ouvert: Numéro de fichier incorrect.
   file_num est pas ouvert pour INPUT ou RANDOM: Mode de fichier incorrect.
   file_num est ouvert à un port COM et ceci est la première entrée, LINE INPUT ou INPUT $ appel sur ce port depuis le tampon a rempli complètement (c.-à-LOF (file_num) est devenu zéro): débordement de mémoire tampon de communication.

IOCTL IOCTL [#] file_num, control_string

Déclenche illégale appel de fonction. Remarques

 Dans GW-BASIC, IOCTL envoie une chaîne de commande à un dispositif.
   Cette déclaration n'a pas été mis en œuvre dans PC-BASIC.

les erreurs

 file_num a une valeur de chaîne: Type mismatch.
   file_num est pas dans [-32.768 à 32.767]: Overflow.
   file_num est pas un fichier ouvert: Numéro de fichier incorrect.
   Dans le cas contraire: Illegal appel de fonction

KEY (macro liste) KEY {ON | OFF | LIST}

Active la liste des macros de touches de fonction sur le bas de l'écran ON ou OFF. Si LISTE est spécifié, affiche une liste des 10 (ou 12 avec syntaxe = tandy) touches de fonction avec les macros de touches de fonction définies pour les clés de la console.

La plupart des personnages sont représentés par leur symbole équivalent dans le codepage actuel. Cependant, certains caractères obtiennent une représentation différente, qui est une représentation symbolique de leur effet que les caractères de contrôle sur l'écran. Code de point de remplacement glyphe Usual & h07 & H0e ♫ & H08 & hFE ■ & h09 & H1A → & H0A & H1B ← & H0B & H7F ⌂ & h0C & h16 ▬ & h0D & H1B ← & h1C & h10 ► & h1d & h11 ◄ & H1E & h18 ↑ & H1F & h19 ↓ KEY (macro définition) key_id KEY, STRING_VALUE

Définit la macro de chaîne pour la touche de fonction key_id. Seuls les 15 premiers caractères du STRING_VALUE sont stockés. Paramètres

 key_id est une expression numérique dans l'intervalle [1-10] (ou [1-12] lorsque la syntaxe = tandy).
   STRING_VALUE est une expression de chaîne.

Remarques

 Si key_id est pas dans la plage prescrite, la déclaration est interprétée comme une déclaration KEY événement de piégeage.
   Si STRING_VALUE est la chaîne vide ou le premier caractère de STRING_VALUE est CHR $ (0), la macro touche de fonction est désactivée et la capture ultérieure de la touche de fonction associée à INKEY $ est activée.

les erreurs

 key_id est pas dans [-32768 à 32767]: Overflow.
   key_id est pas dans [1-255]: Illegal appel de fonction.
   key_id a une valeur de chaîne: Type mismatch.

KEY (commutateur d'événement) KEY (key_id) {ON | OFF | STOP}

Contrôles événement piégeage de la clé avec identifiant key_id. le piégeage de l'événement est allumé ou éteint. ARRÊT suspend événement piégeage jusqu'à ce qu'une touche () ON est exécutée. Jusqu'à un événement peut être déclenché pendant la suspension, à condition que la gestion des événements a été activée avant la suspension. L'événement déclenché pendant la suspension est traitée immédiatement après la prochaine KEY () ON déclaration. Paramètres

key_id est une expression numérique dans [1-20]. Les clés sont: 1 F1 2 F2 F3 3 4 F4 F5 5 6 F6 7 F7 8 F8 9 F9 10 F10 11 ↑ 12 ← 13 → 14 ↓

Touches 15 à 20 sont définies en utilisant l'événement de piégeage énoncé de définition KEY. Remarques

 Avec la syntaxe = tandy, la clé 11 est F11 et la clé 12 est F12.  Prédéfinis clés 11-14 passage à 13-16.

les erreurs

 key_id est pas dans [-32768 à 32767]: Overflow.
   key_id est pas dans [0-20]: Illegal appel de fonction.
   key_id a une valeur de chaîne: Type mismatch.

KEY (définition d'événement) de key_id KEY, two_char_string

Définit la clé de piège pour key_id. Paramètres

 key_id est une expression numérique dans [15-20] (ou [17-20] lorsque la syntaxe = tandy).
   two_char_string est une expression de chaîne de longueur 2. Le premier caractère est interprété comme un modificateur tandis que le second caractère est interprété comme un scancode.  Le caractère modificateur est un OU binaire combinaison des drapeaux suivants:
   CHR $ (& h80) Extended
   CHR $ (& h40) Caps Lock
   CHR $ (& h20) Num Lock
   CHR $ (& H08) Alt
   CHR $ (& h04) Ctrl
   CHR $ (& H02) Maj (de chaque côté)
   CHR $ (& h01) Maj (de chaque côté)
   Pour la clé non modifié, le caractère modificateur est CHR $ (0).

Remarques

 Si key_id est pas dans la plage prescrite, aucune erreur est soulevée;  ces valeurs sont ignorées.  Dans GW-BASIC choses étranges peuvent se produire dans ce cas: anomalies de l'écran et les accidents évocateurs d'accès à la mémoire involontaire.
   Si key_id est en [1-10] (ou [1-12] lorsque la syntaxe = tandy), la déclaration est interprétée comme une macro définition de la fonction-clé.

les erreurs

 key_id est pas dans [-32768 à 32767]: Overflow.
   key_id est pas dans [1-255]: Illegal appel de fonction.
   key_id a une valeur de chaîne: Type mismatch.
   two_char_string est plus longue que deux: Illegal appel de fonction.
   two_char_string a une valeur numérique: incompatibilité de type.

KILL KILL file_spec

Supprime un fichier sur un périphérique de disque. Paramètres

 Le file_spec d'expression de chaîne est une spécification de fichier valide indiquant le fichier à supprimer.  Il doit pointer vers un fichier existant sur un périphérique de disque.

les erreurs

 file_spec a une valeur numérique: incompatibilité de type.
   Le file_spec de fichier est ouvert: Fichier déjà ouvert
   Le fichier ou le chemin file_spec n'existe pas: Fichier introuvable
   L'utilisateur n'a pas l'autorisation d'écriture: Autorisation refusée
   Si une erreur de syntaxe se produit après le cours de clôture, le fichier est supprimé de toute façon.

LCOPY LCOPY [num]

Ne fait rien. Paramètres

 num est une expression numérique dans [0-255].

Remarques

 Cette déclaration ne fait rien en GW-BASIC.  Vraisemblablement, il est laissé plus d'une déclaration dans les anciennes versions de MS Basic qui copie l'écran à l'imprimante.

les erreurs

 num est pas dans [-32768 à 32767]: Overflow.
   num est pas dans [0-255]: Illegal appel de fonction.
   num a une valeur de chaîne: Type mismatch.

LET [LET] name = expression

Affecte la valeur d'expression au nom de l'élément variable ou un tableau. Paramètres

 nom est une variable qui peut ou peut ne pas exister déjà.
   Le type d'expression correspond à celle du nom: qui est, tous les types numériques peuvent être affectés à l'autre, mais les chaînes ne peuvent être affectées à des chaînes.

les erreurs

 le nom et l'expression ne sont pas des types correspondant: incompatibilité de type.

LINE LINE [[STEP] (x0, y0)] - [STEP] (x1, y1) [[attr] [, [B [F]] [, motif]]]

Dessine une ligne ou une boîte en mode graphique. Si B est pas spécifié, une ligne est tracée à partir de (x0, y0) à (x1, y1), les paramètres inclus. Si B est spécifié, un rectangle est dessiné avec des côtés parallèles à l'écran et deux angles opposés définis par (x0, y0) et (x1, y1). Si le point de départ est pas donné, la position graphique actuelle est utilisée comme point de regard fixe. Si STEP est spécifié, (x0, y0) est un décalage par rapport à la position actuelle et (x1, y1) est un décalage de (x0, y0). LINE déplace la position graphique actuelle à la dernière extrémité donnée. Si F est défini par B, le rectangle est rempli avec l'attribut spécifié. F et B peuvent être séparés par zéro, un ou plusieurs espaces. Paramètres

 attr est une expression numérique dans [0-255], qui spécifie l'attribut de couleur de la ligne.  Si elle ne reçoit pas, l'attribut courant est utilisé.
   motif est une expression numérique dans [-32768 à 32767].  Cela est interprété comme un 16-bit masque de motif binaire appliqué aux pixels consécutifs dans la ligne: un bit 1 indique un pixel tracé;  un bit 0 indique un pixel laissé intact.  Le schéma commence par le bit le plus significatif qui est appliqué au point d'extrémité le plus haut.  Si une zone est tirée, le motif est appliqué dans la séquence de contre-intuitive suivante: (x1, y1) - (x0, y1), (x1, y0) - (x0, y0), puis (x1, y0) - ( x1, y1), (x0, y0) - (x0, y1), si Y0 <y1 et y0, y1 y1 inversées si <y0.  Lors de l'élaboration d'une boîte remplie, LINE ignore le motif.

Remarques

 Si une coordonnée est en dehors des limites de l'écran, il est remplacé par -1 (si moins de 0) ou la dimension de l'écran (si elle est supérieure à la dimension de l'écran).

les erreurs

 La déclaration se termine par une virgule et il est le premier ou le troisième: Missing opérande.  Si elle est la deuxième: Erreur de syntaxe.
   Tout des coordonnées est pas dans [-32768 à 32767]: Overflow.
   Tout des paramètres a une valeur de chaîne: Type mismatch.

LINE INPUT (console) LINE INPUT [;] [prompt_literal {; |,}] string_name

Affiche l'invite donnée dans prompt_literal et lit l'entrée d'utilisateur à partir du clavier, le stockage dans le string_name variable. Toutes les entrées sont lues jusqu'à ce que vous appuyez sur Entrée; les 255 premiers caractères sont stockés. Si la ; est donnée juste après LINE INPUT, l'entrée utilisateur Entrez fin est pas fait écho à l'écran. Paramètres

 prompt_literal est une chaîne littérale.  Il ne fait aucune différence si elle est suivie par une virgule ou un point-virgule.
   string_name est un élément variable ou tableau chaîne.

Remarques

 Si l'entrée de l'utilisateur est interrompu par Ctrl + Break, CONT sera ré-exécuter l'instruction LINE INPUT.
   Contrairement INPUT, LINE INPUT ne se termine pas l'invite avec?.

LINE INPUT (fichiers) LINE INPUT # file_num, string_name

Lit chaîne ou variables numériques à partir d'un fichier texte ou le tampon de champ d'un fichier d'accès aléatoire. Toutes les entrées sont lues jusqu'à ce que vous appuyez sur Entrée; les 255 premiers caractères sont stockés. file_num doit être le numéro d'un fichier ouvert en mode INPUT ou un fichier à accès aléatoire ouvert en mode RANDOM. Paramètres

 string_name est un élément variable ou tableau chaîne.

Remarques

 Le # est obligatoire.  Il peut ou peut ne pas être d'espace entre INPUT et #.
   L'entrée est seulement terminée par un CR.
   Si file_num est ouvert à LINE INPUT N ° KYBD lit à partir du clavier jusqu'à ce qu'un retour ou une virgule est rencontré (comme dans un fichier).  Les touches fléchées et supprimer sont transmis leurs caractères de contrôle (non scancodes!) Précédés de CHR $ (& HFF).

les erreurs

 L'entrée est demandée après la fin d'un fichier texte a été atteint ou un char EOF a été rencontrée: Entrée passé fin.
   Le dernier caractère de la mémoire tampon de champ est en lecture: débordement de terrain.
   file_num est pas un fichier ouvert: Numéro de fichier incorrect.
   file_num est inférieur à zéro: Illegal appel de fonction.
   file_num est pas dans [-32.768 à 32.767]: Overflow.
   file_num est pas ouvert pour INPUT ou RANDOM: Mode de fichier incorrect.
   file_num a une valeur de chaîne: Type mismatch.
   file_num est ouvert à un port COM et ceci est la première entrée, LINE INPUT ou INPUT $ appel sur ce port depuis le tampon a rempli complètement (c.-à-LOF (file_num) est devenu zéro): débordement de mémoire tampon de communication.

LISTE LISTE [line_number_0 |.] [- [Line_number_1 |.]] [, File_spec [rien]]

Imprime le programme à l'écran ou un fichier, en commençant par line_number_0 jusqu'au line_number_1. arrête également l'exécution du programme et renvoie le contrôle à l'utilisateur. Si l'instruction LIST se termine par une spécification de fichier, autre chose est ignoré. Dans tous les cas, d'autres déclarations dans un composé après LIST seront ignorés, à la fois dans un programme et en mode direct.

Lorsque la liste à l'écran, les mêmes caractères de contrôle sont reconnus comme dans l'instruction PRINT. Remarques

 Dans GW-BASIC 3.23, LIST ne montrera pas les numéros de ligne 65531-65535 inclus.  Par défaut, la liste de PC-BASIC fait apparaître ces lignes.  Cependant, leur montrant peut être désactivé avec l'option stricte-lignes cachées.

Paramètres

 line_number_0 et line_number_1 sont les numéros de ligne dans la gamme [0-65529] ou a.  pour indiquer la dernière ligne modifiée.  Les numéros de ligne ne doivent pas exister;  ils spécifient une plage.  Si la plage est vide, rien n'est imprimé.
   Le file_spec d'expression de chaîne est une spécification de fichier valide indiquant le fichier à la liste à.  Si ce fichier existe déjà, il sera écrasé.

les erreurs

 Un numéro de ligne est supérieure à 65529: Erreur de syntaxe.
   file_spec a une valeur numérique: incompatibilité de type.
   file_spec se termine par un colon, mais est pas un nom de périphérique ou lettre de lecteur: Numéro de fichier incorrect.
   file_spec contient des caractères non autorisés: Numéro de fichier incorrect (sur CAS1 :);  Nom de fichier incorrect (sur les unités de disque).

LLIST LLIST [line_number_0 |.] [- [Line_number_1 |].]

Le programme imprime à l'écran, en commençant par line_number_0 jusqu'à et y compris line_number_1. arrête également l'exécution du programme et renvoie le contrôle à l'utilisateur. Les autres déclarations sur une ligne après LLIST seront ignorés, à la fois dans un programme et en mode direct. Remarques

 Dans GW-BASIC 3.23, LLIST ne montrera pas les numéros de ligne 65531-65535 inclus.  Par défaut, le LLIST de PC-BASIC fait apparaître ces lignes.  Cependant, leur montrant peut être désactivé avec l'option stricte-lignes cachées.

Paramètres

 line_number_0 et line_number_1 sont les numéros de ligne dans la gamme [0-65529].  ou a.  pour indiquer la dernière ligne modifiée.  Les numéros de ligne ne doivent pas exister;  ils spécifient une plage.  Si la plage est vide, rien n'est imprimé.

les erreurs

 Un numéro de ligne est supérieure à 65529: Erreur de syntaxe.

CHARGE CHARGE file_spec [R]

Charge le programme stocké dans un fichier dans la mémoire. les variables existantes seront effacées et tout programme en mémoire seront effacées. LOAD implique une CLEAR.

Si, R est spécifié, conserve les fichiers toutes les données ouvertes et exécute le fichier spécifié. Paramètres

 Le file_spec d'expression de chaîne est une spécification de fichier valide indiquant le fichier à lire le programme à partir.

Remarques

 Faire référence à

les erreurs

 file_spec a une valeur numérique: incompatibilité de type.
   file_spec contient des caractères non autorisés: Numéro de fichier incorrect (sur CAS1 :);  Nom de fichier incorrect (sur les unités de disque).
   Le fichier spécifié dans file_spec ne peut pas être trouvé: Fichier non trouvé.
   Un fichier texte chargé contient des lignes sans numéros de ligne: déclaration directe dans le fichier.

Localiser Situer [suite] [, [col] [, [cursor_visible] [, [start_line] [, [stop_line] [,]]]]]

Amène le curseur à la ligne, col sur l'écran et change la forme du curseur et de la visibilité. cursor_visible peut être 0 ou 1. Si cursor_visible est 0, il rend le curseur invisible; si elle est de 1, rend le curseur visible. Cela ne fonctionne que si un programme est en cours d'exécution. La forme du curseur est réglé dans une cellule de caractère à partir de start_line et se termine le end_line où start_line et end_line sont dans [0-31]. Si start_line ou end_line est supérieure à la hauteur de cellule de caractère (15), remplacer 15. Note

 Sur les cartes VGA émulés, les paramètres de forme du curseur sont interprétées d'une manière compliquée qui est destiné à maintenir la compatibilité fonctionnelle avec CGA.
   Dans GW-BASIC, la forme du curseur est conservé après avoir appuyé deux fois Ins.  Le curseur insert mode est différent du demi-bloc habituel.  Dans PC-BASIC, le mode d'insertion réinitialise la forme du curseur par défaut.
   forme du curseur et les options de visibilité sont sans effet en mode graphique.
   Repérez accepte une 5ème virgule à la fin, qui est ignoré.

les erreurs

 Tout paramètre a une valeur de chaîne: Type mismatch.
   Tout paramètre est pas dans [-32768 à 32767]: Overflow.
   ligne est en dehors de la vue actuelle zone: Illegal appel de fonction.
   col est supérieure à la largeur actuelle: Illegal appel de fonction.
   cursor_visible est pas dans [0, 1] ([0-255] sur Tandy / PCjr): Illegal appel de fonction.

LOCK LOCK [#] file_number [, record_0] BLOCAGE [#] file_number, [record_0] À record_1

Verrouille un fichier ou d'une partie d'un fichier contre l'accès par d'autres utilisateurs. Sur un fichier RANDOM, record_0 est le premier enregistrement verrouillé et record_1 est le dernier enregistrement verrouillé. Sur tout autre type de fichier record_0 et record_1 n'a aucun effet. Si record_0 est pas spécifié, il est supposé être 1. Si aucun enregistrement sont spécifiés, le fichier entier est verrouillé. Paramètres

 file_number est une expression numérique dans [0-255].
   record_0 et record_1 sont des expressions numériques dans [1-2 ^ 25-2].

Remarques

 Dans GW-BASIC sous MS-DOS, la commande LOCK requiert SHARE.EXE à charger.  Le nombre maximum de verrous est spécifié dans la commande SHARE MS-DOS.  Si SHARE n'a pas été activé ou tous les verrous sont utilisés, BLOCAGE soulève Permission denied.  PC-BASIC se comporte comme si SHARE a été activé avec des serrures illimitées.
   Si file_number est ouvert pour RANDOM, verrouiller et déverrouiller les états doivent correspondre en termes de record_0 et record_1.  Un UNLOCK non-appariement augmentera Permission denied.

les erreurs

 Tout paramètre a une valeur de chaîne: Type mismatch.
   file_num est pas dans [-32.768 à 32.767]: Overflow.
   file_num est pas dans [0-255]: Illegal appel de fonction.
   file_num est pas un fichier ouvert: Numéro de fichier incorrect.
   LOCK (partie) d'un fichier déjà verrouillé: Autorisation refusée.
   record_0 ou record_1 est pas dans [1-2 ^ 25-2]: Numéro d'enregistrement Bad.

LPRINT

Voir PRINT. LSET LSET string_name = expression

Copie une valeur de chaîne dans une chaîne élément variable ou tableau existant. La valeur sera justifiée à gauche et tous les caractères restants sont remplacés par des espaces. Paramètres

 string_name est un élément variable ou tableau chaîne.
   expression est une expression de chaîne.

Remarques

 Si l'expression a une valeur qui est supérieure à la longueur de la variable cible, elle est tronquée à la queue de la longueur de la variable cible.
   Si string_name n'a pas été alloué avant, cette déclaration n'a aucun effet.
   Utilisez LSET, RSET ou MID $ pour copier les valeurs dans un tampon de FIELD.
   Si LET est utilisé sur une variable au lieu de L FIELD | RSET, la variable est détaché du terrain et une nouvelle variable de chaîne normale est attribuée.

les erreurs

 string_name est pas une variable chaîne: Incompatibilité de type.
   expression n'a pas de valeur de chaîne: Type mismatch.

Merge Merge file_spec

Superpose les lignes d'un programme à partir d'un fichier de programme en texte clair dans le programme existant. Les lignes chargées d'écraser les lignes existantes si elles ont le même numéro de ligne. Paramètres

 Le file_spec d'expression de chaîne est une spécification de fichier valide indiquant le fichier à lire le programme à partir.

les erreurs

 file_spec ne peut pas être trouvé: Fichier non trouvé.
   file_spec contient des caractères non autorisés: Numéro de fichier incorrect (sur CAS1 :);  Nom de fichier incorrect (sur les unités de disque).
   file_spec n'a pas été enregistré en tant que texte brut: le mode de fichier incorrect.
   Un fichier texte chargé contient des lignes sans numéros de ligne: déclaration directe dans le fichier.

MID $ (déclaration) MID $ (string_name position [, longueur]) = substring

Remplace une partie de string_name avec substring. Paramètres

 string_name est une chaîne nom de variable valide.
   position est une expression numérique entre 1 et la longueur de la chaîne, y compris.
   longueur est une expression numérique dans [0-255].

Remarques

 Aucun espace est autorisé entre MID $ et (.
   Si substring est plus longue que la longueur, seuls les premiers caractères de longueur sont utilisés.
   Si substring est plus courte que la longueur, seulement LEN (substring) caractères sont remplacés.

les erreurs

 position est supérieure à la longueur de string_name: Illegal appel de fonction, sauf si la longueur est spécifiée comme 0.
   la position est pas dans [1-255]: Illegal appel de fonction.
   longueur est pas dans [0-255]: Illegal appel de fonction.
   la position ou la longueur ne sont pas dans [-32768 à 32767]: Overflow.

MKDIR MKDIR dir_spec

Crée un nouveau répertoire sur un périphérique de disque. Paramètres

 Le dir_spec d'expression de chaîne est une spécification de fichier valide qui spécifie le chemin du nouveau répertoire sur un périphérique de disque.

les erreurs

 dir_spec est pas une chaîne: Incompatibilité de type.
   Le répertoire parent n'existe pas: Chemin d'accès introuvable.
   Le nom du répertoire existe déjà sur ce chemin: Erreur d'accès Chemin / Fichier.
   L'utilisateur n'a pas l'autorisation d'écriture: Autorisation refusée.

MOTOR MOTOR [num]

Ne fait rien. Paramètres

 num est une expression numérique dans [0-255].

Remarques

 Dans GW-BASIC, cette déclaration met en marche le moteur de la cassette si num est différent de zéro ou omis, et l'éteint si num est nul.  Ce ne sont pas mis en œuvre dans PC-BASIC.

les erreurs

 num a une valeur de chaîne: Type mismatch.
   num est pas dans [-32768 à 32767]: Overflow.
   num est pas dans [0-255]: Illegal appel de fonction.

NOM NOM OLD_NAME AS new_name

Renomme le fichier de disque OLD_NAME en new_name. Paramètres

 Les expressions de chaîne OLD_NAME et new_name sont des spécifications de fichiers valides donnant le chemin sur un dispositif de disque pour les anciens et les nouveaux noms de fichiers, respectivement.

Remarques

 new_name sera modifié en un format tout-en majuscules 8.3.

les erreurs

 old_name ou new_name ont des valeurs numériques: incompatibilité de type.
   old_name n'existe pas: Fichier non trouvé.
   old_name est ouvert: Fichier déjà ouvert.
   new_name existe: Le fichier existe déjà.

NOUVEAU NOUVEAU

Arrête l'exécution d'un programme, supprime le programme en mémoire, exécute CLEAR et RESTORE et renvoie le contrôle à l'utilisateur. SUIVANT SUIVANT [var_0 [, var_1] ...]

Itère une boucle FOR-NEXT: incrémente la variable de boucle et saute à l'instruction FOR. Si aucune variables sont spécifiées, correspond à côté de la plus récente instruction FOR. Plusieurs déclarations PROCHAINES imbriqués peuvent être regroupés en un seul en utilisant la liste des variables. Si une ou plusieurs variables sont spécifiées, leur ordre doit correspondre à l'ordre de l'heure pour les états. Paramètres

 var_0, var_1, ... sont des variables numériques qui sont des compteurs de boucle dans une instruction FOR.

les erreurs

 Aucune instruction FOR est trouvée pour correspondre à l'instruction NEXT et les variables: SUIVANTE sans POUR.
   var_0, var_1, ... sont des variables de chaîne: NEXT sans FOR.
   La variable (implicite ou explicite) boucle est une variable entière et est pris en dehors de la gamme [-32768, 32767] lorsque incrémenté après la dernière itération: Overflow.

source BRUIT BRUIT, le volume, la durée

Génère divers types de bruit. Paramètres

 source est une expression numérique dans [0-7].  Il indique le type de bruit:
   type de source supérieure de la bande de fréquence (Hz)
   0 périodique 6991
   1 périodique 3495
   2 périodiques 1747
   3 dernière tonalité périodique joué sur la voix 2
   0 bruit blanc 6991
   1 bruit blanc 3495
   2 bruit blanc 1747
   3 blanc dernier ton de bruit joué sur la voix 2
   volume est une expression numérique dans [0-15].
   la durée est une expression numérique.

Volume et la durée sont déterminés de la même manière que pour l'instruction SOUND; voir là. Remarques

 Cette déclaration est disponible uniquement si la syntaxe = {PCjr | tandy} est réglé.

les erreurs

 SOUND ON n'a pas été exécuté: Illegal appel de fonction.
   durée est pas dans [-65535 à 65535]: Illegal appel de fonction.
   volume est pas dans [0-15]: Illegal appel de fonction.
   source est pas dans [0-7]: Illegal appel de fonction.

ON (saut calculé) ON n {GOTO | GOSUB} line_number_0 [, line_number_1] ...

Passe au numéro de ligne nième spécifié dans la liste. Si n est égal à 0 ou supérieur au nombre de numéros de lignes dans la liste, aucun saut est effectué. Si GOTO est spécifié, le saut est inconditionnel; si GOSUB est spécifié, des sauts à un sous-programme. Paramètres

 n est une expression numérique dans [0-255].  L'expression ne doit pas commencer par les STRIG, PEN, PLAY ou la fonction TIMER mots-clés;  si vous avez besoin de ces fonctions, l'expression doit être placé entre crochets.
   line_number_0, line_number_1, ... sont les numéros de ligne existante dans le programme.

les erreurs

 n a une valeur de chaîne: Type mismatch.
   n est pas dans [-32768 à 32767], Overflow.
   n est pas dans [0-255]: Illegal appel de fonction.
   n'existe pas La ligne nombre a bondi à: numéro de ligne non définie.

ON (événement piégeage) ON {COM (n) | KEY (n) | STRIG (n) | PEN | PLAY (n) | TIMER (x)} GOSUB line_number

Définit un événement de piégeage sous-programme. Le type d'événement est donné par l'un des mots clés suivants: COM (n), l'événement est déclenché si des données sont présentes dans la mémoire tampon d'entrée du COMn :. n est le numéro de port dans [1,2]. KEY (n) L'événement est déclenché si la clé n est pressée. n est le numéro de la clé [1-10] défini dans la déclaration KEY. STRIG (n) Ils événement est déclenché si le bouton de feu n est pressé. n dans [0,2,4,6] se réfèrent aux deux incendies déclenche sur deux joysticks. PEN L'événement est déclenché si le stylet sur l'écran. (Dans PC-BASIC, le stylet est émulé par défaut par le bouton droit de la souris). PLAY (n) L'événement est déclenché s'il y a exactement n notes laissées sur la file d'attente de la musique de fond. n est une expression numérique dans [1-32]. TIMER (x) L'événement est déclenché toutes les x secondes après la TIMER ON déclaration. x est une expression numérique dans [1-86400]. Remarques

 piégeage pour votre événement choisi premier événement doit être activé en utilisant l'une des déclarations: COM (n) ON, KEY (n) ON, STRIG (n) ON, PEN ON, jouer, TIMER ON
   Les événements ne sont piégés lorsqu'un programme est en cours d'exécution.

les erreurs

 n ou x a une valeur de chaîne: Type mismatch.
   n est pas dans [-32768 à 32767]: Overflow.
   n ou x est en dehors de la plage spécifiée: Illegal appel de fonction.

ON ERROR ON ERROR GOTO {line_number | 0}

Active le piégeage ou désactiver erreur. Lorsque line_number est réglé, toute erreur provoque la manipulation de routine à partir de ce numéro de ligne à être appelé erreur; aucun message est imprimé et l'exécution du programme ne soit pas arrêté. La routine de gestion des erreurs se termine par une déclaration de REPRENDRE. Alors que dans une routine de gestion des erreurs, des événements sont mis en pause et la récupération d'erreur est désactivé. Après la déclaration de REPRENDRE, tout les événements déclenchés sont ramassés dans l'ordre suivant: KEY, TIMER, PLAY - l'ordre des autres est inconnu. Contrairement à l'événement le piégeage, la récupération d'erreur reste active quand aucun programme est en cours. ON ERROR GOTO 0 désactive la récupération d'erreur. Paramètres

 line_number est un numéro de ligne existante dans le programme.

Remarques

 Il est impossible de démarrer le gestionnaire d'erreur au numéro de la ligne 0.

les erreurs

 line_number n'existe pas: numéro de ligne défini.

OPEN OPEN mode_char, [#] file_num, file_spec [, rec_len] OUVRIR file_spec [POUR {ENTREE | SORTIE | APPEND | RANDOM}] [ACCESS {LIRE | ECRITURE | WRITE LIRE}] [PARTAGÉE | BLOCAGE {LIRE | ECRITURE | WRITE LIRE }] AS [#] file_num [LEN = rec_len]

Ouvre un fichier de données sur un périphérique. Paramètres

 Le file_spec d'expression de chaîne est une spécification de fichier valide.
   file_num est une expression numérique dans [1-MAX_FILES], où MAX_FILES est le nombre maximum de fichier (par défaut 3).
   rec_len est une expression numérique dans [1-128]: la longueur d'enregistrement.
   mode_char est une expression de chaîne dont le premier caractère est un [ "I", "O", "A", "R"].

Les modes d'accès

Le FOR modes ou mode_char sont les suivants: mode_char POUR Effect "I" INPUT Ouvre un fichier texte pour la lecture et positionne le pointeur de fichier au début. "O" SORTIE tronque un fichier texte au début et à l'ouvre pour l'écriture. Toutes les données précédemment présentes dans le fichier seront supprimés. "A" APPEND Ouvre un fichier texte pour écrire à la fin de toutes les données existantes. "R" RANDOM Ouvre un fichier pour un accès aléatoire; le fichier est divisé en enregistrements de longueur rec_len. Si LEN est pas spécifié, la longueur d'enregistrement par défaut 128. Le contenu du fichier sont accessibles en utilisant GET et PUT du tampon FIELD; le tampon de champ peut être accessible par le biais de variables FIELD ou par PRINT # et INPUT # déclarations.

Si aucun pour le mode ou mode_char est spécifié, le fichier est ouvert pour RANDOM.

Si les deux et l'accès sont spécifiés, tout mode d'accès est autorisé pour RANDOM mais pour les autres modes d'accès doit correspondre à la manière suivante: pour l'accès par défaut autorisé ACCÈS ENTREE READ LECTURE ECRITURE DE SORTIE WRITE APPEND Lecture Ecriture Lecture Ecriture RANDOM LIRE ECRIRE tous Partage et serrures

Si ni PARTAGÉE ni BLOCAGE sont spécifiés. A l'intérieur de ce processus, un fichier peut être ouvert plusieurs fois pour INPUT ou RANDOM mais seulement une fois pour OUTPUT ou APPEND, tant qu'il est ouvert à nouveau en mode par défaut. Il ne peut pas être ouvert en PARTAGÉ ou des modes LOCK.

Si PARTAGÉE, BLOCAGE READ, WRITE LOCK ou LOCK READ WRITE est spécifié, si deux états OPEN peuvent accéder au même fichier dépend de son statut LOCK et le statut de l'autre ACCESS et vice versa. Pour deux déclarations OUVERTES comme suit: "fichier" OPEN lock_1 AS 1 OPEN "fichier" acc_2 ACCESS AS 2, les combinaisons suivantes sont autorisées: Accès autorisé acc_2 LECTURE ECRITURE LECTURE ECRITURE lock_1 PARTAGÉE oui oui oui BLOCAGE READ non oui non BLOCAGE ECRITURE oui non non BLOCAGE READ pas ECRIRE no no

Dans GW-BASIC sous MS-DOS avec SHARE.EXE actif, ces verrous doivent être appliquées à travers un réseau, ainsi que l'intérieur d'un processus de base unique. Sans PARTAGÉ et LOCK, le fichier est verrouillé exclusivement pour une utilisation par le processus GW-BASIC. En revanche, dans PC-BASIC, les verrous ne sont mises en œuvre en interne. Que d'autres processus peuvent accéder au fichier dépendent du système d'exploitation hôte. Spécifications des fichiers

Une spécification de fichier file_spec est une chaîne d'expression non vide de la forme "[device:] paramètres", où device est un dispositif de PC-BASIC et la forme des paramètres est spécifique au type de dispositif. Si le dispositif est omis, le dispositif actuel (une des unités de disque ou CAS1 :) est utilisé.

dispositifs de disque A: -Z: et @:

 paramètres doivent spécifier un chemin de fichier valide de la forme [\] [dirname \] ... filename.
 PC-BASIC suit DOS conventions du système de fichiers.  Les noms de répertoires sont séparés par des antislashs \ (même si le système d'exploitation hôte sépare les chemins avec des barres obliques).  Les noms de fichiers et de répertoires sont constitués d'un nom de 8 caractères et extension de 3 caractères.  Les noms sont insensibles à la casse.  Les caractères autorisés pour les deux nom et l'extension sont les caractères ASCII imprimables dans la gamme & h20- & H7E excluant les caractères "* +, /:; <=> \ [] | Les espaces sont autorisés, mais avant et arrière espaces sont ignorés Le.?.. noms AUX, CON, PRN et NUL sont réservés comme alias de périphériques et ne sont pas des noms juridiques pour des fichiers ou des répertoires sur un périphérique de disque.
 Un chemin commençant par une barre oblique inverse est interprété comme un chemin absolu, à partir de la racine du périphérique de disque spécifié.  Sinon, le chemin est interprété par rapport au répertoire courant sur le périphérique spécifié.  Le nom du répertoire spécial .. se réfère au répertoire parent d'un chemin précédent, ou le répertoire parent du répertoire courant si aucun chemin est donné.  Le nom du répertoire spécial.  se réfère au même répertoire que donné par le chemin précédent, ou le répertoire courant si aucun chemin précédent est donné.
 Le LOAD, SAVE, BLOAD, BSAVE, CHAIN, merge, RUN, et les déclarations de LISTE (mais pas OUVRIR) implicitement ajouter une extension par défaut .BAS si aucune extension est spécifiée.  Pour faire référence à un nom de fichier sans extension, la spécification du fichier doit se terminer par un point ..
   notes de compatibilité
 Contrairement à PC-BASIC, certaines versions de MS-DOS permettent à certains caractères de la plage et h7F- & hFF.  Cependant, leur licéité et l'interprétation dépend de la page de code de la console, qui peut être différente de la page de code d'affichage qui affecte GW-BASIC.  En fonction de sa page de code de la console, MS-DOS remplace les lettres accentuées par leur variante en majuscules non accentuées.  Certaines implémentations DOS va supprimer les espaces de noms;  notamment, cela est le cas sur DOSBox.
 Depuis les unités de disque sont mappés sur les répertoires sur le système hôte, les noms de style DOS doivent être mappés sur les noms de fichiers en suivant les normes (généralement beaucoup moins restrictive) du système hôte.  Pour autoriser l'accès à des fichiers dont le nom sur le système hôte ne sont pas conformes aux normes DOS, les procédures d'appariement suivantes sont respectées.
 OUVERT, KILL, NOM, CHDIR, MKDIR, RMDIR
       PC-BASIC va d'abord chercher un fichier avec le nom exactement comme prévu.  Cela peut être un nom long et sera sensible cas si votre système de fichiers est.  Si un tel fichier est introuvable, il tronque le nom fourni au format 8.3 et convertir en majuscules.  Si ce nom exact ne se trouve pas, il va chercher 8.3 noms dans le cas mixte qui correspondent au nom fourni de manière insensible à la casse.  Ces fichiers sont recherchés dans l'ordre lexicographique.  Fichiers noms plus que 8.3 ne seront pas jumelés, à moins que leur nom est entré exactement.  Sous Windows, le nom correspondant peut être un nom de fichier court ainsi qu'un nom de fichier long à condition qu'il soit de 8,3 longueur - il peut, par exemple, contient des espaces et donc ne pas être un nom valide de Windows de fichier court. 
   LOAD, SAVE, BLOAD, BSAVE, CHAIN, merge, RUN, LIST
       On n'a pas tenté de trouver une correspondance exacte.  Au lieu de cela, la recherche va d'abord faire correspondre les tous-caps version 8.3 du nom et de continuer dans l'ordre lexicographique comme ci-dessus.  Si aucune extension est spécifiée, les .BAS d'extension seront ajoutés implicitement.  Pour charger un programme sans extension, fin du nom de fichier dans un point.  Sur les systèmes de fichiers sans noms de fichiers courts, il est impossible de charger un programme si son nom est plus long que 8.3, contient des caractères non-autorisés ou se termine par un point. 
 Si aucun fichier correspondant est trouvé pour un nom de fichier de sortie, un nouveau fichier sera créé avec un tout en majuscules 8.3 nom de fichier.

Cassette dispositif CAS1:

 paramètres peuvent être un nom de fichier de huit caractères maximum.  les noms de fichiers de cassette sont sensibles à la casse, ont aucun chemin ou d'extension, peut être vide et ne pas besoin d'être unique.  Ils peuvent contenir des caractères dans la gamme & h20- & hFF.  Sur le dispositif de cassette, lorsqu'il est appelé en mode direct, OUVERT, CHAIN, merge, LOAD et BLOAD imprime un message à la console pour chaque fichier trouvé lors de l'enroulement de la bande.  Le message se compose du nom du fichier suivi d'un point et le type de fichier et conclu avec un message d'état.  Le type de fichier est l'un des éléments suivants:
 UNE
       Fichier de programme en format texte
   B
       Fichier de programme au format tokenised
   ré
       Fichier de données
   M
       image mémoire BSAVE
   P
       Fichier de programme en format protégé
 Si le fichier ne correspond pas à la spécification de fichier et le type de fichier requis, le statut est arrêté;  si le fichier correspond, l'état est trouvé.  Lorsqu'il est appelé à partir d'un programme, ces déclarations n'impriment des messages à la console.  Si le dispositif a été explicitement spécifié, les paramètres peuvent également être vide.  Dans ce cas, le premier fichier du type approprié est ouvert. 

dispositifs de console et parallèles SCRN :, Kybd :, et LPTn:

 Ces dispositifs ne permettent pas d'autres paramètres de l'appareil. 

Les périphériques série COMn:

 Lors de l'ouverture d'un port COM, le file_spec a la forme
   "COMn: [vitesse [, la parité [, données [, arrêtez [RS] [, CS [n]] [, DS [n]] [, CD [n]] [, LF] [, PE]]]] ] "
   Les quatre premiers paramètres après le côlon de l'appareil doivent être donnés dans l'ordre spécifié mais les paramètres nommés peuvent être donnés dans un ordre quelconque.  La signification des paramètres est:
   Paramètre Valeur par défaut Signification
   vitesse 300 bauds (bps) Taux pour la connexion.  la vitesse est l'un [75, 110, 150, 300, 600, 1200, 1800, 2400, 4800, 9600].
   parité E convention de bit de parité.  la parité est l'une des [S, M, O, E, N].
   parité Signification Effet
   S bit SPACE de parité toujours réglé sur 0.
   M MARK bit de parité toujours réglé sur 1.
   O bit de parité impaire réglé de telle sorte que la parité de caractères est impair.
   E bit de parité pair réglé de telle sorte que la parité de caractère est encore.
   N NONE Pas de bit de parité transmis ou reçu.
   données 7 bits de données par octet.  les données doivent être l'un de [4, 5, 6, 7, 8].  Un octet est constitué de bits de données ainsi que le bit de parité, le cas échéant.  la taille de l'octet doit être dans l'intervalle [5-8]: si les données sont 4, la parité ne doit pas être N;  si les données sont 8, la parité doit être N.
   stop 1 Le nombre de bits d'arrêt.  arrêt doit être 1 ou 2. Par défaut est 2 si la vitesse est de 75 ou 110;  1 sinon.
   RS ne Suppress demande d'envoi.
   CS [n] CS1000 Set Clear To Send timeout n millisecondes.  Si n est 0 ou non donné, désactiver l'enregistrement CTS.  Par défaut est CS0 si RS est réglé;  CS1000 autrement.
   DS [n] DS1000 Data Set Ready Set timeout n millisecondes.  Si n est 0 ou non donné, désactiver l'enregistrement DSR.
   CD [n] CD0 Set Carrier Detect timeout n millisecondes.  Si n est 0 ou non donné, désactiver l'enregistrement de CD.
   LF pas Envoyer un saut de ligne après chaque retour chariot.
   PE n'Activer contrôle de parité (Ce paramètre est ignoré par PC-BASIC).

Remarques

 Si un port COM est ouvert pour RANDOM, l'accès est octet par octet plutôt que par des enregistrements sur le terrain;  PRINT # et INPUT # accès au port directement.  rec_len définit le nombre d'octets lus par les déclarations GET et PUT.
   Pour l'entrée, la sortie et les modes APPEND, LEN peut être spécifié, mais est ignoré.
   Si I / O est tenté de contrevenir à la FOR mode spécifié, l'instruction PRINT ou INPUT soulèvera le mode de fichier incorrect.
   Si RANDOM I / O est tenté de contrevenir à la mode d'accès spécifié, la PUT ou GET déclaration soulèvera erreur d'accès Chemin / Fichier.
   Le # est facultative et n'a aucun effet.

les erreurs

 file_spec est vide ou un dispositif non-existant: Numéro de fichier incorrect.
   POUR APPEND ACCESS WRITE est spécifié: Erreur d'accès Chemin / Fichier.
   Et l'accès non-concordance d'autres manières: Erreur de syntaxe.
   Les COM: paramètres file_spec ne suivent pas la spécification: nom de fichier incorrect.
   Le CAS1: file_spec contient des caractères non autorisés: Numéro de fichier incorrect.
   Un fichier est déjà ouvert pour OUTPUT ou APPEND: Fichier déjà ouvert.  Ceci est soulevé seulement pour COMn :, ACESI: et les unités de disque.
   rec_len ou file_num ont des valeurs de chaîne: Type mismatch.
   file_spec ou mode_char ont des valeurs numériques: incompatibilité de type.
   file_num est pas dans [-32.768 à 32.767]: Overflow.
   file_num est pas dans [0-255]: Illegal appel de fonction.
   file_num est pas dans [1-MAX_FILES]: Numéro de fichier incorrect.
   rec_len est pas dans [-32.768 à 32.767]: Overflow.
   rec_len est pas dans [1-128]: Illegal appel de fonction.
   mode_char est vide ou le premier caractère est pas dans [ "I", "O", "A", "R"]: le mode de fichier incorrect.

OPTION BASE OPTION BASE n

Définit l'indice de départ de tous les tableaux à n. Paramètres

 n est un chiffre littérale 0 ou 1. Les expressions ne sont pas autorisés.

Remarques

 Si OPTION BASE n'a pas été appelé, les premiers défauts de répartition de tableau à partir index 0.

les erreurs

 n est pas un chiffre 0 ou 1: Erreur de syntaxe.
   OPTION BASE 1 est appelé, mais un tableau a déjà été allouée avant: définition en double.
   OPTION BASE est appelé plus d'une fois avec différents index de départ: Dupliquer définition.

OUT OUT port, la valeur

Envoie un octet à un port de la machine émulé.

Les ports de machine suivants sont émulés dans PC-BASIC: port Effect & H201 réinitialise le port de jeu (port joystick) et h3C5 définit le bitmask d'écriture pour ECRAN 7, 8, 9 plans de couleur. bitmask = 2 ^ valeur. & H3CF définit le plan de couleur de lecture à la valeur. & H3D8 si la valeur = & H1A, activez colorburst composite. si la valeur = & H1E, désactivez colorburst composite. Requiert video = {cga, tandy, PCjr}. Remarques

 Seul un nombre limité de ports de la machine sont émulés.
   Dans GW-BASIC sous MS-DOS, la séquence nécessaire pour définir le masque de plan de couleur est:
   OUT & H3C4, 2
   OUT & h3C5, 2 ^ plan
   La séquence nécessaire pour définir le plan de couleur est:
   OUT & h3CE, 4
   OUT & h3CF, avion
   Les déclarations initiales OUT ont actuellement aucun effet dans PC-BASIC.

Paramètres

 port est une expression numérique dans [-32768 à 65535].
   La valeur est une expression numérique dans [0-255].

les erreurs

 le port ou la valeur a une valeur de chaîne: Type mismatch.
   port est pas dans [-32768 à 65535]: Overflow.
   valeur est pas dans [-32768 à 32767]: Overflow.
   valeur est pas dans [0-255]: Illegal appel de fonction.

PAINT PAINT [STEP] (x, y) [, attrib [, frontière [, fond]]]

Flood-remplit l'écran avec une couleur ou un motif, à partir du point de semences donné. Paramètres

   x, y sont des expressions numériques dans l'intervalle [-32768 à 32767] Si STEP est spécifié, xy sont des décalages de la position actuelle.  Si le point de semences est en dehors de la zone d'écran visible, pas de remplissage d'inondation est effectuée.  attrib est une expression qui spécifie l'attribut de remplissage ou d'un motif.  Si non spécifié, l'attribut de premier plan en cours est utilisé.  Si attrib a une valeur numérique, il doit être dans [0-255];  il spécifie l'attribut de couleur utilisée pour remplir.  Si attrib a une valeur de chaîne, il spécifie un motif de carreaux (voir ci-dessous).  la frontière est une expression numérique dans [0-255].  Elle spécifie l'attribut de la limite de remplissage (voir ci-dessous).  arrière-plan est une expression de chaîne qui représente un motif de carreaux de fond à ignorer lors de la détermination des limites (voir ci-dessous). 

motifs de carreaux

Un motif de tuile peut être spécifié par une chaîne de 255 caractères. L'interprétation de la chaîne dépend du nombre de bits par pixel et sur le mode d'écran actuel.

1 bit par pixel (par exemple ECRAN 2)

 Voici un exemple:
   valeur 76543210 Byte
   * ....... & H80
   . * ...... & H40
   .. * ..... & H20
   ... * .... & H10
   .... * ... Et H08
   ..... * .. & H04
   ...... *.  & H02
   Ce modèle de bande diagonale peut donc être produit avec
   PEINTURE (0, 0), CHR $ (128) + CHR $ (64) + CHR $ (32) + CHR $ (16) + CHR $ (8) + CHR $ (4) + CHR $ (2)

Ecran 7, 8, 9

 Le motif de tuile est toujours de 8 pixels de large.  Le premier caractère de la chaîne de configuration contient le deuxième caractère du premier bit de chacun des 8 pixels, contient les seconds bits, etc. Par exemple, dans un mode de 2 bits par pixel, les quatre attributs de couleur peuvent être utilisés dans la modèle.  Pour créer un motif de rayure diagonale de la même forme, dans l'attribut & h03, nous avons maintenant besoin d'une chaîne de tuile qui est deux fois plus long:
   Attribut bit valeur 76543210 Byte
   0 * ....... & h80
   1 * ....... & h80
   0. * ...... & H40
   1. * ...... & H40
   0 .. * ..... & h20
   1 .. * ..... & h20
   0 ... * .... & h10
   1 ... * .... & h10
   0 .... * ... et H08
   1 .... * ... et H08
   0 ..... * .. & h04
   1 ..... * .. & h04
   0 ...... *.  & H02
   1 ......*.  & H02
   Si la chaîne de motif est tronqué avant que tous les bits de la dernière ligne ont été définis, les bits restants seront nuls. 

ÉCRAN 1, 3, 4, 5, 6

 Chaque ligne du motif de carreaux représente une ligne d'écran.  Les couleurs sont codées en bits consécutifs;  les plus de bits par pixel, plus la tendance est.  Pour 2 bits par pixel, le motif est de 4 pixels de large;  4 bits par pixel, il est de 2 pixels de large.  La chaîne de modèle suivant code une bande diagonale en pointillés en deux couleurs:
   3210 valeur 76543210 Byte
   2000 * ....... & h80
   1000. * ...... & H40
   0200 .. * ..... & h20
   0100 ... * .... & h10
   0020 .... * ... et H08
   0010 ..... * .. & h04
   0002 ...... *.  & H02

Le motif de carreaux est ancré à l'écran; Imaginez une grille à partir de (0,0) et couvrant l'écran. Chaque fois qu'une zone est remplie de tuiles, les carreaux sont mis dans cette grille. De cette façon, les zones adjacentes auront carrelage continu, même si elles étaient remplies de différents points de semences. Limites

Un remplissage d'inondation solide arrête à des pixels qui ont le même attribut que le remplissage ou qui ont l'attribut border spécifié, si spécifié. Un remplissage de carrelage d'inondation arrête à l'attribut border spécifié; si aucun attribut border est spécifié, il arrête à l'attribut de premier plan en cours. Un remplissage de carrelage d'inondation empêche également à des intervalles de lignes de balayage qui sont les mêmes que le motif de carrelage pour cette ligne, à moins d'un motif d'arrière-plan est spécifiée, et l'intervalle est aussi égale le motif de fond pour cette ligne. les erreurs

 Dans ÉCRAN 7, 8, 9, si le fond est égale à attrib jusqu'à la longueur du attrib: Illegal appel de fonction.
   arrière-plan a une valeur numérique: Illegal appel de fonction.
   frontière, x ou y ont une valeur de chaîne: Type mismatch.
   frontière, x ou y ne sont pas dans [-32.768 à 32.767]: Overflow.
   la frontière est pas dans [0-255]: Illegal appel de fonction.
   attrib est numérique et non pas dans [-32768 à 32767]: Overflow.
   attrib est numérique et non pas dans [0-255]: Illegal appel de fonction.

PALETTE PALETTE [attrib, color]

Affecte une couleur à un attribut. Tous les pixels avec cet attribut changeront de couleur immédiatement. Si aucun paramètres sont spécifiés, PALETTE réinitialise au réglage initial. Paramètres

 attrib est une expression numérique entre 0 et la taille de la palette actuelle, moins un.
   la couleur est une expression numérique entre -1 et le nombre maximum de couleurs pour le mode d'écran actuel, moins un.  Si la couleur est égal à -1, la palette reste inchangée.

les erreurs

 attrib ou de couleur a une valeur de chaîne: Type mismatch.
   attrib ou de couleur ne sont pas dans [-32768 à 32767]: Overflow
   attrib ou de couleur ne sont pas dans la plage: Illegal appel de fonction

PALETTE UTILISATION PALETTE UTILISATION int_array_name {(| [} {start_index) |]}

Affecte de nouvelles couleurs à tous les attributs. Paramètres

 int_array_name est un tableau de nombres entiers (%) qui fournira les nouvelles valeurs pour la palette.
   start_index est une expression numérique qui indique à quel index dans le tableau pour commencer la cartographie à la palette.

Si une entrée de gamme a une valeur -1, l'attribut correspondant est laissé inchangé. les erreurs

 int_array_name n'a pas été affectée: Illegal appel de fonction.  Le tableau ne sera pas automatiquement attribué.
   int_array_name est pas un entier tableau: Incompatibilité de type.
   int_array_name est trop court: Illegal appel de fonction.
   start_index a une valeur de chaîne: Type mismatch.
   start_index est pas dans [-32.768 à 32.767]: Overflow
   start_index est dimensions du tableau à l'extérieur: Indice hors de portée

PCOPY PCOPY src, dst

Copie la page d'écran src dst. Tous les textes et graphiques sur dst est remplacé par ceux de src. Paramètres

 src et dst sont des expressions numériques entre 0 et le numéro du mode vidéo actuel de pages, moins un.

les erreurs

 src ou dst a une valeur de chaîne: Type mismatch.
   src ou dst est pas dans [-32.768 à 32.767]: Overflow.
   src ou dst est hors de portée: Illegal appel de fonction.

PEN (déclaration) PEN {ON | OFF | STOP}

Contrôles événement piégeage et l'accès en lecture de la plume de lumière (émulé par la souris dans PC-BASIC). PEN ON commute la lecture de stylo et de piégeage sur. PEN OFF l'éteint. PEN arrêt suspend événement PEN piégeant jusqu'à PEN ON est exécutée. Jusqu'à un événement peut être déclenché pendant la suspension, à condition que la gestion des événements a été activée avant la suspension. L'événement déclenché pendant la suspension est traitée immédiatement après l'instruction suivante PEN ON. PLAY (commutateur d'événement) PLAY {ON | OFF | STOP}

 ON: permet ON événement PLAY piégeage de la file d'attente de la musique.
   OFF: désactive le piégeage.
   STOP: arrête le piégeage jusqu'à JOUER ON est utilisé.  Les événements qui se produisent pendant le piégeage est arrêté déclenchera immédiatement lorsque le piégeage est réactivé.

PLAY (déclaration de la musique) PLAY [mml_string_0] [, [mml_string_1] [, mml_string_2]]

Joue la mélodie définie par les chaînes de musique Langue Macro mml_string_0, ....

Sauf si la syntaxe = {tandy | PCjr} est définie, seule la syntaxe simple vocale est disponible. Les trois chaînes MML distinctes correspondent aux trois voix de la carte son PCjr / Tandy. Les notes de ces cordes sont jouées de manière synchrone. Paramètres

 mml_string_0, mml_string_1, mml_string_2 sont des expressions de chaîne dans MML.
   Au moins un paramètre doit être fourni et la déclaration ne doit pas se terminer par une virgule.

Musique macro notes de référence du langage et Pauses Effet Commande {A | B | C | D | E | F | G} [# | + | -] [m] Jouez une note. + Ou # indique forte. - Indique plat. m est un littéral numérique et indique la durée d'une note d'mth. m est dans la gamme [0-64]. Si m = 0 ou omis, utilisez la longueur par défaut. Nn Jouer la note n, dans la gamme [0-84] (7 octaves). n = 0 signifie repos. Sur Réglez l'octave en cours à n, dans l'intervalle [0-6]. Par défaut est 4.> Augmenter l'octave courant de 1, avec un maximum de 6. <Diminution de l'octave courant de 1, avec un minimum de 0. Pn Pause pour la durée d'une note nième. n est dans la gamme [0-64]. Si n = 0, cela n'a aucun effet. Timing commandes Commande Effet. Augmenter la durée de la note précédente de 1/2 fois la durée normale. Les périodes peuvent être répétées pour augmenter la durée plus loin. Ln Régler la durée de la note suivante à une note nième. (N = 4 est un quart de note, etc.) n est dans la gamme [1-64]. MN normal: 7/8 de la durée est saine, avec 1/8 silence. Mode par défaut. ML Legato: toute la durée est saine. MS Staccato: 3/4 de la durée est solide, avec 1/4 silence. Tn Définit le tempo n L4s par minute. n est dans la gamme [32-255]. Par défaut est 120. commandes Contexte mode

Ces commandes affectent SOUND, PLAY et BEEP Commande Effet MB Active le mode d'arrière-plan; son commandes sortie sans attendre la musique pour terminer. La musique continue à jouer alors que d'autres commandes sont exécutées. Il peut y avoir jusqu'à 16 notes dans la file d'attente de musique de fond; si plusieurs notes sont jouées, PLAY bloquera jusqu'à ce que il y a seulement 16 gauche. MF Met le mode d'arrière-plan; commandes sonores bloquent. Mode par défaut. commande Subroutine Commande Effet Xs Execute substring. s est l'un des éléments suivants:

 un nom variable de chaîne suivie par un;
   le résultat de VARPTR $ () sur une variable de chaîne

Contrôle du volume

Contrôle du volume est disponible sur la syntaxe = {tandy | PCjr} uniquement: Commande Effet Vn Réglez le volume à n, dans la gamme [0-15]. Sur la syntaxe = PCjr, si SOUND ON n'a pas été exécutée, cela n'a aucun effet. Sur la syntaxe = tandy ne possède. Paramètres MML

Les variables numériques n dans les commandes ci-dessus peuvent être:

 un littéral entier, par exemple PLAY "L4G"
   une variable numérique nom ou élément de tableau var précédé de = et suivie;.  Par exemple, PLAY "L = VAR; G" ou PLAY "L = A (1); G"
   le résultat de VARPTR $ (var) précédé de =.  Par exemple, PLAY "L =" + VARPTR $ (VAR) + "G"

Notez que le numéro seulement littéraux peuvent suivre les notes et les variables nommées déréférencement ou tableaux ne sont pas autorisés là. Il est une erreur d'écrire PLAY "G = VAR;" ou PLAY "G =" + VARPTR $ (VAR). Utilisez PLAY "G4" ou PLAY "L = VAR; G" ou PLAY "L =" + VARPTR $ (VAR) + "G" à la place. les erreurs

 mml_string a une valeur numérique: incompatibilité de type.
   mml_string a des erreurs dans le MML: Illegal appel de fonction.
   Une variable dans une chaîne MML est de type incorrect: incompatibilité de type.
   Aucune chaîne de MML est spécifié: opérande manquant.
   Sur PCjr, si SOUND ON n'a pas été exécuté, en utilisant la syntaxe à trois voix soulèvera une erreur de syntaxe.  Ce n'est pas le cas sur Tandy.

POKE POKE adresse, valeur

Définit la valeur de l'octet de mémoire au niveau du segment * 16 + adresse à la valeur, où le segment est le segment courant réglé avec DEF SEG. Paramètres

 adresse est une expression numérique dans [-32768-65535].  Les valeurs négatives sont interprétées comme complément à leurs deux.
   La valeur est une expression numérique dans [0-255].

Remarques

 La mémoire est que partiellement émulée dans PC-BASIC.  Voir modèle de mémoire pour les adresses prises en charge.  En dehors des zones émulés de mémoire, cette déclaration n'a aucun effet.

les erreurs

 adresse ou valeur a une valeur de chaîne: Type mismatch.
   adresse se trouve pas dans [-32768 à 65535]: Overflow.
   valeur est pas dans [-32768 à 32767]: Overflow.
   valeur est pas dans [0-255]: Illegal appel de fonction.

PSET et PRESET {PSET | PRESET} [STEP] (x, y) [, attrib]

Modifiez l'attribut d'un pixel sur l'écran à la position (x, y). Si l'étape est spécifiée, (x, y) est décalée par rapport à la position actuelle.

Si attrib est entre 0 et la taille de la palette du mode d'écran, le pixel est modifié pour attribuer attrib. Si attrib est plus grande que la taille de la palette, l'attribut du pixel est modifiée à la valeur la plus élevée de l'attribut juridique. Si attrib est pas spécifié, PSET modifie l'attribut à l'attribut de premier plan en cours tandis que PRESET il change à zéro. Paramètres

 x, y sont des expressions numériques dans [-32768 à 32767].
   attrib est une expression numérique dans [0-255].

les erreurs

 x ou y a une valeur de chaîne: Type mismatch.
   attrib, x ou y ou les coordonnées physiques qu'ils traduisent ne sont pas dans [-32768-32767]: Overflow.
   attrib est pas dans [0-255]: Illegal appel de fonction.

PRINT et LPRINT {LPRINT | {PRINT |} [# file_num,]?} [Expr_0 |; |, | SPC (n) | TAB (n)] ... [en utilisant le format; uexpr_0 [{; |,} uexpr_1] ... [; |]]

Ecrit expressions à l'écran, une imprimante ou un fichier. Si LPRINT est utilisé, la sortie va vers LPT1 :. Si file_num est spécifié, la sortie va vers le fichier ouvert sous ce numéro. ? est un raccourci pour PRINT.

Lors de l'écriture d'une expression de chaîne à l'écran, les caractères de contrôle suivants ont une signification spéciale. D'autres personnages sont présentés comme leur glyphe correspondant dans le codepage actuel. caractère point de contrôle de code Effet & h07 BEL Beep le haut-parleur. & H08 BS Effacer le caractère dans la colonne précédente et déplacer le curseur. & H09 HT Aller à la prochaine étape de l'onglet 8 cellules. & H0A LF Aller à la colonne de gauche dans la rangée suivante; connecter les lignes à une ligne logique. & H0B VT Déplacez le curseur sur la partie supérieure gauche de l'écran. & H0C FF Effacer l'écran. & H0D CR Aller à la colonne de gauche dans la rangée suivante. & H1C FS Déplacer le curseur d'une colonne à droite. & H1d GS Déplacer le curseur d'une colonne vers la gauche. & H1E RS Déplacer le curseur d'une ligne vers le haut. & H1F US déplacer le curseur d'une ligne vers le bas.

Les expressions peuvent être éventuellement séparés par un ou plusieurs des mots-clés suivants: Mot-clé Effet

Attaches deux expressions serrées ensemble; chaînes seront imprimées sans espace entre les deux, les numéros auront un espace qui les sépare, en plus de l'espace ou signe moins qui indiquent le signe du nombre.

, L'expression sera après être positionné à la prochaine zone disponible. Le fichier de sortie est divisé en zones de 14 caractères; si la largeur du fichier est pas un multiple de 14, les espaces restants sont inutilisés et la première zone de la ligne suivante est utilisée à la place. Si le fichier a une largeur de moins de 14 caractères, les zones sont déterminées comme si le fichier a été enveloppait en continu. SPC (n) Produit n espaces, où n est une expression numérique. si n est inférieur à zéro, il est par défaut à zéro. Si n est supérieure à la largeur de fichier, il est pris modulo la largeur du fichier. TAB (n) Déplace à la colonne n, où n est une expression numérique. si n est inférieur à zéro, il est par défaut à zéro. Si n est supérieure à la largeur de fichier, il est pris modulo la largeur du fichier. Si la colonne courante est supérieure à n, TAB se déplace à la colonne n de la ligne suivante.

Si l'instruction d'impression ne se termine pas dans l'une de ces quatre jetons de séparation, une nouvelle ligne est imprimée après la dernière expression. Les expressions de chaîne peuvent être séparés par un ou plusieurs espaces, ce qui a le même effet que la séparation par des points-virgules. Format syntaxe de chaîne

Une déclaration UTILISATION se produit à la fin d'un [L] PRINT [#] déclaration et écrit une chaîne formatée à l'écran, une imprimante ou un fichier. Les tableaux suivants présentent les jetons de format qui peuvent être utilisés dans la chaîne de format. _ Caractère d'échappement; provoque le caractère suivant dans la chaîne de format pour être imprimé tel quel plutôt que interprété comme un signe de format.

Pour les expressions de chaîne: Imprime le premier caractère d'une chaîne. \\ Prints 2 ou plusieurs caractères d'une chaîne. Un plus grand nombre de caractères est sélectionné en séparant le \ s par des espaces. & Imprime la chaîne entière.

Pour les expressions numériques, la chaîne de format spécifie une largeur et d'alignement.

   Indiquez une position pour un chiffre. 

. Indiquez le point décimal. , Avant la virgule: la cause chiffres à être groupés par trois séparés par des virgules. Après la virgule, il est pas un jeton. Fournit une position de chiffres.

Le nombre de caractères dans le champ ne doit pas dépasser 24.

Tokens précédant le champ de numéro: + Parce que le signe à imprimer pour les nombres positifs et négatifs. Le signe doit être imprimé à la gauche du numéro.

       Causer des espaces menant à être remplacés par des * s. Fournit deux positions de chiffres. 

$$ Cause a $ à imprimer à la gauche du numéro. Fournit une position de chiffres.

Tokens suivi le champ du numéro: + Parce que le signe à imprimer pour les nombres positifs et négatifs. Le signe sera imprimé à la droite du numéro. - Parce que le signe pour les nombres négatifs à imprimer à la droite du numéro. Notez que - précédant le champ est un jeton, mais imprimé littéralement. ^^^^ Spécifiez que la notation scientifique E + 00 doit être utilisé.

Les expressions numériques sont toujours entièrement imprimées, même si elles ne rentrent pas dans les positions indiquées. Si le nombre ne tient pas dans l'espace alloué, un% est imprimé qui le précède.

 S'il y a plus d'expressions que les champs de format, la chaîne de format est enroulé autour.
   Les expressions peuvent être séparés par des virgules ou des virgules;  l'effet est le même.
   Si la déclaration UTILISATION se termine par une virgule ou point-virgule, aucune nouvelle ligne est imprimé à la fin.
   Après une déclaration UTILISATION, d'autres éléments de la syntaxe PRINT telles que la CPS (et TAB (ne peuvent pas être utilisés.

Paramètres

 expr_0, expr_1, ... sont des expressions de tout type.
   format est une expression de chaîne qui spécifie le format de sortie.
   uexpr_0, uexpr_1, ... sont des expressions correspondant à un jeton dans la chaîne de format.

Remarques

 Si une erreur est déclenchée, la sortie avant que l'erreur a été rencontrée est imprimé comme normal.

les erreurs

 n a une valeur de chaîne: Type mismatch.
   n est pas dans [-32768 à 65535]: Overflow.
   La chaîne de format ne contient pas de jetons: Illegal appel de fonction.
   Une expression ne correspond pas au type de jeton de format correspondant: incompatibilité de type.
   Un champ de numéro dans la chaîne de format dépasse 24 caractères: Illegal appel de fonction.
   Un champ de numéro dans la chaîne de format ne contient pas de caractères #: Illegal appel de fonction.

PUT (fichiers) PUT [#] file_number [, record_number]

Ecrit un enregistrement dans le fichier file_number à accès aléatoire à la position record_number. Paramètres

 file_number est une expression numérique qui donne le nombre d'un fichier à accès aléatoire ouvert.  Le # est facultative et n'a aucun effet.
   record_number est une expression numérique dans [1-33554432] (2 ^ 25) et est interprété comme le numéro d'enregistrement.

Remarques

 Le numéro d'enregistrement est stocké sous forme de simple précision;  cette précision est pas assez élevé pour distinguer des enregistrements uniques à proximité de la valeur maximale de 2 ^ 25.

les erreurs

 record_number est pas dans [1-33554432]: Numéro d'enregistrement Bad.
   file_number est pas dans [0-255]: Illegal appel de fonction.
   file_number est pas le nombre d'un fichier ouvert: Numéro de fichier incorrect.
   file_number est ouvert sous un autre mode que RANDOM: Mode de fichier incorrect.
   file_number est pas spécifié: opérande manquant.

PUT (communications) PUT [#] com_file_number [, nombre_octets]

Ecrit nombre_octets octets dans la mémoire tampon de communication ouvert sous le numéro de fichier com_file_number. nombre_octets est une expression numérique entre 1 et la longueur du tampon de COM, inclus. Remarques

 Dans GW-BASIC, Dispositif d'erreur d'E / S est élevé pour erreur de dépassement, le cadrage d'erreur, et de briser interruption.  Erreur appareil est déclenchée si DSR est perdue au cours d'E / S.  Une erreur de parité est déclenchée si la parité est activé et la parité incorrecte est rencontrée.  Ceci est indiqué dans le manuel;  il n'a pas été testé.

les erreurs

 octets est inférieur à 1: Numéro d'enregistrement Bad.
   octets est inférieur à 32768 et supérieure à la longueur de la mémoire tampon de COM: Illegal appel de fonction.
   com_file_number est pas spécifié: opérande manquant.
   com_file_number est pas dans [0-255]: Illegal appel de fonction.
   com_file_number est pas le nombre d'un fichier ouvert: Numéro de fichier incorrect.
   Le tampon d'entrée série est complète, à savoir LOF (com_file_number) = 0 et LOC (com_file_number) = 255: débordement de mémoire tampon de communication.

PUT (graphiques) PUT (x0, y0), Nom_groupe [, {PSET | PRESET | ET | OU | XOR}]

Affiche un tableau à une zone rectangulaire de l'écran graphique. Habituellement, PUT est utilisé avec des tableaux qui ont été stockés en utilisant GET. Voir GET pour le format du tableau.

Les mots-clés ont l'effet suivant: PSET Ecraser l'emplacement de l'écran avec la nouvelle image PRESET Ecraser l'emplacement de l'écran avec l'image inverse et combine les anciens et les nouveaux attributs avec bitwise ET OU Combine les anciens et les nouveaux attributs avec un OU binaire XOR Combine l'ancien et nouveaux attributs avec des paramètres au niveau du bit XOR

 array_name est un tableau numérique.
   x0, y0 sont des expressions numériques.

les erreurs

 Le tableau n'existe pas: Illegal appel de fonction.
   array_name fait référence à un tableau de chaînes: Incompatibilité de type.
   x0, y0 sont les expressions de chaîne: Type mismatch.
   x0, y0 ne sont pas dans [-32768 à 32767]: Overflow.
   x0, y0 est en dehors de la vue actuelle ou WINDOW: Illegal appel de fonction

HASARD HASARD [expr]

Semences du générateur de nombres aléatoires avec expr. Si aucune graine est spécifié, RANDOMIZE demandera à l'utilisateur d'entrer une graine aléatoire. La valeur fournie par l'utilisateur est arrondi à un nombre entier. La graine aléatoire est formé des deux derniers octets de cet entier ou expr. Si expr est un flotteur (4 ou 8 octets), ceux-ci sont XORés avec le 2. précédent Les 4 premiers octets d'une double sont ignorées. La même graine aléatoire va conduire à la même séquence de nombres pseudo-aléatoires étant généré par la fonction RND. Paramètres

 expr est une expression numérique.

Remarques

 Pour la même semence, PC-BASIC produit les mêmes nombres pseudo-aléatoires que GW-BASIC 3.23.
   Le générateur de nombres aléatoires est très pauvre et ne doit pas être utilisé à des fins graves.  Voir ROND pour plus de détails.

les erreurs

 expr a une valeur de chaîne: Illegal appel de fonction.
   L'utilisateur fournit une graine à l'extérieur [-32.768 à 32.767] à l'invite: Overflow.

LIRE LIRE var_0 [, var_1] ...

Affecte les données d'une instruction de données variables. La lecture commence à la position de données en cours, qui est l'entrée immédiatement après la dernière lecture par les déclarations READ précédents DATA. La position DATA est réinitialisé au début par le RUN et RESTORE déclarations. Paramètres

 var_0, var_1 sont variables ou éléments du tableau.

les erreurs

 Pas assez de données est présent dans les états DATA: Out of DATA.
   Le type de la variable est pas compatible avec celle de l'entrée de données en cours de lecture: une erreur de syntaxe se produit sur la ligne DATA.

REM {REM | '} [quelque chose]

Ignore tout jusqu'à la fin de la ligne. L'instruction REM est destiné aux commentaires. Tout ce qui suit REM sera stocké dans le programme inchangé et non interprété. '(Apostrophe) est un alias pour: REM'; il peut être placé à tout moment dans la ligne de programme et veillera à ce que le reste de la ligne est ignoré.

Notez que deux points: ne termine pas l'instruction REM; le côlon et tout après seront considérés comme faisant partie du commentaire. RENUM RENUM [nouvelle |.] .] [, Incrément

Remplace les numéros de ligne dans le programme par une énumération systématique à partir de nouvelles et de plus en plus par incrément. Si vieux est spécifié, le nombre de moins de ligne restent inchangés. nouveau, vieux sont les numéros de ligne; le point . signifie la dernière ligne modifiée. incrément est un numéro de ligne, mais ne doit pas être un point ou zéro. Remarques

 Les mots-clés suivants peuvent référencer les numéros de ligne, qui sera renuméroté par RENUM: AUTO, EDIT, AUTRE, ERL, DELETE, GOSUB, GOTO, LIST, LLIST, RENUM, RESTORE, REPRENDRE, RETURN, RUN, ALORS.
   Un mot-clé contient les numéros de ligne dans un autre programme, qui ne sera pas renuméroté: CHAINE.  Toutefois, un numéro de ligne dans une instruction RUN qui ouvre un nouveau fichier sera renuméroté, et de manière incorrecte.  En outre, les déclarations de RENUM ou AUTO dans un programme auront tous leurs arguments 'renumérotés', y compris les décalages de numéro de ligne ou incréments.  Cependant idiot, cela concorde avec le comportement de GW-BASIC.
   Un numéro de ligne zéro suite à la GOTO mots-clés d'erreur ne sera pas renumérotés.
   Si un numéro de ligne référencé n'existe pas dans le programme, la déclaration affiche un message (pas d'erreur) Undefined ligne ref dans old_line où old_line est le numéro de la ligne avant renumérotation.  Le numéro de ligne référencé sera laissé inchangé, mais le vieux numéro de ligne de la ligne sera renuméroté.

les erreurs

 Tous les paramètres ne figure pas dans [0-65529]: Erreur de syntaxe.
   Tous les numéros de ligne nouvellement générées est supérieure à 65529: Illegal appel de fonction.  Les numéros de ligne jusqu'à l'erreur n'a pas été modifié.
   incrément est vide ou nul: Illegal appel de fonction.
   ancienne est spécifiée et nouvelle est inférieure ou égale à un nombre de ligne existante de moins de: Illegal appel de fonction.

RAZ RAZ

Ferme tous les fichiers ouverts. Remarques

 Officiel documentation GW-BASIC et de nombreuses autres sources indiquent que RAZ ferme tous les fichiers sur les unités de disque.  Cependant, en réalité GW-BASIC 3,23 ferme également les fichiers sur bande et tout autre appareil, ce qui rend cette déclaration identique à FERMEZ sans arguments.  PC-BASIC suit ce comportement.

RESTORE RESTORE [en ligne]

Remet le pointeur DATA. ligne est un numéro de ligne. Si la ligne est pas spécifié, le pointeur de données est remise à la première entrée de données dans le programme. Si elle est spécifiée, le pointeur de données est remise à la première entrée de données dans ou après la ligne. les erreurs

 la ligne est pas un numéro de ligne existante: numéro de ligne défini.

REPRENDRE REPRENDRE [0 | SUIVANT | ligne]

Poursuit l'exécution normale après une routine de traitement des erreurs. Si 0 ou aucune option est spécifiée, re-exécute l'instruction qui a provoqué l'erreur. Si NEXT est spécifié, exécute l'instruction qui suit celle qui a causé l'erreur. Si la ligne est spécifié, il doit être un numéro de ligne valide. les erreurs

 REPRENDRE est rencontré en dehors d'une erreur de piégeage de routine: REPRENDRE sans erreur.
   Le programme se termine à l'intérieur d'un piégeage de routine d'erreur sans instruction REPRENDRE ou END: Non REPRENDRE.
   la ligne est pas un numéro de ligne existante: numéro de ligne défini.

RETURN RETURN [en ligne]

Retours à partir d'un sous-programme GOSUB. Si la ligne est pas spécifié, RETURN revient à la déclaration après la GOSUB qui a sauté dans le sous-programme. Si la ligne est spécifié, il doit être un numéro de ligne valide. RETURN saute à cette ligne (et saute la pile GOSUB). Lors du retour à partir d'une routine de piégeage d'erreur, RETURN re-permet le piégeage de l'événement qui a été arrêté en entrant dans la routine d'interruption. les erreurs

 la ligne est pas un numéro de ligne existante: numéro de ligne défini.

RMDIR RMDIR dir_spec

Supprime un répertoire vide sur un périphérique de disque. Paramètres

 Le dir_spec d'expression de chaîne est une spécification de fichier valide qui spécifie le chemin et le nom du répertoire.

les erreurs

 dir_spec a une valeur numérique: incompatibilité de type.
   dir_spec est une chaîne vide: nom de fichier incorrect.
   Aucun chemin correspondant est trouvé: Chemin d'accès introuvable.

RSET RSET string_name = expression

Copie une valeur de chaîne dans une chaîne élément variable ou tableau existant. La valeur sera justifié à droite et tous les caractères restants sont remplacés par des espaces. Paramètres

 string_name est un élément variable ou tableau chaîne.
   expression est une expression de chaîne.

Remarques

 Si l'expression a une valeur qui est supérieure à la longueur de la variable cible, elle est tronquée à la queue de la longueur de la variable cible.
   Si string_name n'a pas été alloué avant, cette déclaration n'a aucun effet.
   Utilisez LSET, RSET ou MID $ pour copier les valeurs dans un tampon de FIELD.
   Si LET est utilisé sur une variable au lieu de L FIELD | RSET, la variable est détaché du terrain et une nouvelle variable de chaîne normale est attribuée.

les erreurs

 string_name est pas une variable chaîne: Incompatibilité de type.
   expression n'a pas de valeur de chaîne: Type mismatch.

RUN RUN [line_number [rien] | file_spec [R]]

Exécute un programme. les variables existantes seront effacées et tout programme en mémoire seront effacées. RUN implique une EFFACER Si, R est spécifié après file_spec, les dossiers sont conservés ouverts; sinon, tous les fichiers sont fermés. Paramètres

 line_number est un numéro de ligne valide dans le programme actuel.  Si spécifié, l'exécution commence à partir de ce numéro de ligne.  Le reste de l'instruction RUN est ignorée dans ce cas.
   Le file_spec d'expression de chaîne, si spécifié, est une spécification de fichier valide indiquant le fichier à lire le programme à partir.

les erreurs

 line_number est pas un numéro de ligne dans le programme actuel: numéro de ligne défini.
   file_spec ne peut pas être trouvé: Fichier non trouvé.
   file_spec est une chaîne vide: Numéro de fichier incorrect.
   Un fichier texte chargé contient des lignes sans numéros de ligne: déclaration directe dans le fichier.

SAUVER SAUVER file_spec [, {A | P}]

Enregistre le programme en cours dans un fichier.

 Si, A est spécifié, le programme sera enregistré au format texte brut.
   Si, P est spécifié, le programme sera enregistré au format protégé.  Quand un programme protégé est chargé dans GW-BASIC, il ne peut pas être inscrits ou enregistrés au format non protégé.
   Si ni est spécifié, le programme sera enregistré au format tokenised.

Paramètres

 Le file_spec d'expression de chaîne est une spécification de fichier valide indiquant le fichier à stocker à.

les erreurs

 file_spec a une valeur numérique: incompatibilité de type.
   file_spec est une chaîne vide: Numéro de fichier incorrect.
   file_spec contient des caractères non autorisés: Numéro de fichier incorrect (sur CAS1 :);  Nom de fichier incorrect (sur les unités de disque).
   strict protection est activé, le programme actuel est protégé et, P est pas spécifié: Illegal appel de fonction.

ECRAN (déclaration) ÉCRAN [Mode] [, [colorburst] [, [apage] [, [vpage] [, effacer]]]]

Changer le mode vidéo, colorburst composite, page active et page visible. Les modes vidéo sont décrits dans la section Modes vidéo. Paramètres

 mode est une expression numérique qui définit le mode d'écran.
   colorburst est une expression numérique.  Voir les notes ci-dessous.
   apage est une expression numérique qui définit la page active.
   vpage est une expression numérique qui définit la page visible.
   effacer est une expression numérique dans l'intervalle [0, 1, 2].  Il est seulement légal avec la syntaxe = {PCjr, tandy}.  Voir les notes ci-dessous.

Modes vidéo

Les modes vidéo sont les suivantes:

ECRAN mode 0 texte

 80x25 ou 40x25 caractères de 8x16 pixels
   16 attributs cueillis dans 64 couleurs
   Attributs 16-31 sont des versions clignotantes de 0-15
   4 pages ega 

ECRAN 1 couleur CGA

 320x200 pixels
   caractères 40x25 de 8x8 pixels
   4 attributs cueillis dans 16 couleurs;  2 bits par pixel,
   1 page EGA 2 pages PCjr tandy

ECRAN 2 CGA monochrome

 640x200 pixels
   caractères 80x25 de 8x8 pixels
   2 attributs cueillis dans 16 couleurs;  1 bit par pixel
   1 page EGA 2 pages PCjr tandy

ECRAN 3 Basse résolution 16 couleurs PCjr tandy

 160x200 pixels
   caractères 20x25 de 8x8 pixels
   16 attributs cueillis dans 16 couleurs;  4 bits par pixel,
   2 pages

ÉCRAN 3 Hercules hercules monochromes

 720x348 pixels
   caractères 80x25 de 9x14 pixels (avec ligne de fond tronqué par 2 px)
   2 attributs;  1 bit par pixel
   2 pages

ECRAN 3-255 Altissima Risoluzione olivetti

 640x400 pixels
   caractères 80x25 de 8x16 pixels
   2 attributs dont une cueillies dans 16 couleurs;  2 bits par pixel,
   1 page

ECRAN 4 Med-res 4 couleurs PCjr tandy

 320x200 pixels
   caractères 40x25 de 8x8 pixels
   4 attributs cueillis dans 16 couleurs;  2 bits par pixel,
   2 pages

ECRAN 5 Med-res 16 couleurs PCjr tandy

 320x200 pixels
   caractères 40x25 de 8x8 pixels
   16 attributs cueillis dans 16 couleurs;  4 bits par pixel,
   1 page
 Note: un minimum de 32768 octets de mémoire vidéo doit être réservé à utiliser ce mode vidéo.  Utilisez l'instruction EFFACER ,,, 32768!  ou l'option de mémoire vidéo = 32768.

ECRAN 6 haut-rés 4 couleurs PCjr tandy

 640x200 pixels
   caractères 80x25 de 8x8 pixels
   4 attributs cueillis dans 16 couleurs;  2 bits par pixel,
   1 page
 Note: un minimum de 32768 octets de mémoire vidéo doit être réservé à utiliser ce mode vidéo.  Utilisez l'instruction EFFACER ,,, 32768!  ou l'option de mémoire vidéo = 32768.

ECRAN 7 EGA couleur ega

 320x200 pixels
   caractères 40x25 de 8x8 pixels
   16 attributs cueillis dans 16 couleurs;  4 bits par pixel,
   8 pages

ECRAN 8 EGA couleur ega

 640x200 pixels
   caractères 80x25 de 8x8 pixels
   16 attributs cueillis dans 16 couleurs;  4 bits par pixel,
   4 pages

ECRAN 9 EGA couleur ega

 640x350 pixels
   caractères 80x25 de 8x14 pixels
   16 attributs cueillis dans 64 couleurs;  4 bits par pixel,
   2 pages

ECRAN 10 EGA moniteur monochrome EGA = mono

 640x350 pixels
   caractères 80x25 de 8x14 pixels
   4 attributs cueillies à partir de 9 pseudocolours;  2 bits par pixel,
   2 pages

NTSC Composite Colorburst

Le CGA, Tandy et PCjr, colorburst a les effets suivants, en fonction du type de moniteur - RGB (par défaut) ou composite: Mode colorburst CGA en mode Effet (composite) Effet (RVB) 0 0 0, 2 greyscale palette par défaut 0 1 1 , 3 palette de couleurs par défaut 1 0 4 palette couleur par défaut 1 1 5 greyscale palette suppléant

Sur l'écran 2, colorburst n'a aucun effet; sur un moniteur composite, des artefacts de couleur peuvent être activés sur cet écran par OUT (voir là). Sur l'écran 3 et plus, colorburst n'a aucun effet. Effacer

Par défaut, si les changements de mode ou les changements Colorburst entre zéro et non nul, l'ancienne page et la nouvelle page de l'écran sont effacés. Sur la syntaxe = {PCjr, tandy}, le paramètre d'effacement peut être utilisé pour modifier ce comportement. Ses valeurs sont les suivantes: effacer Effet 0 Ne pas effacer tout écran page 1 (par défaut) Si les changements de mode ou les changements Colorburst entre zéro et non nul, l'ancienne page et la nouvelle page de l'écran sont effacés. 2 Si les changements de mode ou les changements Colorburst entre zéro et non-zéro, toutes les pages de l'écran sont effacées. Remarques

 Au moins un paramètre doit être spécifié.
   artefacts de couleur composites sont émulées seulement grossièrement dans PC-BASIC, et pas du tout dans l'écran 1. 

les erreurs

 Aucun paramètres sont spécifiés: opérande manquant.
   Tout paramètre a une valeur de chaîne: Type mismatch.
   Tout paramètre est pas dans [-32768 à 32767]: Overflow.
   mode est pas un numéro de mode vidéo disponible pour le réglage de la carte vidéo: Illegal appel de fonction.
   vpage, apage ne sont pas entre 0 et le nombre de pages pour le mode vidéo choisi, moins un: Illegal appel de fonction.
   colorburst est pas dans [0-255]: Illegal appel de fonction.
   effacer est pas dans [0, 1, 2]: Illegal appel de fonction.

SHELL SHELL [commande]

Démarre une sous-couche sur la console. Le type d'enveloppe est déterminée par votre système d'exploitation. Sur les systèmes Unix, un shell sh est démarré. Sur les systèmes Windows, un shell cmd.exe est démarré. Si la commande est spécifié, la commande est exécutée sur la coque et d'exécution revient au programme. Paramètres

 commande est une expression de chaîne.

Remarques

 Si le shell = l'option native est pas spécifié, cette déclaration ne fait rien.
   Soyez prudent lors de l'activation de cette commande, car il permet au programme BASIC accès complet à vos fichiers et système d'exploitation en cours d'exécution.

les erreurs

 commande a une valeur numérique: incompatibilité de type.
   Toutes les sorties de la sous-couche du système d'exploitation, y compris les messages d'erreur, est affiché sur l'écran du PC-BASIC.

SOUND (tonalité) de fréquence SOUND, la durée [volume [voix]]

Produit un son à la fréquence Hz pour la durée / 18.2 secondes. Sur PCjr et Tandy, le volume et le canal vocal peuvent en outre être spécifiés.

Si PLAY "Mo" a été exécuté, SOUND joue en arrière-plan. Si PLAY "MF" a été exécuté, son joue au premier plan et les blocs d'interprètes jusqu'à ce que le son est terminé. le mode de premier plan est par défaut. Contrairement PLAY, le son joué par la plus récente déclaration de SOUND joue toujours en arrière-plan, même si PLAY "MF" a été saisi. En mode d'arrière-plan, chaque instruction SOUND compte comme 1 vers la longueur de la file d'attente déclarés par la fonction PLAY. Paramètres

 la fréquence est une expression numérique dans [37-32767] ou 0 (pour la syntaxe = {avancée | PCjr}) ou [-32768 à 32767] (pour la syntaxe = tandy).
   la durée est une expression numérique dans [0-65535].
   volume est une expression numérique dans [0, 15].  0 est silencieux, 15 est plein volume;  chaque pas moins réduit le volume de 2 dB.  (Pour la syntaxe = {PCjr | tandy})
   la voix est une expression numérique dans [0, 2], ce qui indique que des canaux vocaux trois tons est utilisé pour ce son.  (Pour la syntaxe = {PCjr | tandy})

Remarques

 Sur PCjr et Tandy, fréquences inférieures à 110 Hz sont joués en 110 Hz.
   Si la durée est égale à zéro, aucun bruit de fond actif est arrêté et que la file d'attente est vidée de son.
   Si la durée est égale à zéro, le volume et la voix ne doivent pas être spécifiés.
   Si la durée est inférieure à .022, mais non nulle, le son sera joué en arrière-plan et continuer indéfiniment jusqu'à une autre déclaration sonore est exécutée.  Ceci est également le comportement pour une durée négative.
   Si la fréquence est égale à 32767 ou 0, un silence d'une durée de longueur est en file d'attente.

les erreurs

 Tout argument a une valeur de chaîne: Type mismatch.
   fréquence est pas dans sa plage autorisée, et la durée est non nul: Illegal appel de fonction.
   la durée est égale à zéro et plus de deux arguments sont spécifiés: Erreur de syntaxe.
   syntaxe = {PCjr |  tandy} est pas définie et plus de deux arguments sont spécifiés: Erreur de syntaxe.
   fréquence est pas dans [-32.768 à 32.767]: Overflow.
   durée est pas dans [-65535 à 65535]: Illegal appel de fonction.
   volume est pas dans [0-15]: Illegal appel de fonction.
   la voix est pas dans [0-2]: Illegal appel de fonction.

SOUND (switch) SOUND {ON | OFF}

Alterne la disponibilité des capacités audio avancées sur PCjr et Tandy. Cela comprend son 3-voix, la génération de bruit et de contrôle du volume. Remarques

 Uniquement disponible avec la syntaxe = {PCjr |  tandy}.
   Sur les ordinateurs PCjr et Tandy, SOUND ON tournerait sur le haut-parleur externe, ainsi que faire des capacités sonores avancées disponibles.  Le PC-BASIC, à la fois interne et haut-parleur externe sont émulées par le même système de sonorisation.

les erreurs

 Cette instruction est utilisée et la syntaxe = {PCjr |  tandy} est pas défini: Erreur de syntaxe.

STOP STOP

Breaks l'exécution du programme, imprime un message de rupture sur la console et renvoie le contrôle à l'utilisateur. Fichiers ne sont pas fermés. Il est possible de reprendre l'exécution du programme à l'instruction suivante en utilisant CONT. STRIG (switch) STRIG {ON | OFF}

N'a aucun effet. STRIG (interrupteur d'événement) STRIG [] (bouton) {ON | OFF | STOP}

Commutateurs événement piégeage du bouton joystick déclencheur ON ou OFF. STRIG (bouton) ARRET suspend événement piégeage jusqu'à STRIG (bouton) ON est exécutée. Jusqu'à un événement peut être déclenché pendant la suspension, à condition que la gestion des événements a été activée avant la suspension. L'événement déclenché pendant la suspension est traitée immédiatement après la STRIG suivante (bouton) ON déclaration. bouton valeur de retour 0 1er joystick 1er déclenchement 2 2e joystick 1er déclenchement 4 1er joystick 2e déclenchement 6 2e joystick 2e déclenchement Paramètres

 bouton est une expression numérique dans [0, 2, 4, 6].

les erreurs

 bouton a une valeur de chaîne: Type mismatch.
   bouton est pas dans [-32768 à 32767]: Overflow.
   bouton est pas dans [0, 2, 4, 6]: Illegal appel de fonction.

SWAP SWAP var_0, var_1

Echanges de variables var_0 et Var_1. Remarques

 Les variables sont échangés par référence.  Si, par exemple, var_0 est une variable FIELD et var_1 est pas, alors SWAP inverse les rôles.

Paramètres

 var_0 et var_1 sont préalablement variables du même type définis.

les erreurs

 var_0 ou var_1 est indéfini: Illegal appel de fonction.
   Les types de var_0 et var_1 ne sont pas les mêmes: Incompatibilité de type.

SYSTÈME DE SYSTÈME

Quitte l'interpréteur. Remarques

 SYSTÈME quitte immédiatement l'interpréteur de PC-BASIC sans autre interaction.  Tout programme ou des données non enregistrées seront perdues.

TERME TERME

Charger et exécuter le programme défini par l'option PCjr terme. Par défaut, comme sur l'IBM PCjr, ceci est une application d'émulation de terminal série intégré. Cette déclaration est disponible uniquement avec la syntaxe = {PCjr | tandy}. les erreurs

 Si PCjr terme est pas définie, cette déclaration soulève une erreur interne.
   Si la syntaxe est pas réglé sur PCjr ou tandy, ce mot-clé est pas présent.  Calling TERME soulèvera une erreur de syntaxe.

TIME $ (déclaration) TIME $ = temps

Définit l'heure actuelle BASIC en temps. Paramètres

 Le temps est une expression de chaîne de la forme "HH: mm: ss" où 00 <= HH <24, 00 <= mm <60 et 00 <= ss <60.

Remarques

 magasins PC-BASIC un décalage à l'heure du système et utilise cela pour les appels futurs à TIME $ et fonctions $ DATE dans la même session d'interprète.  L'heure du système ne change pas, contrairement à GW-BASIC sous MS-DOS.

les erreurs

 le temps a une valeur numérique: incompatibilité de type.
   Il est non pas de la forme correcte: Illegal appel de fonction.

TIMER (déclaration) TIMER {ON | OFF | STOP}

 ON: permet ON TIMER événement piégeage de l'horloge de la minuterie.
   OFF: désactive le piégeage.
   STOP: arrête le piégeage jusqu'à ce que TIMER ON est utilisé.  Les événements qui se produisent pendant le piégeage est arrêté déclenchera immédiatement lorsque le piégeage est réactivé.

TRON et TROFF {TRON | TROFF}

Met le numéro de ligne de traçage ou hors tension. Si le numéro de ligne est tracé sur, BASIC imprime une étiquette [100] à la console lorsque la ligne de programme 100 est exécuté, et ainsi de suite. Remarques

 Le traçage est désactivé par les états NEW et LOAD.

UNLOCK UNLOCK [#] file_number [, record_0] UNLOCK [#] file_number, [record_0] À record_1

Débloque un fichier ou une partie de celui-ci qui a déjà été verrouillé avec LOCK. Paramètres

 file_number est une expression numérique dans [0-255].
   record_0 et record_1 sont des expressions numériques dans [1-2 ^ 25-2].

les erreurs

 Tout paramètre a une valeur de chaîne: Type mismatch.
   file_number est pas dans [-32.768 à 32.767]: Overflow.
   file_number est pas dans [0-255]: Illegal appel de fonction.
   file_number est pas un fichier ouvert: Numéro de fichier incorrect.
   Si file_number est ouvert pour RANDOM, verrouiller et déverrouiller les états doivent correspondre en termes de record_0 et record_1.  Un UNLOCK non-appariement augmentera Permission denied.
   record_0 ou record_1 est pas dans [1-2 ^ 25-2]: Numéro d'enregistrement Bad.

VIEW VIEW [[ECRAN] (x0, y0) - (x1, y1) [[remplir] [, frontière]]]

Définit une fenêtre graphique. Graphics établis en dehors de la fenêtre ne seront pas affichées. (X0, y0), (x1, y1) sont des coordonnées absolues de l'écran de deux coins opposés de la zone.

Sauf SCREEN est spécifié, après une instruction VIEW le système de coordonnées est déplacé de telle sorte que (0, 0) devient la partie supérieure gauche de la fenêtre de coordonnées. Si VIEW est appelé sans arguments, la fenêtre est remise à l'ensemble de l'écran. Paramètres

 remplir est un attribut.  Le viewport sera rempli avec cet attribut.
   la frontière est un attribut.  Une frontière sera tiré juste à l'extérieur de la fenêtre avec cet attribut.

les erreurs

 Tout des paramètres a une valeur de chaîne: Type mismatch.
   Tout des coordonnées est pas dans [-32768 à 32767]: Overflow.
   Chacune des paires de coordonnées est en dehors de l'écran physique: Illegal appel de fonction.

VIEW PRINT VIEW PRINT top_row À bottom_row

Définit la zone de défilement de texte de l'écran. LOCATE déclarations, le mouvement du curseur et le défilement seront limités à la zone de défilement. Paramètres

 top_row et bottom_row sont des expressions numériques dans [1-24].

Remarques

 Si la syntaxe = {PCjr |  tandy} et KEY OFF est réglé, bottom_row peuvent être 25. Sinon, l'écran ligne 25 ne peut pas faire partie de la zone de défilement.

les erreurs

 top_row ou bottom_row est pas dans [1-24]: Illegal appel de fonction.

ATTENDRE port ATTENDRE, and_mask [, xor_mask]

Attend la valeur de (INP (port) XOR xor_mask) ET and_mask à devenir non nulle. La gestion des événements est suspendue jusqu'à ce que les retours d'attente. Si xor_mask est pas spécifié, la valeur par défaut 0. Remarques

 Un nombre limité de ports de la machine sont émulés dans PC-BASIC.  Voir INP.

les erreurs

 Tout paramètre a une valeur de chaîne: Type mismatch.
   port est pas dans [-32768 à 65535]: Overflow.
   and_mask ou xor_mask ne sont pas dans [0-255]: incompatibilité de type.

WEND WEND

Itère une boucle WHILE-WEND: saute à l'instruction correspondante WHILE, où son état peut être vérifié. Remarques

 boucles WHILE-WEND peuvent être imbriquées.  WEND saute à la dernière instruction WHILE qui n'a pas été fermée par un autre WEND.

les erreurs

 Tous les énoncés WHILE précédents ont été fermées par un autre WEND ou aucune déclaration while a été exécutée avant: WEND sans WHILE.

PENDANT TOUT expr

Lance une boucle WHILE-WEND. Si expr est évaluée à zéro, alors que passe à l'instruction immédiatement après la WEND correspondant. Sinon, l'exécution se poursuit. Paramètres

 expr est une expression numérique.

les erreurs

 Aucune correspondance WEND se trouve: WHILE sans WEND.
   expr a une valeur de chaîne: Type mismatch.

WIDTH (console) num_columns WIDTH [[num_rows] [,]]

Définit la largeur de l'écran 20, 40 ou 80 colonnes. Remarques

 Lors du changement de largeur de l'écran en mode graphique, le mode vidéo est modifié.  Les changements suivants se produisent:
   ECRAN 1 (40) ↔ ECRAN 2 (80)
   ÉCRAN 7 (40) ↔ ÉCRAN 8 (80)
   ÉCRAN 7 (40) ← ÉCRAN 9 (80)
   Écran valeur de largeur 20 est permise uniquement sur Tandy et PCjr.  Le passage à cette largeur des modifications à l'écran 3. En outre, les changements suivants se produisent:
   SCREEN 3 (20) → ECRAN 1 (40)
   SCREEN 3 (20) → ECRAN 2 (80)
   ECRAN 4 (40) → ECRAN 2 (80)
   ECRAN 5 (40) ↔ ÉCRAN 6 (80)

Paramètres

 num_columns est soit un littéral 20, 40 ou 80 ou une expression numérique entre parenthèses.  La virgule arrière est facultative et n'a aucun effet.
   num_rows est facultative et doit être égale à 25. Si la syntaxe = {PCjr |  tandy} est réglé, num_rows peut être [0-25], mais sa valeur est ignorée.

les erreurs

 num_columns est une chaîne d'expression: incompatibilité de type.
   num_columns est pas dans [-32.768 à 32.767]: Overflow.
   num_columns est pas dans [0-255]: Illegal appel de fonction.
   num_columns est pas un littéral et non entre crochets: appel de fonction illégale.
   num_rows est pas dans sa gamme acceptée: Illegal appel de fonction.

WIDTH (périphériques et fichiers) WIDTH {#file_num, | nom_appareil, | LPRINT} num_columns

Définit la largeur de la ligne pour un fichier ou un périphérique. Lorsqu'une opération d'écriture passe au-delà de la largeur de colonne, une séquence CR LF est insérée.

Si un périphérique est spécifié, il n'a pas besoin d'avoir un fichier ouvert à elle; le réglage de largeur sera la largeur par défaut la prochaine fois qu'un fichier est ouvert à ce dispositif.

Si device_name est "LPT1:" ou LPRINT est spécifié, le réglage de la largeur de l'appareil affecte LPRINT et LLIST.

Si device_name est "SCRN:", "KYBD:", ou omis, la largeur de l'écran est modifiée. Dans ce cas, num_columns doit être l'un des 20, 40 ou 80. Voir les notes à WIDTH (console) pour les effets secondaires. Paramètres

 file_num est une expression numérique qui est le numéro d'un fichier ouvert.
   device_name est une expression de chaîne qui est l'un des "KYBD:", "SCRN:", "LPT1:", "LPT2:", "LPT3:", "COM1:", "COM2:", "CAS1:"
   num_columns est une expression numérique.

les erreurs

 device_name est pas un des périphériques autorisés: Nom de fichier incorrect.
   device_name est "SCRN:", "KYBD:" et num_columns ne sont pas 20, 40 ou 80: Illegal appel de fonction.
   file_num ou num_columns sont des chaînes: Incompatibilité de type.
   file_num ou num_columns ne sont pas dans [-32.768 à 32.767]: Overflow.
   file_num ou num_columns ne sont pas dans [0-255]: Illegal appel de fonction.
   file_num est pas un fichier ouvert: le mode de fichier incorrect.

Fenêtre [[ECRAN] (x0, y0) - (x1, y1)]

Définir les coordonnées logiques pour la fenêtre. Si l'écran est pas spécifié, en bas à gauche de l'écran est mappé vers les coordonnées inférieures; en haut à droite de l'écran est mappé sur les coordonnées supérieures. Si l'écran est spécifié, en haut à gauche de l'écran est mappé vers les coordonnées inférieures; la partie inférieure droite de l'écran est mappé sur les coordonnées supérieures.

Si la fenêtre est appelée sans arguments, les coordonnées logiques sont réinitialisés aux coordonnées de viewport. Paramètres

 x0, y0, x1, y1 sont des expressions numériques.

les erreurs

 Tous les coordonnées ont une valeur de chaîne: Type mismatch.
   x0 = x1 ou y0 = y1: Illegal appel de fonction.

WRITE WRITE [# file_num,] expr_0 [{, |;} expr_1] ...

Ecrit des valeurs dans un fichier ou l'écran sous forme lisible par machine. Les valeurs sont séparées par des virgules et la ligne est terminée par une séquence CR LF. Les chaînes sont délimités par des guillemets ". Pas d'espace de remplissage sont insérés.

Lors de l'écriture à l'écran, les mêmes caractères de contrôle sont reconnus comme pour l'instruction PRINT. Paramètres

 expr_0, expr_1, ... sont des expressions dont la valeur doit être imprimée.

les erreurs

 file_num a une valeur de chaîne: Type mismatch.
   file_num est ouvert pour INPUT: mode de fichier incorrect.

Erreurs et Messages Erreurs 1 PROCHAINES sans POUR

Une instruction NEXT a été rencontré pour lesquels aucune correspondance ne peut être relevée. 2 Erreur de syntaxe

La syntaxe de base est incorrecte. Une déclaration ou l'expression a été mal orthographié ou appelé dans l'une des nombreuses façons incorrectes. Cette erreur est également élevé sur une ligne de données si une instruction READ rencontre une entrée de données d'un format incorrect. 3 RETOUR sans GOSUB

Une instruction RETURN a été rencontré pour lesquels aucun appel GOSUB a été faite. 4 Sur DATA

Une instruction READ tente de lire plusieurs entrées de données que l'on peut trouver à l'emplacement actuel de données en avant. 5 Illegal appel de fonction

Une déclaration, la fonction ou l'opérateur a été appelé avec des paramètres en dehors de la plage acceptée. Cette erreur est également soulevée pour une grande variété d'autres conditions - vérifier la référence pour l'instruction ou de la fonction appelée. 6 Overflow

Résultat Une expression numérique ou une valeur intermédiaire est trop grande pour le format de nombre requis. 7 Out of memory

Il n'y a pas assez de mémoire de base gratuite pour terminer l'opération. Trop mémoire est consommée par le programme; variables, les tableaux et les chaînes, ou des piles d'exécution pour les boucles, sous-routines ou fonctions définies par l'utilisateur. 8 numéro de ligne Undefined

Il est fait référence à un numéro de ligne qui n'existe pas dans le programme. 9 Indice hors de portée

Un indice de tableau (en indice) est utilisé qui est hors de la plage réservée à ce tableau par l'instruction DIM. 10 Définition Duplicate

Une déclaration est DIM utilisé sur un tableau qui a été dimensionné avant (implicitement ou explicitement) ou OPTION BASE est appelé d'une manière qui est en conflit avec une définition antérieure implicite ou explicite de l'indice de départ. 11 Division par zéro

Une tentative est faite pour diviser un nombre par zéro ou par un nombre trop petit pour établir une distinction entre zéro à l'intérieur de la précision du format numérique. 12 Illegal directe

Une déclaration DEF FN est utilisé en mode direct. 13 Type mismatch

L'expression utilisée est d'un type qui ne peut pas être converti dans le type requis pour la fonction ou de la déclaration. Le plus souvent, cela est déclenché si un argument de chaîne est fournie à une déclaration ou une fonction qui attend un nombre, ou vice versa. 14 Sur l'espace de chaîne

Il n'y a pas assez de mémoire BASIC libre pour stocker la variable de chaîne. 15 cordes trop longtemps

Un résultat de l'expression de chaîne ou une valeur intermédiaire est supérieure à 255 caractères. 16 formule cordes trop complexe 17 ne peut pas continuer

L'instruction CONT est utilisée dans les cas où la poursuite exécution du programme est impossible. 18 fonction utilisateur Undefined

La fonction FN est appelée avec un nom de fonction pour laquelle aucune définition a été faite par une déclaration DEF FN. 19 No REPRENDRE

Le programme se termine à l'intérieur d'une routine de piégeage d'erreur qui n'a pas été fermée avec REPRENDRE ou END. 20 REPRENDRE sans erreur

Une déclaration de REPRENDRE est rencontrée alors que le programme n'exécute une routine d'erreur de piégeage. 21 utilisé 22 opérande manquant

Une expression de l'opérateur manque un opérande ou d'une fonction ou de la déclaration ne soit pas fournie avec des paramètres suffisants. 23 buffer overflow ligne

Une instruction INPUT ou LINE INPUT rencontré une chaîne d'entrée plus de 255 caractères ou le fichier de programme en texte brut en cours de chargement contient une ligne avec plus de 255 caractères. 24 Dispositif Timeout

La poignée de main a échoué sur un périphérique série ou un périphérique de bande a atteint la fin de la bande. 25 Dispositif Fault 26 POUR LA PROCHAINE sans

Une instruction FOR a été rencontrée pour laquelle aucune instruction NEXT correspondante peut être trouvée. 27 Sur papier

Une tentative est faite pour écrire à une imprimante qui est hors de papier ou à un autre périphérique parallèle qui a soulevé une condition out-of-papier. 28 utilisé 29 TANDIS sans WEND

Une instruction WHILE a été rencontrée pour laquelle aucune déclaration de WEND correspondant peut être trouvé. 30 WEND sans TANDIS

Une déclaration de WEND a été rencontré pour lesquelles aucune instruction WHILE correspondant peut être trouvé. 31-49 utilisé overflow 50 CHAMP

Une tentative est faite pour lire, écrire, ou définir une variable de champ au-delà de la longueur de la mémoire tampon de fichier à accès aléatoire. 51 Erreur interne

La déclaration de TERM est exécuté, mais aucun programme de gestionnaire du terminal a été défini. 52 Numéro de fichier incorrect

Un numéro de fichier est accessible auquel aucun fichier est ouvert, ou le numéro de fichier utilisé dans une instruction OPEN est en dehors de la plage de numéros de fichiers autorisés, ou (confusion) la spécification de fichier est vide, malformés ou contient des caractères illégaux. 53 Fichier non trouvé

Un fichier nommé sur un périphérique de disque ne peut pas être trouvé. 54 Mode de fichier incorrect

existe Le mode de fichier demandé dans une instruction OPEN pas ou est pris en charge pour le périphérique donné, ou la fonction de fichier appelé est pas pris en charge pour cet appareil, ou la fonction ou la déclaration appelée requiert un fichier ouvert pour RANDOM et le fichier est pas. 55 Fichier déjà ouvert

Une tentative est faite pour ouvrir un fichier à un numéro de dossier qui est déjà en cours d'utilisation; ou une tentative est faite pour ouvrir un fichier pour OUTPUT ou APPEND sur un périphérique série, le disque ou la cassette quand un fichier est déjà ouvert pour OUTPUT ou APPEND sur ce dispositif; ou d'une instruction KILL ou NAME est exécuté sur un fichier de disque ouvert. 56 utilisé 57 Erreur de périphérique d'E / S

Une erreur d'E / S est survenue lors de l'entrée / sortie à un dispositif. Ceci inclut les erreurs de Faming, les défaillances de contrôle CRC et de fin de bande inattendue sur les appareils à cassettes. 58 Le fichier existe déjà

Le nouveau nom proposé d'un fichier de disque dans une instruction NAME est déjà en cours d'utilisation. 59-60 utilisé 61 Disque plein

Il y a suffisamment d'espace libre sur le périphérique de disque pour terminer l'opération. 62 fin dernière entrée

Une tentative est faite pour récupérer l'entrée d'un fichier qui a passé sa fin de fichier. 63 Numéro d'enregistrement Bad

Un nombre record de fichiers d'accès aléatoire est référencé qui est en dehors de la plage autorisée. 64 Nom de fichier incorrect

Le nom de fichier ou d'une autre chaîne de paramètres de l'appareil dans une spécification de fichier est malformé ou contient des caractères illégaux. 65 utilisé 66 déclaration directe dans le fichier

Une ligne sans numéro de ligne est rencontrée dans un fichier de programme en texte brut. 67 Trop de fichiers 68 périphériques Non disponible

Une tentative est faite pour accéder à un dispositif qui n'existe pas ou est pas activé. 69 buffer overflow Communication

Un périphérique série reçoit plus de données que ne peut en son tampon. 70 Autorisation refusée

L'accès demandé à un fichier n'est pas accordée en raison de restrictions LOCK, verrouillage du système d'exploitation ou les permissions de fichiers du système d'exploitation insuffisante. 71 Disk not Ready

Le dispositif de disque est prêt pour l'accès. Par exemple, il n'y a aucune disquette dans un lecteur de disquette ou le verrou d'entraînement est ouvert. 72 médias de disque d'erreur 73 Feature avancée 74 Renommer sur les disques

Une tentative est faite d'utiliser l'instruction NAME pour déplacer un fichier d'un périphérique de disque à l'autre. 75 Chemin erreur d'accès / Fichier

Une tentative est faite pour créer un répertoire qui existe déjà ou pour supprimer un répertoire qui ne soit pas vide. 76 Chemin d'accès introuvable

Une instruction OPEN, MKDIR, RMDIR ou CHDIR est exécuté faisant référence à un chemin (parent) qui n'existe pas sur le périphérique de disque. 77 Deadlock

Un code d'erreur qui n'a pas un message qui lui est associé génère le message d'erreur non imprimable.

Si une erreur se produit en mode direct, le message d'erreur est affiché comme ci-dessus. Si l'erreur se produit dans un programme, le message est complété par le numéro de ligne dans lequel l'erreur est survenue. Par exemple, Illégal appel de fonction 100 indique que l'appel de fonction illégale a eu lieu dans le numéro de la ligne 100.

Si une erreur de syntaxe se produit lors de l'exécution du programme, le message d'erreur est suivi d'une liste de la ligne de programme dans lequel l'erreur est survenue, wth le curseur positionné à l'endroit où l'erreur a été soulevée.

Une division par zéro erreur ou, dans un calcul en virgule flottante, un débordement, ne sera pas interrompre l'exécution, sauf si elle se produit au sein d'une routine de gestion d'erreur. Le message d'erreur sera imprimé sur la console et le résultat du calcul de la délinquance sera considérée comme étant la valeur maximale qui correspond à la variable à virgule flottante appropriée. Débordement dans un calcul entier sera toujours interrompre l'exécution comme d'autres erreurs. Autres messages

Pause

 Exécution d'une déclaration ou d'un programme composé a été interrompue par une instruction CONT ou par une interruption du clavier de l'utilisateur (comme Ctrl + Break).  Si l'interruption se produit dans un programme, le message Break sera complété par le numéro de ligne dans laquelle l'interruption a eu lieu. 

? Refaire du début

 L'entrée prévue sur la console pour une instruction INPUT ne correspond pas au format attendu.  Le nombre ou le type d'entrées ne sont pas correctes.  Entrez à nouveau toutes les entrées. 

ref_num ligne défini dans LINE_NUM

 L'instruction RENUM rencontré une référence au numéro de ligne ref_num qui ne sont pas définis dans le programme.  La référence se produit sur le numéro de ligne LINE_NUM.  La undefined référence numéro de ligne ne sera pas renumérotés. 

filename Trouvé.

 Un fichier correspondant à la spécification demandée a été trouvé sur le périphérique de la cassette.  Ce message se produit uniquement en mode direct. 

filename Ignoré.

 Un fichier ne correspond pas à la spécification demandée a été rencontrée sur le dispositif de cassette.  Ce message se produit uniquement en mode direct. 

format de fichier Tokenised de référence technique

Un fichier de programme tokenised sur un périphérique de disque a le format suivant.

octet magique

 FF 

lignes du programme

 Chaque ligne est stocké comme suit:
   Octets Format Signification
   2 Unsigned 16-bit entier little-endian.  Lieu de mémoire de la ligne qui suit le courant.  Il est utilisé en interne par GW-BASIC, mais ignoré quand un programme est chargé.
   2 Unsigned 16-bit entier little-endian.  Le numéro de ligne.
   Variable Tokenised BASIC, voir ci-dessous.  Le contenu de la ligne.
   1 00 (NUL byte) Marqueur de fin de ligne.

Marqueur de fin de fichier

 Un 1A est écrit pour marquer la fin du fichier.  Cette option est facultative;  le fichier sera lu sans problème si elle est omise. 

Tokenised BASIC

Les caractères ASCII imprimables dans la gamme 20-7E sont utilisés pour les chaînes littérales, des commentaires, des noms de variables, et des éléments de syntaxe de l'instruction qui ne sont pas des mots réservés. Les mots réservés sont représentés par leurs mots jetons réservés et littéraux numériques sont représentées par des séquences de jetons numériques. séquences de jetons numériques

littéraux numériques sont stockés dans les programmes tokenised selon la représentation suivante. Tous les chiffres sont positifs; les nombres négatifs sont stockés simplement en précédant le numéro avec EA, le jeton pour -. Classe Octets Format des numéros de ligne indirecte 3 0E suivies d'un 16-bit entier little-endian non signé. entiers Octal 3 0B suivi d'un entier 16 bits little-endian non signé. entiers hexadécimaux 3 0C suivi d'un entier 16 bits little-endian non signé. décimales positif entiers moins de 11 1 Tokens 11-1B représentent 0-10. entiers décimaux positifs moins de 256 2 0F suivi d'un entier non signé 8 bits. Autres entiers décimaux 3 1C suivie d'un complément à deux signé 16-bit entier little-endian. GW-BASIC reconnaîtra un nombre négatif rencontré cette façon, mais il ne sera pas stocker les nombres négatifs s'utilisant le complément à deux, mais plutôt en faisant précéder le nombre positif avec EA. simple précision en virgule flottante numéro 5 1D suivi par un seul de quatre octets dans Microsoft Binary Format. Double précision nombre à virgule flottante 9 1F suivi d'un huit double octet dans Microsoft Binary Format. jetons de mots-clés

La plupart des mots-clés dans PC-BASIC sont des mots réservés. Les mots réservés sont représentés dans un programme tokenised par un jeton simple ou double-octet. La liste complète est ci-dessous.

Tous les noms de fonction et les opérateurs sont des mots réservés et toutes les déclarations commencent par un mot réservé (qui, dans le cas de LET est facultative). Cependant, l'inverse est pas vrai: tous les mots réservés sont des déclarations, des fonctions ou des opérateurs. Par exemple, TO et la CPS (ne se produisent dans le cadre d'une syntaxe de l'instruction mots En outre, certains mots-clés qui font partie de la syntaxe de déclaration ne sont pas réservés. Exemples sont AS, BASE, et ACCESS.

Mots-clés qui ne sont pas réservés mots sont écrits en texte intégral dans la source tokenised.

Un nom de fonction variable ou définie par l'utilisateur ne doit pas être identique à un mot réservé. La liste ci-dessous est une liste exhaustive des mots réservés qui peuvent être utilisés pour déterminer si un nom est légal.

   81 FIN 82 POUR 83 SUIVANT 84 DONNÉES 85 ENTREE 86 DIM 87 LIRE 88 LET 89 GOTO 8A RUN 8B IF 8C RESTORE 8D GOSUB 8E RETURN 8F REM 90 ARRÊT 91 PRINT 92 EFFACER 93 LISTE 94 NOUVEAU 95 SUR 96 ATTENDRE 97 DEF 98 POKE 99 CONT 9C OUT 9D LPRINT 9E LLIST A0 WIDTH A1 AUTRE A2 TRON A3 TROFF A4 SWAP A5 ERASE A6 EDIT A7 ERROR A8 REPRENDRE A9 SUPPRIMER AA AUTO AB RENUM AC DEFSTR AD DEFINT AE DefSng AF DEFDBL B0 LINE B1 TANDIS B2 WEND B3 CALL B7 WRITE B8 OPTION B9 RANDOMIZE BA OUVERT BB FERMER BC LOAD BD MERGE ÊTRE SAUVER BF COLOR C0 CLS C1 MOTOR C2 BSAVE C3 BLOAD C4 SOUND C5 BEEP C6 PSET C7 PRESET C8 ECRAN C9 KEY CA LOCATE CC TO CD ALORS CE TAB (STEP CF D0 USR D1 FN D2 SPC (D3 PAS D4 ERL D5 ERR D6 STRING $ D7 UTILISATION J8 INSTR D9 'DA VARPTR DB CSRLIN DC POINT DD OFF DE INKEY $ E6> E7 = E8 <E9 + EA - EB * EC / ED ^ EE ET EF OU F0 XOR F1 EQV F2 IMP F3 MOD F4 \ FD81 CVI FD82 CVS FD83 CVD FD84 MKI $ FD85 MKS $ FD86 MKD $ FD8B EXTERR FE81 FICHIERS FE82 FIELD FE83 SYSTÈME FE84 NOM FE85 LSET FE86 RSET FE87 KILL FE88 PUT FE89 GET FE8A RAZ CHAÎNE FE8B COMMUNE FE8C FE8D DATE $ FE8E TIME $ FE8F PAINT FE90 COM FE91 CIRCLE FE92 TIRAGE FE93 JEU FE94 TIMER FE95 ERDEV FE96 IOCTL FE97 CHDIR FE98 MKDIR FE99 RMDIR FE9A SHELL FE9B ENVIRON FE9C VIEW FE9D WINDOW FE9E PPAFM FE9F PALETTE FEA0 LCOPY AEED 1 APPELS AEED 5 PCOPY FEA7 BLOCAGE FEA8 UNLOCK FF81 LEFT $ FF82 DROIT $ Ff83 MID $ FF84 SGN FF85 INT FF86 ABS FF87 SQR FF88 ROND FF89 SIN FF8A LOG FF8B EXP FF8C COS FF8D TAN FF8E ATN FF8F FRE FF90 INP FF91 POS FF92 LEN FF93 STR $ FF94 VAL FF95 ASC FF96 CHR $ FF97 PEEK FF98 SPACE $ FF99 octobre $ FF9A HEX $ FF9B LPOS FF9C CINT FF9D CSNG FF9E CDBL FF9F FIX FFA0 PEN FFA1 STICK FFA2 STRIG FFA3 EOF FFA4 LOC FFA5 LOF 

Les mots réservés supplémentaires suivants sont activés par l'option syntax = {PCjr | tandy}.

 BRUIT AEED 4 FEA6 TERME 

Le mot réservé supplémentaire suivant est activé par l'option de débogage. Il est spécifique au PC-BASIC et non présent dans GW-BASIC.

 FFFF DEBUG 

utiliser des jetons internes

Les jetons 10, 1E et 0D sont connus pour être utilisés en interne par GW-BASIC. Ils ne doivent pas apparaître dans un fichier de programme tokenised correctement stocké. Microsoft Binary Format

nombres à virgule flottante dans GW-BASIC et PC-BASIC sont représentés dans Microsoft Binary Format (MBF), qui diffère de la norme IEEE 754 utilisé par la quasi-totalité des logiciels modernes et de matériel. Par conséquent, les fichiers binaires générés soit par BASIC sont entièrement compatibles les uns avec les autres et avec certaines applications modernes pour GW-BASIC, mais pas facilement interchangeables avec d'autres logiciels. QBASIC, par exemple, utilise des flotteurs IEEE.

MBF diffère de l'IEEE dans la position du bit de signe et en utilisant seulement 8 bits pour l'exposant, à la fois en simple et en double précision. Cela rend la gamme des nombres admissibles dans un nombre double précision MBF plus petit, mais leur plus grande précision, que pour un IEEE double: une seule MBF a 23 bits de précision, tandis qu'un double-MBF a 55 bits de précision. Tous les deux ont la même gamme.

Contrairement à l'IEEE, le format Microsoft binaire ne supporte pas les zéros signés, numéros subnormales, infinités ou valeurs non-a-nombre.

MBF nombres à virgule flottante sont représentés en octets comme suit:

Unique

 E0 M3 M2 M1 

Double

 E0 M7 M6 M5 M4 M3 M2 M1 

Ici, E0 est l'octet d'exposant et les autres octets forment la mantisse, pour petit-boutiste de telle sorte que M1 est l'octet le plus significatif. Le bit le plus significatif de M1 est le bit de signe, suivi par les bits les plus significatifs de la mantisse: M1 = s0 F1 F2 F3 F4 F5 F6 F7. Les autres octets contiennent les bits moins significatifs mantisse: M2 = f8 f9 fA fB fC fD fE fF, et ainsi de suite.

La valeur du nombre à virgule flottante est v = 0 si E0 = 0 et v = (-1) s0 × mantisse × 2 E0 - 128 autrement, où la mantisse est formée comme une fraction mantisse binaire = 0. 1 f1 f2 f3 ... format de fichier protégé

Le format protégé est une forme cryptée du format tokenised. GW-BASIC refuserait de montrer le code source de ces fichiers. Ce système de protection pourrait être facilement contournée en changeant un drapeau dans la mémoire. programmes de déprotection ont largement circulé depuis des décennies et l'algorithme de déchiffrement et les clés ont été publiées dans un magazine mathématique.

Un fichier de programme protégé sur un périphérique de disque a le format suivant.

octet magique

 FE 

Charge utile

 Encrypted contenu d'un fichier de programme tokenised, y compris son marqueur de fin de fichier, mais à l'exclusion de son octet magique.  Le chiffrement encription tourne d'un 11-octet et une clé de 13 octets de sorte que la transformation résultante est la même après 143 octets.  Pour chaque octet,
 Soustraire l'octet correspondant de la séquence de 11 octets,
       0B 0A 09 08 07 06 05 04 03 02 01
       Exclusive ou avec l'octet correspondant de la clé de 11 octets
       1D 1E C4 77 26 97 74 59 88 E0 7C
       Exclusive ou avec l'octet correspondant de la clé de 13 octets
       A9 84 8D CD 75 83 43 63 24 83 19 F7 9A
       Ajouter l'octet correspondant de la séquence de 13 octets,
       0D 0C 0B 0A 09 08 07 06 05 04 03 02 01

Marqueur de fin de fichier

 Un 1A est écrit pour marquer la fin du fichier.  Cette option est facultative;  le fichier sera lu sans problème si elle est omise.  Depuis le marqueur du programme tokenised de fin de fichier est inclus dans le contenu crypté, un fichier protégé est généralement un octet plus long que son équivalent non protégé. 

format de fichier BSAVE

Un fichier de vidage de mémoire sur un périphérique de disque a le format suivant.

octet magique

 FD 

Entête

 Octets Format Signification
   2 Unsigned 16-bit entier little-endian.  Segment du bloc de mémoire.
   2 Unsigned 16-bit entier little-endian.  Décalage du premier octet du bloc de mémoire.
   2 Unsigned 16-bit entier little-endian.  La longueur du bloc de mémoire en octets.

Charge utile

 Les octets du bloc de mémoire. 

Bas de page

 Sur Tandy seulement, l'octet magique et les six octets de l'en-tête sont repris ici.  Cette option est facultative;  le fichier sera lu sans problème si elle est omise. 

Marqueur de fin de fichier

 Un 1A est écrit pour marquer la fin du fichier.  Cette option est facultative;  le fichier sera lu sans problème si elle est omise. 

format de fichier cassette

Les fichiers sur la cassette sont stockées sous forme sonore à modulation de fréquence. Le format de la charge utile des fichiers sur la cassette est le même que pour les fichiers sur un périphérique de disque, mais les en-têtes sont différents et les fichiers peut être divisé en morceaux. Modulation

A 1-bit est représenté par une seule période d'onde de 1 ms (1000 Hz). A 0-bit est représenté par une seule période d'onde de 0,5 ms (2000 Hz). le format de l'octet

Un octet est envoyé en tant que 8 bits, le plus significatif en premier. Il n'y a pas ou démarrage stopbits. Format d'enregistrement

Un fichier est constitué de deux ou plusieurs enregistrements. Chaque enregistrement a le format suivant: Longueur Format Signification 256 octets Tous FF 2048 ms onde pilote à 1000 Hz, utilisé pour l'étalonnage. 1 bit 0 Synchronisation bit. 1 octet 16 (SYN) Synchronisation octet. 256 octets du bloc de données. 2 octets Unsigned 16-bit entier big-endian CRC-16-CCITT checksum. 4 octets Tous FF Fin de marqueur d'enregistrement.

Tokenised, protégées et BSAVE fichiers se composent d'un enregistrement en-tête suivi d'un enregistrement unique qui peut contenir plusieurs blocs de données de 256 octets, chacune suivie par les 2 octets CRC. les fichiers de programme de texte et les fichiers de données se composent d'un enregistrement en-tête suivi par plusieurs enregistrements mono-bloc. Format du bloc d'en-tête Octets Format Signification 1 fiche A5 Header octet magique 8 8 caractères Nom du fichier. 1 Type de fichier. 00 pour le fichier de données, 01 pour vidage de la mémoire, 20 ou A0 pour protéger, 40 pour plaine programme de texte, 80 pour le programme tokenised. 2 Unsigned 16 bits little-endian entier Longueur du prochain enregistrement de données, en octets. 2 Unsigned 16-bit little-endian segment entier de l'emplacement de mémoire. 2 Unsigned 16-bit entier little-endian Décalage de l'emplacement de mémoire. 1 00 Fin des données d'en-tête 239 Tous les 01 format de bloc de remplissage de données Octets Format Signification 1 8-bit entier non signé Nombre d'octets de charge utile dans le dernier enregistrement, plus un. Si zéro, l'enregistrement suivant est pas le dernier enregistrement. 255 données utiles. Si tel est le dernier enregistrement, tous les octets non utilisés sont remplis en répétant le dernier octet de la charge utile. Les codes de caractères

Selon le contexte, PC-BASIC traitera un point dans le contrôle des caractères vont comme un caractère de contrôle ou comme un glyphe défini par le codepage actif qui par défaut est codepage 437. points de & h80 ou plus de code sont toujours interprétées comme un glyphe codepage Code . ASCII

Voici une liste de l'American Standard Code for Information Interchange (ASCII). ASCII couvre uniquement les 128 caractères et définit les plages de points de code et h00- & H1F et & H7F comme des caractères de commande qui ne comportent pas un glyphe imprimable qui leur est assignée. Cela inclut des valeurs telles que le caractère de retour chariot (CR) qui met fin à une ligne de programme.

Dans le cadre de cette documentation, le caractère & H1A (SUB) sera généralement indiquée comme EOF car il joue le rôle de marqueur de fin de fichier dans DOS.

 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F

0_ NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI 1_ DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 2_! "# $% & '() * +, - / 3_ 0 1 2 3 4 5 6 7 8 9:;. <? => 4_ @ ABCDEFGHIJKLMNO 5_ PQRSTUVWXYZ [\] ^ _ 6_` abcdefghijklmno 7_ pqrstuvwxyz {|} ~ DEL Codepage 437

Ce tableau montre les caractères qui sont produits par les 256 points de code d'un octet lorsque le DOS Latin USA codepage 437 est chargé, ce qui est la valeur par défaut. points de code & h00 et & h20- & H7E sont fixés, tandis que les autres personnages, ainsi que tous les caractères à deux octets, peuvent être redéfinis en chargeant un autre codepage.

 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F

0_ ☺ ☻ ♥ ♦ ♣ ♠ • ◘ ○ ◙ ♂ ♀ ♪ ♫ ☼ 1_ ► ◄ ↕! ¶ § ▬ ↨ ↑ ↓ → ← ∟ ↔ ▲ ▼ 2_! "# $% & '() * +, - / 3_ 0 1 2 3 4 5 6 7 8 9:;. <? => 4_ @ ABCDEFGHIJKLMNO 5_ PQRSTUVWXYZ [\] ^ _ 6_` abcdefghijklmno 7_ pqrstuvwxyz {|} ~ ⌂ 8_ ç ü é A A A A ç ê ë è i i i Ä Å 9_ é æ Æ ó ó ó û ù ÿ Ö ü ¢ ¥ £ ₧ ƒ A_ á í ó ú ñ ñ ª º ¿⌐ ¬ ½ ¼ ¡ «» B_ ░ ▒ ▓ │ ┤ ╡ ╢ ╖ ╕ ╣ ║ ╗ ╝ ╜ ╛ ┐ C_ └ ┴ ┬ ├ ─ ┼ ╞ ╟ ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧ D_ ╨ ╤ ╥ ╙ ╘ ╒ ╓ ╫ ╪ ┘ ┌ █ ▄ ▌ ▐ ▀ E_ α ß Γ π Σ σ μ τ Φ Θ Ω δ ∞ φ ε ∩ F_ ≡ ± ≥ ≤ ⌠ ⌡ ÷ ≈ ° ∙ · √ ⁿ ² ■ scancodes codes d'activation

PC-BASIC utilise scancodes PC / XT, qui proviennent de la 83-clé IBM Modèle F clavier fourni avec le PC IBM 5150. La mise en page de ce clavier était tout à fait distinct de claviers standards modernes avec 101 touches ou plus, mais les touches d'un moderne clavier produire le même scancode que la clé avec la même fonction sur le modèle F. par exemple, la clé (sur un clavier US) produit le \ a été situé à côté de la touche Maj gauche sur le clavier Modèle F et a scancode & H2B. Le (US) touche backslash a encore cette scancode, même si elle est maintenant généralement trouvé au-dessus de la touche Entrée.

Pour compliquer encore les choses, claviers pour différents paramètres régionaux ont leur disposition recartographiée dans le logiciel plutôt que dans le matériel, ce qui signifie qu'ils produisent le même scancode que la clé sur un clavier américain est dans le même emplacement, quel que soit le caractère qu'ils produisent effectivement.

Par conséquent, l'un sur un clavier français produira le même scancode que le Q sur un clavier Royaume-Uni ou des États-Unis. Le document US \ clé est identifié avec la clé qui se trouve généralement en bas à gauche de Enter sur les claviers non américains. Par exemple, sur mon clavier UK ceci est la touche #. claviers américains ont une clé supplémentaire à côté de la touche Maj gauche qui sur le clavier du Royaume-Uni est le \. Par conséquent, alors que cette clé est dans le même emplacement et a la même fonction que le modèle F \, il a un scancode différent.

Dans le tableau ci-dessous, les touches sont marquées par leur fonction sur un clavier américain, mais il faut garder à l'esprit que le scancode est lié à la position, pas la fonction, de la clé. Scancode Key Esc 01 1! 02 2 @ 03 3 # 04 4 $ 05 5% 06 6 ^ 07 7 & 08 8 * 09 9 (0A 0) 0B - _ 0C = + 0D Backspace 0E Tab 0F q Q 10 w W 11 e E 12 r R 13 t T 14 y Y 15 u U 16 i I 17 o O 18 p P 19 [{1A]} 1B Entrez 1C Ctrl 1D S 1F d de D d'un a 1E 20 f F 21 g g 22 h h 23 j J 24 k K 25 l L 26

   27 

' "28` ~ 29 Maj gauche 2A \ |? 2B z Z 2C x X 2D c C 2F v V 2F b B 30 n N 31 m M 32, 34/35 droite du clavier Maj 36 <. 33> * PrtSc 37 Alt 38 espace 39 Caps Lock 3A F1 3B F2 3C F3 3D F4 3E F5 3F F6 40 F7 41 F8 42 F9 43 F10 44 Num Lock 45 Scroll Lock Pause du clavier 46 7 Home 47 clavier 9 Pg Up 49 clavier 8 ↑ 48 clavier - clavier 4A 4 ← 4B clavier 5 4C clavier 6 → clavier + 4E clavier clavier 4F 1 Fin 4D 2 ↓ 50 clavier 3 Pg Dn 51 clavier 0 Ins 52 touches Del 53 SysReq 54 \ |. (non-US 102 touches) 56 F11 57 F12 58 Logo gauche (Windows 104 touches) 5B Right Logo (Windows 104 touches) 5C Menu (Windows 104 touches) 5D ひ ら が な / カ タ カ ナ Hiragana / Katakana (japonais 106 touches) 70 \ _ (106 japonais-clé) 73 変 換Henkan (106 japonais-clé) 79 無 変 換 Muhenkan (106 japonais-clé) 7B 半角 / 全 角 Hankaku / Zenkaku (106 japonais-clé) 29 ¥ | (106 japonais-clé) 7D 한자 Hanja (Korean 103-clé) F1 한 / 영 Han / Yeong (103-clé coréen) F2 \? ° (Brazilian ABNT2) 73 clavier. (Brésil) ABNT2 codes 7E e-ASCII

A côté de scancodes, la plupart des touches portent également une valeur de caractère de la documentation GW-BASIC appelle ASCII étendu. Depuis ce terme est plutôt surchargé, nous utilisons l'abréviation e-ASCII exclusivement pour ces valeurs. Les valeurs renvoyées par la fonction INKEY de $ sont des valeurs e-ASCII.

e codes ASCII sont un ou deux octets de long; codes mono-octet sont tout simplement des codes ASCII alors que les codes à deux octets sont constitués d'un caractère NUL plus un code indiquant la touche enfoncée. Certains, mais certainement pas tous, de ces codes sont d'accord avec les scancodes des touches.

Contrairement à scancodes, codes e-ASCII des touches non modifiées et celles des touches modifiées par Shift, Ctrl ou Alt sont tous différents.

Unmodified, Shifted et codes Ctrled e-ASCII sont reliés à la signification d'une clé, et non son emplacement. Par exemple, l'e-ASCII Ctrl + a sont les mêmes sur un français et un clavier américain. En revanche, les codes Alted sont reliés à l'emplacement de la clé, comme scancodes. La disposition du clavier US est utilisé dans le tableau ci-dessous. Key e-ASCII e-ASCII Maj e-ASCII Ctrl e-ASCII Alt Esc 1B 1B 1B 1! 31 21 00 78 2 @ 32 40 00 03 00 79 3 # 33 23 00 7A 4 $ 34 24 00 7B 5% 35 25 00 7C 6 ^ 36 5E 1E 00 7D 7 & 37 26 00 7E 8 * 38 2A 00 7F 9 (39 28 00 80 0) 30 29 00 81 - _ 2D 5F 1F 00 82 = + 3D 2B 00 83 Backspace 08 08 7F 00 8C Tab 09 00 0F 00 8D 00 8E q Q 71 51 11 00 10 w W 77 57 17 00 11 e e 65 45 05 00 12 r R 72 52 12 00 13 t T 74 54 14 00 14 y Y 79 59 19 00 15 u U 75 55 15 00 16 i I 69 49 09 00 17 o O 6F 4F 0F 00 18 p P 70 50 10 00 19 [{5B 7B 1B]} 5D 7D 1D Entrez 0D 0D 0A 00 8F a a 61 41 01 00 1E s s 73 53 13 00 1F d D 64 44 04 00 20 f F 66 46 06 00 21 g g 67 47 07 00 22 h 68 h 48 08 00 23 j J 6A 4A 0A 00 24 k K 6B 4B 0B 00 25 l L 6C 4C 0C 00 26

   3B 3A 

' "27 22` ~ 60 7E \ | 5C 7C 1C z Z 7A 5A 1A 00 2C x X 78 58 18 00 2d c C 63 43 03 00 2F v V 76 56 16 00 2F b B 62 42 02 00 30 n N 6E 4E 0E 00 31 m m 6D 4D 0D 00 32, <2C 3C.> 2E 3E /? 2F 3F PrtSc 00 72 00 46 espace 20 20 20 00 20 F1 00 3B 00 54 00 5E 00 68 F2 00 3C 00 55 00 5F 00 69 F3 00 3D 00 56 00 60 00 6A F4 00 3E 00 57 00 61 00 6C F5 00 3F 00 58 00 62 00 6D F6 00 40 00 59 00 63 00 6E F7 00 41 00 5A 00 64 00 6F F8 00 42 00 5B 00 65 00 70 F9 00 43 00 5C 00 66 00 71 F10 00 44 00 5D 00 67 00 72 F11 (Tandy) 00 98 00 A2 00 AC 00 B6 F12 (Tandy) 00 99 00 A3 00 AD 00 B7 Accueil 00 47 00 47 00 77 Fin 00 4F 00 4F 00 75 PgUp 00 49 00 49 00 84 PgDn 00 51 00 51 00 76 ↑ 00 48 00 48 ← 00 4B 00 87 00 73 → 00 4D 00 88 00 74 ↓ 00 50 00 50 clavier 5 35 35 05 Ins 00 52 00 52 Del 00 53 00 53 Remerciements Collaborateurs

PC-BASIC ne serait pas exister sans les codes contribuant, signaler les bogues, envoyant des patches, et documenter le comportement de GW-BASIC. Merci à tous!

 Rob Hagemans, auteur principal
   Wengier Wu, des corrections de bugs, des conseils pour le soutien CJK
   WJB, corrections de bugs
   Jan Bredenbeek, des corrections de bugs, des conseils pour le soutien de BASICODE
   Ronald Herrera, les tests, la chasse aux bugs
   Miguel Dorta, les essais, les ports série
   Patrik, les essais, les ports série
   Duane, les essais, les ports série

Épaules des géants

PC-BASIC dépend des projets open-source suivants:

 python
   PyGame
   Simple DirectMedia Layer (SDL)
   NumPy
   PyXDG
   Python pour les extensions de Windows (pywin32)
   pyserial
   pexpect
   ANSI | tuyau

Documentation technique[modifier | modifier le wikicode]

Bâtiment PC-BASIC aurait été impossible sans les immenses quantités de documentation technique qui a été mis à disposition en ligne. Il a prouvé ne pas être possible d'établir une liste complète de la documentation utilisée. Un grand merci à tous ceux qui font de l'information technique disponible gratuitement, et des excuses à ceux dont la contribution que je l'ai pas reconnu ici.

format de fichier tokenised GW-BASIC[modifier | modifier le wikicode]

 Norman De Forest Documentation séminale de jetons GW-BASIC.  Cette documentation a été le point de départ pour le développement de PC-BASIC.
   en ligne décodeur GW-BASIC Dan Vanderkam

format de fichier protégé GW-BASIC[modifier | modifier le wikicode]

 Paul Kocher, Le supplément d'ordinateur cryptogramme 19, American cryptogramme Association, Été 1994

Matériel vidéo

 pages PC vintage de John Elliott
   Les pages de TechHelp Dan Rollins sur la mise en page de mémoire vidéo PC
   Great Blog Nerdly Pleasures Hierophant

Microsoft Binary Format

 contributions de forum par Julian Brucknall et Adam Burgoyne

le format de cassette de données

 L'analyse de Mike Brutman du format de la cassette de données IBM PC
   IBM PC des données de cassette Format documentation de Dan Tobias

BASICODE

 la documentation de Janny Looyenga du format BASICODE
   la documentation du Prof. Dr. Horst Völz du format de fichier de cassette BASICODE

Les ports série

 la documentation de Craig Peacock sur l'interface entre le port série
   tutoriel de Christopher E. Strangio sur la norme RS232
   documentation QB64

Informations techniques sur de nombreux sujets

 Vogons
   forums informatiques de cru Erik S. Klein
   Le site QBasic / QuickBasic Pete Peter Berg

Polices

 pack codepage CPIDOS de Henrique Peron
   La police Uni-VGA Dmitry Bolkhovityanov
   Roman Czyborra, Qianqian Fang et GNU unifont d'autres
   polices DOSBox VGA
   CPI police format de fichier de documentation Andries Brouwer

mappages Unicode-codepage

 Le Consortium Unicode et contributeurs
   Projet GNU
   Aivosto
   Charsets Index Konstantinos Kostis de
   IBM CDRA
   Camellia Masaki Tojo

Bibliographie

 Guide de GW-BASIC 3.23 utilisateur, Microsoft Corporation, 1987.
   IBM Personal Computer Hardware Reference Library: BASIC, IBM, 1982.
   Tandy 1000 BASIC, Guide de référence, Tandy Corporation.
   William Barden, Jr., Graphics and Sound pour les 1000s Tandy et PC Compatibles, Microtrend 1987.
   Don Inman et Bob Albrecht, La Référence GW-BASIC, Osborne McGraw-Hill, 1990.
   Thomas C. McIntyre, BLEU: Langue BASIC Essai de l'utilisateur, 1991, disponible en ligne.

Outils de développement

PC-BASIC est développé en utilisant Git contrôle de code source, gEdit et Atom éditeurs de texte sur un système Ubuntu Linux et hébergé sur GitHub et SourceForge.

Emballage et documentation dépend des projets suivants:

 PyInstaller
   Nullsoft Scriptable Système d'installation
   7-Zip
   Le système GNU de base
   Pygame Subset Tom Rothamel pour Android (remplacé par RAPT)
   LXML
   Réduction

Emulateurs

Ces excellents émulateurs ont été des outils indispensables pour documenter le comportement des différents dialectes Microsoft BASIC.

 DOSBox
   DÉSORDRE
   PCE PC Emulator

Licences PC-BASIC interprète

Copyright © 2013-2016 Rob Hagemans.

Code promo valide chez Source https://github.com/robhagemans/pcbasic .

Ce programme est un logiciel libre: vous pouvez le redistribuer et / ou le modifier selon les termes de la GNU General Public License telle que publiée par la Free Software Foundation, soit la version 3 de la licence, ou (à votre choix) toute version ultérieure.

Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE; sans même la garantie implicite de COMMERCIALISATION ou D'ADAPTATION À UN USAGE PARTICULIER. Voir la GNU General Public License pour plus de détails.

Vous devriez avoir reçu une copie de la GNU General Public License avec ce programme; sinon, écrivez à la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. documentation PC-BASIC

Copyright © 2014-2016 Rob Hagemans.

Ce travail est distribué sous licence Creative Commons Attribution-ShareAlike 4.0 License International. Menu de navigation

   français
   Créer un compte Tarifs
   Se connecter 
   Page
   Discussion
   Lire
   Modificateur
   Modifier le wikicode
   Historique
   Accueil
   Aide
   L'Agora
   Requête aux admins
   modifications Récentes 

Liens Utiles

   Outils numérique s
   Participer
   Liste de diffusion
   bavarder
   Ressources
   Revue de presse 

Sur le web

   nuitdebout.fr
   @nuitdebout
   @wiki_nuitdebout
   #NuitDebout
   Facebook
   Diaspora
   Tumblr
   Reddit
   Radio Debout
   TV Debout
   Ordre du jour
   Les questions
   Carte des Rassemblements 

Outils

   Pages liées
   Suivi des pages Liées
   Pages spéciales
   Version imprimable
   Adresse version of this
   Informations sur la page
   Sous-pages
   Dernière modification de cette page L'le 9 août 2016 à 15:07.
   Le contenu is available sous licence Creative Commons paternité partage à l'Identique 3.0 Sauf mention Contraire.
   Le logo Nuit Debout de Sébastien Marchal AINSI Que sa typographie sous licence are Creative Commons BY-NC-ND 4.0.