diff --git a/.Docs/Command Guide.md b/.Docs/Command Guide.md index dd48aeeb..80e450fb 100644 --- a/.Docs/Command Guide.md +++ b/.Docs/Command Guide.md @@ -1,6 +1,6 @@ # A2osX Command Guide -### Updated January 16, 2020 +### Updated January 27, 2020 This Guide provides information on all the A2osX commands and utilities. This Guide helps you not only learn the purpose of each command but also what options a command supports and what arguments it either supports or requires. diff --git a/.Docs/Developers Guide.md b/.Docs/Developers Guide.md index bb59192e..c3f63d90 100644 --- a/.Docs/Developers Guide.md +++ b/.Docs/Developers Guide.md @@ -1,6 +1,6 @@ # A2osX Developers Guide -### Updated October 22, 2019 +### Updated January 27, 2020 This Guide provides information on the development process and tools used to build A2osX. The core of A2osx is currently, and likely always will be, developed in 65C02 Assembly Language. Assembly is used for the speed, compactness and efficient memory management necessary for the central core, or kernel, of A2osX. Currently all of the programs distributed with A2osX are also written in Assembly, however, a it is expected that a C compiler or preprocessor that creates Assembly will be made available in the future. @@ -104,4 +104,4 @@ The full A2osX license can be found **[Here](../LICENSE)**. ## Copyright -Copyright 2015 - 2019, Remy Gibert and the A2osX contributors. +Copyright 2015 - 2020 Remy Gibert and the A2osX contributors. diff --git a/.Docs/Glossary.md b/.Docs/Glossary.md new file mode 100644 index 00000000..25388bbb --- /dev/null +++ b/.Docs/Glossary.md @@ -0,0 +1,1415 @@ +# A2osX Glossary + +### Updated January 27, 2020 + +This document contains a glossary of terms used throughout the A2osX documentation. + +**128K Apple II**: Any standard Apple II with both main and auxiliary 64K banks of RAM. That includes all models of the Apple IIc and some models of the Apple IIe, including those with the Extended 80-Column Text Card installed. + +**640 mode**: An Apple IIGS video display mode, 640 pixels horizontally by 200 pixels vertically. + +**65O2**: The microprocessor used in the Apple II, in the Apple II Plus, and in early models of the Apple IIe. The 65O2 is an MOS device with 8-bit data registers and 16-bit address registers. + +**65C02**: A CMOS version of the 6502; the microprocessor used in the enhanced Apple IIe, the extended keyboard IIe, and the Apple IIc. + +**65816**: A general term for the type of microprocessor used in the Apple IIGS. The 65816 is related to, but more advanced than, the 6502 microprocessor. It has a 16-bit data bus and a 24-bit address bus. + +**65816 assembly language**: A low level programming language written for the 65816 family of microprocessors. + +**65C816**: The microprocessor used in the Apple IIGS. The 65C816 is a CMOS device with 16-bit data registers and 24-bit address registers. + +**8O-column text card**: A peripheral card that allows the Apple II, Apple II Plus, and Apple IIe computers to display text in 80 columns (in addition to the standard 40 columns). + +**access (or access byte)**: An attribute of a ProDOS file that controls whether the file may be read from, written to, renamed, or backed up. + +**access byte**: An attribute of a ProDOS file that determines what types of operations, such as reading or writing, may be performed on the file. + +**algorithm**: A step-by-step procedure for solving a problem or accomplishing a task. + +**American Standard Code for Information Interchange**: See ASCII. + +**AND**: A logical operator that produces a true result if both its operands are true, and a false result if either or both its operands are false. Compare OR, NOT. + +**ANSI**: Acronym for American National Standards Institute, which sets standards for many technical fields and is the most common standard for computer terminals. + +**Apple II**: A family of computers, including the original Apple II, the Apple II Plus, the Apple IIe, the Apple IIc, and the Apple IIGS. + +**Apple II Pascal**: A software system for the Apple II family that lets you create and execute programs written in the Pascal programming language. Apple II Pascal was adapted by Apple Computer from the University of California, San Diego, Pascal Operating System (UCSD Pascal). + +**Applesoft BASIC**: The Apple II dialect of the BASIC programming language. An interpreter for creating and executing Applesoft BASIC programs is built into the firmware of computers in the Apple II family. See also BASIC, Integer BASIC. + +**Apple II Plus**: A personal computer in the Apple II family with expansion slots that allow the user to enhance the computer's capabilities with peripheral and auxiliary cards. + +**Apple IIc**: A transportable personal computer in the Apple II family, with a disk drive, serial ports, and 80-column display capability built in. + +**Apple IIe**: A personal computer in the Apple II family with seven expansion slots and an auxiliary memory slot that allow the user to enhance the computer's capabilities with peripheral memory and video enhancement cards. + +**Apple IIe 80-Column Text Card**: A peripheral card that plugs into the Apple IIe's auxiliary memory slot and enables the computer to display text as either 40 or 80 characters per line. + +**Apple IIe Extended 80-Column Text Card**: A peripheral card that plugs into the Apple IIe's auxiliary memory slot and allows the computer to display either 40 or 80 characters per line while extending the computer's memory capacity by 64K. + +**Apple IIGS**: The most advanced computer in the Apple II family. It features expanded memory, advanced sound and graphics, and the Apple IIGS Toolbox of programming routines. The Apple IIGS uses a 1,6-bit microprocessor and has 256K of RAM. It has slots like the Apple IIe and ports like the Apple IIc, and contains a 15-voice custom sound chip. + +**Apple key**: A modifier key on the Apple IIGS keyboard, marked with both an Apple icon and a spinner, the icon used on the equivalent key on some Macintosh keyboards. It performs the same functions as the Open Apple key on standard Apple II machines. + +**AppleTalk**: Apple's local-area network for Apple II and Macintosh personal computers and the LaserWriter and ImageWriter II printers. Like the Macintosh, the Apple IIGS has the AppleTalk interface built in. The Apple WorkStation Card adds AppleTalk to an Enhanced Apple IIe. + +**AppleTalk connector**: A piece of equipment consisting of a connection box, a short cable, and an 8-pin miniature DIN connector that enables an Apple IIGS to be part of an AppleTalk network. + +**application**: A stand-alone program that performs a specific function, such as word processing, drawing, or telecommunications. Compare, for example, library or device driver. + +**argument**: A value on which a function or statement operates; it can be a number or a variable. For example, in the BASIC statement VTAB 10, the number 10 is the argument. + +**arithmetic expression**: A combination of numbers and arithmetic operators (such as 3 + 5) that indicates some operation to be carried out. + +**arithmetic operator**: An operator, such as +, that combines numeric values to produce a numeric result. Compare logical operator, relational operator. + +**ASCII**: Acronym for American Standard Code for Information Interchange, pronounced "ASK-ee." A code in which the numbers from 0 to 127 stand for text characters. ASCII code is used to represent text inside a computer and to transmit text between computers or between a computer and a peripheral device. Compare EBCDIC. + +**assembler**: A language translator that converts a program written in assembly language into an equivalent program in machine language. The opposite of a disassembler. Compare compiler. + +**assembly language**: A low-level programming language in which individual machine language instructions are written in a symbolic form that's easier to understand than machine language itself. Each assembly-language instruction produces one machine-language instruction. See also machine language. + +**auxiliary slot**: The special expansion slot inside the Apple IIe used for the Apple IIe 80-Column Text Card or Extended 80-Column Text Card, and also for the RGB monitor card. The slot is labeled 'AUX. CONNECTOR" on the circuit board. + +**auxiliary type**: A secondary classification of ProDOS files. A file's auxiliary type field may contain information of use to the applications that read it. Compare file type. + +**background color**: The color of background pixels in text; by default it is black. + +**background process**: A procedure run concurrently in the background, not associated with a user, for example a daemon like TELNETD. + +**backup bit**: A bit in a file's access byte that tells backup programs whether the file has been altered since the last time it was backed up. + +**BASIC**: Acronym for Beginners All-purpose Symbolic Instruction Code. BASIC is a high-level programming language designed to be easy to learn. Two versions of BASIC are available from Apple Computer for use with all Apple ll-family systems: Applesoft BASIC (built into the firmware) and Integer BASIC. + +**batch**: A mode of executing a computer program which all code and data required by the program are loaded into the computer at the beginning, the program is run, and all results are output at the end. Batch mode is non-interactive. + +**baud**: A unit of data transmission speed: the number of discrete signal state changes per second. Often, but not always, equivalent to bits per second. Compare bit rate. + +**baud rate**: The rate which serial data is transferred, measured in signal transitions per second. It takes approximately 10 signal transitions to transmit a single character. + +**binary**: A method of numeric representation using abase-2 system. Valid digits are 0 and 1. Compare hexadecimal, decimal. Characterized by having two different components, or by having only two alternatives or values available; sometimes used synonymously with binary system. + +**binary digit**: The smallest unit of information in the binary number system; a 0 or a 1. Also called a bit. + +**binary file**: (1) A file whose data is to be interpreted in binary form. Machine-language programs and pictures are stored in binary files. Compare text file. (2) A file in binary file format. + +**binary operator**: An operator that combines two operands to produce a result. For example, + is a binary arithmetic operator; < is a binary relational operator; OR is a binary logical operator. Compare unary operator. + +**binary system**: The representation of numbers in the base-2 system, using only the two digits 0 and 1. For example, the numbers 0, 1, 2,3, and 4 become 0, 1, 10, 11, and 100 in binary notation. The binary system is commonly used in computers because the values 0 and 1 can easily be represented in a variety of ways, such as the presence or absence of current, positive or negative voltage, or a white or black dot on the display screen. A single binary digit-a 0 or a 1-is called a bit. Compare decimal, hexadecimal. + +**bit**: A contraction of binary digit. The smallest unit of information that a computer can hold. The value of a bit (1 or 0) represents a simple two-way choice, such as yes or no, on or off, positive or negative, something or nothing. + +**bit rate**: The speed at which bits are transmitted, usually expressed as bits per second, or bps. Compare baud. + +**bits per second**: See bit rate. + +**block**: (1) A unit of data storage or transfer, typically 512 bytes. (2) A contiguous region of computer memory of arbitrary size, allocated by the Memory Manager. Also called a memory block. + +**block device**: A device that transfers data to or from a computer in multiples of 1 block (512 bytes) of characters at a time. Disk drives are block devices. Also called block l/O device. + +**block IO device**: See block device. + +**board**: See printed-circuit board. + +**body**: The statements or instructions that make up a part of a program or function, such as a loop or a subroutine. + +**Boolean logic**: A mathematical system in which every expression evaluates to one of two values, usually referred to as TRUE or FALSE. + +**Boolean variable**: A variable that can have one of two values, usually referred to as TRUE or FALSE. + +**boot**: Another way to say start up. A computer boots by loading a program into memory from an external storage medium such as a disk. Starting up is often accomplished by first loading a small program, which then reads a larger program into memory. The program is said to "pull itself up by its own bootstraps"hence the term bootstrapping or booting. + +**boot disk**: See startup disk. + +**bootstrap**: See boot. + +**BREAK**: A SPACE (0) signal, sent over a communication line, of long enough duration to interrupt the sender. This signal is often used to end a session with a time-sharing service. BREAK is also used to stop execution of a program. It's generated by pressing control-c. + +**buffer**: A holding area in the computer's memory (for example, a print buffer) where information can be stored by one program or device and then read at a different rate by another. + +**bug**: An error in a program that causes it not to work as intended. The expression reportedly comes from the early days of computing when an itinerant moth shorted a connection and caused a breakdown in a room-size computer. + +**byte**: A unit of information consisting of 8 bits. A byte can have any value between 0 and 255, which may represent an instruction, a letter, a number, a punctuation mark, or another character. See also bit, kilobyte, megabyte. + +**C**: A high-level programming language. One of the languages available for the Apple IIGS Programmer's Workshop. + +**c flag**: See carry flag. + +**C string**: An ASCII character string terminated by a null character (ASCII value : 0). Compare Pascal string. + +**C-type string**: Same as C string. + +**cable**: An insulated bundle of wires with connectors on the ends; the number of wires varies with the type of connection. Examples are serial cables, disk drive cables, and AppleTalk cables. + +**call**: (v) To request the execution of a subroutine, function, or procedure. (n) A request from the keyboard or from a procedure to execute a named procedure. See procedure. + +**card**: See peripheral card. + +**carriage return**: An ASCII character (decimal 13) that ordinarily causes a printer or display device to place the next character on the left margin. + +**carrier**: The background signal on a communication channel that is modified to carry information. Under RS-232-C rules, the carrier signal is equivalent to a continuous MARK (1) signal; a transition to 0 then represents a start bit. + +**carry flag**: A status bit in the 6502 or 65C02 microprocessor, used as a ninth bit with the eight accumulator bits in addition, subtraction, rotation, and shift operations. A status bit in the microprocessor indicating whether an accumulator calculation has resulted in a carry out of the register. Also called c flag. + +**central processing unit (CPU)**: The "brain" of the computer; the microprocessor that performs the actual computations in machine language. See microprocessor. + +**character**: (1) Any symbol that has a widely understood meaning and thus can convey information. Some characters-such as letters, numbers, and punctuation-can be displayed on the monitor screen and printed on a printer. Most characters are represented in the computer as l-byte values. + +**character code**: A number used to represent a character for processing by a computer system. + +**character device**: A device that transfers data to or from a computer as a stream of individual characters. Keyboards and printers are character devices. + +**character position**: An index into text, with position 1 corresponding to the first character. + +**chip**: See integrated circuit. + +**circuit board**: A board containing embedded circuits and an attached collection of integrated circuits (chips). + +**Clear To Send**: An RS-232-C signal from a DCE to a DTE that is normally kept false until the DCE makes it true, indicating that all circuits are ready to transfer data out. See Data Communication Equipment, Data Terminal Equipment. + +**clock**: (1) The timing circuit that controls execution of a microprocessor. Also called system clock. (2) An integrated circuit, often with battery-backup memory, that gives the current date and time. Also called clock-calendar. + +**clock chip**: A special chip in which parameter RAM and the current setting for the date and time are stored. This chip is powered by a battery when the system is off, thus preserving the information. + +**clock speed**: The frequency of the system clock signal in megahertz. + +**close**: To terminate access to an open file. When a file is closed, its updated version is written to disk and all resources it needed when open (such as its I/O buffer) are released. The file must be opened before it can be accessed again. + +**CMOS**: Acronym for complementary metal oxide semiconductor, one of several methods of making integrated circuits out of silicon. CMOS devices are characterized by their low power consumption. CMOS techniques are derived from MOS techniques. + +**code**: (1) A number or symbol used to represent some piece of information. (2) The statements or instructions that make up a program. + +**cold start**: The process of starting up the Apple II when the power is first turned on (or as if the power had just been turned on) by loading the operating system into main memory, and then loading and running a program. Compare boot, warm start. + +**column**: A vertical arrangement of graphics points or character positions on the display. + +**command**: An instruction that causes the computer to perform some action. A command can be typed from a keyboard, selected from a menu with a hand-operated device (such as a mouse), or embedded in a program. + +**command-line interface**: The type of interface between user and program in which information is passed in a command line. + +**compiler**: A language translator that converts a program written in a high-level programming language (source code) into an equivalent program in some lower-level language such as machine language (object code) for later execution. A program that produces object files (containing machine language code) from source files written in a high-level language such as C. Compare assembler. + +**component**: A part; in particular, a part of a computer system. + +**composite video**: A standard video signal that includes all color and timing information that is needed by a composite video monitor. Several video standards aie in use around the world: NTSC video is used in northern America and Japan; PAL video is used in much of Europe; SECAM is used in the USSR and many other countries. The Apple IIGS is capable of generating both NTSC and PAL video. Compare RGB. + +**computer**: An electronic device that performs predefined (programmed) computations at high speed and with great accuracy. A machine that is used to store, transfer, and transform information. + +**computer language**: See programming language. + +**computer system**: A computer and its associated hardware, firmware, and software. + +**conditional assembly**: A feature of an assembler that allows the programmer to define macros or other pieces of code such that the assembler assembles them differently under different conditions. + +**conditional branch**: A branch whose execution depends on the truth of a condition or the value of an expression. Compare unconditional branch. + +**configuration**: (1) The total combination and arrangement of hardware components-CPU, video display device, keyboard, and peripheral devices-that make up a computer system. (2) The software settings that allow various hardware components of a computer system to communicate with each other. + +**connector**: A plug, socket, jack, or port. + +**constant**: In a program, a symbol that represents a fixed, unchanging value. Compare variable. + +**control character**: A non-printing character that controls or modifies the way information is printed or displayed. In the Apple II family, control characters have ASCII values between 0 and l, and are typed from a keyboard by holding down the Control key while pressing some other key. + +**control code**: One or more non-printing characters-included in a text file-whose function is to change the way a printer prints the text. For example, a program may use certain control codes-to turn boldface printing on and off. See control character. + +**control key**: (1) A general term for a key that controls the operation of other keys; for example, Apple, Caps Lock, Control, Option, and Shift. When you hold down or engage a control key while pressing another key, the combination makes that other key behave differently. Also called a modifier key. (2) A specific key on Apple II family keyboards that produces control characters when used in combination with other keys. + +**Control Panel**: A program on the IIGS that lets the user change certain system parameters, such as speaker volume, display colors, and configuration of slots and ports. + +**Control-Reset**: A combination keystroke on Apple ll-family computers that usually causes an Applesoft BASIC program or command to stop immediately. If a program disables the Control-Reset feature, you need to turn the computer off to get the program to stop. + +**controller card**: A peripheral card that connects a device such as a printer or disk drive to a computer's main logic board and controls the operation of the device. + +**controlling program**: A program that loads and runs other programs, without itself leaving memory. A controlling program is responsible for shutting down its subprograms and freeing their memory space when they are finished. A shell, for example, is a controlling program. + +**copy protect**: To make a disk uncopyable. Software publishers frequently try to copy protect their disks to prevent them from being illegally duplicated by software pirates. Compare write protect. + +**COUT**: The firmware entry point for the Apple II character-output subroutine. COUT is actually an I/O link located in RAM rather than in ROM, and so can be modified to contain the address of the presently active character-output subroutine. + +**COUTI**: An entry point within the Apple II character-output subroutine. + +**CPU**: See central processing unit and microprocessor. + +**crash**: To cease to operate unexpectedly, possibly destroying information in the process. + +**creation date**: An attribute of a ProDOS file; it specifies the date on which the file was first created. + +**creation time**: An attribute of a ProDOS file; it specifies the time at which the file was first created. + +**CTS**: See Clear To Send. + +**current input device**: The source, such as the keyboard or a modem, from which a program is currently receiving its input. + +**current output device**: The destination, such as the display screen or a printer, currently receiving a program's output. + +**cursor**: An icon displayed by the operating system or application program that indicates where the next input from the user is expected. + +**D register**: See direct register. + +**data**: Information transferred to or from or stored in a computer or other mechanical communications or storage device. + +**data bits**: The bits in a communication transfer that contain information. Compare start bit, stop bit. + +**data block**: A 512-bye portion of a ProDOS standard file that consists of whatever kind of information the file may contain. + +**Data Carrier Detect (DCD)**: A signal from a DCE (such as a modem) to a DTE (such as an Apple IIGS) indicating that a communication connection has been established. See Data Communication Equipment, Data Terminal Equipment. + +**Data Communication Equipment (DCE)**: As defined by the RS-232-C standard, any device that transmits or receives information. Usually this device is a modem. + +**data format**: The form in which data is stored, manipulated, or transferred. For example, when dzta is transmitted and received serially, it typically has a data format of one start bit, five to eight data bits, an optional parity bit, and one or two stop bits. + +**Data Set Ready (DSR)**: A signal from a DCE to a DTE indicating that the DCE has established a connection. See Data Communication Equipment, Data, Terminal Equipment. + +**data structure**: A specifically formatted item of data or a form into which data may be placed. + +**Data Terminal Equipment (DTE)**: As defined by the RS-232-C standard, any device that generates or absorbs information, thus acting as an endpoint of a communication connection. A computer might serve as a DTE. + +**Data Terminal Ready (DTR)**: A signal from a DTE to a DCE indicating a readiness to transmit or receive data. See Data Communication Equipment, Data Terminal Equipment. + +**DCD**: Abbreviation for Data Carrier Detect, a modem signal indicating that a communication connection has been established. See Data Carrier Detect. + +**DCE**: See Data Communication Equipment. + +**debug**: A colloquial term that means to locate and correct an error or the cause of a problem or malfunction in a computer program. Compare troubleshoot. See also bug. + +**debugger**: A utility used for software development that allows you to analyze a program for errors that cause it to malfunction. For example, it may allow you to step through execution of the program one instruction at a time. + +**decimal**: A method of numeric representation using a base-10 system. Valid digits are 0 through 9. Compare hexadecimal, binary. + +**default**: A preset response to a question or prompt. The default is automatically used by the computer if the user doesn't supply a different response. Default values prevent a program from stalling or crashing if no value is supplied by the user. + +**delete**: To remove something, such as a character or word from a file, or a file from a disk. + +**Delete key**: A key on the upper-right corner of the Apple IIe, Apple IIc, and Apple IIGS keyboards that erases the character immediately preceding (to the left of the cursor). + +**delimiter**: A character that is used for punctuation to mark the beginning or end of a sequence of characters, and which therefore is not considered part of the sequence itself. For example, Applesoft BASIC uses the double quotation mark (") as a delimiter for string constants: the string "DOG" consists of the three characters D, O, and G, and does not include the quotation marks. + +**delta**: The differences between two files, possibly as shown by a file comparison utility. The name comes from the way mathematicians use the Greek letter delta (Å) to represent a difference. + +**development environment**: A program or set of programs that allows you to write applications. It typically consists of a text editor, an assembler or compile¡ a linker, and support programs such as a debugger. + +**device**: A piece of equipment (hardware) used in conjunction with a computer and under the computer's control. Also called a peripheral device because such equipment is often physically separate from, but attached to, the computer. + +**device driver**: A program that handles the transfer of data to and from a peripheral device, such as a printer or disk drive. + +**device handler**: See device driver + +**dialog box**: A box on the screen that contains a message requesting more information from the user. See also alert. + +**DIP switches**: A bank of tiny switches, each of which can be moved manually one way or the other to represent one of two values (usually on and off. See dual inline package. + +**direct memory access (DMA)**: A means of fast data transfer into or out of computer memory to or from a computer peripheral. A peripheral device, usually a card in a peripheral I/O expansion slot, puts the 65C816 microprocessor in an idle state, and takes control of the computer for a short period of time. Data in memory may be directly accessed without the time-consuming usual handshaking and protocol. + +**directory**: A file that contains a list of the names and locations of other files stored on a disk. Directories are either volume directories or subdirectories. A directory is sometimes called a catalog. + +**directory file**: A directory. One of the two principal categories of ProDOS 16 files. Directory files contain specially formatted entries that give the names and disk locations of other files. + +**disassembler**: A language translator that converts a machine-language program into an equivalent program in assembly language, which is easier for programmers to understand. The opposite of an assembler. + +**disk**: An information-storage medium consisting of a flat, circular, magnetic surface on which information can be recorded in the form of small magnetized spots, in a manner similar to the way sounds are recorded on tape. See floppy disk, hard disk. + +**disk controller card**: A peripheral card that provides the connection between one or two disk drives and the computer. (This connection, or interface, is built into the Apple IIc, the Apple IIGS, and all Macintosh-family computers.) + +**disk device**: See block device. (P16) + +**disk drive**: A computer peripheral device that stores digital data on a revolving magnetic surface. Disk drives may be floppy disk drives (which use a removable, flexible Mylar disk as the medium) or hard disk drives (which use a fixed aluminum platter as the medium). Disk drives retain the information after the computer is turned off, but are capable of altering the data as requested by the computer program. + +**disk envelope**: A removable, protective paper sleeve used when handling or storing a 5.25-inch disk. It must be removed before you insert the disk in a disk drive. Compare disk jacket. + +**Disk II, Disk II drive:** A type of disk drive made and sold by Apple Computer, Inc., for use with the Apple II, II Plus, and IIe computers. It uses 5.25-inch disks. + +**disk jacket**: A permanent, protective covering for a disk. 5.25-inch disks have flexible, paper or plastic jackets; 3.5-inch disks have hard plastic jackets. The disk is never removed from the jacket. Compare disk envelope. + +**disk operating system**: An operating system whose principal function is to manage files and communication with one or more disk drives. DOS and ProDOS are two families of Apple II disk operating systems. + +**Disk Operating System (DOS)**: An optional software system for the Apple II family of computers that enables the computer to control and communicate with one or more disk drives. The acronym DOS rhymes with boss. + +**disk port**: The connector on the rear panel of the Apple IIGS for attaching disk drives. + +**disk-based**: See disk-resident. + +**disk-resident**: A program that does not remain in memory. The computer retrieves all or part of the program from the disk, as needed. Sometimes called disk-based. Compare memory-resident. + +**display**: (1) A general term to describe what you see on the screen of your display device when you're using a computer. (2) Short for a display device. + +**display device**: A device that displays information, such as a television set or video monitor. + +**display screen**: The screen of the monitor; the area where you view text and pictures when using the computer. + +**dispose**: To permanently deallocate (a memory block). The Memory Manager disposes of a memory block by removing its master pointer. Any handle to that pointer will then be invalid. Compare purge. + +**DMA**: See direct memory access. + +**document**: A file created by an application. + +**DOS**: Acronym for disk operating system. An Apple II disk operating system. See Disk Operating System. + +**DOS 3.2**: An early Apple II operating system. DOS stands for Disk Operating System; 3.2 is the version number. Disks formatted using DOS 3.2 have 13 sectors per track. + +**DOS 3.3**: An operating system for the Apple II family of computers. DOS stands for Disk Operating System; 3.3 is the version number. + +**Double Hi-Res**: A high-resolution graphics display mode on Apple II computers with at least 128K of RAM, consisting of an array of points 560 wide by 792 high with 16 colors. + +**drive**: See disk drive. + +**driver**: See device driver. + +**DSR**: Abbreviation for Data Set Ready, a signal indicating that a modem has established a connection. See Data Set Ready. + +**DTE**: See Data Terminal Equipment. + +**DTR**: Abbreviation for Data Terminal Ready, a signal indicating that a terminal is ready to transmit or receive data. See Data Terminal Ready. + +**dual in-line package (DIP)**: An integrated circuit packaged in a narrow rectangular box with a row of metal pins along each side. DIP switches on the box allow you to change settings. For example, Imagewriter printer DIP switches control functions such as line feed, form length, and baud setting. + +**editor**: A program that helps you create and edit information of a particular form; for example, a text editor or a program editor. + +**embedded**: Contained within. For example, the string 'HUMPTY DUMPTY' is said to contain an embedded space. + +**environment**: The complete set of machine registers associated with a running program. Saving the environment allows a program to be restored to its original operating mode with all of its registers intact as though nothing had happened. Saving and restoring an environment is most often associated with calling system functions or processing interrupts. + +**EOF (end-of-file)**: The logical size of a ProDOS file; it is the number of bytes that may be read from or written to the file. + +**erase**: + +**error**: The state of a computer after it has detected a fault in one or more commands sent to it. Also called error condition. + +**error code**: A number or other symbol representing a type of error. + +**error condition**: See error. + +**error message**: A message displayed or printed to tell you of an error or problem in the execution of a program or in your communication with the system. An error message is often accompanied by a beep. A message issued by the system or application program when it has encountered an abnormal situation or an error in data. + +**Esc key**: See Escape key. + +**ESCAPE character**: An ASCII character that, with many programs and devices, allows you to perform special functions when used in combination keypresses. + +**escape code**: A key sequence formed by pressing the Esc (Escape) key, followed by pressing another key. Escape codes are used to control the video firmware. + +**Escape key**: A key on Apple ll-family computers that generates the Escape character. The Escape key is labeled Esc. In many applications, pressing Escape allows you to return to a previous menu or to stop a procedure. + +**escape mode**: A state of the Apple IIe and IIc entered by pressing the Esc key and certain other keys. The other keys take on special meanings for positioning the cursor and controlling the display of text on the screen. + +**escape sequence**: A sequence of keystrokes, beginning with the Esc key. In escape mode, escape sequences are used for positioning the cursor and controlling the display of text on the screen. Escape sequences are also used as codes to control printers. + +**even parity**: In data transmission, the use of an extra bit set to 0 or 1 as necessary to make the total number of 1 bits an even number; used as a means of error checking. Compare MARK parity, odd parity. + +**even/odd parity check**: In data transmission, a check that tests whether the number of 1 bits in a group of binary digits is even (even parity check) or odd (odd parity check). + +**execute**: To perform the actions specified by a program command or sequence of commands. + +**expression**: A formula in a program that defines a calculation to be performed. + +**Extended 80-Column Text Card**: See Apple IIe Extended 80-Column Text Card. + +**extended SmartPort call**: A SmartPort call that allows data transfer to or from anywhere in the Apple IIGS system memory space. Compare standard SmartPort call. + +**fatal error**: An error serious enough that the computer must halt execution. + +**field**: A string of ASCII characters or a value that has a specific meaning to some program. Fields may be of fixed length or may be separated from other fields by field delimiters. For example, each parameter in a segment header constitutes a field. + +**FIFO**: Acronym for "first in, first out" order, as in a queue. + +**file**: A named, ordered collection of information stored on a disk. + +**file control block (FCB)**: A data structure set up in memory by ProDOS to keep track of all open files. + +**file entry or flle directory entry**: The part of a ProDOS directory or subdirectory that describes and points to another file. The file so described is considered to be "in" or "under" that directory. + +**file system ID**: A number describing the general category of operating system to which a file or volume belongs. The file system ID is an input to the ProDOS FORMAT call, and a result from the VOLUME call. + +**file type**: An attribute in a ProDOS file's directory entry that characterizes the contents of the file and indicates how the file may be used. On disk, file types are stored as numbers; in a directory listing, they may be displayed as a number or a text mnemonic. + +**filename**: The string of characters that identifies a particular file within its directory. ProDOS filenames may be up to 15 characters long. Compare pathname. + +**filing calls**: Operating system calls that manipulate files. In ProDOS, filing calls are subdivided into file housekeeping calls and file access calls. + +**floating-point**: A method of representing numbers inside the computer in which the decimal point (more correctly, the binary point) is permitted to "float" to different positions within the number. Some of the bits within the number itself are used to keep track of the point's position. Compare fixed-point. + +**floppy disk**: A disk made of flexible plastic, as compared to a hard disk, which is made of metal. The term floppy is now usually applied only to disks with thin, flexible disk jackets, such as 5.25-inch disks. With 3.5-inch disks, the disk itself is flexible, but the jacket is made of hard plastic; thus, 3.5-inch disks aren't particularly "floppy." + +**flush**: To update an open file (write any updated information to disk) without closing it. + +**folder**: The visual representation of a subdirectory. See also subdirectory. + +**format**: (n) (1) The form in which information is organized or presented. (2) The general shape and appearance of a printed page, including page size, character width and spacing, line spacing, and so on. (v) To divide a disk into tracks and sectors where information can be stored. Blank disks must be formatted before you can save information on them for the first time; same as initialize. + +**Fortran**: Short for Formula Translator. A high-level programming language especially suitable for applications requiring extensive numerical calculations, such as in mathematics, engineering, and the sciences. + +**fragmentation**: A condition in which free (unallocated) portions of memory are scattered due to repeated allocation and deallocation of blocks by the Memory Manager. + +**frequency**: In alternating current (AC) signals, the number of complete cycles transmitted per second. Frequency is usually expressed in hertz (cycles per second), kilohertz (kilocycles per second), or megahertz (megacycles per second). In acoustics, frequency of vibration determines musical pitch. Compare duration. + +**froob**: a French boob, more specifically, the crazy French man who torments the great American document, script and specification writing Ameriboob. + +**full duplex**: A four-wire communication circuit or protocol that allows two-way data transmission between two points at the same time. Compare half duplex. + +**full pathname**: The complete name by which a file is specified, starting with the volume directory name. A full pathname always begins with a slash (/), because a volume directory name always begins with a slash. See also pathname. + +**function**: A preprogrammed calculation that can be carried out on request from any point in a program. A function takes in one or more arguments and returns a single value. It can therefore be embedded in an expression. + +**global page**: Under ProDOS, 256 bytes of data at a fixed location in memory, containing useful system information (such as a list of active devices) available to any application. + +**global page bit map**: A portion of the ProDOS global page that keeps track of memory use in the computer. Applications under ProDOS are responsible for marking and clearing parts of the bit map that correspond to memory they have allocated or freed. + +**graphic interface**: An interface between computer and user in which all screen drawing or other output, including text, is done by graphic routines. Desktop programs use a graphic interface. Compare text-based interface. + +**guest file system**: A file system, other than ProDOS's, whose files can be read by ProDOS. + +**half duplex**: A two-wire communication circuit or protocol designed for data transmission in either direction but not both directions simultaneously. Compare full duplex. + +**handshaking**: The exchange of status information between a DCE (Data Communications Equipment) and a DTE (Data Terminal Equipment), usually a computer and a peripheral device, used to control the transfer of data between them. The status information can be the state of a signal connecting the DCE and the DTE, or it can be in the form of a character transmitted with the rest of the data. See also XOFF, XON. + +**hang**: To cease operation because either an expected condition is not satisfied or an infinite loop is occurring. A computer that's hanging is called a hung system. Compare crash. + +**hard disk**: A disk made of metal and sealed into a drive or cartridge. A hard disk can store very large amounts of information compared to a floppy disk. + +**hard disk drive**: A device that holds a hard disk, retrieves information from it, and saves information to it. Hard disks made for microprocessors ate permanently sealed into the drives. + +**hardware**: Collectively, electronic circuit components and associated fittings and attachments. In computers, the computer itself (the processor), disk drives, and other peripheral equipment. The saying goes, "If you can touch it, it's hardware. If you can't, it's software." Compare firmware, software. + +**hertz**: The unit of frequency of vibration or oscillation, defined as the number of cycles per second. Named for the physicist Heinrich Hertz and abbreviated Hz. The 6502 microprocessor used in the 8-bit Apple II systems operates at a clock frequency of about 1 million hertz, or 1 megahertz (MHz). + +**hex**: See hexadecimal. (GSTR, PI) + +**hexadecimal**: The base-16 system of numbers, using the ten digits 0 through 9 and the six letters A through F. Hexadecimal numbers can be converted easily and directly to binary form, because each hexadecimal digit corresponds to a sequence of 4 bits. In Apple manuals, hexadecimal numbers are usually preceded by a dollar sign ($). + +**hexadecimal, hex**: The representation of numbers in the base-16 system, using the ten digits 0 through 9 and the six letters A through F. Each hexadecimal digit corresponds to a sequence of four binary digits, or bits. Hexadecimal numbers are usually preceded by a dollar sign ($). (GSTR) + +**hierarchical file system**: A method of organization in which disk files are grouped together within directories and subdirectories. In a hierarchical file system, a file is specified by its pathname, rather than by a single filename. + +**high ASCII characters**: ASCII characters with decimal values of 128 to 255. Called high ASCII because their high bit (first binary digit) is set to 1 (for on) rather than 0 (for off ). + +**high-level language**: A programming language that is relatively easy for people to understand. A single statement in a high-level language typically corresponds to several instructions of machine language. Compare low-level language. + +**I/O**: Input/Output. A general term that encompasses input/output activity, the devices that accomplish it, and the data involved. See input/output. + +**I/O device**: Input/output device. A device that transfers information into or out of a computer. See input, output, peripheral device. + +**I/O expansion slots**: The seven rectangular connectors located on an Apple main logic board. These slots will accept standard Apple II peripheral cards and allow the computer to communicate with peripherals such as printers and disk drives. See also peripheral card. + +**I/O space**: The portion of the memory map in a standard Apple II (and in banks $00, $01, $80, and $81 of an Apple IIGS) with addresses between $C000 and $Cpnn. Programs perform I/O by writing to or reading from locations in this I/O space. + +**IC**: See integrated circuit. + +**intermediate execution**: The execution of a program statement as soon as it is typed. In BASIC, immediate execution occurs when the line is typed without a line number; immediate execution allows you to try out nearly every statement immediately to see how it works. Compare deferred execution. + +**immovable**: See fixed. + +**implement**: To put into practical effect, as to implement a plan. For example, a language translator implements a particular language. + +**IN#**: This command designates the source of subsequent input characters. It can be used to designate a device in a slot or a machine-language routine as the source of input. + +**index**: (1) A number used to identify a member of a list or table by its sequential position. (2) A list or table whose entries are identified by sequential position. (3) In machine language programming, the variable component of an indexed address, contained in an index register and added to the base address to form the effective address. + +**index block**: A 512-byte part of a ProDOS standard file that consists entirely of pointers to other parts (data blocks) of the file. + +**index register**: A register in a computer processor that holds an index for use in indexed addressing. The 6502 and 65C816 microprocessors used in the Apple II family of computers have two index registers, called the X register and the Y register. + +**index variable**: A variable whose value changes on each pass through a loop. Often called control variable or loop variable. + +**indexed addressing**: A method used in machine language programming to specify memory addresses. See also memory location. + +**infinite loop**: A section of a program that will repeat the same sequence of actions indefinitely. + +**information bar**: An optional component of the displaym if present, the information bar may contain any information the application wishes. + +**initialization file**: + +**initialize**: (1) To set to an initial state or value in preparation for some computation. (2) To prepare a blank disk to receive information by organizing its surface into tracks and sectors; see format. + +**initialized disk**: A disk that has been organized into tracks and sectors by the computer and is therefore ready to store information. + +**input**: (n) Information transferred into a computer from some external source, such as the keyboard, a disk drive, or a modem. + +**input device**: The keyboard is the main input device for the Apple. + +**input routine**: A machine-language routine; the standard input routine reads characters from the keyboard. A different input routine might, for example, read them from an external terminal. + +**input/output (IO)**: The process by which information is transferred between the computer's memory and its keyboard or peripheral devices. + +**instruction**: A unit of a machine-language or assembly-language program corresponding to a single action for the computer's processor to perform. + +**integer**: A whole number in fixed-point form. Compare real number. + +**Integer BASIC**: A version of the BASIC programming language used by the Apple II family of computers. Integer BASIC is older than Applesoft BASIC and is capable of processing numbers in integer (fixed-point) form only. Many games are written in Integer BASIC because its instructions can be executed very quickly. Compare Applesoft BASIC. + +**Integer value**: A 16-bit signed or unsigned value. + +**integrated circuit**: An electronic circuit, including components and interconnections, entirely contained in a single piece of semiconducting material, usually silicon. Often referred to as an IC or a chip. A miniature electronic circuit consisting of many thousands of transistors and other electronic components by processing a chip of semiconductor material. This chip is then cast in a plastic or ceramic package with metal leads or "legs" used to connect it to a circuit board. Categories of ICs are labeled due to their construction process: monolithic, hybrid, and thin-film are some. Almost any electronic circuit may be miniaturized and made into an integrated circuit. + +**intelligent device**: A device containing a microprocessor and a program that allows the device to interpret data sent to it as commands that the device is to perform. + +**interactive**: Operating by means of a dialog between the computer system and a human user. + +**interface**: (1) The point at which independent systems or diverse groups interact. The devices, rules, or conventions by which one component of a system communicates with another. Also, the point of communication between a person and a computer. (2) The part of a program that defines constants, variables, and data structures, rather than procedures themselves. + +**interface card**: A peripheral card that implements a particular interface (such as a parallel or serial interface) by which the computer can communicate with a peripheral device such as a printer or modem. + +**interpreter**: A language translator that reads a program instruction by instruction and immediately translates each instruction for the computer to carry out. compare compiler. + +**interrupt**: A request made of the microprocessor by a device, either built-in or external, to receive urgent data or respond to a recent event. Disk drives make interrupt requests of the microprocessor, as do the real time clock and the mouse firmware in the Apple IIGS. A temporary suspension in the execution of a program that allows the computer to perform some other task, typically in response to a signal from a peripheral device or other source external to the computer. + +**interrupt environment**: The machine state, including register length and contents, that the interrupt handler executes within. + +**interrupt handler**: A program, associated with a particular external device, that executes whenever that device sends an interrupt signal to the computer. The interrupt handler performs its tasks during the interrupt, then returns control to the computer so it may resume program execution. + +**interrupt mode**: A mode in which interrupts are used to synchronize drawing with vertical blanking. + +**interrupt vector table**: A table maintained in memory by ProDOS 16 that contains the addresses of all currently active (allocated) interrupt handlers. + +**inverse video**: The display of text on the computer's display screen in the form of dark dots on a light (or other single phosphor color) background, instead of the usual light dots on a dark background. + +**IRQ**: A 65C816 signal line that, when activated, causes an interrupt request to be generated. + +**IWM**: "Integrated Woz Machine"; the custom chip that controls Apple's 3.5-inch disk drives. + +**JML**: Unconditional Long Jump; a 65C816 assembly-language op code. It takes a 3-byte address operand. A JML can reach any address in the Apple IIGS memory space. + +**JMP**: Unconditional Jump; a 65O2 and 65C816 assembly-language op code. It takes a 2-byte address operand. A JMP can reach addresses only within a single 641); and the system Monitor program, an asterisk (*). + +**prompt line**: A specific area on the display reserved for prompts. + +**protocol**: A formal set of rules for the interchange of information between two programs or devices; for example, the rules for sending and receiving data on a communication line. + +**Protocol Converter**: A set of machine language routines used in the Apple II family for performing block device I/O. See Smartport. A set of ROM-based assembly language +routines used to support external I/O devices such as the Apple Memory Expansion Card and the Apple 3.5 Drive. + +**pull**: To remove the top entry from a stack, this instruction moves the stack pointer to the entry below it. Synonymous with pop. Compare push. + +**push**: To add an item to the top of a stack, moving the stack pointer to the next entry above the top. Compare push. + +**queue**: A list in which entries are added (pushed) at one end and removed (pulled) at the other end, causing entries to be removed in first-in, first-out (FIFO) order. Compare stack. + +**quit**: To terminate execution in an orderly manner. Apple II applications quit by making a ProDOS QUIT call or the equivalent. + +**QWERTY keyboard**: The standard layout of keys on a typewriter keyboard; its name is formed from the first six letters on the top row of letter keys. Compare Dvorak keyboard. + +**RAM**: See random-access memory. + +**RAM disk**: A feature of some operating systems which makes it possible to use programmable memory (RAM) as a disk volume. Large applications designed for machines with limited amounts of RAM must load program segments from disk as needed; on machines with RAM disk, the entire application is first loaded into RAM, where it runs as if still resident on disk, but much faster. + +**random-access device**: See block device. + +**random-access memory (RAM)**: Memory in which information can be referred to in an arbitrary or random order. As an analogy, a book is a random-access storage device in that it can be opened and read at any point. RAM usually means the part of memory available for programs from a disk; the programs and other data are lost when the computer is turned off. A computer with 512K RAM has 512 kilobytes available to the user. (Technically, the read-only memory (ROM) is also random access, and what's called RAM should correctly be termed read-write memory.) Compare read-only memory, read-write memory. + +**random-access text file**: A text file that is partitioned into an unlimited number of uniform-length compartments called records. When you open a random-access text file for the first time, you must specify its record length. No record is placed in the file until written to. Each record can be individually read from or written to-hence, random-access. + +**RDKEY**: The firmware routine that a program uses to read a single keystroke from the keyboard. + +**read**: To transfer information into the computer's memory from outside the computer (such as a disk drive or modem) or into the computer's processor from a source external to the processor (such as the keyboard or main memory). + +**read-only memory (ROM)**: Memory whose contents can be read, but not changed; used for storing firmware. Information is placed into read-only memory once, during manufacture; it then remains there permanently, even when the computer's power is turned off. Compare random-access memory, read-write memory, write-only memory. Nonvolatile, permanent memory. ROM ICs may be written once, usually in the development of the computer. Data are retained in the memory even after power is disconnected. Special ROM ICs allow you to change the data in them under specific conditions such as ultraviolet light (EPROMs erasable programmable read-only memory, or high voltages (EEPROMs electrically erasable programmable read-only memory). Normally, however, ROM ICs are written once. + +**read-write memory**: Memory whose contents can be both read and changed (or written to); commonly called RAM. The information contained in read-write memory is erased when the computer's power is turned off and is permanently lost unless it has been saved on a disk or other storage device. Compare random-access memory, read-only memory. + +**real number**: In computer usage, a number that may include a fractional part; represented inside the computer in floating-point form. Because a real number is of infinite precision, this representation is usually approximate. Compare integer. + +**real-time clock (RTC)**: A custom IC that, once set, retains the current time of day, day, month, and year. Chapter 7 provides details of the RTC and other built-in I/O devices. + +**record**: + +**reentrant**: Said of a routine that is able to accept a call while one or more previous calls to it are pending, without invalidating the previous calls. Under certain conditions, the Apple IIGS Scheduler manages execution of routines that are not reentrant. + +**reference**: (n) The name of a segment or entry point to a segment; same as symbolic reference. (v) To refer to a symbolic reference or to use one in an expression or as an address. + +**register**: A location in a processor or other chip where an item of information is held and modified under program control. + +**relational operator**: An operator, such as > that operates on numeric values to produce a logical result. Compare arithmetic operator, logical operator. + +**relocation**: The act of modifying a program in memory so that its address operands correctly reflect its location and the locations of other segments in memory. Relocation is performed by the System Loader when a relocatable segment is first loaded into memory. + +**repeat delay**: The time interval before the first auto-key event is generated. + +**repeat speed**: The time interval between auto-key events, except for the first auto-key event. See also repeat delay. + +**Request-To-Send**: An RS-232-C signal from a DTE to a DCE that serves to prepare the DCE for data transmission. + +**reserved word**: A word or sequence of characters reserved by a programming language for some special use and therefore unavailable as a variable name in a program. + +**resident**: See memory-resident, disk-resident. + +**return address**: The point in a program to which control returns on completion of a subroutine or function. + +**RF**: See radio frequency. + +**RF modulator**: See radio-frequency modulator. + +**RGB**: Abbreviation for red, green, and blue. A method of displaying color video by transmitting these three colors as three separate signals. There are two ways of using RGB with computers: TTL RGB, which allows the color signals to take on only a few discrete values; and analog RGB, which allows the color signals to take on any values between their upper and lower limits, for a wide range of colors. The Apple IIGS uses analog RGB; connect only RGB monitors using analog RGB to the RGB video connector at the rear of the computer. Compare composite video. + +**RGB monitor**: A type of color monitor that receives separate signals for each color (red, green, and blue). Compare composite video. + +**ROM**: See read-only memory. + +**ROM disk**: A feature of some operating systems making it possible to use read-only memory (ROM) as a disk volume. Often used for making applications permanently resident. See also RAM disk. + +**rounded result**: The nearest representable value to the actual value, with ties going to the value with the larger magnitude. + +**routine**: A part of a program that accomplishes some task subordinate to the overall task of the program. + +**row**: A horizontal arrangement of character cells or graphics pixels on the screen. + +**RS-232**: A common standard for serial data communication interfaces. + +**RS-232 cable**: Any cable that is wired in accordance with the RS-232 standard, which is the common serial data communication interface standard. + +**RS-232-C**: A common standard for serial data communication interfaces. + +**RS-422**: A standard for serial data communication interfaces, different from the RS-232 standard in its electrical characteristics and in its use of differential pairs for data signals. The serial ports on the Apple IIGS use RS-422 devices modified so as to be compatible with RS-232-C devices. + +**RTC**: See Real Time Clock. + +**RTI**: Return from Interrupt, a 65816 assembly language instruction. + +**RTL (Return from Subroutine Long)**: Return from subroutine Long; a 65C816 assembly-language instruction. It is used in conjunction with a JSL instruction. + +**RTS**: See Request-To-Send. + +**RTS (Return from Subroutine)**: Return from Subroutine; a 6502 and 65C816 assembly language instruction. It is used in conjunction with a JSR instruction. + +**run**: (1) To execute a program. When a program runs, the computer performs the instructions. (2) To load a program into main memory from a peripheral storage medium, +such as a disk, and execute it. + +**run-time library file**: A load file containing program segments-each of which can be used in any number of programs-that the System Loader loads dynamically when they are +needed. + +**S register**: See stack register. + +**SANE (Standard Apple Numeric Environment)**: The set of methods that provides the basis for floating-point calculations in Apple computers. SANE meets all requirements for extended-precision, floating-point arithmetic as prescribed by IEEE Standard and ensures that all floating-point operations are performed consistently and return the most accurate results possible. See Standard Apple Numeric Environment. + +**sapling file**: An organizational form of a ProDOS standard file. A sapling file consists of a single index block and up to 256 data blocks. + +**save**: To store information by transferring the information from main memory to a disk. Work not saved disappears when you turn off the computer or when the power is interrupted. + +**SCC**: Abbreviation for Serial Communications Controller, a type of communications IC used in the Apple IIGS. The SCC can run synchronous data transmission protocol and thus transmit data at faster rates than the ACIA. See Serial Communications Controller. + +**screen**: See display screen. + +**screen holes**: Locations in the text display buffer (text Page 1) used for temporary storage either by l/O routines running in peripheral card ROM or by firmware routines addressed as if they were in card ROM. Text Page 1 occupies memory from $0400 to $07FF; the screen holes are locations in that area that are neither displayed nor modified by the display firmware. + +**scroll**: To move all the text on the screen upward or downward, and, in some cases, sideways. See viewport, window. + +**SECAM**: A French acronym meaning "sequential color with memory." A video standard originating in France and used in the USSR and other countries. + +**sector**: A division of a tack on a disk. When a disk is formatted, its surface is divided into tracks and sectors. + +**sector**: See track. + +**seedling file**: An organizational form of a ProDOS standard file. A seedling file consists of a single data block. + +**sequential-access device**: See character device. + +**serial**: A single-wire connection for the purpose of transferring bits of data one at a time, usually between a computer and a peripheral device. Compare parallel. + +**Serial Communications Controller (SCC)**: A type of communications IC used in the Apple. The SCC can run synchronous data transmission protocol and thus transmit data at faster rates than the ACIA. Compare ACIA. + +**serial interface**: A standard method, such as RS-232, for transmitting data serially (as a sequence of bits). An interface in which information is transmitted sequentially, a bit at a time, over a single wire or channel. Compare parallel interface. + +**serial port**: The connector for a peripheral device that uses a seial interface. The two connectors located at the back of the Apple IIGS main logic board that provide a means for communicating with peripherals (such as printers and local area networks) using a serial interface. + +**shell**: A program that provides an operating environment for other programs, and that is not removed from memory when those programs are running. For example, the A2osX Shell provides a command processor interface between the user and the other components of A2osX, and remains in memory when utility programs are running. A shell is one type of controlling program. + +**shell application**: A type of program that is launched from a shell and runs under its control. Shell applications are ProDOS file type $85. In APW, compilers and certain Shell commands are shell applications that are launched from the A2osX Shell. + +**shell call**: A request from a program to the A2osX Shell to perform a specific function. + +**shut down**: To remove from memory or otherwise make unavailable, as a tool set that is no longer needed or an application that has quit. + +**simple variable**: A variable that is not an element of an array. + +**slot**: A narrow socket inside the computer where the user can install peripheral cards. Also called an expansion slot. + +**SmartPort**: (1) A set of firmware routines supporting multiple block devices connected to the Apple IIGS disk port. See also extended SmartPort call and standard SmartPort call. (2) A set of machine language routines used in the Apple II family for performing block device I/O. See Protocol Converter. + +**soft switch**: Also called a software switch; a means of changing some feature of the computer from within a program. For example, DIP switch settings on ImageWriter printers can be overridden with soft switches. Specifically, a soft switch is a location in memory that produces some special effect whenever its contents are read or written. + +**software**: A collective term for programs, the instructions that tell the computer what to do. Software is usually stored on disks. Compare firmware, hardware. A group of instructions to the microprocessor, instructing it to perform certain functions, such as performing computations, displaying data on a monitor, reading data from and writing data to a disk. The group of instructions is known collectively as a program. Compare application program. + +**source**: See source location. (PI) + +**source code**: See source program. + +**source file**: An ASCII file consisting of instructions written in a particular language, such as Pascal or assembly language. An assembler or compiler converts source files into object files. + +**source program**: The form of a program given to a language translator, such as a compiler or assembler, for conversion into another form; sometimes called source code. Compare object program. + +**space character**: A text character whose printed representation is a blank space, typed from the keyboard by pressing the Space bar. + +**SPACE parity**: A bit value of 0 appended to a binary number for transmission. The receiving device can look for this value on each character as a means of error checking. + +**sparse file**: A variation of the organizational forms of ProDOS 1.6 standard files. A sparse file may be either a sapling file or a tree file; what makes it sparse is the fact that its logical size (defined by its EOF) is greater than its actual size on disk. This occurs when one or more data blocks contain nothing but zeros. Those data blocks are considered to be part of the file, but they are not actually allocated on disk until nonzero data is written to them. + +**special memory**: On an Apple IIGS, all of banks $00 and $01 and all display memory in banks $E0 and $E1. It is the memory directly accessed by standard Apple II programs running on the Apple IIGS. + +**spool printing**: A two-step printing method used to print graphics on the Imagewriter. In the first step, it writes out (spools) a representation of your document's printed image to a disk file or to memory. In the second step, this information is converted into a bit image and printed. Compare draft printing. + +**SSC**: Abbreviation for Super Serial Card, peripheral card that enables an Apple II to communicate with serial devices. + +**stack**: A list in which entries are added (pushed) and removed (pulled) at one end only (the top of the stack), causing entries to be removed in last-in, first-out (LIFO) order. The stack usually refers to the particular stack pointed to by the 65C816's stack register. Compare queue. + +**stack pointer**: See stack register. + +**stack register**: A hardware register in the 65C816 processor that contains the address of the top of the processor's stack. Also called S register. + +**standard Apple II**: Any computer in the Apple II family except the Apple IIGS. That includes the Apple II, the Apple II Plus, the Apple IIe, and the Apple IIc. + +**Standard Apple Numerics Environment (SANE)**: The set of methods that provides the basis for floating-point calculations in Apple computers. SANE meets all requirements for extended-precision, floating-point arithmetic as prescribed by IEEE Standard 754 and ensures that all floating-point operations are performed consistently and return the most accurate results possible. + +**standard file**: One of the two principal categories of ProDOS 16 files. Standard files contain whatever data they were created to hold; they have no predefined internal format. Compare directory file. + +**standard SmartPort call**: A SmartPort call that allows data transfer to or from anywhere in standard Apple II memory, or the lowest 64K of Apple IIGS memory. Compare extended SmartPort call. + +**start bit**: Transition from a MARK signal to a SPACE signal for one bit-time, indicating that next string of bits represents a character. One or two bits that indicate the beginning of a character in a string of serially transmitted characters. + +**start up**: To get the system running. Starting up involves loading system software from disk, and then loading and running an application. Also called boot. + +**starting value**: The value assigned to the index variable on the first pass through a loop. + +**startup disk**: A disk with all the necessary program files to set the computer into operation. In Apple II, sometimes called a boot disk. + +**statement**: A unit of a program in a high-level language that specifies an action for the computer to perform. A statement typically corresponds to several instructions of machine language. + +**static text**: Text on the screen that cannot be altered by the user. + +**status registers**: A location in the ACIA (at $C099 for port 1 and $COe9 for port 2) that stores the state of two RS-232-C signals and the state of the transmit and receive data registers, as well as the outcome of the most recent character transfer. A register in the 65816 microprocessor that contains flags reflecting the various aspects of machine state and operation results. + +**step value**: The amount by which the index variable changes on each pass through a loop. + +**stop bit**: A bit indicating the end of a character in a string of serially transmitted characters. A MARK signal following a data string (or the optional parity bit), indicating the end of a character. + +**storage type**: An attribute of a ProDOS file that describes the file's organizational form (such as directory file, seedling file, or sapling file). + +**string**: A sequence of characters. See C string, Pascal string. + +**strobe**: A signal whose change is used to trigger some action. + +**subdirectory**: A file that contains information about other files. In a hierarchical file system, files are accessed through the subdirectories that reference them. + +**subroutine**: A part of a program that can be executed on request from another point in the program and that returns control, on completion, to the point of the request. + +**Super Hi-Res**: Either of two high-resolution Apple display modes. 320 mode consists of an array of pixels 320 wide by 200 high, with 16 available colors; 640 mode is an array 640 wide by 200 high, with 16 available colors (with restrictions). + +**switcher**: A controlling program that rapidly transfers execution among several applications. + +**symbolic reference**: A name or label, such as the name of a subroutine, that is used to refer to a location in a program. When a program is linked, all symbolic references are resolved; when the program is loaded, actual memory addresses are patched into the program to replace the symbolic references. (This process is called relocation.) + +**synchronous**: A mode of data transmission in which a constant time interval exists between transmission of successive bits, characters, or events. Compare asynchronous. + +**synchronous transmission**: A transmission process that uses a clocking signal to ensure an integral number of unit (time) intervals between any two characters. Compare asynchronous transmission. + +**syntax**: (1) The rules governing the structure of statements or instructions in a programming language. (2) A representation of a command that specifies all the possible forms the command can take. + +**system**: A coordinated collection of interrelated and interacting parts organized to perform some function or achieve some purposefor example, a computer system comprising a processor, keyboard, monitor, disk drive, and software. + +**system call**: See operating system call. + +**system clock**: See clock. + +**system configuration**: See configuration. + +**system disk**: A disk that contains the operating system and other system software needed to run applications. + +**system file**: See system program. + +**system file level**: A number between $00 and $FF associated with each open ProDOS file. Every time a file is opened, the current value of the system file level is assigned to it. If the system file level is changed (by a SET-LEVEL call), all subsequently opened files will have the new level assigned to them. By manipulating the system file level, a controlling program can easily close or flush files opened by its subprograms. + +**system prefix (ProDOS 8)**: The one prefix maintained by ProDOS 8. + +**system program**: (1) A software component of a computer system that supports application programs by managing system resources such as memory and I/O devices. Also called system software. (2) Under ProDOS 8, a stand-alone and potentially self-booting application. A ProDOS 8 system program is of file type $FF; if it is self-booting, its filename has the extension .SYSTEM. + +**system software**: The component of a computer system that supports application programs by managing system resources such as memory and I/O devices. + +**TAB**: An ASCII character that commands a device such as a printer to start printing at a preset location (called a tab stop). There are two such characters: horizontal tab (hex 09) and vertical tab (hex 0B). TAB works like the tabs on a typewriter. + +**television set**: A display device capable of receiving broadcast video signals (such as commercial television broadcasts) by means of an antenna. Can be used in combination with a radio-frequency modulator as a display device for the Apple II family of computers. Compare video monitor. + +**terminal mode**: The mode of operation in which the Apple acts like an intelligent terminal. + +**text**: (1) Information presented in the form of readable characters. (2) The display of characters on a display screen. Compare graphics. + +**text file**: A file consisting of the ASCII representation of characters. + +**text file format (TFF)**: A file that consists of ASCII representations of characters. Compare object module format. + +**text window**: A window on the desktop within which text is displayed and scrolled. An area on the video display screen within which text is displayed and scrolled. That portion of the screen that is reserved for text. After starting the computer, the firmware uses the entire display for text. However, if you wish, you can restrict the text video activity to any rectangular portion of the display. + +**text-based interface**: An interface between computer and user in which all screen drawing (or other output) consists of characters. The form of each character is stored in ROM and can be involved with a single byte of data. Compare graphic interface. + +**tick count**: The (approximate) number of 60th second intervals since system startup. + +**traces**: Electrical paths that connect the components on a circuit board. + +**track**: (1) One of a series of concentric circles magnetically recorded on the surface of a disk when it is formatted. Each track is further divided into sectors. Each sector can hold several K of data. + +**transistor-transistor logic (TTL)**: (1) A family of integrated circuits having bipolar circuit logic; TTL ICs are used in computers and related devices. (2) A standard for interconnecting such circuits, which defines the voltages used to represent logical zeros and ones. + +**tree file**: An organizational form of a ProDOS standard file. A tree file consists of a single master index block, up to "J.27 index blocks, and up to 32,572 data blocks. + +**troubleshoot**: To locate and correct the cause of a problem or malfunction, especially in hardware. Compare debug. + +**TRUE**: Not zero. The result of a Boolean operation. The opposite of FALSE. + +**TTL**: See transistor-transistor logic. + +**TTL RGB**: A type of video monitor that can accept only a limited number of digital values and display only a correspondingly limited number of colors. Stands for transistor-transistor logic, red, green, blue. Compare analog RGB. + +**turnkey disk**: See startup disk. + +**type-ahead buffer**: A buffer that accepts and holds characters that" are typed faster than the computer can process them. + +**unary operator**: An operator that applies to a single operand. For example, the minus sign (-) in a negative number such as 4 ts a unary arithmetic operator. Compare binary operator. + +**unbuffered**: A style of input and output that does not use a buffer for I/O; reading and writing is done one character at a time. + +**unclaimed interrupt**: This occurs when the hardware Interrupt Request Line is active, indicating that an interrupt-producing device needs attention, but none of the installed interrupt handlers claims responsibility for the interrupt. + +**unload**: + +**update**: + +**user**: A person operating or controlling a computer system. + +**User ID**: An identification number that specifies the owner of + +**user interface**: The rules and conventions by which a computer system communicates with the person operating it. + +**utilities**: Programs that let you rename, copy, format, delete, and otherwise manipulate files and volumes. + +**value**: An item of information passed from a calling routine to a function. Compare result. An item of information that can be stored in a variable, such as a number or a string. + +**variable**: (1) A location in the computer's memory where a value can be stored. (2) The symbol used in a program to represent such a location. Compare constant. + +**version**: A number indicating the release edition of a particular piece of software. Version numbers for most system software (such as ProDOS and the System Loader) are available through function calls. + +**video monitor**: A display device that can receive video signals by direct connection only, and that cannot receive broadcast signals such as commercial television. Can be connected directly to the computer as a display device. Compare television set. + +**volume**: An object that stores data; the source or destination of information. A volume has a name and a volume directory with the same name; information on a volume is stored in files. Volumes typically reside in devices; a device such as a floppy disk drive may contain one of any number of volumes (disks). + +**volume bit map**: A portion of every ProDOS formatted disk that keeps track of free disk space. + +**volume control block (VCB)**: A data structure set up in memory by ProDOS to keep track of all volumes/devices connected to the computer. + +**volume directory**: A ProDOS directory file that is the principal directory of a volume. It has the same name as the volume. The pathname of every file on the volume starts with the volume directory name. + +**volume name**: The name by which a particular volume is identified. It is the same as the filename of the volume directory file. + +**warm start**: The process of transferring control back to the operating system in response to a failure in an application program. Compare cold start. + +**wraparound**: The automatic continuation of text from the end of one line to the beginning of the next; wraparound means that you don't have to press the Return key at the end of each line as you type. + +**write**: To transfer information from the computer to a destination external to the computer (such as a disk drive, printer, or modem) or from the computer's processor to a destination external to the processor (such as main memory). + +**write protect**: To protect the information on a 5.25-inch disk by covering the write-enable notch with a write-protect tab, preventing the disk drive from writing any new information onto the disk. Compare copy protect. + +**write-enable notch**: The square cutout on one edge of a 5.25-inch disk's jacket. If there is no write-enable notch, or if it is covered with a write-protect tab, the disk drive can read information from the disk, but cannot write on it. + +**write-protect tab**: (1) A small adhesive sticker used to write protect a 5.25-inch disk by covering the write-enable notch. (2) The small plastic tab in the corner of a 3.5-inch disk jacket. You lock (write protect) the disk by sliding the tab toward the edge of the disk; you unlock the disk by sliding the tab back so that it covers the rectangular hole. + +**X register**: One of the two index registers in the 6502 OR 65C816 microprocessor. + +**XOFF**: A special character (ASCII value $11) used for controlling the transfer of data between a microcomputer and a serial peripheral device. When one piece of equipment receives an XOFF character from the other, it stops transmitting characters until it receives an XON. See handshaking, XON. + +**XON**: A special character (ASCII value $13) used for controlling the transfer of data between a microcomputer and a serial peripheral device. See handshaking, XOFF. + +**Y register**: One of the two index registers in the 6502 OR 65C816 microprocessor. + +**ADTPro**: Apple Disk Transfer ProDOS (ADTPro) transfers physical disks and disk images between Apple II-era computers and the modern world. It can even get your Apple running if you don't have any disks at all. The host (server) component runs on today's computers with Java, and the 8-bit Apple (client) component runs on any Apple II or Apple /// compatible computer with 64k of memory or more. + +**archive file**: An archive file is a file that is composed of one or more computer files along with metadata. Archive files are used to collect multiple data files together into a single file for easier portability and storage, or simply to compress files to use less storage space. Archive files often store directory structures, error detection and correction information, arbitrary comments, and sometimes use built-in encryption. + +**compression**: Compression is the process of encoding information using fewer bits than the original representation. Compression is useful because it reduces resources required to store and transmit data. + +**device driver**: A device driver is a computer program that operates or controls a particular type of device that is attached to a computer. A driver provides a software interface to hardware devices, enabling operating systems and other computer programs to access hardware functions without needing to know precise details about the hardware being used. + +**DHCP**: The Dynamic Host Configuration Protocol (DHCP) is a network management protocol used on Internet Protocol networks whereby a DHCP server dynamically assigns an IP address and other network configuration parameters to each device on a network so they can communicate with other IP networks. + +**DNS**: The Domain Name System (DNS) is a hierarchical and decentralized naming system for computers, services, or other resources connected to the Internet or a private network. It associates various information with domain names assigned to each of the participating entities. Most prominently, it translates more readily memorized domain names to the numerical IP addresses needed for locating and identifying computer services and devices with the underlying network protocols. + +**driver**: See device driver. + +**editor**: See text editor. + +**Encryption**: + +**environment**: + +**File**: + +**function**: + +**GECOS**: + +**Hash**: + +**HTTPD**: + +**IP**: + +**IP Address**: + +**LanCeGS**: + +**loop**: + +**Multi-tasking**: + +**Multi-user**: + +**negate**: + +**Network Stack**: + +**NSC, No Slot Clock**: + +**ping**: + +**pipe**: + +**Preemptive**: + +**Process**: + +**process id**: + +**RamWorks**: + +**redirection**: + +**return code**: + +**SCSI**: + +**SCSI Cable**: + +**SCSI Card**: + +**SCSI Drive**: + +**SCSI Interface**: + +**StdErr**: + +**StdIn**: + +**StdOut**: + +**TCP**: + +**Telnet**: + +**Telnet Server**: + +**TelnetD**: + +**terminal**: + +**terminal emulator**: + +**text editor**: A text editor is a type of computer program that edits plain text. Text editors are provided with operating systems and software development packages, and can be used to change files such as configuration files, documentation files and programming language source code. + +**UDP**: + +**User**: + +**User ID**: + +**User Name**: + +**Uthernet**: + +**Uthernet II**: + +**VSDrive**: + +**VT100**: + +**VT100 Escape Code**: + +**Web Server**: + +**WiModem**: + +**ProDOS 1.0**: + +**ProDOS 2.0.3**: + +**ProDOS 2.0.3tc**: + +**ProDOS 2.4.2**: + +**ProDOS 2.5**: + +**ProDOSfx**: + +## License +A2osX is licensed under the GNU General Public License. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + +The full A2osX license can be found **[Here](../LICENSE)**. + +## Copyright + +Copyright 2015 - 2020, Remy Gibert and the A2osX contributors. diff --git a/.Docs/Media Guide.md b/.Docs/Media Guide.md index 2cae71e6..953e2f28 100644 --- a/.Docs/Media Guide.md +++ b/.Docs/Media Guide.md @@ -1,6 +1,6 @@ # A2osX Media Guide -### Updated January 26, 2020 +### Updated January 27, 2020 We have changed the media set for A2osX. New A2osX Users should download the most current version as shown in the table below. **A new Release Candidate (RC) edition has been made available (highlighted below), you should choose one of the media options from this set.** The Bleed media are the primary images used by the developers to hold the most current version of the A2osX binaries (and a copy of the source, although of course GitHub is the primary source repository) and may be unstable. You should not use this media unless directed by the A2osX development team. diff --git a/.Docs/News.md b/.Docs/News.md index e4af0cab..0d6e0a72 100644 --- a/.Docs/News.md +++ b/.Docs/News.md @@ -1,6 +1,34 @@ # A2osX (0.92) Multi-Tasking OS for Apple II -### Updated October 20, 2019 +### Updated January 27, 2020 + +## Latest News 2019-12-05 + +Media have been updated based on Build 1784. + +## Latest News 2019-10-31 + +Media have been updated based on Build 1694. This version fixes issues with Piping of commands, adds new READ functionality. Please note, KM.NSC is no longer loaded by default on any media. If you have a No Slot Clock in your system, you should move the file KM.NSC from ./SYS/KM into ./SYS which will make it load on boot. + +## Latest News 2019-10-26 + +Starting with Build 1675, the SH(ell) command **TIME** has been removed and the **DATE** command will now return both the Date and Time. Additionally, if DATE command has been updated to support options for returning formatted strings with just the portions of the date and time you desire. Consult the Shell Developers Guide for syntax. + +## Latest News 2019-10-24 + +Created STABLE images with Build 1669 with improvements to TCP networking. There is also a new DEBUG 140k disk image. See the media guide for more info. + +## Latest News 2019-10-22 + +Updated RC images to Build 1664 which fixed RESTART SYSTEM bug on //GS. + +## Latest News 2019-10-19 + +Updated RC images to Build 1653 which fixed bugs in CUT and includes a patched version of ProDOS 2.03 to correct year display for ThunderClocks. + +## Latest News 2019-10-18 + +Updated A2osX Release Candidate based on Build No 1650 is now available and can be found in our **[Media directory](.Floppies)**. In addition, a new disk image **TDBOOT** has been created that is preconfigured to automatically load Uthernet2 driver, start network services and launch the TelnetD server process (hence name TD for TelnetD Boot). ## Latest News 2019-10-15 @@ -209,4 +237,4 @@ The full A2osX license can be found **[Here](../LICENSE)**. ## Copyright -Copyright 2015 - 2019, Remy Gibert and the A2osX contributors. +Copyright 2015 - 2020, Remy Gibert and the A2osX contributors. diff --git a/.Docs/ProDOS.md b/.Docs/ProDOS.md index 8552cba0..8c00a9e2 100644 --- a/.Docs/ProDOS.md +++ b/.Docs/ProDOS.md @@ -1,6 +1,6 @@ # A2osX and ProDOS -### Updated January 16, 2020 +### Updated January 27, 2020 As discussed in the **[Users Guide](.Docs/User%20Guide.md)**, A2osX runs on top of ProDOS, leveraging its support for block devices such as floppy drives, hard drives, SmartPort drives, etc.; it is limited in its ability to implement certain features based on the capabilities of the underlying operating system, in this case ProDOS. This document will provide an overview of those features and their availability or absence from several versions of ProDOS including two new versions of ProDOS created by the makers of A2osX. diff --git a/.Docs/Screen Shots.md b/.Docs/Screen Shots.md index 8de98773..812e08f2 100644 --- a/.Docs/Screen Shots.md +++ b/.Docs/Screen Shots.md @@ -1,6 +1,6 @@ # A2osX (0.93) Multi-Tasking OS for Apple II -### Updated October 20, 2019 +### Updated January 27, 2020 ## Screenshots diff --git a/.Docs/Shell Developers Guide.md b/.Docs/Shell Developers Guide.md index 93da4859..5bf58b35 100644 --- a/.Docs/Shell Developers Guide.md +++ b/.Docs/Shell Developers Guide.md @@ -1,7 +1,6 @@ - # A2osX Shell Developers Guide -### Updated December 15, 2019 +### Updated January 27, 2020 One of the most significant parts of A2osX is its shell which can perform both interactive and scripted tasks. Using the interactive part of the shell, you can perform many common and complex tasks using both built-in (native or internal to shell) and external (BIN or executable) commands. Internal commands include CD (change directory), MD (make directory), PWD, DATE, etc. External commands include CP (copy), RM (remove), CAT (display file contents), TELNET, etc. It is even possible to create and execute short scripts right on the interactive command line (these are run once and not saved like true scripts) such as: @@ -13,7 +12,9 @@ This Developers Guide will cover the basic operation of the interactive shell, t ## About the A2osX Shell (SH) -The default A2osX Shell **./bin/sh** is an external command program like many others included with A2osX. It is probably the most complex and capable, as suggested by its size compared to other commands (7K vs 1K for **telnet**). It is the primary tool for interacting with the A2osX system. The **sh** shell is based loosely on the Linux BASH shell, to the extent possible on an 8-bit machine. Alternative shells are planned for the future and will be announced as they become available. +The default A2osX Shell **./bin/sh** is an external command program like many others included with A2osX. It is probably the most complex and capable, as suggested by its size compared to other commands (7K vs 1K for **telnet**). It is the primary tool for interacting with the A2osX system. The **sh** shell is based loosely on + + the Linux BASH shell, to the extent possible on an 8-bit machine. Alternative shells are planned for the future and will be announced as they become available. As the primary mechanism for working with A2osX, the shell (**sh**) is launched automatically when you log into A2osX. In the case where no *./etc/passwd* file is present, A2osX automatically logs you in as the *root* user. When a user login occurs and **sh** is launched, it looks for a file called *profile* in the users HOME directory and if found, executes that script. The information below on writing scripts applies to PROFILE script files. @@ -643,13 +644,13 @@ The **SET** command is used to set or clear the value of variables as well as to The most simplistic form of set is **SET var = value** such as SET myVar = 6, where the shell will create a new variable called MyVar and in this case make it an Interger (32-bit) and set its value to 6. -As seen throughout this guide, scripts are very useful for automating many repetitive tasks. To get the most out of scripts, you are likely going to want input from the user or gather existing data stored in your file system and then use this to control program flow. To do this, you are likely going to want to use variables to store and process the data your script relies on. This section will provide you with the information you need to get the most out of your own, as well as system provided, variables. +As seen throughout this guide, scripts are very useful for automating many repetitive tasks. To get the most out of scripts, you are likely going to want input from the user or gather existing data stored in your file system and then use this to control program flow. To do this, you are likely going to want to use variables to store and process the data your script relies on. This section will provide + you with the information you need to get the most out of your own, as well as system provided, variables. All variables have names, starting with xxx, can be any length, but longer is not better. They are case sensitive so AVAR, Avar, aVar, and avar are actually 4 different variables. There are only two kinds of variables internally, strings and integers. - Variable overflow strings and ints Ints only no real num it just ignore @@ -840,6 +841,12 @@ The following example demonstrates the complete validation concept outlined abov Copy Vars????, Different Context, own vars get lost, own funcs, when called with dot, is using the same env. + + + + + + ### Line Separator ; ; ; ... @@ -865,8 +872,9 @@ As far as the shell is concerned, it processes both syntax as a series of indivi # This is a comment. # This is a another comment. #LastComment + ECHO Hello ; # Comment after command using semi-colon -You add comments to your scripts by placing a pound sign at the start of the line of your script. The # must be the first non-space character on the line, for the entire line to be treated as a comment. As shown in the sample scripts throughout this guide, you can add a comment to a line containing a command (i.e. ECHO "Hello") by using the semicolon to concatenate multiple lines (i.e. ECHO "Hello" ; # A Comment). +You add comments to your scripts by placing a pound sign (**#**) at the start of the line of your script. The **#** must be the first non-space character on the line, for the entire line to be treated as a comment. As shown in the sample scripts throughout this guide, you can add a comment to a line containing a command (i.e. ECHO "Hello") by using the semicolon to concatenate multiple lines (i.e. ECHO "Hello" ; # A Comment). ### Examples @@ -875,7 +883,7 @@ In addition to the scripts in this document, there are many example scripts incl ## License A2osX is licensed under the GNU General Public License. - This program is free software; you can redistribute it and/or modify + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. @@ -889,4 +897,4 @@ The full A2osX license can be found **[Here](../LICENSE)**. ## Copyright -Copyright 2015 - 2019, Remy Gibert and the A2osX contributors. +Copyright 2015 - 2020, Remy Gibert and the A2osX contributors. diff --git a/.Docs/TERM.md b/.Docs/TERM.md index 6c7cb9b4..25fecc9e 100644 --- a/.Docs/TERM.md +++ b/.Docs/TERM.md @@ -1,6 +1,6 @@ # A2osX Terminal Codes Guide -### Updated October 31, 2019 +### Updated January 27, 2020 A2osX terminal capabilities are based off of the standard VT100 Terminal. This applies to users connected via Super Serial Cards, Telnet (via TelnetD server daemon) and Apple console (physical keyboard/screen). All programs can use this facility to create rich interactive text mode applications. This includes both programs written in Assembly or Scripts written for the Shell (SH). The table below lists the codes you can use in your applications and their function. Consult the A2osX Shell Developers Guide for information on using these codes in scripts. Note, the Apple Console implementation only supports a subset of the VT100 codes, these are noted in the last column as OK. diff --git a/.Docs/Technical Spec.md b/.Docs/Technical Spec.md index a00d547e..6ddffdc7 100644 --- a/.Docs/Technical Spec.md +++ b/.Docs/Technical Spec.md @@ -1,6 +1,6 @@ # A2osX (0.93) Multi-Tasking OS for Apple II -### Updated November 19, 2019 +### Updated January 27, 2020 This is the functional specification for A2osX and its system modules, internal and external commands and shell language. Please refer to the other A2osX documentation such as the User Guide, Notes for Developers and Shell Programming Guide for more information on the use of these commands and modules. @@ -18,8 +18,8 @@ This is the functional specification for A2osX and its system modules, internal | Name | Status | Comment | K.Ver | | ---- | ------ | ------- | ------| | GETTY | Working | -E : Exit on remote close | 0.93 | -| HTTPD | In Progress | Web Page Server Daemon | 0.94 | -| INITD | In Progress | Run Level Manger | 0.94 | +| HTTPD | Future | Web Page Server Daemon | 0.94 | +| INITD | Future | Run Level Manger | 0.94 | | INSDRV | Working | Loads HW Drivers | 0.93 | | KCONFIG | Working | Kernel Configuration Utility | 0.93 | | LOGIN | Working | Authorization using /etc/passwd | 0.93 | @@ -44,7 +44,7 @@ This is the functional specification for A2osX and its system modules, internal | Name | Status | Comment | K.Ver | | ---- | ------ | ------- | ----- | | ARP | Working | dump ARP cache, setup a static ARP entry | 0.93 | -| ASM | In Progress | S-C MASM based multi CPU assembler | 0.94 | +| ASM | In Progress | S-C MASM based multi-CPU assembler | 0.94 | | CAT | Working | -A : Show All non printable caracters
-N : Number all output lines
-S : Suppress repeated empty output lines | 0.93 | | CHGRP | Future | -C : Continue On Error
-R : Recurse subdirectories | | | CHMOD | Future | -C : Continue On Error
-R : Recurse subdirectories | | @@ -61,7 +61,7 @@ This is the functional specification for A2osX and its system modules, internal | IPCONFIG | Working | -D : Try to get IP address from DHCP
-E : Read ETC files
-S : Set/Reset TCPIP configuration (-E, then -D if required) | 0.93 | | KILL | Working | KILL \ PID
-0 : No Signal
-1 : SIGQUIT
-2 : SIGKILL | 0.93 | | LS | Working | -A : Print . & ..
-C : Single column listing
-F : Single column, includes full path
-L : long listing with size/date...
-R : Recurse subdirectories | 0.93 | -| LSDEV | Working | Dump device Drivers | 0.93 | +| LSDEV | Working | List device Drivers | 0.93 | | LSOF | Working | List Open Files | 0.93 | | MD5 | Working | MD5 \[ -D : String \| file \] | 0.93 | | MEM | Working | Displays Main, Aux & Kernel Memory | 0.93 | @@ -89,7 +89,7 @@ This is the functional specification for A2osX and its system modules, internal | Name | Status | Comment | | ---- | ------ | ------- | -| \ | Working |[ -D direxists ]
[ -E fileordirexists ]
[ -F fileexists ]
[ -I isaninteger ]
[ -N $VAR variable is not empty ]
[ -Z $VAR variable is empty ]
[ string1 = string2 ]
[ string1 != string2 ]
[ string1 .< string2 ]
[ string1 <= string2 ]
[ string1 .> string2 ]
[ string1 >= string2 ]
[ int32 -eq int32 ]
[ int32 -ne int32 ]
[ int32 -lt int32 ]
[ int32 -le int32 ]
[ int32 -gt int32 ]
[ int32 -ge int32 ] | +| \ | Working |[ -D direxists ]
[ -E fileordirexists ]
[ -F fileexists ]
[ -I isaninteger ]
[ -N $VAR variable is not empty ]
[ -X functionexists ]
[ -Z $VAR variable is empty ]
[ string1 = string2 ]
[ string1 != string2 ]
[ string1 .< string2 ]
[ string1 <= string2 ]
[ string1 .> string2 ]
[ string1 >= string2 ]
[ int32 -eq int32 ]
[ int32 -ne int32 ]
[ int32 -lt int32 ]
[ int32 -le int32 ]
[ int32 -gt int32 ]
[ int32 -ge int32 ] | | \ | Working | \ [\ \] ... | | \ | Working | \+ : signed int32 add
\- : signed int32 subtract
\* : signed int32 multiply
/ : signed int32 divide
mod : signed int32 modulo | | \ | Working | $VAR \| string \| "string with SPACE" \| 123 \| -456 | @@ -160,9 +160,9 @@ note : '$VAR' does NOT expand Variable | 2> | Working | | ## License -A2osX is licensed under the GNU General Pulic License. +A2osX is licensed under the GNU General Public License. - This program is free software; you can redistribute it and/or modify + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. @@ -176,4 +176,4 @@ The full A2osX license can be found **[Here](../LICENSE)**. ## Copyright -Copyright 2015 - 2019, Remy Gibert and the A2osX contributors. +Copyright 2015 - 2020, Remy Gibert and the A2osX contributors. diff --git a/.Docs/User Guide.md b/.Docs/User Guide.md index bb89bcca..0d72c27a 100644 --- a/.Docs/User Guide.md +++ b/.Docs/User Guide.md @@ -1,6 +1,6 @@ # A2osX User Guide -### Updated December 17, 2019 +### Updated January 27, 2020 This Guide provides information on getting started with A2osX. This Guide helps you understand the basic features, capabilities and operation of A2osX. This should be the first document you read before, or soon after, installing or running A2osX. @@ -94,7 +94,7 @@ First, let's walk through the most standard and likely boot process of A2osX usi - This shell process executes the script *PROFILE* found in the users home directory. Some notes on the above: -- A2osX has been tested on ProDOS versions 2.0.3 and 2.4.2. We welcome testing and feedback on using A2osX with other versions. +- A2osX has been tested on ProDOS versions 2.0.3 and 2.4.2 as well as with the special versions of ProDOS contained on the distribution media (these are discussed elsewhere). We welcome testing and feedback on using A2osX with other versions. - The *NS.CLOCK.SYSTEM* is not needed by A2osX because there is a Kernel Module that accomplishes the same thing, please see the section on KMs. A user may want the *NS.CLOCK.SYSTEM* file if they are running other applications (i.e. AppleWorks) from the same volume so that the NSC patch gets enabled for their apps use of the clock. - There are enhancements planned for the QUIT CODE routine. In the future, we hope to allow you to execute another SYSTEM file from the Shell in A2osX whereby QC routine will unload A2osX, load your other SYSTEM program (again i.e. AppleWorks) and then when you quit that application, the QC routine will reload A2osX. - When *A2OSX.SYSTEM* starts, it initializes the system in stages as described above (load KMs, load Kernel, execute INIT, etc.). If during this process you hold down the Open-Apple key, A2osX will stop at the end of each stage until you press another key. You can use this to debug start up problems/hardware conflicts. @@ -102,6 +102,8 @@ Some notes on the above: - The *./etc/init* file can be used to automatically start the *ssc.drv* and **getty** process for an external terminal. It can also be used to load network drivers and processes at boot. - The ./${HOME}/profile file can be used to change a users default $PATH, run a Shell Script or load a particular program when a user logs in. +>**Need new section here on DEBUG.po and how to use it to solve hardware conflict issues** + If you decide to install/copy A2osX to your own existing Hard Drive or volume, you just need to be sure to keep the A2osX file system structure in tact. To start A2osX "manually" as it were, you change your PREFIX to the appropriate sub-directory and then load *A2OSX.SYSTEM*. So for example, if you had a CFFA card that booted to a volume called /HD1, you could make a subdirectory on this disk called A2OSX. You would then set your PREFIX to */HD1/A2OSX* and launch *A2OSX.SYSTEM* and the rest of the boot process outlined above would be followed. Please see the section on Installation for more information on putting A2OSX on your own media. ### A2osX Kernel Modules @@ -119,7 +121,7 @@ The *km.nsc* module gives you the same functionality as the *NS.CLOCK.SYSTEM* ro The *km.ramworks* is used only on systems with greater then 128K of memory provided by a RamWorks compatible 80-col card in an Apple //e. It turns any additional memory into a ram disk */RAM3*. You should **NOT** load the *km.ramworks* module on Apple //GS systems. -The *km.vsdrive* module helps you connect to an ADTPRO server via a Super Serial Card (SSC). This module will use the first Super Serial Card in your system set with Interrupts off. It is also best if you set this SSC at a baud rate of 115200. If you have more then one SSC system and you are using the others for terminals you should fully understand how to configure the cards, Kernel Modules, and the SSC drivers for optimal performance. +The *km.vsdrive* module helps you connect to an *ADTPRO* server via a Super Serial Card (SSC). This module will use the first Super Serial Card in your system set with Interrupts off. It is also best if you set this SSC at a baud rate of 115200. If you have more then one SSC system and you are using the others for terminals you should fully understand how to configure the cards, Kernel Modules, and the SSC drivers for optimal performance. If you are using this module on an emulator, see the section below on *AppleWin* for important information about using *ADTPro*. The *km.appletalk* module helps ProDOS talk to APPLETALK, though at the moment A2osX cannot use this facility until we complete the ATLOGIN/Mount programs. On most of our media you will find this KM stored in a subdirectory of ./SYS which means it is not loaded at start up. As this module is in development, in may not be included on the media you download. @@ -174,7 +176,7 @@ A2osX supports as many physical terminals as you have SSC cards and memory to lo A2osX supports multiple internet connected terminals via a **telnetd** server process. The **telnetd** process supports VT-100 terminals, so you should set your Telnet client (i.e. PuTTY) to use VT-100 emulation. Of course you can use another Apple running A2osX and the **telnet** client to connect to an Apple running A2osX and the **telnetd** server. ->Note, if you are using Telnet Client Software such as PuTTY for Windows and see random garbled characters (odd graphics symbols), you may need to change your **Remote Character Set** to something other than **UTF-8**, such as **ISO-8859-1:1998 (Latin-1, West Europe)**. +>Note, if you are using Telnet Client Software such as *PuTTY* for Windows and see random garbled characters (odd graphics symbols), you may need to change your **Remote Character Set** to something other than **UTF-8**, such as **ISO-8859-1:1998 (Latin-1, West Europe)**. One of the images available in the .Floppies folder is *TDBOOT.po* which is a preconfigured A2osX system that loads the Uthernet 2 Driver, TCP and **tetlnetd** at boot. If you want to use this image on *AppleWin*, edit the *./etc/init* file to comment out the *uthernet2.drv* driver and remove the comment from the *uthernet.drv* line and reboot. See the section on running A2osX under *AppleWin* for more information. @@ -227,24 +229,27 @@ While A2osX supports many Apple II hardware devices, it is possible a conflict w | FastChip //e | Working | Must disable RAMFACTOR | | Apple 1mb Slinky Ram Card | Working | Possible conflict with Transwarp | ->**Need new section here on DEBUG.po and how to use it to solve hardware conflict issues** - ## Getting Started To get started with A2osX, the very first thing you need to do is download a disk image from GitHub. Images are available in multiple versions from cutting edge developer seeds to release candidates as well as in multiple sizes suitable for placing on Disk II drives, 3.5 drives or hard drives of for use with emulators. Please consult the **[A2osX Media Guide](.Docs/Media%20Guide.md).** for detailed information on the available images. ### Using AppleWin -Download one of the available 32MB images from GitHub. Open AppleWin and then click on the configuration icon. When the configuration screen appears, select the Disk tab. Next, make sure the **Enable Hard disk controller in slot 7** box is checked and set the **HDD 1** to the image you downloaded. Click OK to save your changes and finally boot the emulated Apple by clicking on the colored Apple icon. Suggestion: on the configuration screen, for Video Mode, select Color (RGB Monitor). You may also want to setup AppleWin for Ethernet as A2osX has many features that make use of the emulated Uthernet I card supplied by AppleWin (consult AppleWin documentation for more information on enabling this feature). +Download one of the available 32MB images from GitHub. Open *AppleWin* and then click on the configuration icon. When the configuration screen appears, select the Disk tab. Next, make sure the **Enable Hard disk controller in slot 7** box is checked and set the **HDD 1** to the image you downloaded. Click OK to save your changes and finally boot the emulated Apple by clicking on the colored Apple icon. Suggestion: on the configuration screen, for Video Mode, select Color (RGB Monitor). You may also want to setup *AppleWin* for Ethernet as A2osX has many features that make use of the emulated Uthernet I card supplied by AppleWin (consult *AppleWin* documentation for more information on enabling this feature). -Note on speed of networking +>A note on enabling networking for A2osX while running in emulator such as *AppleWin*. A2osX, fully supports the emulated UtherNet I network interface in *AppleWin*. A2osX, does however, base its timing, or rather its time-out window, based on a calculated timing loop. This works fine on real Apple computers, including ones with accelerators. Unfortunately, while *AppleWin* can be accelerated, it actually artificially forces the system to report a 1mhz clock rate regardless of the accelerator level selected. In real terms, what this does, is cause the network to miss or falsely timeout on some packets. For most applications, this is not an issue as TCP will automatically re-transmit the packet over again. Where this is a **REAL** problem is with DHCP that does not use TCP and you will seemingly never get a DHCP lease. Simply set *AppleWin* to 2.0 speed and everything will work fine. In fact, if you have A2osX set to load the network automatically when you boot, boot at 2.0 speed, and then once IP address has been set, you can up the acceleration speed to max if desired. + +As noted above in the section on Kernel Modules, A2osX comes with a special module to connect to ADTPro disk image servers, which is typically done on a real Apple with a Super Serial Card. On *AppleWin* this is possible using its built in Virtual Serial over IP implementation which means serial traffic in and out of the virtual Apple II actually flows over a socket, but the Apple still understands it and treats it as if it is serial. The ADTPro server can take advantage of this and communicate to the emulator this way. Starting the ADTPro server with the command line parameter 'localhost' triggers this behavior. Consult the ADTPro documentation for more information. + +The Virtual Serial Over IP emulation uses port 1977. If you are not using *km.vsdrive* to talk to ADTPro, you can set up this serial port to be used as another terminal device for your A2osX system. Then a 2nd user can log into the same A2osX system by using a telnet client such as *PuTTY* to your pc but with port 1977 instead of 23 (the default for telnet). + +>Note, the GSport/KEGS emulators offer a similar feature using port 6502. ### Installing on Your Apple First check that your system meets the minimum hardware requirements. Download one of the available images from GitHub. Images are available in 140K (5 1/4 floppy), 800K (3.5 floppy) and 32MB (suitable for use with hard drive emulators). You will need to use ADTPro to convert an image to physical media or a device such as a FloppyEMU or CFFA to load/boot one of these images on a real Apple. If you are using a device such as the FloppyEMU or CFFA, you should use either the 800K or 32MB images (ProDOS volume name: FULLBOOT) as the smaller 140K image (ProDOS volume: MINIBOOT) is a pared down copy of A2osX that omits several utilities to fit in 140K. >If you have your own hard drive, you can install A2osX on your drive. The best way to accomplish this is to first start A2osX from one of the supplied media and use its built in commands to copy A2osX to your own drive. For instance, if you have a bootable ProDOS-8 volume on your system named **/MYHD** and one of the A2osX images named **/FULLBOOT** follow these steps: -> - Boot your system. - If the A2osX media is set as the boot device, A2osX will load automatically. @@ -254,17 +259,17 @@ First check that your system meets the minimum hardware requirements. Download You can then enter these commands to put A2osx on your Volume **/MYHD** (replace MYHD in this example with your actual volume name). - /FULLBOOT/ROOT/$ MD /MYHD/A2OSX - /FULLBOOT/ROOT/$ CD .. - /FULLBOOT/$ CP -R * /MYHD/A2OSX - /FULLBOOT/$ ECHO "PREFIX /MYHD/A2OSX" > /MYHD/AOSX - /FULLBOOT/$ ECHO "-A2OSX.SYSTEM" >> /MYHD/AOSX + /FULLBOOT/ROOT/$ md /MYHD/A2OSX + /FULLBOOT/ROOT/$ cd .. + /FULLBOOT/$ cp -r * /MYHD/A2OSX + /FULLBOOT/$ echo "PREFIX /MYHD/A2OSX" > /MYHD/AOSX + /FULLBOOT/$ echo "-A2OSX.SYSTEM" >> /MYHD/AOSX All of the commands above are documented in the A2osX Command Guide or the Shell Developers Guide, but briefly: - **md** creates a sub-directory on your volume named A2OSX -- **cd** .. moves up one directory level. The ROOT subdirectory is the home directory for the root user. We move up to the FULLBOOT volumes main directory so that the **cp** (copy) command issued next will copy all the files on this volume. +- **cd ..** moves up one directory level. The ROOT subdirectory is the home directory for the root user. We move up to the FULLBOOT volumes main directory so that the **cp** (copy) command issued next will copy all the files on this volume. - **cp** copies files and in this case recursively (**-r** option) selecting all files (* wildcard) and puts them in the destination we created early /MYHD/A2OSX -- The next two lines create a bat file, or in ProDOS/BASIC terms an EXEC file that will first change the PREFIX to our new A2OSX sub directory and then launch A2osX. Note the first line use > which will create a file and the 2nd uses >> which appends to a file. Also note that we named the file AOSX and not A2OSX as the latter's name is already used by the sub-directory we created. +- The next two lines create a bat file, or in ProDOS/BASIC terms an EXEC file that will first change the PREFIX to our new A2OSX sub directory and then launch A2osX. Note the first line uses > which creates (or completely overwrites) a file and the 2nd uses >> which appends to a file (or creates it if it does not already exist). Also note that we named the file AOSX and not A2OSX as the latter's name is already used by the sub-directory we created. ### Configuring A2osX @@ -459,4 +464,4 @@ The full A2osX license can be found **[Here](../LICENSE)**. ## Copyright -Copyright 2015 - 2019, Remy Gibert and the A2osX contributors. +Copyright 2015 - 2020, Remy Gibert and the A2osX contributors. diff --git a/.Floppies/A2OSX.MAKE.po b/.Floppies/A2OSX.MAKE.po index 000879ab..b2bc1f20 100644 Binary files a/.Floppies/A2OSX.MAKE.po and b/.Floppies/A2OSX.MAKE.po differ diff --git a/.Floppies/DEBUG.po b/.Floppies/DEBUG.po index d495ade0..feb04508 100644 Binary files a/.Floppies/DEBUG.po and b/.Floppies/DEBUG.po differ diff --git a/.Floppies/DEBUG_000000000.bmp b/.Floppies/DEBUG_000000000.bmp new file mode 100644 index 00000000..5ff9e119 Binary files /dev/null and b/.Floppies/DEBUG_000000000.bmp differ diff --git a/.Floppies/DEBUG_000000001.bmp b/.Floppies/DEBUG_000000001.bmp new file mode 100644 index 00000000..054b7cef Binary files /dev/null and b/.Floppies/DEBUG_000000001.bmp differ diff --git a/.Floppies/DEBUG_000000002.bmp b/.Floppies/DEBUG_000000002.bmp new file mode 100644 index 00000000..a453ec15 Binary files /dev/null and b/.Floppies/DEBUG_000000002.bmp differ diff --git a/.Floppies/DEBUG_000000003.bmp b/.Floppies/DEBUG_000000003.bmp new file mode 100644 index 00000000..46e224dd Binary files /dev/null and b/.Floppies/DEBUG_000000003.bmp differ diff --git a/.Floppies/DEBUG_000000004.bmp b/.Floppies/DEBUG_000000004.bmp new file mode 100644 index 00000000..07df954b Binary files /dev/null and b/.Floppies/DEBUG_000000004.bmp differ diff --git a/.Floppies/DEBUG_000000005.bmp b/.Floppies/DEBUG_000000005.bmp new file mode 100644 index 00000000..c9c848eb Binary files /dev/null and b/.Floppies/DEBUG_000000005.bmp differ diff --git a/.Floppies/ProDOS_2_5_a7_143k.dsk b/.Floppies/ProDOS_2_5_a7_143k.dsk new file mode 100644 index 00000000..20e841ec Binary files /dev/null and b/.Floppies/ProDOS_2_5_a7_143k.dsk differ diff --git a/.Floppies/ProDOS_2_5_a8_143k.dsk b/.Floppies/ProDOS_2_5_a8_143k.dsk new file mode 100644 index 00000000..71bf9d22 Binary files /dev/null and b/.Floppies/ProDOS_2_5_a8_143k.dsk differ diff --git a/.Floppies/STABLE.140.po b/.Floppies/STABLE.140.po index 75ba2a7e..4bf9480b 100644 Binary files a/.Floppies/STABLE.140.po and b/.Floppies/STABLE.140.po differ diff --git a/.Floppies/STABLE.32MB.po b/.Floppies/STABLE.32MB.po index 87209a05..638cd24a 100644 Binary files a/.Floppies/STABLE.32MB.po and b/.Floppies/STABLE.32MB.po differ diff --git a/.Floppies/STABLE.800.po b/.Floppies/STABLE.800.po index 428efd6d..ee5c3f7b 100644 Binary files a/.Floppies/STABLE.800.po and b/.Floppies/STABLE.800.po differ diff --git a/.Floppies/TDBOOT.po b/.Floppies/TDBOOT.po index b05ed513..613895c7 100644 Binary files a/.Floppies/TDBOOT.po and b/.Floppies/TDBOOT.po differ diff --git a/.Tools/makepdosbatfiles.txt b/.Tools/makepdosbatfiles.txt new file mode 100644 index 00000000..f0f4d491 --- /dev/null +++ b/.Tools/makepdosbatfiles.txt @@ -0,0 +1,102 @@ +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS1X/PRODOS.1.0 +MAN +TEXT P10 +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS1X/PRODOS.1.0.1 +MAN +TEXT P101 +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS1X/PRODOS.1.0.2 +MAN +TEXT P102 +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS1X/PRODOS.1.0.NOV +MAN +TEXT P10NOV +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS1X/PRODOS.1.0.SEP +MAN +TEXT P10SEP +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS1X/PRODOS.1.1.1 +MAN +TEXT P111 +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS1X/PRODOS.1.2 +MAN +TEXT P12 +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS1X/PRODOS.1.3 +MAN +TEXT P13 +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS1X/PRODOS.1.4 +MAN +TEXT P14 +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS1X/PRODOS.1.5 +MAN +TEXT P15 +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS1X/PRODOS.1.6 +MAN +TEXT P16 +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS1X/PRODOS.1.7 +MAN +TEXT P17 +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS1X/PRODOS.1.8 +MAN +TEXT P18 +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS1X/PRODOS.1.9 +MAN +TEXT P19 +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS2X/PRODOS.2.0.1 +MAN +TEXT P201 +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS2X/PRODOS.2.0.2 +MAN +TEXT P202 +NEW + PREFIX +AUTO 4,1 +-ASSETS/PDOS2X/PRODOS.2.0.3 +MAN +TEXT P203 diff --git a/ADMIN/HELP.txt b/ADMIN/HELP.txt new file mode 100644 index 00000000..7d426bd1 --- /dev/null +++ b/ADMIN/HELP.txt @@ -0,0 +1,9 @@ +NEW + PREFIX +AUTO 4,1 +#!/BIN/SH +# +# HELP +# +MAN +TEXT /MAKE/USR/SHARE/ADMIN/HELP diff --git a/EXAMPLES/CLOCK.txt b/EXAMPLES/CLOCK.txt new file mode 100644 index 00000000..3ecb773c --- /dev/null +++ b/EXAMPLES/CLOCK.txt @@ -0,0 +1,48 @@ +NEW + PREFIX +AUTO 4,1 +#!/BIN/SH +# +# This is the A2osX Clock Example +# +# It makes extensive use of functions to display the current time. +# +# Because you cannot get the current time to a variable, this script +# puts the time into a tmp file and then reads it back into vars. +# If /RAM3 exists we will use that to hold the TMP file. +# +# Functions for displaying clock digits +# +# Print at Screen Location Function +# CALL PRINTXY Num_Row Num_Column Str_String +FUNCTION PRINTXY { + ECHO -N "\e[$1;$2H$3" +} +# Print Inverse At X Y +# CALL INVERSEXY Row Col String +FUNCTION INVERSEXY { + ECHO -N "\e[$1;$2H\e[7m$3\e[0m" +} +# CALL DispSpace Row Col +FUNCTION DispSpace +{ + SET Row = $1 + SET Col = $2 + +} +FUNCTION DispColon +{ + SET Row = $1 + SET Col = $2 + +} +FUNCTION DispHour +{ +} +#Clear Screen +ECHO \f + + + +MAN +TEXT /MAKE/USR/SHARE/EXAMPLES/CLOCK diff --git a/README.md b/README.md index 00f07057..18622ca7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # A2osX (0.93) Multi-Tasking OS for Apple II -### Updated December 5, 2019 +### Updated January 27, 2020 ## A2osX Release Candidate now available @@ -20,29 +20,27 @@ The foundation of A2osX enabling its multi-user multitasking capabilities is a r A2osX is designed to work on any 128k Enhanced Apple //e or newer computer. Specifically, A2osX relies on the enhanced instruction set found in the 65C02 processor (this includes the 65C816 found in the //GS). A2osX will not run on an Apple ][ or ][+, a non enhanced //e or on systems without at least 128K of memory. A2osX does not require any special hardware cards, but does support and its operation can be enhanced with the presence of a mass storage devices (any ProDOS block device), a network card, Super Serial Card and/or a Time Card. -Consult the **[documentation](#documentation)** section below to find other resources available to you for learning how to install, use, develop and test A2osX. The Hardware section of the User Guide contains more information on supported hardware. +Consult the **[documentation](#documentation)** section below to find other resources available to you for learning how to install, use, develop and test A2osX. The Hardware section of the User Guide contains more information on tested and supported hardware. ## News... -**2019-12-05** - Media have been updated based on Build 1784. +**2020-01-27** - **Major update to A2osX 0.93** -**2019-10-31** - Media have been updated based on Build 1694. This version fixes issues with Piping of commands, adds new READ functionality. Please note, KM.NSC is no longer loaded by default on any media. If you have a No Slot Clock in your system, you should move the file KM.NSC from ./SYS/KM into ./SYS which will make it load on boot. +The A2osX team is proud to announce the availability of two new versions of ProDOS, one with a very minor tweak and the other a major update/overhaul. There is ProDOS 2.03tc which is an 8 byte patch to ProDOS 2.03 to update the year table to support years through 2023 and ProDOS FX, a **F**aster and e**X**tended version, that adds many new features including lower case file, directory and volume name support. These new versions are already being included in the latest **Stable** media and will become the versions of ProDOS supplied on all future media. The team added a new Document to our repository that covers these and other publically available versions of ProDOS and their use with A2osX. -**2019-10-26** - Starting with Build 1675, the SH(ell) command **TIME** has been removed and the **DATE** command will now return both the Date and Time. Additionally, if DATE command has been updated to support options for returning formatted strings with just the portions of the date and time you desire. Consult the Shell Developers Guide for syntax. +A2osX now act actually has for quite some time supports lower case in file, directory and volume names as long as this capability is available in the version of ProDOS you are running. Consult the new **[A2osX and ProDOS](.Docs/ProDOS.md)** document for more information and a table on which versions of ProDOS provide this capability to A2osX. -**2019-10-24** - Created STABLE images with Build 1669 with improvements to TCP networking. There is also a new DEBUG 140k disk image. See the media guide for more info. +The *EDIT* utility has undergone a major update. We need your testing and feedback. Please make sure to open issues on any anomalies you discover. -**2019-10-22** - Updated RC images to Build 1664 which fixed RESTART SYSTEM bug on //GS. +Kernel/Shell rewrite to move more things to AUX freeing main mem. with 2 tty used to be 22K free. Now. 26.5K with 1TTY 28.4K. of course with 8 TTY 17.5K -**2019-10-19** - Updated RC images to Build 1653 which fixed bugs in CUT and includes a patched version of ProDOS 2.03 to correct year display for ThunderClocks. +Speaking of changing the number of virtual TTYs, A2osX has been enhanced to now support up to 8 virtual terminals on the console, configurable with the KCONFIG utility. Consult the User Guide for more information. Note that with 8 virutal TTYs defines, available main memory drops to 17.5K. Open Apple 1 through 8 is used to be switched between the virtual terminals, Open Apple-0 is still used to access the A2osX Console (displays system errors and information) and Open Apple-9 is reserved for future use of DHGR (Double High-res Graphics). -**2019-10-18** - Updated A2osX Release Candidate based on Build No 1650 is now available and can be found in our **[Media directory](.Floppies)**. In addition, a new disk image **TDBOOT** has been created that is preconfigured to automatically load Uthernet2 driver, start network services and launch the TelnetD server process (hence name TD for TelnetD Boot). +A new bell option (**Echo \a**) has been added to the *echo* command in the shell (*/bin/sh*) to ring a bell on VT-100 connected terminals (via the SSC driver or the TELNETD deamon). The bell has no affect on the console. -**2019-10-15** - The first A2osX Release Candidate is now available and can be found in our **[Media directory](.Floppies)**. +Multiple bugs have been address from issues posted on GitHub including updates to *cut*, *format*, *sh* (for internal command), *nscutil*, *ping*, *wc*, and many more. Users can check the status of issues or create new ones for A2osX on **[Github](https://github.com/burniouf/A2osX/issues)**. -2019-04-19 - Major updates have occurred to the kernel and many of the A2osX API's to support a greatly enhanced shell that boasts significant new scripting capabilities since 0.92. Also added is the the ability to redirect input and output, including errors, and the ability to pipe (|) the output of one command or operation to another (i.e. **ls \* | more** ). A2osX now provides for multiple virtual terminals as well as users/terminals via TCP (through TELNETD) and serial devices (through a SSC driver). - -As great as the changes to A2osX itself, we are also please to report that great strides have been made in terms of documentation. While much of it is in draft form, there is a new **[Users Guide](.Docs/User%20Guide.md)**, **[Developers Guide](.Docs/Developers%20Guide.md)**, **[Shell Developers Guide](.Docs/Shell%20Developers%20Guide.md)**, **[Technical Spec](.Docs/Technical%20Spec.md)** and **[Command Guide](.Docs/Command%20Guide.md)**. See the **[Documentation](#documentation)** Section below for more details. +A great new networking utility, *wget* is now available which can be used to access/post to web servers. This utility can be used in combination with services like IFTTT to send tweets from A2osX, or send message to apps like Slack. If you would like to read all the past news articles for A2osX, you can read the news article found **[here](.Docs/News.md)**. @@ -56,11 +54,7 @@ You can use and/or install A2osX from the media in our Media directory found **[ ## Documentation... -A lot of work has been done to expand and enhance the documentation for A2osX. Some of this documentation is still in the rough draft stage, provided to you to bring you as much information about A2osX as quickly as possible. We happily welcome any help and contributions from others to this or any area of the A2osX project. - -The repository all A2osX documentation can be found **[here](.Docs)**. This directory includes the system generated specifications for all the A2osX APIs as well as all our other documentation. - -Of special note please check out our brand new **[Users Guide](.Docs/User%20Guide.md)** and **[Developers Guide](.Docs/Developers%20Guide.md)**. +The A2osX team is pleased to report that great strides have been made in terms of documentation. While much of it is in draft form, there is a new **[Users Guide](.Docs/User%20Guide.md)**, **[Developers Guide](.Docs/Developers%20Guide.md)**, **[Shell Developers Guide](.Docs/Shell%20Developers%20Guide.md)**, **[Technical Spec](.Docs/Technical%20Spec.md)** and **[Command Guide](.Docs/Command%20Guide.md)**. Work continues to expand and enhance the documentation for A2osX. While still under construction, it is provided to you to bring you as much information about A2osX as quickly as possible. We happily welcome any help and contributions from others to this or any area of the A2osX project. The repository all A2osX documentation can be found **[here](.Docs)**. This directory includes the system generated specifications for all the A2osX APIs as well as all our other documentation. ### Technical Documentation... @@ -89,4 +83,4 @@ The full A2osX license can be found **[Here](../LICENSE)**. ## Copyright -Copyright 2015 - 2019, Remy Gibert and the A2osX contributors. +Copyright 2015 - 2020, Remy Gibert and the A2osX contributors.