Freebasic-Einsteigerhandbuch

Total Page:16

File Type:pdf, Size:1020Kb

Freebasic-Einsteigerhandbuch FreeBASIC-Einsteigerhandbuch Grundlagen der Programmierung in FreeBASIC von S. Markthaler Stand: 11. Mai 2015 Einleitung 1. Über das Buch Dieses Buch ist für Programmieranfänger gedacht, die sich mit der Sprache FreeBASIC beschäftigen wollen. Es setzt keine Vorkenntnisse über die Computerprogrammierung voraus. Sie sollten jedoch wissen, wie man einen Computer bedient, Programme installiert und startet, Dateien speichert usw. Wenn Sie bereits mit Q(uick)BASIC gearbeitet haben, finden Sie in Kapitel 1.3 eine Zusammenstellung der Unterschiede zwischen beiden Sprachen. Sie erfahren dort auch, wie Sie Q(uick)BASIC-Programme für FreeBASIC lauffähig machen können. Wenn Sie noch über keine Programmiererfahrung verfügen, empfiehlt es sich, die Kapitel des Buches in der vorgegebenen Reihenfolge durchzuarbeiten. Wenn Ihnen einige Konzepte bereits bekannt sind, können Sie auch direkt zu den Kapiteln springen, die Sie interessieren. 2. In diesem Buch verwendete Konventionen In diesem Buch tauchen verschiedene Elemente wie Variablen, Schlüsselwörter und besondere Textabschnitte auf. Damit Sie sich beim Lesen schnell zurechtfinden, werden diese Elemente kurz vorgestellt. Befehle und Variablen, die im laufenden Text auftauchen, werden in nichtproportionaler Schrift dargestellt. Schlüsselwörter wie PRINT werden in Fettdruck geschrieben, während für andere Elemente wie variablenname die normale Schriftstärke eingesetzt wird. Quelltexte werden vollständig in nichtproportionaler Schrift gesetzt und mit einem Begrenzungsrahmen dargestellt. Auch hier werden Schlüsselwörter fett gedruckt. Der Dateiname des Programms wird oberhalb des Quelltextes angezeigt. Quelltext 1.1: Hallo Welt ’ Kommentar: Ein gewoehnliches Hallo-Welt-Programm CLS PRINT "Hallo FreeBASIC-Welt!" SLEEP 5 END ii Einleitung Es empfiehlt sich, die Programme abzutippen und zu testen. Die meisten Programme sind sehr kurz und können schnell abgetippt werden – auf der anderen Seite werden Sie Codebeispiele, die Sie selbst getippt haben, leichter behalten. Alle fünf Zeilen wird die aktuelle Zeilennummer angezeigt; diese ist selbst nicht Bestandteils des Programms und soll dementsprechend auch nicht mit abgetippt werden. Die Ausgabe des Programms wird ebenfalls in nichtproportionaler Schrift aufgelistet und, wie unten angezeigt, durch eine graue Box umschlossen. Diese Ausgabe kann mit der eigenen verglichen werden, um zu überprüfen, ob das Programm korrekt eingegeben wurde. Ausgabe Hallo FreeBasic-Welt! Zusätzliche Informationen zum aktuellen Thema werden in Hinweisboxen dargestellt. Hinweis: Diese Boxen enthalten ergänzende Informationen, die mit dem aktuell behan- delten Thema zusammenhängen. Informationen, die speziell für Umsteiger von QuickBASIC oder für fortgeschrittenere Programmierer gedacht sind, werden durch ein Werkzeug-Bild gekennzeichnet. Hinweis: Hier können z. B. Unterschiede zu QuickBASIC oder zu früheren FreeBASIC- Versionen aufgeführt werden. Für die Box wird dann auch die Überschrift entsprechend angepasst. Ein mögliches Problem wird in einer Warnung angezeigt. Diese wird ähnlich dargestellt wie die Hinweisbox, jedoch mit einem Warnsymbol. Achtung: Warnungen sollten auf jeden Fall beachtet werden, da es sonst im Programm zu Problemen kommen kann! iii Einleitung 3. Rechtliches Das Dokument unterliegt der Lizenz Creative Commons Attribution-NonCommercial- ShareAlike 3.0 Deutschland. Sie sind berechtigt, das Werk zu vervielfältigen, verbreiten und öffentlich zugänglich machen sowie Abwandlungen und Bearbeitungen des Werkes anfertigen, sofern dabei • der Name des Autors genannt wird • das Werk nicht für kommerziellen Nutzung verwendet wird und • eine Bearbeitung des Werkes unter Verwendung von Lizenzbedingungen weitergeben wird, die mit denen dieses Lizenzvertrages identisch oder vergleichbar sind. Einen vollständigen Lizenztext erhalten Sie unter http://creativecommons.org/licenses/by-nc-sa/3.0/de/legalcode Unabhängig von oben genannten Linzenzbedingungen gestattet der Autor eine kommer- zielle Nutzung der Print-Version dieses Dokuments im Rahmen des FreeBASIC-Portals Deutschland ( http://freebasic-portal.de ), sofern die erzielten Einnahmen der FreeBASIC-Community zugute kommen. Die im Buch enthaltenen Quelltexte dürfen, auch zu kommerziellen Zweck, frei verwen- det werden. Bei aufwendigeren Quelltexten freut sich der Autor über eine namentliche Nennung. Quelltexte, die von anderen Autoren für das Buch zur Verfügung gestellt wurden, sind entsprechend gekennzeichnet. Die Urheberrechte liegen beim jeweiligen Autor. 4. Weitere Informationen Sämtliche längeren Quelltexte stehen auf der Projektseite http://freebasic-portal.de/projekte/99 zum Download zur Verfügung. Dort erhalten Sie auch weitere Informationen. 5. Danksagung Mein Dank gilt allen FreeBASICern, die direkt oder indirekt an der Entstehung des Buches mitgewirkt haben. Besonders erwähnen möchte ich (TODO: Helfer suchen :D) iv Inhaltsverzeichnis Einleitung ii 1. Über das Buch................................. ii 2. In diesem Buch verwendete Konventionen.................. ii 3. Rechtliches................................... iv 4. Weitere Informationen............................. iv 5. Danksagung................................... iv I. Einführung1 1. Eine kurze Einführung in FreeBASIC2 1.1. Was ist eine Programmiersprache?......................2 1.2. Was ist FreeBASIC?..............................3 1.3. Unterschiede zu QuickBASIC.........................3 1.4. Vor- und Nachteile von FreeBASIC......................5 2. Installation und Inbetriebnahme8 2.1. Installation...................................8 2.1.1. Installation unter Windows......................8 2.1.2. Installation unter Linux........................ 10 2.2. Erstes Programm................................ 11 2.3. Problembehebung................................ 12 2.3.1. Probleme beim Start.......................... 12 2.3.2. Probleme beim Compilieren...................... 12 2.4. Wie wird aus meinem Quelltext ein Programm?............... 13 II. Grundkonzepte 15 3. Aufbau eines FreeBASIC-Programms 16 3.1. Grundaufbau und Ablauf........................... 16 v Inhaltsverzeichnis 3.2. Kommentare.................................. 17 3.3. Zeilenfortsetzungszeichen........................... 18 3.4. Trennung von Befehlen mit Doppelpunkt.................. 18 4. Bildschirmausgabe 20 4.1. Der PRINT-Befehl............................... 20 4.2. Ausgabe von Variablen............................. 22 4.3. Formatierung der Ausgabe........................... 24 4.3.1. Direkte Positionierung mit LOCATE ................. 24 4.3.2. Positionierung mit TAB und SPC ................... 25 4.3.3. Farbige Ausgabe............................ 26 4.3.4. Bildschirm löschen mit CLS ...................... 27 4.4. Fragen zum Kapitel.............................. 28 5. Tastatureingabe 30 5.1. Der INPUT-Befehl............................... 30 5.2. Eingabe einzelner Zeichen........................... 32 5.2.1. INPUT() als Funktion......................... 32 5.2.2. INKEY() ................................ 34 5.3. Fragen zum Kapitel.............................. 34 6. Variablen und Konstanten 35 6.1. Ganzzahlen................................... 35 6.1.1. Verfügbare Ganzzahl-Datentypen................... 35 6.1.2. Rechnen mit Ganzzahlen....................... 37 6.2. Gleitkommazahlen............................... 39 6.2.1. Darstellungsbereich von Gleitkommazahlen............. 39 6.2.2. Rechengenauigkeit bei Gleitkommazahlen.............. 40 6.3. Zeichenketten.................................. 42 6.3.1. Arten von Zeichenketten........................ 42 6.3.2. Aneinanderhängen zweier Zeichenketten............... 44 6.4. Konstanten................................... 46 6.5. Weitere Speicherstrukturen.......................... 47 6.6. Fragen zum Kapitel.............................. 47 7. Datenfelder (Arrays) 48 7.1. Deklaration und Zugriff............................ 48 7.2. Mehrdimensionale Arrays........................... 49 vi Inhaltsverzeichnis 7.3. Dynamische Arrays............................... 50 7.3.1. Deklaration und Redimensionierung................. 51 7.3.2. Werte-Erhalt beim Redimensionieren................. 52 7.4. Weitere Befehle................................. 53 7.4.1. Grenzen ermitteln: LBOUND und UBOUND............ 53 7.4.2. Implizite Grenzen........................... 54 7.4.3. Löschen mit ERASE.......................... 55 7.5. Fragen zum Kapitel.............................. 56 8. Pointer (Zeiger) 58 8.1. Speicheradresse ermitteln........................... 58 8.2. Pointer deklarieren............................... 59 8.3. Speicherverwaltung bei Arrays........................ 60 9. Bedingungen 61 9.1. Einfache Auswahl: IF ... THEN ........................ 61 9.1.1. Einzeilige Bedingungen........................ 61 9.1.2. Mehrzeilige Bedingungen (IF-Block)................. 62 9.1.3. Alternativauswahl........................... 64 9.2. Bedingungsstrukturen............................. 65 9.2.1. Vergleiche................................ 65 9.2.2. Logische Operatoren.......................... 67 9.2.3. Das Binärsystem............................ 68 9.2.4. AND und OR als Bit-Operatoren.................... 69 9.2.5. ANDALSO und ORELSE ........................ 70 9.2.6. Weitere Bit-Operatoren: XOR, EQV, IMP und NOT .......... 71 9.3. Mehrfachauswahl: SELECT CASE ....................... 72 9.3.1. Grundaufbau.............................. 73 9.3.2. Erweiterte Möglichkeiten....................... 75 9.3.3. SELECT CASE AS CONST ...................... 76 9.4. Bedingungsfunktion:
Recommended publications
  • A Beginner's Guide to Freebasic
    A Beginner’s Guide to FreeBasic Richard D. Clark Ebben Feagan A Clark Productions / HMCsoft Book Copyright (c) Ebben Feagan and Richard Clark. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". The source code was compiled under version .17b of the FreeBasic compiler and tested under Windows 2000 Professional and Ubuntu Linux 6.06. Later compiler versions may require changes to the source code to compile successfully and results may differ under different operating systems. All source code is released under version 2 of the Gnu Public License (http://www.gnu.org/copyleft/gpl.html). The source code is provided AS IS, WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Microsoft Windows®, Visual Basic® and QuickBasic® are registered trademarks and are copyright © Microsoft Corporation. Ubuntu is a registered trademark of Canonical Limited. 2 To all the members of the FreeBasic community, especially the developers. 3 Acknowledgments Writing a book is difficult business, especially a book on programming. It is impossible to know how to do everything in a particular language, and everyone learns something from the programming community. I have learned a multitude of things from the FreeBasic community and I want to send my thanks to all of those who have taken the time to post answers and examples to questions.
    [Show full text]
  • Powerbasic Console Compiler 603
    1 / 2 PowerBasic Console Compiler 603 Older DOS tools may still be fixed and/or enhanced, but newer command line tools, if any, will ... BAS source code recompilation requires PowerBASIC 3.1 DOS compiler, while .MOD source ... COM 27 603 29.09.03 23:15 ; 9.6s -- no bug LIST.. PowerBASIC Console Compiler for Windows. Create Windows applications with a text mode user interface. Published by PowerBASIC. Distributed by .... Код: Выделить всё: #compile exe ... http://rl-team.net/1146574146-powerbasic-for-windows-v-1003-powerbasic-console-compiler-v-603.html.. This collection includes 603 Hello World programs in as many more-or-less well ... Hello World in Powerbasic Console Compiler FUNCTION PBMAIN () AS .... 16 QuickBASIC/PowerBASIC Console I/O .. ... Register Port A Port B Port C Port D Port E Port F IOConf Address 0x600 0x601 0x602 0x603 0x604 0x605 0x606 ... Similar functions (and header files) are available for other C compilers and .... 48. asm11_77.zip, A DOS based command-line MC68HC11 cross-assembler ... 139. compas3e.zip, COMPAS v3.0 - Compiler from Pascal for educational ... 264. fce4pb24.zip, FTP Client Engine v2.4 for Power Basic, 219742, 2004-06-10 10:11:19 ... 603. reloc100.zip, Relocation Handler v1.00 by Piotr Warezak, 10734 .... PowerBASIC Console Compiler v6.0. 2 / 3415. Table of contents ... Error 603 - Incompatible with a Dual/IDispatch interface ............................ 214. Error 605 .... PowerBasic Console Compiler 6.03link: https://cinurl.com/1gotz8. 603-260-8480 Software provider to use compile and work where and when? ... Get wired for power. Basic large family enjoy fun nights like that. ... Report diagnosis code as an application from console without writing any custom duty or ...
    [Show full text]
  • Screenshot Showcase 1
    Volume 125 June, 2017 VirtualBox: Going Retro On PCLinuxOS Inkscape Tutorial: Creating Tiled Clones, Part Three An Un-feh-gettable Image Viewer Game Zone: Sunless Sea PCLinuxOS Family Member Spotlight: arjaybe GOG's Gems: Star Trek 25th Anniversary Tip Top Tips: HDMI Sound On Encrypt VirtualBox Virtual Machines PCLinuxOS Recipe Corner PCLinuxOS Magazine And more inside ... Page 1 In This Issue... 3 From The Chief Editor's Desk... Disclaimer 4 Screenshot Showcase 1. All the contents of The PCLinuxOS Magazine are only for general information and/or use. Such contents do not constitute advice 5 An Un-feh-gettable Image Viewer and should not be relied upon in making (or refraining from making) any decision. Any specific advice or replies to queries in any part of the magazine is/are the person opinion of such 8 Screenshot Showcase experts/consultants/persons and are not subscribed to by The PCLinuxOS Magazine. 9 Inkscape Tutorial: Create Tiled Clones, Part Three 2. The information in The PCLinuxOS Magazine is provided on an "AS IS" basis, and all warranties, expressed or implied of any kind, regarding any matter pertaining to any information, advice 11 ms_meme's Nook: Root By Our Side or replies are disclaimed and excluded. 3. The PCLinuxOS Magazine and its associates shall not be liable, 12 PCLinuxOS Recipe Corner: Skillet Chicken With Orzo & Olives at any time, for damages (including, but not limited to, without limitation, damages of any kind) arising in contract, rot or otherwise, from the use of or inability to use the magazine, or any 13 VirtualBox: Going Retro On PCLinuxOS of its contents, or from any action taken (or refrained from being taken) as a result of using the magazine or any such contents or for any failure of performance, error, omission, interruption, 30 Screenshot Showcase deletion, defect, delay in operation or transmission, computer virus, communications line failure, theft or destruction or unauthorized access to, alteration of, or use of information 31 Tip Top Tips: HDMI Sound On contained on the magazine.
    [Show full text]
  • PDQ Manual.Pdf
    CRESCENT SOFTWARE, INC. P.D.Q. A New Concept in High-Level Programming Languages Version 3.13 Entire contents Copyright © 1888-1983 by Ethan Winer and Crescent Software. P.D.Q. was conceived and written by Ethan Winer, with substantial contributions [that is, the really hard parts) by Robert L. Hummel. The example programs were written by Ethan Winer, Don Malin, and Nash Bly, with additional contributions by Crescent and Full Moon customers. The floating point math package was written by Paul Passarelli. This manual was written by Ethan Winer. The section that describes how to use P.O.Q. with assembly language was written by Hardin Brothers. Full Moon Software 34 Cedar Vale Drive New Milford, CT 06776 Sales: 860-350-6120 Support: 860-350-8188 (voice); 860-350-6130 [fax) Sixth printing. LICENSE AGREEMENT Crescent Software grants a license to use the enclosed software and printed documentation to the original purchaser. Copies may be made for back-up purposes only. Copies made for any other purpose are expressly prohibited, and adherence to this requirement is the sole responsibility of the purchaser. However, the purchaser does retain the right to sell or distribute programs that contain P.D.Q. routines, so long as the primary purpose of the included routines is to augment the software being sold or distributed. Source code and libraries for any component of the P.D.Q. program may not be distributed under any circumstances. This license may be transferred to a third party only if all existing copies of the software and documentation are also transferred.
    [Show full text]
  • Programmierung Unter GNU/Linux Für Einsteiger
    Programmierung unter GNU/Linux fur¨ Einsteiger Edgar 'Fast Edi' Hoffmann Community FreieSoftwareOG [email protected] 7. September 2016 Programmierung (von griechisch pr´ogramma Vorschrift\) bezeichnet die T¨atigkeit, " Computerprogramme zu erstellen. Dies umfasst vor Allem die Umsetzung (Implementierung) des Softwareentwurfs in Quellcode sowie { je nach Programmiersprache { das Ubersetzen¨ des Quellcodes in die Maschinensprache, meist unter Verwendung eines Compilers. Programmierung Begriffserkl¨arung 2 / 35 Dies umfasst vor Allem die Umsetzung (Implementierung) des Softwareentwurfs in Quellcode sowie { je nach Programmiersprache { das Ubersetzen¨ des Quellcodes in die Maschinensprache, meist unter Verwendung eines Compilers. Programmierung Begriffserkl¨arung Programmierung (von griechisch pr´ogramma Vorschrift\) bezeichnet die T¨atigkeit, " Computerprogramme zu erstellen. 2 / 35 Programmierung Begriffserkl¨arung Programmierung (von griechisch pr´ogramma Vorschrift\) bezeichnet die T¨atigkeit, " Computerprogramme zu erstellen. Dies umfasst vor Allem die Umsetzung (Implementierung) des Softwareentwurfs in Quellcode sowie { je nach Programmiersprache { das Ubersetzen¨ des Quellcodes in die Maschinensprache, meist unter Verwendung eines Compilers. 2 / 35 Programme werden unter Verwendung von Programmiersprachen formuliert ( kodiert\). " In eine solche Sprache ubersetzt\¨ der Programmierer die (z. B. im Pflichtenheft) " vorgegebenen Anforderungen und Algorithmen. Zunehmend wird er dabei durch Codegeneratoren unterstutzt,¨ die zumindest
    [Show full text]
  • The MSX Red Book (Revised Version 1997/08/06) Notes from The
    The MSX Red Book (revised version 1997/08/06) Notes from the editor: - The book was scanned and converted (via O.C.R.) by one person and edited by another (using an IBM PC compatible), independently. - All pages have a fix size of 64 lines. The width was not justified to make future modifications easier, though no line is longer than 80 columns. - This book only covers standard MSX. The BIOS entry points from 0000H to 01B5H should be used instead of the called entries described in the book, because other machines (MSX2, MSX2+, MSX turbo R and customized ones) have different positions for the routines. The use of internal BIOS routine addresses are responsible for many programs only running in MSX. - Some errors present in the original book were fixed, though it was tried to keep it as unaltered as possible. All page numbers match the originals, except undetected errors already present in the original. - Most figures were modificated due to the text-only nature of this file. The character set used during edition was the International IBM PC's one. The following special characters were used and should be changed to the corresponding ones of other character sets: Frame ÚÄÂÄ¿ Pound: œ characters: ³ ³ ³ Micro: æ ÃÄÅÄ´ ³ ³ ³ ÀÄÁÄÙ ------------------------------------------------------------------------------- CONTENTS Introduction .............................. 1 1. Programmable Peripheral Interface ...... 3 2. Video Display Processor ................ 8 3. Programmable Sound Generator ........... 21 4. ROM BIOS ............................... 26 5. ROM BASIC Interpreter .................. 89 6. Memory Map ............................. 208 7. Machine Code Programs .................. 240 Contents Copyright 1985 Avalon Software Iver Lane, Cowley, Middx, UB8 2JD MSX is a trademark of Microsoft Corp.
    [Show full text]
  • 2D-Spieleprogrammierung in Freebasic
    Dieser Abschnitt behandelt QuickBASIC und dessen abgespeckte Version QBASIC gleichermaßen; der Einfachheit halber wird nur von QuickBASIC gesprochen. Wer noch nie mit QuickBASIC in Berührung gekommen ist, kann den Abschnitt getrost überspringen – er ist eher für Programmierer interessant, die von QuickBASIC zu FreeBASIC wechseln wollen. Trotz hoher Kompatibilität zu QuickBASIC gibt es eine Reihe von Unterschieden zwischen beiden BASIC-Dialekten. Einige davon beruhen auf der einfachen Tatsache, dass QuickBASIC für MS-DOS entwickelt wurde und einige Elemente wie beispielsweise direkte Hardware-Zugriffe unter echten Multitaskingsystemen wie höhere Windows- Systeme oder Linux nicht oder nur eingeschränkt laufen. Des Weiteren legt FreeBASIC größeren Wert auf eine ordnungsgemäße Variablendeklaration, womit Programmierfehler leichter vermieden werden können. Hinweis: Mit der Compiler-Option -lang qb kann eine größere Kompatibilität zu QuickBASIC erzeugt werden. Verwenden Sie diese Option, um alte Programme zum Laufen zu bringen. Mehr dazu erfahren Sie im Kapitel ??, S. ??. • Nicht explizit deklarierte Variablen (DEF###) In FreeBASIC müssen alle Variablen und Arrays explizit (z. B. durch DIM) deklariert werden. Die Verwendung von DEFINT usw. ist nicht mehr zulässig. • OPTION BASE Die Einstellung der unteren Array-Grenze mittels OPTION BASE ist nicht mehr zulässig. Sofern die untere Grenze eines Arrays nicht explizit angegeben wird, verwendet FreeBASIC den Wert 0. • Datentyp INTEGER QuickBASIC verwendet 16 Bit für die Speicherung eines Integers. In FreeBASIC sind es, je nach Compilerversion, 32 bzw. 64 Bit. Verwenden Sie den Datentyp SHORT, wenn Sie eine 16-bit-Variable verwenden wollen. • Funktionsaufruf Alle Funktionen und Prozeduren, die aufgerufen werden, bevor sie definiert wurden, müssen mit DECLARE deklariert werden. Der Befehl CALL wird in FreeBASIC nicht mehr unterstützt.
    [Show full text]
  • ~ ARTISAN® with Experienced Engineers and Technicians on Staff
    Full-service, independent repair center -~ ARTISAN® with experienced engineers and technicians on staff. TECHNOLOGY GROUP ~I We buy your excess, underutilized, and idle equipment along with credit for buybacks and trade-ins. Custom engineering Your definitive source so your equipment works exactly as you specify. for quality pre-owned • Critical and expedited services • Leasing / Rentals/ Demos equipment. • In stock/ Ready-to-ship • !TAR-certified secure asset solutions Expert team I Trust guarantee I 100% satisfaction Artisan Technology Group (217) 352-9330 | [email protected] | artisantg.com All trademarks, brand names, and brands appearing herein are the property o f their respective owners. Find the Measurement Computing / CEC PC-488 at our website: Click HERE Program and documentation copyrighted 1986, 1998, 2003 by Capital Equipment Corporation (CEC). The software interpreter contained in EPROM/ROM is copyrighted and all rights are reserved by Capital Equipment Corporation. Copying or duplicating this product is a violation of law. Application software libraries provided on disk are copyrighted by Capital Equipment Corporation. The purchaser is granted the right to include portions of this software in products which use one of CEC's IEEE-488 interface boards (including those sold through resellers such as Keithley Instruments, etc.). The software may not be distributed other than for the application just mentioned. Purchasers of this product may copy and use the programming examples contained in this book. No other parts of this book may be reproduced or transmitted in any form or by any means, electronic, optical, or mechanical, including photocopying and recording, or by any information storage and retrieval system, without permission in writing from Capital Equipment Corporation.
    [Show full text]
  • BASIC Programming with Unix Introduction
    LinuxFocus article number 277 http://linuxfocus.org BASIC programming with Unix by John Perr <johnperr(at)Linuxfocus.org> Abstract: About the author: Developing with Linux or another Unix system in BASIC ? Why not ? Linux user since 1994, he is Various free solutions allows us to use the BASIC language to develop one of the French editors of interpreted or compiled applications. LinuxFocus. _________________ _________________ _________________ Translated to English by: Georges Tarbouriech <gt(at)Linuxfocus.org> Introduction Even if it appeared later than other languages on the computing scene, BASIC quickly became widespread on many non Unix systems as a replacement for the scripting languages natively found on Unix. This is probably the main reason why this language is rarely used by Unix people. Unix had a more powerful scripting language from the first day on. Like other scripting languages, BASIC is mostly an interpreted one and uses a rather simple syntax, without data types, apart from a distinction between strings and numbers. Historically, the name of the language comes from its simplicity and from the fact it allows to easily teach programming to students. Unfortunately, the lack of standardization lead to many different versions mostly incompatible with each other. We can even say there are as many versions as interpreters what makes BASIC hardly portable. Despite these drawbacks and many others that the "true programmers" will remind us, BASIC stays an option to be taken into account to quickly develop small programs. This has been especially true for many years because of the Integrated Development Environment found in Windows versions allowing graphical interface design in a few mouse clicks.
    [Show full text]
  • An ECMA-55 Minimal BASIC Compiler for X86-64 Linux®
    Computers 2014, 3, 69-116; doi:10.3390/computers3030069 OPEN ACCESS computers ISSN 2073-431X www.mdpi.com/journal/computers Article An ECMA-55 Minimal BASIC Compiler for x86-64 Linux® John Gatewood Ham Burapha University, Faculty of Informatics, 169 Bangsaen Road, Tambon Saensuk, Amphur Muang, Changwat Chonburi 20131, Thailand; E-mail: [email protected] Received: 24 July 2014; in revised form: 17 September 2014 / Accepted: 1 October 2014 / Published: 1 October 2014 Abstract: This paper describes a new non-optimizing compiler for the ECMA-55 Minimal BASIC language that generates x86-64 assembler code for use on the x86-64 Linux® [1] 3.x platform. The compiler was implemented in C99 and the generated assembly language is in the AT&T style and is for the GNU assembler. The generated code is stand-alone and does not require any shared libraries to run, since it makes system calls to the Linux® kernel directly. The floating point math uses the Single Instruction Multiple Data (SIMD) instructions and the compiler fully implements all of the floating point exception handling required by the ECMA-55 standard. This compiler is designed to be small, simple, and easy to understand for people who want to study a compiler that actually implements full error checking on floating point on x86-64 CPUs even if those people have little programming experience. The generated assembly code is also designed to be simple to read. Keywords: BASIC; compiler; AMD64; INTEL64; EM64T; x86-64; assembly 1. Introduction The Beginner’s All-purpose Symbolic Instruction Code (BASIC) language was invented by John G.
    [Show full text]
  • Xfont Documentation
    XFont Lib for FreeBASIC Introduction XFont is Object Oriented Programming (OOP) library designed for drawing smooth font text. This lib support 1, 2, 4, 8, 15/16, 24/32 bpp depth. Some of the most exciting features: - Support alpha blending. This works in 15/16 and 24/32 bpp depths. - Alpha mask for drawing smooth font text. - 8 fonts slot can be loaded with x-font file format. - Included with internal standard font. - Easy to use. - No initialize needed between switching screen mode. - No ScreenLock/ScreenUnlock switch needed (For FB 0.20.0b or above only). - Unicode support (ISO 10646). About XFont Lib was developed by Victor Phoa. Copyright 2008-2010 © Xaviorsoft Studios. All Rights Reserved. Note All example code written is designed for FB 0.20.0 or above. FB 0.18.x user should add ScreenLock/ScreenUnlock switch manually to make example code working correctly. Keywords List (Arrange by mostly used order) DrawString Syntax Declare Sub DrawString Overload (ByVal Target As Any Ptr=0, ByRef Text As wString Ptr, ByVal X As Short, _ ByVal Y As Short, ByVal ScaleX As Single=1, ByVal ScaleY As Single=1, _ ByVal Direction As uByte=0) Declare Sub DrawString Overload (ByVal Target As Any Ptr=0, ByRef Text As String, ByVal X As Short, _ ByVal Y As Short, ByVal ScaleX As Single=1, ByVal ScaleY As Single=1, _ ByVal Direction As uByte=0) Declare Sub DrawString Overload (ByVal Target As Any Ptr=0, ByRef Text As uInteger Ptr, ByVal X As Short, _ ByVal Y As Short, ByVal ScaleX As Single=1, ByVal ScaleY As Single=1, _ ByVal Direction As uByte=0) Usage Drawstring [target], text, x, y, [scalex], [scaley], [direction] Description Displays text at x, y in graphics modes.
    [Show full text]
  • GWBASIC User's Manual
    GWBASIC User's Manual User's Guide GW-BASIC User's Guide Chapters 1. Welcome Microsoft Corporation 2. Getting Started Information in this document is subject to change without 3. Reviewing and Practicing notice and does not represent a commitment on the part of 4. The Screen Editor Microsoft Corporation. The software described in this 5. Creating and Using Files document is furnished under a license agreement or 6. Constants, Variables, nondisclosure agreement. It is against the law to copy this Expressions and Operators software on magnetic tape, disk, or any other medium for any Appendicies purpose other than the purchaser's personal use. A. Error Codes and Messages © Copyright Microsoft Corporation, 1986, 1987. All rights B. Mathematical Functions reserved. C. ASCII Character Codes D. Assembly Language Portions copyright COMPAQ Computer Corporation, 1985 E. Converting Programs Simultaneously published in the United States and Canada. F. Communications G. Hexadecimal Equivalents Microsoft®, MS-DOS®, GW-BASIC® and the Microsoft logo H. Key Scan Codes are registered trademarks of Microsoft Corporation. I. Characters Recognized Compaq® is a registered trademark of COMPAQ Computer Glossary Corporation. DEC® is a registered trademark of Digital Equipment Corporation. User's Reference Document Number 410130001-330-R02-078 ABS Function ASC Function ATN Function GW-BASIC User's Reference AUTO Command Microsoft Corporation BEEP Statement BLOAD Command Information in this document is subject to change without BSAVE Command notice and does not represent a commitment on the part of Microsoft Corporation. The software described in this CALL Statement document is furnished under a license agreement or CDBL Function nondisclosure agreement.
    [Show full text]