The MSX Red Book (Revised Version 1997/08/06) Notes from The

Total Page:16

File Type:pdf, Size:1020Kb

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. Z80 is a trademark of Zilog Corp. ACADEMY is trademark of Alfred . INTRODUCTION Aims This book is about MSX computers and how they work. For technical and commercial reasons MSX computer manufacturers only make a limited amount of information available to the end user about the design of their machines. Usually this will be a fairly detailed description of Microsoft MSX BASIC together with a broad outline of the system hardware. While this level of documentation is adequate for the casual user it will inevitably prove limiting to anyone engaged in more sophisticated programming. The aim of this book is to provide a description of the standard MSX hardware and software at a level of detail sufficient to satisfy that most demanding of users, the machine code programmer. It is not an introductory course on programming and is necessarily of a rather technical nature. It is assumed that you already possess, or intend to acquire by other means, an understanding of the Z80 Microprocessor at the machine code level. As there are so many general purpose books already in existence about the Z80 any description of its characteristics would simply duplicate widely available information. Organization The MSX Standard specifies the following as the major functional components in any MSX computer: (1) Zilog Z80 Microprocessor (2) Intel 8255 Programmable Peripheral Interface (3) Texas 9929 Video Display Processor (4) General Instrument 8910 Programmable Sound Generator (5) 32 KB MSX BASIC ROM (6) 8 KB RAM minimum Although there are obviously a great many additional components involved in the design of an MSX computer they are all small-scale, non-programmable ones and therefore "invisible" to the user. Manufacturers generally have considerable freedom in the selection of these small-scale components. The programmable components cannot be varied and therefore all MSX machines are identical as far as the programmer is concerned. Chapters 1, 2 and 3 describe the operation of the Programmable Peripheral Interface, Video Display Processor and Programmable Sound Generator respectively. These three devices ÄÄ 1 ÄÄ INTRODUCTION provide the interface between the Z80 and the peripheral hardware on a standard MSX machine. All occupy positions on the Z80 I/O (Input/output) Bus. Chapter 4 covers the software contained in the first part of the MSX ROM. This section of the ROM is concerned with controlling the machine hardware at the fine detail level and is known as the ROM BIOS (Basic Input Output System). It is structured in such a way that most of the functions a machine code programmer requires, such as keyboard and video drivers, are readily available. Chapter 5 describes the software contained in the remainder of the ROM, the Microsoft MSX BASIC Interpreter. Although this is largely a text-driven program, and consequently of less use to the programmer, a close examination reveals many points not documented by manufacturers. Chapter 6 is concerned with the organization of system memory. Particular attention is paid to the Workspace Area, that section of RAM from F380H to FFFFH, as this is used as a scratchpad by the BIOS and the BASIC Interpreter and contains much information of use to any application program. Chapter 7 gives some examples of machine code programs that make use of ROM features to minimize design effort. It is believed that this book contains zero defects, if you know otherwise the author would be delighted to hear from you. This book is dedicated to the Walking Nightmare. ÄÄ 2 ÄÄ 1. PROGRAMMABLE PERIPHERAL INTERFACE The 8255 PPI is a general purpose parallel interface device configured as three eight bit data ports, called A, B and C, and a mode port. It appears to the Z80 as four I/O ports through which the keyboard, the memory switching hardware, the cassette motor, the cassette output, the Caps Lock LED and the Key Click audio output can be controlled. Once the PPI has been initialized access to a particular piece of hardware just involves writing to or reading the relevant I/O port. PPI Port A (I/O Port A8H) 7 6 5 4 3 2 1 0 ÚÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Page 3 ³ Page 2 ³ Page 1 ³ Page 0 ³ ³ PSLOT# ³ PSLOT# ³ PSLOT# ³ PSLOT# ³ ³ C000-FFFF ³ 8000-BFFF ³ 4000-7FFF ³ 0000-3FFF ³ ÀÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÙ Figure 1: Primary Slot Register This output port, known as the Primary Slot Register in MSX terminology, is used to control the memory switching hardware. The Z80 Microprocessor can only access 64 KB of memory directly. This limitation is currently regarded as too restrictive and several of the newer personal computers employ methods to overcome it. MSX machines can have multiple memory devices at the same address and the Z80 may switch in any one of them as required. The processor address space is regarded as being duplicated "sideways" into four separate 64 KB areas, called Primary Slots 0 to 3, each of which receives its own slot select signal alongside the normal Z80 bus signals. The contents of the Primary Slot Register determine which slot select signal is active and therefore which Primary Slot is selected. To increase flexibility each 16 KB "page" of the Z80 address space may be selected from a different Primary Slot. As shown in Figure 1 two bits of the Primary Slot Register are required to define the Primary Slot number for each page. The first operation performed by the MSX ROM at power-up is to search through each slot for RAM in pages 2 and 3 (8000H to FFFFH). The Primary Slot Register is then set so that the relevant slots are selected thus making the RAM permanently available. The memory configuration of any MSX machine can be ÄÄ 3 ÄÄ 1. PROGRAMMABLE PERIPHERAL INTERFACE determined by displaying the Primary Slot Register setting with the BASIC statement: PRINT RIGHT$("0000000"+BIN$(INP(&HA8)),8) As an example "10100000" would be produced on a Toshiba HX10 where pages 3 and 2 (the RAM) both come from Primary Slot 2 and pages 1 and 0 (the MSX ROM) from Primary Slot 0. The MSX ROM must always be placed in Primary Slot 0 by a manufacturer as this is the slot selected by the hardware at power-up. Other memory devices, RAM and any additional ROM, may be placed in any slot by a manufacturer. A typical UK machine will have one Primary Slot containing the MSX ROM, one containing 64 KB of RAM and two slots brought out to external connectors. Most Japanese machines have a cartridge type connector on each of these external slots but UK machines usually have one cartridge connector and one IDC connector. Expanders System memory can be increased to a theoretical maximum of sixteen 64 KB areas by using expander interfaces. An expander plugs into any Primary Slot to provide four 64 KB Secondary Slots, numbered 0 to 3, instead of one primary one. Each expander has its own local hardware, called a Secondary Slot Register, to select which of the Secondary Slots should appear in the Primary Slot. As before pages can be selected from different Secondary Slots. 7 6 5 4 3 2 1 0 ÚÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄ¿ ³ Page 3 ³ Page 2 ³ Page 1 ³ Page 0 ³ ³ SSLOT# ³ SSLOT# ³ SSLOT# ³ SSLOT# ³ ÀÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÙ Figure 2: Secondary Slot Register Each Secondary Slot Register, while actually being an eight bit read/write latch, is made to appear as memory location FFFFH of its Primary Slot by the expander hardware. In order to gain access to this location on a particular expander it will usually be necessary to first switch page 3 (C000H to FFFFH) of that Primary Slot into the processor address space. The Secondary Slot Register can then be modified and, if necessary, page 3 restored to its original Primary Slot setting. Accessing memory in expanders can become rather a convoluted process. It is apparent that there must be some way of determining whether a Primary Slot contains ordinary RAM or an expander in ÄÄ 4 ÄÄ 1. PROGRAMMABLE PERIPHERAL INTERFACE order to access it properly. To achieve this the Secondary Slot Registers are designed to invert their contents when read back.
Recommended publications
  • 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]
  • 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.
    [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]
  • 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]
  • Volume 158 March, 2020 Pclinuxos Family Hhaappppyy Member Spotlight: Tunnelrat Mind Your Step: Vintage Computing on Pclinuxos Sstt
    Volume 158 March, 2020 PCLinuxOS Family HHaappppyy Member Spotlight: tunnelrat Mind Your Step: Vintage Computing On PCLinuxOS SStt.. PPaattrriicckk''ss Short Topix: Google Chrome To Start Blocking Downloads GIMP Tutorial: DDaayy Photo Editing Revisited PCLinuxOS Recipe Corner: Chicken Gloria Casserole ms_meme's Nook: When I'm Sixty-Five A Very Bad Time For Android Apps? Or Just Cleaning Up The Mess? Racing Back To The Past: Horizon Chase Turbo On PCLinuxOS! PCLinuxOS Puzzled Partitions PCLinuxOS Magazine And more inside! Page 1 In This Issue ... 3 From The Chief Editor's Desk... 5 Mind Your Step: Vintage Computing on PCLinuxOS The PCLinuxOS name, logo and colors are the trademark of 11 Screenshot Showcase Texstar. 12 A Very Bad Time For Android Apps? The PCLinuxOS Magazine is a monthly online publication containing PCLinuxOS-related materials. It is published Or Just Cleaning Up The Mess? primarily for members of the PCLinuxOS community. The magazine staff is comprised of volunteers from the 14 PCLinuxOS Recipe Corner: Chicken Gloria Casserole PCLinuxOS community. 15 Screenshot Showcase Visit us online at http://www.pclosmag.com 16 ms_meme's Nook: Sentimental Forum This release was made possible by the following volunteers: 17 Short Topix: Google Chrome To Start Blocking Downloads Chief Editor: Paul Arnote (parnote) Assistant Editor: Meemaw 21 Screenshot Showcase Artwork: Sproggy, Timeth, ms_meme, Meemaw Magazine Layout: Paul Arnote, Meemaw, ms_meme 22 GIMP Tutorial: Photo Editing Revisited HTML Layout: YouCanToo 24 PCLinuxOS Family Member
    [Show full text]
  • Beginning Microsoft® Small Basic
    ® Beginning Microsoft Small Basic ® ® ® ™ Plus a Porting Guide to Microsoft Visual Basic , C# , and Java © PHILIP CONROD & LOU TYLEE, 2010 Kidware Software PO Box 701 Maple Valley, WA 98038 http://www.computerscienceforkids.com http://www.kidwaresoftware.com Copyright © 2010 by Philip Conrod & Lou Tylee. All rights reserved Kidware Software PO Box 701 Maple Valley, Washington 98038 1.425.413.1185 www.kidwaresoftware.com www.computerscienceforkids.com www.biblebytebooks.com All Rights Reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher. Printed in the United States of America ISBN-13: 978-1-937161-19-4 Book Cover Illustration by Kevin Brockschmidt Copy Editor: Stephanie Conrod This copy of the Beginning Microsoft Small Basic book and the associated software is licensed to a single user. Copies of the course are not to be distributed or provided to any other user. Multiple copy licenses are available for educational institutions. Please contact Kidware Software for school site license information. This guide was developed for the course, “Beginning Microsoft Small Basic,” produced by Kidware Software, Maple Valley, Washington. It is not intended to be a complete reference to the Small Basic language. Please consult the Microsoft website for detailed reference information. This guide refers to several software and hardware products by their trade names. These references are for informational purposes only and all trademarks are the property of their respective companies and owners. Microsoft, Visual Studio, Small Basic, Visual Basic, Visual J#, and Visual C#, IntelliSense, Word, Excel, MSDN, and Windows are all trademark products of the Microsoft Corporation.
    [Show full text]
  • Gambas Almost Means Basic Today’S Menu
    Gambas Gambas Almost Means BASic Today’s Menu... • Gambas – What ? – Why ? • How it works • Demo I - Hello, World! • Features – I • Demo II - Analog Clock • Features - II • Gambas vs VB • Demo IV – Movie Player • Its future Gambas – A better Visual Basic • Gambas is a – Graphical Development Environment based on a Basic interpreter – Intended to be a better Visual Basic • VB replacement for Linux, not a VB clone Gambas - Why? • Leveraging the power of Linux • Leveraging our current knowledge • Unique mix of features - help thousands of VB developers to migrate from Windows to Linux • Converting legacy code Gambas can help bring more applications and users more quickly to Linux Demo - I Hello, World! Gambas- How it works • .project file • .form files • .class files • "gbc" -> binary "pcode". • pcode in ".gambas“ • "gbx" • Components – qt-component – GTK component? - Write them! ;-) • "gba" –> project + pcode = so called "executable file" Gambas – Features • Component Model – designed to be extensible. base language and all the rest = components – Even the graphical toolkit is just a component. – Soon, GTK+ component • Can write multi language programs – RAD offers a wizard to translate • Gambas offers database access – Currently can manage MySQL, PostgreSQL and Sqlite Gambas – Features (cont..) • Distribution wizards – can distribute your program as source code – also create binary packages • Can write network applications using Gambas – TCP, Unix and UDP sockets, clients and servers, serial port devices – queries to HTTP servers, FTP client • XML is work in progress Demo II Analog Clock Gambas v/s VB • Non Language-Specific Differences – Gambas - separate, in a .form and a .class file, VB - combined – Form controls in Gambas programs are private by default.
    [Show full text]
  • PC Update June 2019
    >PC_Update June 2019 Joshua tree, Nevada desert outside Las Vegas. Editorial >PC_Update Is there a “Them and Us?” June 2019 I surrender the editor’s desk in a couple of months, and lose the abil- The newsletter of ity to write editorials. So I should Melbourne PC User Group Inc. get this off my chest while I can. Suite 26, Level 1, 479 Warrigal Road Moorabbin 3189 Phone (03) 9276 4000 Invariably, as a committee member, Office hours 9.30am-4.30pm (Mon-Friday) you catch echoes of rumblings from email [email protected] non-committee members that ABN: 43 196 519 351 “they” should do this, why aren’t Victorian Association Registration A0003293V “they” doing that? I may at one time Editor: David Stonier-Gibson [email protected] have been one of those grumblers in the corridors, but then I decided to Tech editors: Roger Brown, Kevin Martin, Dennis Parsons, stand for the committee on the Miles ground that you have more chance Proof Readers: Harry Lewis, Tim McQueen, Paul Woolard, of bringing about change if you are Hugh Macdonald inside the tent than outside. It’s not about the desire for power, or the trappings of power. It’s Librarians: Malin Robertson [email protected] about being prepared to put in many hours and invest a Choy Lai [email protected] lot of emotional capital in order to try and bring about the vision you have to help the club thrive and prosper. Committee Executive President: John Hall A few years ago we had a president who tried to run the Vice President: Stephen Zuluaga club like he probably ran his business, by dictatorially mak- Secretary: John Swale ing unilateral decisions and riding roughshod over other Treasurer: Stewart Gruneklee committee members, not to mention non-committee Members: Hugh Macdonald • Bahador Nayebifar • Rob members.
    [Show full text]
  • Assignment #6—Basic Due Date: Friday, March 13 Note: Assignment #6 Will Not Be Accepted After 5:00P.M
    Eric Roberts Handout #44 CS 106B February 27, 2015 Assignment #6—Basic Due date: Friday, March 13 Note: Assignment #6 will not be accepted after 5:00P.M. on Monday, March 16 – 2 – In 1975, Bill Gates and Paul Allen started the company that would become Microsoft by writing a BASIC interpreter for the first microcomputer, the Altair 8800 developed by the MITS Corporation of Albuquerque, New Mexico. By making it possible for users to write programs for a microcomputer without having to code in machine language, the Altair and its implementation of BASIC helped to start the personal computer revolution. In this assignment, your mission is to build a minimal BASIC interpreter, starting with the code for the integer expression evaluator presented in Chapter 19. This assignment is designed to accomplish the following objectives: • To increase your familiarity with expression trees and class inheritance. • To give you a better sense of how programming languages work. Learning how an interpreter operates—particularly one that you build yourself—provides useful insights into the programming process. • To offer you the chance to adapt an existing program into one that solves a different but related task. The majority of programming that people do in the industry consists of modifying existing systems rather than creating them from scratch. What is BASIC? The programming language BASIC—the name is an acronym for Beginner’s All-purpose Symbolic Instruction Code—was developed in the mid-1960s at Dartmouth College by John Kemeny and Thomas Kurtz. It was one of the first languages designed to be easy to use and learn.
    [Show full text]
  • Fastbasic 4.3 - Fast BASIC Interpreter for the Atari 8-Bit Computers
    FastBasic 4.3 - Fast BASIC interpreter for the Atari 8-bit computers Contents 1 Introduction 1 2 First Steps 2 3 Compiling The Program To Disk3 4 About The Syntax4 5 Expressions 4 5.1 Numeric Values . .5 5.2 Numeric Variables . .5 5.3 Numeric Operators . .5 5.4 Boolean Operators . .6 5.5 Arrays . .6 5.6 String Values . .7 5.7 String Variables . .8 5.8 Standard Functions . .9 5.9 Atari Specific Functions . .9 5.10 Floating Point Functions . 10 5.11 String Functions . 11 5.12 Low level Functions . 11 6 List Of Statements 12 6.1 Console Print and Input Statements . 12 6.2 Control Statements . 13 6.3 Graphic and Sound Statements . 16 6.4 Device Input and Output Statements . 18 6.5 General Statements . 20 6.6 Floating Point Statements . 21 6.7 Low Level Statements . 22 6.8 Display List Interrupts . 23 1 Introduction FastBasic is a fast interpreter for the BASIC language on the Atari 8-bit computers. One big dierence from other BASIC interpreters in 1980s era 8-bit computers is the lack of line numbers, as well as an integrated full-screen editor. This is similar to newer programming environments, giving 1 FastBasic 4.3 - Fast BASIC interpreter for the Atari 8-bit computers the programmer a higher degree of flexibility. Another big dierence is that default variables and operations are done using integer numbers; this is one of the reasons that the programs run so fast relative to its peers from the 1980s. The other reason is that the program is parsed on run, generating optimized code for very fast execution.
    [Show full text]
  • Part 1 of Lll 8080 Basic Interpreter
    SOFTWARE SECTION MICROCOMPUTER DEVELOPMENT SOFTWARE PART 1 OF LLL 8080 BASIC INTERPRETER Submitted by E. R. Fisher By Jerry Barber & Royce Eckard Lawrence Livermore Laboratory FOREWARD Execution time The BASIC interpreter was developed at the Univer­ Operation on 8080 (m secl sity of Idaho by John Dickenson. Jerry Barber. and John Teeter under a contract with the Lawrence Liver­ ADD 2.4 m sec SUBSTRACT more Laboratory. The floating point package was 2.4 m sec MULTIPLY developed by David Mead. modified by Hal Brand and 5.4 m sec DIVIDE 7.0 m sec Frank Olken. In addition. Jerry Barber. as an LLL summer employee. made significant contributions to this document and to implementing the BASIC lan­ BASIC INTERPRETER LANGUAGE GRAMMAR guage in an MCS-8080 microprocessor. COMMANDS - Six BASIC interpreter commands INTRODUCTION are provided. These commands are: This article is Part 1 of a series of four articles RUN Begins program execution covering the LLL 8080 BASIC interpreter just released Clears program from merrory to the public domain by Lawrence Livermore Labor­ SCR Lists ASCII program in merrory atory. The other three articles that will be published in LIST Punches paper-tape copy of program the next three months are: PLST PTAPE Reads paper-tape copy of program PART 2 - LLL 8080 BASIC INTERPRETER SOURCE using high-speed reader PROGRAM WITHOUT FLOAT O\ITRL S Interrupts program during execution PART 3 - LLL 8080 BASIC FLOAT SOURCE PRO­ GRAM PART 4 - LLL 8080 OCTAL DEBUGGING SOURCE The LIST and PLST commands can be followed by PROGRAM one or two line numbers to indicate that only a part of the program is to be listed.
    [Show full text]
  • Altirra BASIC Reference Manual 2018-08-12 Edition Avery Lee Copyright © 2014-2018 Avery Lee, All Rights Reserved
    Altirra BASIC Reference Manual 2018-08-12 Edition Avery Lee Copyright © 2014-2018 Avery Lee, All Rights Reserved. Permission is granted to redistribute this document in verbatim form as long as it is done free of charge and for non-commercial purposes. All trademarks are the property of their respective owners. While the information in this document is presumed correct, no guarantee is provided as to its accuracy or fitness for a particular use. Table of Contents Introduction...........................................................................................................................................4 Starting Altirra BASIC..........................................................................................................................4 Immediate (direct) mode.......................................................................................................................5 Syntax....................................................................................................................................................6 Program control.....................................................................................................................................8 Listing a program..................................................................................................................................9 Load/save.............................................................................................................................................10 Expressions..........................................................................................................................................11
    [Show full text]