diff --git a/README.md b/README.md index 1531bc13..51fcc6f0 100644 --- a/README.md +++ b/README.md @@ -115,6 +115,7 @@ A list of [known ITS machines](doc/machines.md). - COMSAT, Mail server. - CREATE, creates a text file in your home directory from console input. - CROCK, analog watch. + - CROSS, cross assembler for micros. - DCROCK, digital watch. - DDTDOC, interactive DDT documentation. - DECUUO, TOPS-10 and WAITS emulator. diff --git a/build/build.tcl b/build/build.tcl index 1d81cd74..99b08441 100644 --- a/build/build.tcl +++ b/build/build.tcl @@ -764,6 +764,10 @@ expect ":KILL" respond "*" ":midas sys1;ts meter_syseng;meter\r" expect ":KILL" +# cross +respond "*" ":midas sys1;ts cross_syseng;cross\r" +expect ":KILL" + # dired respond "*" ":midas sys;ts dired_sysen2;dired\r" expect ":KILL" diff --git a/doc/info/cross.doc b/doc/info/cross.doc new file mode 100755 index 00000000..731f836e --- /dev/null +++ b/doc/info/cross.doc @@ -0,0 +1,2540 @@ + + + CROSS + + 27 March 1979 + +The material used in this specification, including but not limited to +construction times and operating speeds, is for informational purposes only. +All such material is subject to change without notice. Consequently DEC makes +no claim and shall not be liable for its accuracy. + + This document describes the operational procedures for CROSS, an assembler +which operates on the DECsystem-10/20 systems, translating source code for +6502, 6800, 8080, 8085, Z80, 1802, F8[future], and 8008 micro-processors into +binary files suitable for absolute load. + + All of the appendices to this manual and the index were constructed by Joseph +M. Newcomer, Carnegie-Mellon University Computer Science Department. + CROSS-Microcomputer cross assembler 1 + +1. Introduction + CROSS is an assembler which operates on the DECsystem-10/20 and assembles +code for many currently available micro-processors. With the exception of the +variations listed in this manual, CROSS implements the features of the PDP-11 +macro assembler for RSX-11D. No attempt was made to provide source +compatibility between CROSS and other micro- processor assemblers. Rather, +CROSS has been designed to provide consistent, powerful features for all of the +mnemonics associated with each micro-processor. + + While CROSS is designed to be language compatible with the MACRO-11 language, +its PDP-10 operating environment necessitates a PDP-10 style operating +procedure. + + Expression evaluation has been updated to provide the following features: + + - Default radix is decimal. + + - @ indicates octal radix, same as to ^O + + - % indicates binary (6502/6800 only), same as to ^B + + - %nn indicates register value nn (all others) + + - $ indicates hexidecimal radix + + - ^ indicates that the evaluated expression is to be divided by + 256. (high byte) + + The assembler makes two passes over the source, outputting the binary and +listing files during pass two and appending a symbol or cross reference table +to the listing file. PDP-10 memory is dynamically allocated for large symbol +table storage and macro storage. + + + + + + + + + + + + Introduction + CROSS-Microcomputer cross assembler 2 + +2. Syntax differences + The syntax of CROSS is more compatible with that of MACRO-11 than that of +most manufacturer's assemblers. This means that you will not be able to +compile straight 8080, Z80, 6502 or 6800 code with this assembler. However, +the transliterations are reasonably straightforward and are described for each +machine in the appendices. In general, you must specify registers with a +%-directive. + + The machine which differs most from the manufacturer's specification of an +assembler syntax is the Zilog Z80. This is because CROSS implements the Z80 +syntax as a superset of the 8080 syntax. Consequently, the syntax of most +operations follows that of the 8080. In addition, some Z80 mnemonics +conflicted with 8080 mnemonics; the Z80 has been assigned new mnemonics where +these conflicts existed. Any Z80 operation which has no 8080 counterpart has +also been assigned a mnemonic; some correspond to the Zilog specification +(wherever this was possible) and most do not. Consequently, a complete +cross-reference between the Zilog syntax and the CROSS transliteration has been +provided. + + + + + + + + + + + + + + + + + + + + + + + + + + Syntax differences + CROSS-Microcomputer cross assembler 3 + +3. Operating procedures + +3.1 Loading CROSS + CROSS is run by typing the monitor command: + + @CROSS ;tops20 + .R CROSS ;tops10 + +3.2 Initial dialogue + When the assembler is ready to accept the user's command string, it types an +asterisk. The user must now type the command string on the same line. + + The general form of the command string is: + + binary output, listing output _ source input(s) + + In addition, the command(s) may be stored in a file (default extension .CCL) +and read in by specifying: + + @filename + + Each input/output specification consists of the group: + + dev:filnam.Ext[proj.,prog.]/switch:arg + + - dev is: + +DSK for disk + +PTR for paper tape reader + +PTP for high speed punch + +TTY for the user's teletype + +LPT for a queued line printer + + - If not specified, the device is assumed to be the disk. Other system + devices may also be used, depending upon the system configuation. + + - filnam is the file name of the appropriate file. + + - ext is the file name extension for that file. If is not specified, + the assumptions are: + Operation + CROSS-Microcomputer cross assembler 4 + +binary string: .BIN (absolute) + +listing string: .LST + +source string: + +.M65 (MOS 6502) + +.M68 (Motorola 6800) + +.M80 (8080/Z80/8085) + +.M88 (8008 , 8080 mnemonics) + +.M08 (8008 , Intel mnemonics) + +.M18 (CPD1802 , COSMAC) + +.MF8 (Fairchild F8) [future] + + - [proj.,prog.] is the project-programmer number assigned for the disk + area to be used. If not specified, the user's local area is assumed. + Once specified, the number pair becomes the new default assumption + for the following files. (Use translate command on TOPS20) At CMU, + the CMU PPN format is accepted. + + - Switches are specified by preceding each with a slash character. + Switch arguments are preceded by colons. In addition to explicit + specifications of the switches, a default set of switches may be + specified with a SWITCH.INI file (chapter 6, page 11). + +/M65 source is 6502 code + +/M68 source is 6800 code + +/M80 source is 8080, 8085 or Z80 code + +/M88 source is 8008 using 8080 compatible mnemonics + +/M08 source is 8008 original Intel mnemonics + +/M18 source is 1802 code (RCA COSMAC) + +/MF8 source is Fairchild F8 [future] + Operation + CROSS-Microcomputer cross assembler 5 + +/LI simulate .LIST directive (see chapter 4). + +/NL simulate .NLIST directive (see chapter 4). + +/EN simulate .ENABL directive (see chapter 5). + +/DS simulate .DSABL directive (see chapter 5). + +/CRF append cross reference table to the listing files + (see chapter 4). + +/PTP binary output is ASCII coded hex + +/N suppress error messages and expanded summary to the + teletype. + +/OCT listing format in octal - hex is default + +/I output binary in image mode (one byte per 36 bit + PDP-10 word). This switch must be used to copy + directly to paper tape. + +/P pack binary output. This is the default case and the + switch is not needed. + +/CDR simulate card reader input. This is actually + independent of the physical input device but causes + the assembler to ignore all characters on a column + after the 72nd. + +/SOL sequence output lines (see chapter 4). + +/GNS generate new source (see chapter 4). + +/NSQ suppress listing of PDP-10 style seq. Numbers. + +/EQ equate the following symbols to zero. This is a + method for introducing conditional arguments without + creating special parameter tapes. "/EQ:sym1:sym2" is + the equivalent of the source statements "sym1=0" and + "sym2=0". + + + Operation + CROSS-Microcomputer cross assembler 6 + +4. Listing control + CROSS has two categories of listing controls: MACRO-11 compatible, which may +be specified either in source statements or in the command string, and a +superset which is limited to the command string. + +4.1 Source statement listing control + Listings are controlled at source statement level through the use of the +.LIST and .NLIST directives. These are complementary in that any function +which can be enabled by a .LIST can be disabled by a .NLIST. To reduce +redundancy, the following descriptions will emphasize the .LIST while implying +the .NLIST complement. + + The following are the allowable arguments for the .LIST directive along with +the default settings (li for .LIST and nl for .NLIST): + + The first group controls intra-line listing. Suppression of any of these +will cause the assembler to utilize the space by moving the remainder of the +line over. + +SEQ list the sequence numbers. These numbers represent the source + line numbers and are replaced by the nesting level in + parentheses for generated lines (macros, etc.). + +LOC list the value of the location counter. + +BIN list the binary code generated by the assembler. + +SRC list the source statement. This is included primarily for + completeness. + +COM list the comment field. + +BEX list binary code which requires more than one listing line. + suppression of this is particularly useful in reducing the + length of listing required for long .ASCII strings. + + The following arguments pertain to entire statements: + +MB list macro binary and call only - no source + +MD list macro definitions. + +MC list macro calls. + .LIST/.NLIST + CROSS-Microcomputer cross assembler 7 + +ME -nl + list macro expansions. The default causes the expansion to be + suppressed in the interest of supply economy. ME controls all + generated text (.MACRO's, .REPT's, and .IRP's). + + Caution - due to their dual nature, .REPT's and .IRP's qualify + both as definitions and calls. CROSS treats MD and MC as a + pair in these cases, suppressing the listing if either is set. + +CND list conditionals. Suppression causes unsatisfied conditionals + and all conditional directives (whether satisfied or not) to be + not listed. + +SYM append a symbol table to the listing file. + +TTM list in teletype format (one column of binary to a line, + truncation after 72 columns). Default setting is determined by + the output device specified: enabled if the physical device is + TTY: and disabled (line printer mode) in all other cases. + +TOC-nl list a table of contents during pass one. This consists of the + .SBTTL directives being listed at the beginning of the listing + file. Each line consists of the line number and all text to + the right of the .SBTTL directive. + +LD-nl list listing directives. Specifically, this causes all + .LIST/.NLIST directives which have no arguments to be listed. + its primary use is in debugging listing control. + + .LIST and .NLIST directives with no arguments perform an over- ride function. +They control a listing "level" which is decremented for each .NLIST and +incremented for each .LIST. The level count is used as a three way switch: + + 1. Zero (initial condition): no special action. + + 2. Less than zero: unconditionally suppress the listing except for + lines containing errors. + + 3. Greater than zero: list unconditionally. + + .LIST/.NLIST are normally paired to return the level count to zero. the +.NLIST/.LIST sequence is used to suppress a range which is normally listed, +while the .LIST/.NLIST sequence is used to over-ride a range which is normally +suppressed, such as in a macro expansion. The level count allows macro + .LIST/.NLIST + CROSS-Microcomputer cross assembler 8 + +expansions to use the listing control and return it to its previous state. + +4.2 Command string equivalents + The command string contains the equivalent of all the above .LIST and .NLIST +functions as well as some that are not available at source level. Indeed, many +of the source level arguments are of primary interest at command string level +but can be used in the source to modify default settings. + + The command string equivalents of .LIST and .NLIST are /LI and /NL, +respectively. Arguments are specified by preceding them with colons. Thus +/NL:bex:cnd is the equivalent of .NLIST CND,BEX. + + In all cases, command string switches override their source level equivalents +(as well as previous occurrences in the command string). Effectively, +specification of a function in a command string will cause all its source level +equivalents (and their complements) to be ignored. i.e. /LI:me would enable +the listing of macro expansions and cause all ".LIST/.NLIST ME" directives to +be ignored. + + /LI (no arguments) causes everything to be listed, while /NL suppresses the +listing of all but error lines, the symbol table, and the cross reference +tables. + +4.3 Other listing controls + The following swithces are specified in output side of the command string by +preceding the mnemonic by a slash: + +/OCT list in octal - default is hex + +/N suppress error messages to the teletype (unless it is also the + listing device). + +/CRF append a cross reference table to the listing file. Cross + accomplishes this in the following manner: + + 1. The listing file is generated in the normal way + during pass two, using the name specified by the + user. + + 2. Simultaneously, a temporary file (xxxCRF.TMP, where + xxx is the job number) is created. This contains + encoded cref information. + + 3. At the end of pass two, the temporary file is read + .LIST/.NLIST + CROSS-Microcomputer cross assembler 9 + + and the cref information is integrated into the + symbol table. + + 4. The references are appended to the listing file. if + insufficient core was available to build the table, + the process is repeated. When through, the temporary + file is deleted. + +The cross reference table format is as follows: + + 1. The symbol itself. + + 2. Its symbol table value, unless .NLIST sym was + specified. Therefore the symbol table itself is + always pre-empted. + + 3. All references to the symbol, except that no more + than one reference to a given source line will be + listed. symbols in generated text always refer to + the previous source line. + + 4. Defining occurrences are flagged with a "#". + + 5. Destructive references are flagged with a "*". These + are defined to be all symbols encountered in op-code + fields which store into a memory location or a + register. + + 6. As many references per listing line as possible, + depending upon the "ttm" mode, are used. This can be + increased by suppressing "sym". + +/SOL Sequence output lines. Listings are normally source oriented: + + 1. Sequence numbers reflect the source line number. + + 2. Macro expansion lines have their nesting level, in + parentheses, in the sequence number field. + + 3. Lines containing nothing but a form feed are not + listed but cause the sequence number to be + incremented. + + 4. Page numbers reflect physical input pages + .LIST/.NLIST + CROSS-Microcomputer cross assembler 10 + + (incremented only upon encountering a form feed). + Pages forced by the assembler have a -n to reflect an + extension page. i.e. If the assembler had + encountered 3 form feeds and was on its third listing + page since the last one, it would be "page 4-2". + +when /SOL is specified, listings are output oriented: + + 1. Listed lines have consecutive numbers, except for + binary extensions. + + 2. Page numbers reflect the number of pages listed. + +/GNS Generate a new source. This causes the listing file to take on + the appearance of a source file. specifically, it: + + 1. Suppresses the listing of headers, error flags, + summary blocks, and any other output over which the + user otherwise would have no control. + + 2. Simulates a /NL:seq:loc:bin:bex:me. + + 3. therefore, by itself, it recreates the source file. + Normal usage would have supplementary switches + following it. i.e. /gns/nl:md:mc /li:me would + replace macros, repeats, and irps by their generated + code, /gns/nl:cnd would purge conditionals, and + /gns/li:seq would be an expensive way of creating a + sequence numbered listing of the source file. + + + + + + + + + + + + + + + .LIST/.NLIST + CROSS-Microcomputer cross assembler 11 + +5. Enable/Disable control + As an alternative to the proliferation of directives, cross uses one +complementary pair, .ENABL/.DSABL, with arguments. Their command string +equivalents are /EN and /DS. The relationship between command string and +source statement specification, as well as their argument specification, is the +same as in .LIST/.NLIST. + +M85 allow 8085 opcodes (RIM/SIM) in .M80 files + +Z80 allow z80 opcodes in .M80 files + +FPT floating point truncation. ".ENABL FPT" is equivalent to + ".TRUNC" while ".DSABL FPT" is equivalent to ".ROUND". + +ABS absolute assembly + +AMA absolute memory addressing + +NPP ".ENABL NPP" causes suppression of the output of the following + code, while ".DSABL NPP" causes its resumption. + +ERF error flags can be selectively suppressed (or enabled) by + specifying ERF, directly followed by the selected error + characters. "/ds:erfzm" would cause "m" and "z" errors to be + ignored, "/ds:erf"would cause all errors to be ignored, and + "/en:erfa" would cause"a" flags (argument errors) to be + flagged. + +LC lower case to upper case translation of input +** Actually, this is wrong, as REM noted. It should be: +** allow lower case in listing +** .ENABL LC will allow lowercase. -pgs + +LSB local symbol block + +TIM timing information - causes number of states to be output on + the listing. + +REG default register names + + + + + + + + .ENABL/.DSABL + CROSS-Microcomputer cross assembler 12 + +6. User-defined switch defaults + CROSS is capable of accepting user-defined switch defaults. Any switches +that are valid in a command string may be specified in a special file called +SWITCH.INI. When cross is run, it will look for this file in the user's +directory. If the file is not found, then standard defaults (as defined +elsewhere in this document) are assumed. if SWITCH.INI is found, but no cross +switches are found, default settings are assumed. + + To specify defaults, use the editor of your choice to create a file called +SWITCH.INI. This file must contain a line of the following format: + + CROSS/switch1/switch2...../switchn + + continuation lines are permitted. Specifically, a line containing a terminal +hyphen is assumed to be followed by a continuation line. + + Of course CROSS does not consider the hyphen to be a part of any switch. + + Note that this feature is a subset of the facility offered normally by use of +SWITCH.INI files. + + + + + + + + + + + + + + + + + + + + + + + + SWITCH.INI + CROSS-Microcomputer cross assembler 13 + +I. 8080 syntax + +I.1 Machine State + The registers for the 8080 are defined as: + + - %A - the accumulator + - %B - register B + - %C - register C + - %D - register D + - %H - register H, high-order memory reference register + - %L - register L, low-order memory reference register + - %SP - the stack pointer register + - %PSW - the processor status, or F register + + Register pairs are written in the description of each instruction by +concatenating two names, e.g., %H%L is the 16-bit value in the HL register +pair. Parentheses are sometimes added for visual clarity, e.g., ".(%H%L)". +The flags in the status register are represented by: + + - c - the carry bit + - p - the parity bit. True if the last operation had odd parity, false + if even parity. + - z - the zero bit. True if the last operation had a zero result. + - s - the sign bit. True if the last operation had a negative result. + - ie - the interrupt enable flag. + + In each description of an instruction that alters the condition codes, either +an explicit assignment is written (e.g., "c_0") or the condition codes are +listed in curly brackets. In this case, it is implied that c is set to +indicate carry or borrow (arithmentic operations), z is set if the result is +zero, s is set if the result is negative, and p is set if the parity is even. + +I.2 Notation + To reduce the size of the description, several notational conventions will be +established for desribing the operands: + + - i - represents an immediate operand which is 8 bits wide. + + - m - represents a memory operand which is 16 bits wide. + + - M - represents an implied memory operand addressed by the register + pair %H%L. + + - MEM - represents all of addressible memory. + 8080 + CROSS-Microcomputer cross assembler 14 + + - DEV - represents all addressible devices. + + - v - a special 3-bit value used for the RST instruction + + - opnd - a general operand, either register or implied memory. For + registers, it will be expressed as %r for one of the 8-bit registers, + and for memory it will be expressed as M in the instruction syntax + and MEM[.(%H%L)] in the description of the instruction. + + - %rp - a register pair from the set {%B%C, %D%E, %H%L %SP}. These + would be written, in the assembler, as %B, %D, %H or %SP. + + - %rpn - a register pair from the set {%PSW, %A, %B%C, %D%E, %H%L}. + Written as %PSW, %B, %D or %H. + +I.3 Opcodes + The opcodes that are recognized for the 8080 are shown below. The function +is given in a BLISS-like notation (the dot operator means "contents of"). + +ACI i %A _ .%A + i + .c; {c,z,s,p} +ADC opnd %A _ .%A + opnd + .c +ADD opnd %A _ .%A + .opnd; {c,z,s,p} +ADI i %A _ .%A + i; {c,z,s,p} +ANA opnd %A _ .%A and .opnd; c _ 0; {z,s,p} +ANI i %A _ .%A + i; c _ 0; {z,s,p} +CALL m MEM[.%SP-1], MEM[.%SP-1] _ .pc; %SP _ .%SP - 2; pc _ m; +CC m if .c then CALL m +CM m if .s then CALL m +CMA %A _ not .%A; {note: c,z,s,p not changed} +CMC c _ not .c +CMP opnd .%A - .opnd; {c,z,s,p} +CNC m if not .c then CALL m +CNZ m if not .z then CALL m +CP m if not .s then CALL m +CPE m if .p then CALL m +CPI i .%A - i; {c,z,s,p} +CPO m if not .p then CALL m +CZ m if .z then CALL m +DAA %A _ DecimalAdjust(.%A); {c,z,s,p} +DAD %B %H%L _ .(%H%L) + .(%B%C); {c} +DAD %D %H%L _ .(%H%L) + .(%D%E); {c} +DAD %SP %H%L _ .(%H%L) + .%SP; {c} +DCR opnd opnd _ .opnd - 1; {z,s,p} +DCX %rp %rp _ .(%rp) - 1 + 8080 + CROSS-Microcomputer cross assembler 15 + +DI ie _ 0 +EI ie_ 1; +HLT +IN i %A _ .DEV[i]; +INR opnd opnd _ .opnd + 1; {z,s,p} +INX %rp %rp _ .(%rp) + 1; +JC m if .c then pc _ m; +JM m if .s then pc _ m; +JMP m pc _ m; +JNC m if not .c then pc _ m; +JNZ m if not .z then pc _ m; +JP m if not .s then pc _ m; +JPE m if .p then pc _ m; +JPO m if not .p then pc _ m; +JZ m if .z then pc _ m; +LDA m %A _ .MEM[m]; +LDAX %B %A _ .MEM[.(%B%C)]; +LDAX %D %A _ .MEM[.(%D%E)]; +LHLD m %H _ .MEM[m]; %L _ .MEM[m+1]; +LXI %rp,m %rp _ m; +MOV %r1,%r2 %r1 _ .%r2; +MOV m,%r MEM[m] _ .%r; +MOV %r,m %r _ .MEM[m]; +MVI opnd,i opnd _ i; +NOP ; +ORA opnd %A _ .%A or .opnd; c _ 0; {z,s,p} +ORI i {%A _ .%A or i;}; c _ 0; {z,s,p} +OUT i DEV[i] _ .%A; +PCHL pc _ .(%H%L); +POP %rpn %rpn _ .MEM[.%SP], .MEM[.%SP + 1]; %SP _ .%SP + 2; +PUSH %rpn %SP _ .%SP - 2; MEM[.%SP], MEM[.%SP + 1] _ .%rpn; +RAL c%A _ .(c%A) ^ 1; +RAR c%A _ .(c%A) ^ -1; +RC if .c then RET; +RET pc _ .MEM[.%SP], .MEM[.%SP+1]); %SP_.%SP + 2; +RLC c _ .%A<7,1>; %A _ .%A ^ 1 +RM if .s then RET; +RNC if not .c then RET; +RNZ if not .z then RET; +RP if not .s then RET; +RPE if .p then RET; +RPO if not .p then RET; +RRC c _ .%A<0,1>; %A _ .%A ^ -1; +RST v CALL v ^ 8; + 8080 + CROSS-Microcomputer cross assembler 16 + +RZ if .z then RET; +SBB opnd %A _ .%A - .opnd - .c; {c,z,s,p} +SBI i %A _ .%A - i - .c; {c,z,s,p} +SHLD m MEM[m] _ .%H; MEM[m+1] _ .%L; +SPHL %sp _ .(%H%L); +STA m MEM[m] _ .%A; +STAX %B MEM[.(%B%C)] _ .%A; +STAX %D MEM[.(%D%E)] _ .%A; +STC c _ 1; +SUB opnd %A _ .%A - .opnd; {c,z,s,p} +SUI i %A _ .%A - i; {c,z,s,p} +XCHG %D <=> %H; %E <=> %L; +XRA opnd %A _ .%A xor .opnd; c _ 0; {z,s,p} +XTHL MEM[.%SP - 1] <=> %H; MEM[.%SP] <=> %L; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8080 + CROSS-Microcomputer cross assembler 17 + +II. Z80 syntax + +II.1 Introduction + The Z80 portion of CROSS is not intended to correspond to the Zilog syntax; +instead, it is treated as an extension of the 8080 operations described in +section I. This means that new opcode designators have been invented where +appropriate. + +II.2 Machine State + The Z80 registers are designated exactly like the 8080 registers, with the +following additions: + + - %X - index register X (16 bits) + + - %Y - index register Y (16 bits) + + - iv - the interrupt vector base address (8 bits) + + - ra - the dynamic RAM refresh address (8 bits) + +II.3 Notation + The following notational extensions are made to the 8080 description: + + - b - A bit position, 0-7, for bit operations + + - opnd - In addition to %r and M, indexed operands are permitted for + all instructions which use opnd; these are expressed to the assembler + as d(X) or d(Y), where d is an 8-bit displacement. In the + description, they are interpreted as ".%X+d" or ".%Y+d". + + - %rpx - Register pair including %X, i.e., {%B%C, %D%E, %X, %SP} + + - %rpy - Register pair including %Y, i.e., {%B%C, %D%E, %Y, %SP} + +II.4 Opcodes + The extended opcodes for the Z80 are given below. Those which are underlined +are mnemonics which are neither 8080 instructions nor those defined by Zilog +for the Z80; they have been invented for CROSS. A complete transliteration +from Zilog assembler format to CROSS syntax is given in section II.5. + +BIT b,opnd z _ not .opnd +CCD .%A - .MEM[.(%H%L)]; %H%L _ .(%H%L) - 1; %BC _ .(%B%C) - 1; + {z,s,p} +CCDR until .%A = .MEM[.(%H%L)] or .(%B%C) = 0 do begin + Z80 + CROSS-Microcomputer cross assembler 18 + + .%A - .MEM[.(%H%L)]; %H%L _ .(%H%L) - 1; %B%C _ .(%B%C) - 1 + end; {c,z,p} +CCI .%A - .MEM[.(%H%L)]; %H%L _ .(%H%L) + 1; %BC _ .(%B%C) - 1; + {z,s,p} +CCIR until .%A = .MEM[.(%H%L)] or .(%B%C) = 0 do begin + .%A - .MEM[.(%H%L)]; %H%L _ .(%H%L) + 1; %B%C _ .(%B%C) - 1 + end; {c,z,p} +CNO CPO; +CO CPE; +DADC %rp %HL _ .(%HL) + .%rp + .c; {c,z,n,p} +DADX %rpy %X _ .%X + .%rpy; {c,n} +DADY %rpx %Y _ .%Y + .%rpx; {c,n} +DJNZ i if .%B 0 then pc _ .pc + 2 + i +DSBC %rp %H%L _ .%H%L - .%rp - .c; n _ 1; p _ 0; {c,z} +EXAF %A%PSW <=> %A'%PSW'; +EXX %B%C <=> %B'%C'; %D%E <=> %D'%E'; %H%L <=> %H'%L' +IM0 im _ 0; +IM1 im _ 1; +IM2 im _ 2; +IND +INDR +INI +INIR +INP +JMPR i pc _ .pc + 2 + i; +JNO m JPO m; +JO m JPE m; +JRC i if .c then JR i; +JRNC i if not .c then JR i; +JRNZ i if not .z then JR i; +JRZ i if .z then JR i; +LBCD m %B%C _ .MEM[m]; +LDAI %A _ .iv; +LDAR %A _ .ra; +LDD MEM[.(%D%E)] _ .MEM[.(%H%L)]; %D%E _ .(%D%E) - 1; + %H%L _ .(%H%L) - 1; %B%C _ .(%B%C) - 1; n _ 0; +LDDR until .(%B%C) = 0 do begin MEM[.(%D%E)] _ .MEM[.(%H%L)]; + %D%E _ .(%D%E) - 1; %H%L _ .(%H%L) - 1; %B%C _ .(%B%C) - 1; + end; +LDED m %D%E _ .MEM[m]; +LDI .MEM[.(%D%E)] _ .MEM[.(%H%L)]; %D%E _ .(%D%E) + 1; + %H%L _ .(%H%L) + 1; %B%C _ .(%B%C) - 1; {p} +LDIR until .(%B%C) = 0 do begin MEM[.(%D%E)] _ .MEM[.(%H%L)]; + %D%E _ .(%D%E) + 1; %H%L _ .(%H%L) + 1; %B%C _ .(%B%C) - 1; + Z80 + CROSS-Microcomputer cross assembler 19 + + end; +LIXD m %X _ .MEM[m+1], .MEM[m]; +LIYD m %Y _ .MEM[m+1], .MEM[m]; +LSPD m %SP _ .MEM[m+1], .MEM[m]; +NEG %A _ - .%A; p _ 0; {c,z,s} +OUTD +OUTDR +OUTI +OUTIR +OUTP +PCIX pc _ .%X; +PCIY pc _ .%Y; +RALR +RARR +RES b,opnd %opnd _ 0; +RETI return from interrupt +RETN return from nonmaskable interrupt +RLCR +RLD decimal arithmetic +RNO RPO; +RO RPE; +RRCR +RRD decimal arithmetic +SBCD m MEM[m] _ .(%B%C); +SDED m MEM[m] _ .(%D%E); +SET b,opnd opnd _ 1; +SIXD m MEM[m] _ .%X; +SIYD m MEM[m] _ .%Y; +SLAR +SPIX %SP _ .%X; +SPIY %SP _ .%Y; +SRAR +SRLR +SSPD m MEM[m] _ .%SP; +STAI iv _ .%A; +STAR ra _ .%A; +XTIX %X <=> MEM[.%SP]; +XTIY %Y <=> MEM[.%SP]; + +II.5 Z80 Transliterations + The following transliterations are necessary because of the differences +between the Zilog definition of the instructions and the CROSS syntax. This is +indexed alphabetically by the Zilog operations in order to facilitate +translation of Zilog assembly programs to CROSS. + Z80 transliterations + CROSS-Microcomputer cross assembler 20 + +Zilog Cross +ADC i ACI i +ADC (HL) ADC M +ADC HL,rp DADC %rp +ADC (IX+d) ADC d(X) +ADC (IY+d) ADC d(Y) +ADC r ADC %r +ADD i ADI i +ADD (HL) ADD M +ADD HL,rp DAD %rp +ADD (IX+d) ADD d(X) +ADD (IY+d) ADD d(Y) +ADD r ADD %r +AND i ANI i +AND (HL) ANA M +AND (IX+d) ANA d(X) +AND (IY+d) ANA d(Y) +AND r ANA %r +BIT b,(HL) BIT b,M +BIT b,(IX+d) BIT b,d(X) +BIT b,(IY+d) BIT b,d(Y) +CALL m CALL m +CALL C,m CC m +CALL M,m CM m +CALL NC,m CNC m +CALL NZ,m CNZ m +CALL NZ,m CNZ m +CALL P,m CP m +CALL PE,m CPE m +CALL PO,m CPO m +CALL Z,m CZ m +CCF CMC +CP i CPI i +CP (HL) CMP M +CP (IX+d) CMP d(X) +CP (IY+d) CMP d(Y) +CP r CMP %r +CPD CCD +CPDR CCDR +CPI CCI +CPIR CCIR +CPL CMA +DAA DAA +DEC (HL) DCR M + Z80 transliterations + CROSS-Microcomputer cross assembler 21 + +DEC IX DCX %X +DEC IY DCX %Y +DEC (IX+d) DCR d(X) +DEC (IY+d) DCR d(Y) +DEC rp DCX %rp +DEC r DCR %r +DI DI +DJNZ d DJNZ d +EI EI +EX AF,AF' EXAF +EX DE,HL XCHG +EX (SP),HL XTHL +EX (SP),IX XTIX +EX (SP),IY XTIY +EXX EXX +HALT HLT +IM 0 IM0 +IM 1 IM1 +IM 2 IM2 +IN A,i IN i +IN r,(c) +INC (HL) INR M +INC IX INX %X +INC IY INX %Y +INC (IX+d) INR d(X) +INC (IY+d) INR d(Y) +INC rp INX %rp +IND IND +INDR INDR +INI INI +INIR INIR +JP m JMP m +JP M,m JM m +JP NC,m JNC m +JP NZ,m JNZ m +JP NZ,m JNZ m +JP P,m JP m +JP PE,m JPE m +JP PO,m JPO m +JP Z,m JZ m +JR d JMPR d +JR M,m JRM m +JR NC,m JRNC m +JR NZ,m JRNZ m + Z80 transliterations + CROSS-Microcomputer cross assembler 22 + +JR NZ,m JRNZ m +JR P,m JRP m +JR PE,m JRPE m +JR PO,m JRPO m +JR Z,m JRZ m +LD A,(m) LDA m +LD A,(BC) LDAX %B +LD A,(DE) LDAX %D +LD A,i MVI %A,i +LD A,r MOV %A,%r +LD (m),A STA m +LD (m),BC SBCD m +LD (m),DE SDED m +LD (m),HL SHLD m +LD (m),IX SIXD m +LD (m),IY SIYD m +LD (m),SP SSPD m +LD (BC),A STAX %B +LD (DE),A STAX %D +LD HL,(m) LHLD m +LD (HL),i MVI i +LD (HL),r MOV %r,M +LD I,A STAI +LD IX,(m) LIXD m +LD IX,m LXI %X,m +LD (IX+d),i MVI i,d(X) +LD (IX+d),r MOV %r,d(X) +LD IY,(m) LIYD m +LD IY,m LXI %Y,m +LD (IY+d),i MVI i,d(Y) +LD (IY+d),r MOV %r,d(Y) +LD r,A MOV %r,%A +LD r,i MVI %r,i +LD r,(HL) MOV %r,M +LD r,(IX+d) MOV %r,d(X) +LD r,(IY+d) MOV %r,d(Y) +LD r,r MOV %r,%r +LD BC,(m) LBCD m +LD DE,(m) LDED m +LD HL,(m) LHLD m +LD SP,(m) LSPD m +LD IX,(m) LIXD m +LD IY,(m) LIYD m +LD rp,m LXI %rp,m + Z80 transliterations + CROSS-Microcomputer cross assembler 23 + +LD SP,HL SPHL +LD SP,IX SPIX +LD SP,IY SPIY +LDD LDD +LDDR LDDR +LDI LDI +LDIR LDIR +NEG NEG +NOP NOP +OR i ORI i +OR (HL) ORA M +OR (IX+d) ORA d(X) +OR (IY+d) ORA d(Y) +OR r ORA %r +OUT (i),r +OUT i,A OUT i +OUTD OUTD +OUTDR OUTDR +OUTI OUTI +OUTIR OUTIR +POP IX POP %X +POP IY POP %Y +POP rp POP %rp +PUSH IX PUSH %X +PUSH IY PUSH %Y +PUSH rp PUSH %rp +RES b,(HL) RES b,M +RES b,(IX+d) RES b,d(X) +RES b,(IY+d) RES b,d(Y) +RES b,r RES b,%r +RET RET +RET M RM +RET NC RNC +RET NZ RNZ +RET NZ RNZ +RET P RP +RET PE RPE +RET PO RPO +RET Z RZ +RETI RETI +RETN RETN +RL (HL) RALR M +RL (IX+d) RALR d(X) +RL (IY+d) RALR d(Y) + Z80 transliterations + CROSS-Microcomputer cross assembler 24 + +RL r RALR %r +RLA RAL +RLC (HL) RLC M +RLC (IX+d) RLC d(X) +RLC (IY+d) RLC i(Y) +RLC r RLC %r +RLCA RLC +RLD RLD +RR (HL) RARR M +RR (IX+d) RARR d(X) +RR (IY+d) RARR d(Y) +RR r RARR %r +RRA RAR +RRC (HL) RRC M +RRC (IX+d) RRC d(X) +RRC (IY+d) RRC d(Y) +RRC r RRC %r +RRCA RRC +RRD RRD +RST v RST v +SBC i SBI i +SBC (HL) SBC M +SBC HL,rp DSBC %rp +SBC (IX+d) SBC d(X) +SBC (IY+d) SBC d(Y) +SBC r SBC %r +SCF STC +SET b,(HL) SET b,M +SET b,(IX+d) SET b,d(X) +SET b,(IY+d) SET b,d(Y) +SET b,r SET b,%r +SLA (HL) SLAR M +SLA (IX+d) SLAR d(X) +SLA (IY+d) SLAR d(Y) +SLA r SLAR %r +SRA (HL) SRAR M +SRA (IX+d) SRAR d(X) +SRA (IY+d) SRAR d(Y) +SRA r SRAR %r +SRL (HL) CB3E +SRL (IX+d) DDCBdd3E +SRL (IY+d) FDCBdd3E +SRL r CB?? +SUB i SUI i + Z80 transliterations + CROSS-Microcomputer cross assembler 25 + +SUB (HL) SUB M +SUB (IX+d) SUB d(X) +SUB (IY+d) SUB d(Y) +SUB r SUB %r +XOR i XRI i +XOR (HL) XRA M +XOR (IX+d) XRA d(X) +XOR (IY+d) XRA d(Y) +XOR r XRA %r + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Z80 transliterations + CROSS-Microcomputer cross assembler 26 + +III. 8008 + The 8008 is described by two different sets of opcodes. The one set is based +upon the 8080 style of coding, and is a subset of the operations. The other +set is based upon the original set of 8008 mnemonics as described by Intel. +Rather than give complete descriptions of these operations, the user is +referred back to the 8080 descriptions. What this section will give is a +listing of the available operations and a cross reference to the original 8008 +mnemonics. + + Note that the 8008 is "software compatible" with the 8080; the same mnemonics +will produce different bit patterns for the 8008 and the 8080. + +III.1 8080 subset + The instructions which are implemented for the 8008 are: + + ACI ADC ADD ADI ANA ANI CALL CC CM + CNC CNZ CP CPE CPI CPO CZ DCR HLT + INR JC JM JMP JNC JNZ JP JPE JPO + MOV MVI NOP ORA ORI OUT RAL RAR RC + RET RLC RM RNC RNZ RP RPE RPO RRC + RZ SBB SBI SUB SUI XRA XRI + + The set of original 8008 operations are defined as: + +8080 Original 8008 +ADC ACA, ACB, ACC, ACD, ACE, ACH, ACL +ACI ACI +ADD ADA, ADB, ADC, ADD, ADE, ADH, ADL +ADI ADI +CALL CAL +CNC CFC +CPO CFP +CM CFS +CNZ CFZ +CMP CPA, CPB, CPC, CPD, CPE, CPH, CPL +CPI CPI +CC CTC +CPE CTP +CP CTS +CZ CTZ +DCR DCB, DCC, DCD, DCE, DCH, DCL +HLT HLT +INR INB, INC, IND, INE, INH, INL +IN INP + 8008 + CROSS-Microcomputer cross assembler 27 + +JNC JFC +JNZ JFZ +JPO JFP +JM JFS +JMP JMP +JC JTC +JPE JTP +JP JTS +JZ JTZ +MOV LAA, LAB, LAC, LAD, LAE, LAH, LAL, LAM, LBA, LBB, LBC, LBD, + LBE, LBH, LBL, LBM, LCA, LCB, LCC, LCD, LCE, LCH, LCL, LCM, + LDA, LDB, LDC, LDD, LDE, LDH, LDL, LDM, LEA, LEB, LEC, LED, + LEE, LEH, LEL, LEM, LHA, LHB, LHC, LHD, LHE, LHH, LHL, LHM, + LLA, LLB, LLC, LLD, LLE, LLH, LLL, LLM +MVI LAI, LBI, LCI, LDI, LEI, LHI, LLI, LMI +ANA NDA, NDB, NDC, NDD, NDE, NDH, NDL, NDM +ANI NDI +NOP NOP +ORA ORA, ORB, ORC, ORD, ORE, ORH, ORL, ORM +ORI ORI +OUT OUT +RAL,RAR RAL, RAR +RET RET +RNC RFC +RPO RFP +RP RFS +RNZ RFZ +RLC,RRC RLC, RRC +SUB SBA, SBB, SBC, SBD, SBE, SBH, SBL, SBM +SBI SBI +SBC SUA, SUB, SUC, SUD, SUE, SUH, SUL, SUM +SUI SUI +XRA XRA, XRB, XRC, XRD, XRE, XRH, XRL, XRM + + + + + + + + + + + 8008 + CROSS-Microcomputer cross assembler 28 + +IV. 1802 + +IV.1 Machine State + +D The data register + +DF The "data flag" register, or carry + +P 4-bit program counter pointer + +X 4-bit data counter pointer + +T 8-bit buffer for P and X + +Q Q-status output register + +IV.2 Opcodes + The operation codes recognized for the 1802 are: + +ADC D _ .mem[.R[.X]] + .D + .DF +ADCI D _ data8 + .D + .DF +ADD D _ .mem[.R[.X]] + .D +ADI D _ data8 + .D +AND +ANI +BDF if .DF then R[P]<7,0> _ adr8 +BGE +BL +BM +BNF +BNQ +BNZ +BN1 +BN2 +BN3 +BN4 +BPZ +BQ +BR +BZ +B1 +B2 +B3 +B4 + 1802 + CROSS-Microcomputer cross assembler 29 + +DEC n R[n] _ .R[n] - 1; +DIS +GHI +GLO +IDL +INC n R[n _ .R[n] + 1; +INP +IRX +LBDF +LBNF +LBNQ +LBNZ +LBQ +LBR +LBZ +LDA +LDI +LDN +LDX +LDXA +LSDF +LSIE +LSKP +LSNF +LSNQ +LSNZ +LSQ +LSZ +MARK +NBR +NLBR +NOP +OR +ORI +OUT +PHI +PLO +REQ +RET +RSHL +RSHR +SAV +SD +SDB + 1802 + CROSS-Microcomputer cross assembler 30 + +SDBI +SDI +SEP +SEQ +SEX +SHL +SHLC +SHR +SHRC +SKP +SM +SMB +SMBI +SMI +STR +STXD +XOR +XRI + + + + + + + + + + + + + + + + + + + + + + + + + + 1802 + CROSS-Microcomputer cross assembler 31 + +V. 6502 + +V.1 Machine state + The machine state is represented by: + + - c - The carry bit + + - z - The zero bit, true if result was zero + + - v - The overflow bit + + - s - The sign bit, true if result was negative + + - d - Decimal mode + + - i - Interrupt disable bit; 0 => interrupts enabled + + - b - Breakpoint flag; set by BRK instruction trap + + The machine registers are: + + - ac - The single accumulator, 8 bits wide + + - x - 8 bit index register x, preindexes indirect addresses + + - y - 8 bit index register y, postindexes indirect addresses. + + - sp - 8 bit stack pointer. + + - psw - 8 bit processor status word. + +V.2 Notation + The operands are expressed as: + + - opnd8 - 8 bit operand corresponding to one of the form: + + - addr - Base page direct (8 bit address). + + - addr,X - Base page indexed by x; MEM[addr + .x]. + + - (addr,X) - Indexed indirect by x; (.MEM[addr + .x]). + + - (addr),Y - Indexed indirect by y; (.MEM[addr] + .y). + 6502 + CROSS-Microcomputer cross assembler 32 + + - opnd16 - Any of the following operands in the form: + + - addr - Extended direct (16 bit address); MEM[addr]. + + - addr,X - Absolute indexed via x; MEM[addr + .x]. + + - addr,Y - Absolute indexed via y; MEM[addr + .y]. + + - opnd - Either opnd8 or opnd16. + + - i - Immediate data, expressed as #expression. + +V.3 Syntax + The syntax for operands is much like that specified by MOS Technology. +Immediate operands are indicated by preceding the operand with a hash mark, #. + +V.4 Opcodes + The opcodes recognized for the Mos Technology 6502 are: + +ADC opnd ac _ .ac + .opnd + .c; {s,z,c,v} +ADC i ac _ .ac + i + .c; {s,z,c,v} +AND opnd ac _ .ac and .opnd; {s,z} +AND i ac _ .ac and i; {s,z} +ASL opnd c,opnd _ opnd ^ 1; {s,z,c} +BCC d if not .c then pc _ .pc + 1 + d; +BCS d if .c then pc _ .pc + 1 + d;; +BEQ d if .z then pc _ .pc + 1 + d;; +BIT opnd .ac and .opnd; s _ (.ac and .opnd)<7,1>; + v _ (.ac and .opnd)<6,1>; {z} +BMI d if .s then pc _ .pc + 1 + d;; +BNE d if not .z then pc _ .pc + 1 + d;; +BPL d if not .s then pc _ .pc + 1 + d;; +BRK MEM[.sp] _ .pc<0,8>; MEM[.sp + 1] _ .pc<8,8>; + MEM[.sp + 2] _ .psw; sp _ .sp - 3; pc _ $FFFFFFFE; i _ 1; + b _ 1; +BVC d if not .v then pc _ .pc + 1 + d;; +BVS d if .v then pc _ .pc + 1 + d;; +CLC c _ 0; +CLD d _ 0; +CLI i _ 0; +CLV v _ 0; +CMP opnd .ac - .opnd; {s,z,c} +CPX opnd .x - .opnd; {s,z,c} +CPY opnd .y - opnd; {s,z,c} + 6502 + CROSS-Microcomputer cross assembler 33 + +DEC ac _ .ac - 1; {s,z} +DEX x _ .x - 1; {s,z} +DEY y _ .y - 1; {s,z} +EOR opnd ac _ .ac - .opnd +INC ac _ .ac + 1; {z,s} +INX x _ .x + 1; +INY y _ .y + 1; +JMP m pc _ m; +JSR m MEM[.sp] _ .pc<8,8>; MEM[.sp - 1] _ .pc<0,8>; sp _ .sp - 2; + pc _ m; +LDA opnd ac _ .opnd; {s,z} +LDX opnd x _ .opnd; {s,z} +LDY opnd y _ .opnd; {s,z} +LSR ac,c _ .ac,0 ^ -1; +NOP ; +ORA opnd ac _ .ac or opnd; {s,z} +PHA MEM[.sp] _ .ac; sp _ .sp - 1; +PHP MEM[.sp] _ .psw; sp _ .sp - 1; +PLA ac _ .MEM[.sp + 1]; sp _ .sp + 1; +PLP psw _ .MEM[.sp + 1]; sp _ .sp + 1; +ROL opnd c,.MEM[opnd] _ c,.MEM[opnd] rot 1; {s,z,c} +ROR opnd c,.MEM[opnd] _ c,.MEM[opnd] rot -1; {s,z,c} +RTI psw _ .MEM[.sp + 1]; pc<0,8> _ .MEM[.sp + 2]; + pc<8,8> _ .MEM[.sp + 3]; sp _ .sp + 3; pc _ .pc + 1; +RTS pc<0,8> _ .MEM[.sp + 1]; pc<8,8> _ .MEM[.sp + 2]; sp _ .sp + 2; + pc _ .pc + 1; +SBC opnd ac _ .ac - .opnd - (not .c); {s,z,c,v} +SEC c _ 1; +SED d _ 1; +SEI i _ 1; +STA opnd MEM[opnd] _ .ac; {s,z} +STX opnd MEM[opnd] _ .x; {s,z} +STY opnd MEM[opnd] _ .y; {s,z} +TAX a _ .x; +TAY a _ .y; +TSX sp _ .x; +TXA x _ .a; +TXS x _ .sp; +TYA y _ .a; + + + + + 6502 + CROSS-Microcomputer cross assembler 34 + +VI. 6800 + +VI.1 Machine State + The registers are: + + - %A - accumulator A + + - %B - accumulator B + + - %X - Index register (16 bits) + + - sp - Stack pointer (16 bits) + + - pc - The program counter (16 bits) + + The flags are: + + - c - Carry + + - o - Overflow + + - s - Sign + + - z - Zero + + - xc - Auxiliary carry + +VI.2 Notation + + - mem - A memory address which can be one of + + - Base page direct (.MEM[mem], mem 8 bits) + + - Extended direct (MEM[mem], mem 16 bits) + + - Indexed (MEM[mem+.%X], mem 8 bits) + + - memd - A memory address which can be one one of + + - Extended direct (MEM[memd], memd 16 bits) + + - Indexed (MEM[memd+.%X], memd 8 bits) + + - i - An immediate operand, written as #i + 6800 + CROSS-Microcomputer cross assembler 35 + + - i16 - A 16-bit immediate operand, written as #i16 + + - d - A displacement, usually written as an address; CROSS will compute + the actual displacement between the current instruction and the + destination address. + + - opnd - A general operand; may be either mem or i. When interpreted + as a value, ".opnd" may represent either .MEM[mem] or i. Please + excuse the somewhat sloppy notation; it makes the description more + compact. + + - sr - The status register which holds c,z,s,o,xc. + +VI.3 Syntax + Immediate operands are written with a # symbol, e.g. + + ADDA #$F9 ; Adds hex F9 to A + + Indexing is specified by writing ",X" after the operand. The operand must be +a value which will fit in 8 bits. + + foo==$10 + ADDA foo,X + +VI.4 Opcodes + +ABA %A _ .%A + .%B; {c,z,s,o,xc} +ADCA opnd %A _ .%A + .opnd + .c; {c,z,s,o,xc} +ADCB opnd %B _ .%B + .opnd + .c; {c,z,s,o,xc} +ADDA opnd %A _ .%A + .opnd; {c,z,s,o,xc} +ADDB opnd %B _ .%b + .opnd; {c,z,s,o,xc} +ANDA opnd %A _ .%A + .opnd; o_0; {z,s} +ANDB opnd %B _ .%B + .opnd; o_0; {z,s} +ASL memd c_.memd<7,1>; memd_.memd^1; o_.s xor .c; {z,s} +ASLA c_.%A<7,1>; %A_.%A^1; o_.s xor .c; {z,s} +ASLB c_.%B<7,1>; %B_.%B^1; o_.s xor .c; {z,s} +ASR memd c_.memd<0,1>; memd_.memd ash -1; o_.s xor .c; {z,s} +ASRA c_.%A<0,1>; %A_.%A ash -1; o_.s xor .c; {z,s} +ASRB c_.%B<0,1>; %B_.%B ash -1; o_.s xor .c; {z,s} +BCC d if not .c then BRA d; +BCS d if .c then BRA d; +BEQ d if .z then BRA d; +BGE d if not (.o xor .s) then BRA d; +BGT d if not (.z or (.s xor .o)) then BRA d; + 6800 + CROSS-Microcomputer cross assembler 36 + +BHI d if not (.c or .z) then BRA d; +BITA mem .%A and .mem; o _ 0; {z,s} +BITB mem .b and .mem; o _ 0; {z,s} +BLE d if .z or (.s xor .o) then BRA d; +BLS d if .c or .z then BRA d; +BLT if .s xor .o then BRA d; +BMI d if .s then BRA d; +BNE d if not .z then BRA d; +BPL d if not .s then BRA d; +BR d BRA d; +BRA d pc _ .pc + 2 + d; +BSR d MEM[.sp] _ .pc<0,8>; MEM[.sp - 1] _ .pc<8,8>; sp _ .sp - 2; + pc _ .pc + d + 2; +BVC d if not .o then BRA d; +BVS d if .o then BRA d; +CBA .%A - .%B; {c,z,s,o} +CLC c_0; +CLI ie _ 0; +CLR memd memd_0; c_0; z_1; s_0; o_0; +CLRA %A _ 0; c_0; z_1; s_0; o_0; +CLRB %B _ 0; c_0; z_1; s_0; o_0; +CLV o _ 0; +CMPA opnd .%A - .opnd; {c,z,s,o} +CMPB opnd .%B - .opnd; {c,z,s,o} +COM memd memd_~.memd; c_1; o_0; {s,z} +COMA %A_~.%A; c_1; o_0; {s,z} +COMB %B_~.%B; c_1; o_0; {s,z} +CPX memd %X<0,8>-.(memd+1); %X<8,8>-.memd; {s,z,o} +DAA decimal arithmetic +DEC memd memd_.memd-1; {s,z,o} +DECA %A _ .%A - 1; {s,z,o} +DECB %B _ .%B - 1; {s,z,o} +DES sp _ .sp - 1; +DEX %X _ .%X - 1; {z} +EORA opnd %A_%A xor .opnd; o_0; {s,z} +EORB opnd %B_%B xor .opnd; o_0; {s,z} +INC memd memd_.memd+1; {s,z,o} +INCA %A _ .%A + 1; {s,z,o} +INCB %B _ .%B + 1; {s,z,o} +INS sp _ .sp + 1; +INX %x _ .%X + 1; {z} +JMP mem pc _ mem; +JSR mem MEM[.sp]_.pc<0,8>; MEM[.sp-1]_.pc<8,8>; sp_.sp-2; pc_mem; +LDAA + 6800 + CROSS-Microcomputer cross assembler 37 + +LDAB +LDS mem sp<8,8> _ .mem; sp<0,8> _ .(mem + 1); o _ 0; {z,s} +LDS i16 sp _ i16; {s,z} +LDX opnd %X<8,8> _ .opnd; %X<0,8> _ .(opnd + 1); o _ 0; {z,s} +LSRA +LSRB +NEG memd memd _ 0 -.memd; {c,s,z,o} +NEGA %A _ 0 - .%A; {c,s,z,o} +NEGB %B _ 0 - .%B; {c,s,z,o} +NOP ; +ORAA +ORAB +PSHA +PSHB +PULA +PULB +ROL +ROLA +ROLB +ROR +RORA +RORB +RTI +RTS +SBA %A _ .%A - .%B; {c,z,s,o} +SBCA opnd %A _ %A - .opnd - .c; {c,z,s,o} +SBCB opnd %B _ .%B - .opnd - .c; {c,z,s,o} +SEC c _ 1; +SEI ie _ 1; +SEV o _ 1; +STAA +STAB +STS mem mem _ .sp<8,8>; (mem + 1) _ .sp<0,8>; o_0; {s,z} +STX mem mem _ .%X<8,8>; (mem + 1) _ .%X<0,8>; o_0; {s,z} +SUBA opnd %A _ .%A - .opnd; {c,s,z,o} +SUBB opnd %B _ .%B - .opnd; {c,s,z,o} +SWI software interrupt +TAB %B _ .%A; o_0; {s,z} +TAP sr _ .%A; {c,z,s,o,xc} +TBA %A _ .%B; o_0; {s,z} +TPA %A _ .sr +TST memd c _ 0; z _ .memd = 0; s _ .memd < 0; o _ 0; +TSTA c _ 0; z _ .%A = 0; s _ .%A < 0; o _ 0; +TSTB c _ 0; z _ .%B = 0; s _ .%B < 0; o _ 0; + 6800 + CROSS-Microcomputer cross assembler 38 + +TSX %X _ .sp + 1; +TXS sp _ .%X - 1; +WAI MEM[.sp]_.pc<0,8>; MEM[.sp-1]_.pc<8,8>; MEM[.sp-2]_.%X<0,8>; + MEM[.sp-3]_%X<8,8>; MEM[.sp-4]_.%A; MEM[.sp-5]_.%B; + MEM[.sp-6]_.sr; sp_.sp-7; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 6800 + CROSS-Microcomputer cross assembler 39 + +VII. Compiler directives + The following compiler directives and their presumed meanings are described +briefly here. This is only a refresher for those who have read the DEC +assembler description. + +.ABS Compile non-relocatable (absolute) code. + +.ADDR Generates a 16-bit address with the bytes in the proper order, + i.e., . + +.ASCII ASCII string delimited by paired markers. + +.ASCIZ ASCIZ string delimited by paired markers and supplied with + terminal null byte. + +.ASECT Begin an absolute (non-relocatable) control section. + +.BLKB Allocate space for a number of bytes as specified by the + operand. + +.BLKW Allocate space for a number of words as specified by the + operand. + +.BYTE Each expression supplied will be stored in a single byte. + +.CSECT Enter a Csect. + +.DEPHA Dephase; leave .PHASE control area. + +.DSABL See chapter 5. + +.ENABL See chapter 5. + +.END End of program. + +.ENDC End of conditional; paired with .IF. + +.ENDM End of macro definition or repeat; paired with .MACRO, .IRP, + .IRPC, .REPT. + +.ENDR End of repetition; paired with .REPT; equivalent to .ENDM in + this context. + +.EOT End-of-tape; assembler will wait for next tape to be loaded + Compiler directives + CROSS-Microcomputer cross assembler 40 + + (paper tape hackers only). + +.EQUIV ? + +.ERROR x;text Causes an error message to be issued. The optional expression + x is evaluated and output if present. + +.FLT2 ? + +.FLT4 ? + +.GLOBL ? + +.IF Enter a conditional. + +.IFDF .IFDF true if symbol is defined. See also .IFNDF. + +.IFEQ .IFEQ true if expression evaluates to zero. + +.IFF Begins body of conditional if enclosing condition was false. + +.IFG .IFG true if expression greater than zero. + +.IFGE .IFG true if expression greater than or equal to + zero. + +.IFGT Same as .IFG + +.IFL .IFL true if expression is negative. + +.IFLE .IFLE true if expression is negative or zero. + +.IFLT Same as .IFL. + +.IFNDF .IFNDF true if symbol is undefined. + +.IFNE .IFNE true if expression is non-zero. + +.IFNZ Same as .IFNE + +.IFT Begins body of conditional if enclosing condition was true. + +.IFTF Text from here to the next .IFT, .IFF or .IFTF or the end of + the conditional will be included independent of the value of + Compiler directives + CROSS-Microcomputer cross assembler 41 + + the condition of the enclosing conditional. + +.IFZ Same as .IFE + +.IIF condition, arg, stmnt + +Immediate if; if condition is met, stmnt is emitted. + +.IRP sym, Indefinite repeat of body based upon number of parameters in + . + +.IRPC sym,Indefinite repeat of body based upon number of characters in + . + +.LIMIT Reserves two words into which are put the lower and upper + boundaries of the code. + +.LIST Enable listing. + +.LOCAL ? + +.MACRO name + +Begin a macro definition + +.MCALL Call macros from the system library. + +.MEXIT Leave macro expansion + +.NARG sym The symbol is equated to the number of arguments to the macro + +.NCHR sym, The symbol is equated to the number of characters in + +.NLIST Turn off listing + +.NTYPE sym,arg The symbol is equated to the addressing mode of the argument. + +.PAGE Force a page break + +.PDP10 Irrelevant + +.PHASE Assemble code as if it were located according to the argument + of this directive. + Compiler directives + CROSS-Microcomputer cross assembler 42 + +.PRINT Print the text which follows on the terminal. + +.PSECT + +.RADIX Change the radix to the value specified to this directive. + +.RAD50 Each argument is converted to a radix50 representation, + whatever that means for a microcomputer. + +.REM + +.REPT (.REPT ) Repeat the body of this directive the indicated + number of times. + +.ROUND Perform arithmetic operations with rounding to integer result + (see also .TRUNC). + +.SBTTL Specify subtitle text. + +.TITLE Specify title text. + +.TRUNC Perform arithmetic operations with truncation to integer result + (see also .ROUND) + +.WORD Allocate space for each value specified. Each expression + evaluates to a word (16 bits). + + + + + + + + + + + + + + + + + + Compiler directives + CROSS-Microcomputer cross assembler 43 + +VIII. Macro quick summary + +? When specified with a formal, will cause a compiler-generated + symbol to be provided if an actual is not given in that + position. + +' Internal concatenation character + +\ When used as an argument, evaluates before performing + the actual-formal match. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Macro summary + CROSS-Microcomputer cross assembler 44 + +IX. Assembler syntax quick summary + +<...> Encloses any expression (the assembler's equivalent of + parentheses). Expressions are evaluated left-to-right without + operator heirarchy. + ++ Addition or unary plus + +- Subtraction or unary minus + +* Multiplication + +/ Division + +& Logical and + +! Logical or + +; Begins comment field + +' Indicates single ASCII character as a term in expressions. + +^O Indicates octal number + +^B Indicates binary number + += Symbol assignment + +. Current location counter + +$ Indicates hexadecimal number + +% Indicates binary number (6502/6800 mode only) + +^ If a postfix operator, divides the expression by 256. + + + + + + + + + Assembler summary + CROSS-Microcomputer cross assembler 45 + +Index + + ! 44 + + #, in cref 9 + + $ 1, 44 + + % 1, 44 + %nn, register 1 + + & 44 + + ', concatenation 43, 44 + + * 44 + *, in cref 9 + + + 44 + + - 44 + + ., location counter 44 + .ABS 39 + .ADDR 39 + .ASCII 39 + .ASCIZ 39 + .ASECT 39 + .BLKB 39 + .BLKW 39 + .BYTE 39 + .CSECT 39 + .DEPHAse 39 + .DSABL 5, 11, 39 + .ENABL 5, 11, 39 + .END 39 + .ENDC 39 + .ENDM 39 + .ENDR 39 + .EOT 39 + .EQUIV 40 + .ERROR 40 + .FLT2 40 + .FLT4 40 + Index + CROSS-Microcomputer cross assembler 46 + + .GLOBL 40 + .IF 40 + .IFDF 40 + .IFEQ 40 + .IFF 40 + .IFG 40 + .IFGE 40 + .IFGT 40 + .IFL 40 + .IFLE 40 + .IFLT 40 + .IFNDF 40 + .IFNE 40 + .IFNZ 40 + .IFT 40 + .IFTF 40 + .IFZ 41 + .IIF 41 + .IRP 41 + .IRPC 41 + .LIMIT 41 + .LIST 4, 6, 7, 41 + .LOCAL 41 + .MACRO 41 + .MCALL 41 + .MEXIT 41 + .NARG 41 + .NCHR 41 + .NLIST 5, 6, 7, 41 + .NTYPE 41 + .PAGE 41 + .PDP10 41 + .PHASE 41 + .PRINT 41 + .PSECT 42 + .RAD50 42 + .RADIX 42 + .REM 42 + .REPT 42 + .ROUND 11, 42 + .SBTTL 42 + .TITLE 42 + .TRUNC 11, 42 + .WORD 42 + Index + CROSS-Microcomputer cross assembler 47 + + + / 44 + /CDR 5 + /CRF 5, 8 + /DS 5, 11 + /EN 5, 11 + /EQ 5 + /GNS 5, 10 + /I 5 + /LI 4, 8 + /M08 4 + /M18 4 + /M65 4 + /M68 4 + /M80 4 + /M88 4 + /MF8 4 + /N 5, 8 + /NL 5, 8 + /NSQ 5 + /OCT 5, 8 + /P 5 + /PTP 5 + /SOL 5, 9 + + 1802 4, 28 + + 6502 4, 31 + 6800 4, 34 + + 72, column 5 + + 8008 4, 26 + 8080 4, 13 + 8085 4 + + ;, comment delimiter 44 + + <...> 44 + + = 44 + + ?, macro argument modifier 43 + + Index + CROSS-Microcomputer cross assembler 48 + + @, in command 3 + @ 1 + + ABS 11 + .ABS 39 + Absolute memory addressing 11 + .ADDR 39 + AMA 11 + And, assembler operator 44 + .ASCII 39 + .ASCIZ 39 + .ASECT 39 + + BEX, listing option 6 + BIN, extension 3 + BIN, listing option 6 + Binary listing option 6 + Binary radix 1 + .BLKB 39 + .BLKW 39 + .BYTE 39 + Byte, high 1 + + Card reader simulation 5 + CCL file 3 + /CDR 5 + CND, listing option 7 + COM, listing option 6 + Command line 3 + Comment delimiter 44 + Comment listing option 6 + Concatenation operator 43, 44 + Conditional compilation: .IF 40 + Conditional listing option 7 + Contents, listing option 7 + COSMAC 1802 4, 28 + /CRF 5, 8 + CRF.TMP file 8 + Cross-reference 5 + .CSECT 39 + Current location counter 44 + + Decimal radix 1 + .DEPHAse 39 + Index + CROSS-Microcomputer cross assembler 49 + + /DS 5, 11 + .DSABL 5, 11, 39 + DSK, device 3 + + /EN 5, 11 + .ENABL 5, 11, 39 + .END 39 + .ENDC 39 + .ENDM 39 + .ENDR 39 + .EOT 39 + /EQ 5 + .EQUIV 40 + ERF 11 + .ERROR 40 + Error flags, suppression 11 + Error message suppression 5 + Extension .BIN 3 + Extension .CCL 3 + Extension .LST 4 + Extension .M08 4 + Extension .M18 4 + Extension .M65 4 + Extension .M68 4 + Extension .M80 4 + Extension .M88 4 + Extension .MF8 4 + + F8 4 + Fairchild F8 4 + Floating point truncation 11 + .FLT2 40 + .FLT4 40 + FPT 11 + + Generate new source 5, 10 + .GLOBL 40 + /GNS 5, 10 + + Hex output 5 + Hexidecimal radix 1 + High byte 1 + + /I 5 + Index + CROSS-Microcomputer cross assembler 50 + + .IF 40 + .IFDF 40 + .IFEQ 40 + .IFF 40 + .IFG 40 + .IFGE 40 + .IFGT 40 + .IFL 40 + .IFLE 40 + .IFLT 40 + .IFNDF 40 + .IFNE 40 + .IFNZ 40 + .IFT 40 + .IFTF 40 + .IFZ 41 + .IIF 41 + Image mode output 5 + Intel 8008 4, 26 + Intel 8080 4, 13 + Intel 8085 4 + .IRP 41 + .IRPC 41 + + LC 11 + LD, listing option 7 + /LI 4, 8 + .LIMIT 41 + Line numbers 5 + .LIST 4, 6, 7, 41 + Listing option BEX 6 + Listing option BIN 6 + Listing option CND 7 + Listing option COM 6 + Listing option LD 7 + Listing option LOC 6 + Listing option MB 6 + Listing option MC 6 + Listing option MD 6 + Listing option ME 6 + Listing option SEQ 6 + Listing option SRC 6 + Listing option SYM 7 + Listing option TOC 7 + Index + CROSS-Microcomputer cross assembler 51 + + Listing option TTM 7 + LOC, listing option 6 + .LOCAL 41 + Location counter 44 + Lower case 11 + LPT, device 3 + LSB 11 + LST, extension 4 + + /M08 4 + M08, extension 4 + /M18 4 + M18, extension 4 + /M65 4 + M65, extension 4 + /M68 4 + M68, extension 4 + /M80 4 + M80, extension 4 + M85 11 + /M88 4 + M88, extension 4 + .MACRO 41 + Macro call listing option 6 + Macro definition 41 + Macro, concatenation 43, 44 + MB, listing option 6 + MC, listing option 6 + .MCALL 41 + MD, listing option 6 + ME, listing option 6 + Memory addressing, absolute 11 + .MEXIT 41 + MF8 4 + MF8, extension 4 + MOS 6502 4, 31 + Motorola 6800 4, 34 + + /N 5, 8 + .NARG 41 + .NCHR 41 + New source, generation 5, 10 + /NL 5, 8 + .NLIST 5, 6, 7, 41 + Index + CROSS-Microcomputer cross assembler 52 + + /NPP 11 + /NSQ 5 + .NTYPE 41 + + /OCT 5, 8 + Octal radix 1, 5 + Or, assembler operator 44 + Output format 5 + + /P 5 + Packed binary output 5 + .PAGE 41 + .PDP10 41 + .PHASE 41 + .PRINT 41 + .PSECT 42 + /PTP 5 + PTP, device 3 + PTR, device 3 + + .RAD50 42 + .RADIX 42 + Radix 16 1 + Radix 2 1 + Radix 8 1, 5 + Radix, 10 1 + Radix, binary 1 + Radix, decimal 1 + Radix, default 1 + Radix, hexidecimal 1 + Radix, octal 1 + RCA 1802 4, 28 + REG 11 + Register %nn 1 + .REM 42 + .REPT 42 + RIM, opcode 11 + .ROUND 11, 42 + + .SBTTL 42 + SEQ, listing option 6 + SIM, opcode 11 + /SOL 5, 9 + Source listing option 6 + Index + CROSS-Microcomputer cross assembler 53 + + Source, new, generation 5, 10 + SRC, listing option 6 + Suppression of error flags 11 + Switch CDR 5 + Switch CRF 5, 8 + Switch DS 5, 11 + Switch EN 5, 11 + Switch EQ 5 + Switch GNS 5, 10 + Switch I 5 + Switch LI 4, 8 + Switch M08 4 + Switch M18 4 + Switch M65 4 + Switch M68 4 + Switch M80 4 + Switch M88 4 + Switch N 5, 8 + Switch NL 5, 8 + Switch NPP 11 + Switch NSQ 5 + Switch OCT 5, 8 + Switch P 5 + Switch PTP 5 + Switch SOL 5, 9 + SWITCH.INI 12 + SYM, listing option 7 + Symbol table listing option 7 + + Table of contents, listing option 7 + Teletype format listing option 7 + TIM 11 + .TITLE 42 + TOC, listing option 7 + .TRUNC 11, 42 + Truncation 11 + TTM, listing option 7 + TTY, device 3 + + .WORD 42 + + Z80 4, 11, 17 + Z80 transliteration 19 + Zilog Z80 4, 17 + Index + CROSS-Microcomputer cross assembler 54 + + + \, macro argument modifier 43 + + ^, ^ 1, 44 + ^B 1, 44 + ^O 1, 44 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index diff --git a/doc/info/micros.9 b/doc/info/micros.9 new file mode 100755 index 00000000..28c47def --- /dev/null +++ b/doc/info/micros.9 @@ -0,0 +1,2067 @@ + +File: MICROS, Node: Top, Up: (DIR), Next: Add + +This file contains information on various micro-processor systems. +It is not complete in any sense of the word. It is also not +guaranteed to be correct. Comments, bugs etc. to GZ@MIT-MC. + +You can walk through this whole file by just using the N command. + +* Menu: + +* Add:: How to make additions/changes in this file. + +* CP/M:: A general description of this popular micro + operating system. + +* Software:: Reviews of various software products + Ain't nothin' here yet! + +* Hardware:: Reviews of various hardware (add-on) products + Ain't nothin' here either! + +Microcomputer systems: + +* Acorn Atom:: +* Apple II:: +* Apple III:: +* Atari 400/800:: The Atari 400 and Atari 800 systems +* Compucolor II:: +* H89:: Heathkit H89, also known Zenith Data Systems + Z-89. +* Micro Ace: Sinclair ZX80, Micro Ace is the kit form of + the ZX80. +* Micro Chroma 68:: +* Osborne 1:: +* OSI:: OSI Superboard, C1P, C2-4P, C4P, C2-8P and C8P +* PDP-11/23:: PDP-11/23 running RSTS/E +* SD Systems Z-80:: The SD Systems Z-80 Starter Kit +* Sinclair ZX80:: +* Sorcerer:: Exidy Sorcerer I and Sorcerer II +* Superbrain:: +* Sym-1:: +* SWTP 680X:: SWTP 680X running the FLEX operating system +* TRS80 I:: TRS-80 Model I (Level I and II) +* TRS80 II:: TRS-80 Model II +* TRS80 Color:: Radio Shack's color computer + +* HomeBrew:: Descriptions of some home-brew systems. + + +Node: Add, Previous: Top, Up: Top, Next: CP/M + +How to make changes to this file: + +If you find a mistake in some description, or find some information is +missing, just go ahead and edit it in. If it is anything which could +be vaguely disputable, put your name right by it, e.g. + [Actually that board is a piece of junk - GZ, 01/31/82] + +Generally it is better to add your bit to whatever is there, rather +than deleting something, unless the given information is absolutely +and non-controversially wrong. + +Descriptions of new systems: Below is a list of some categories which +have been found to be useful in writing up a system. Not all +categories apply to all systems, so feel free to skip some, as well as +add some of your own. + +When adding a node, make sure not to change the truth value of the +following statement: + "This entire file can be walked through just using the N command" + +The menu is in alphabetical order. + +Mail a message to me (GZ@MIT-MC) saying that you've added a new node. + +Remember to :INSTALL the changed file on all four ITS's. + [Actually only half still exist -MAP 11:51pm Friday, 3 February 1984] + +For CP/M systems: +Since there is a separate node for CP/M (*note CP/M: CP/M.) you need +not really describe CP/M software, just make a footnote like the one +above. However you might describe any restrictions on using standard +CP/M software with your system. + +If you feel queasy about hacking the file, just mail any comments/new +descriptions to me (GZ@MIT-MC) and I'll put them in for you. + +Sample categories: + +Name: Name and model of microcomputer - to be used as the INFO node + name. +Users: People who will supply more info about this machine + (net addresses). +Manufacturer/Distributors: Where you can buy this system or at least + obtain additional info. US Mail addresses, telephone numbers, + etc. +Type of System: All-In-One vs. Distributed / SingleCard vs. CardFrame +Target Users: Consumer, Business, Hacker, Novice, etc. Expertise + needed to use it. Comments on documentation. +Price: for lowest level system, example prices for add-ons +Bus: connection to outside world exclusive of I/O ports +CPU: the chip + clock rate +Memory: RAM & ROM included, maximum possible, what's in the ROM +Display: type, #lines, #chars, graphics, resolution, colors +Keyboard: description, keypads, special functions, missing keys. +I/O Ports: Parallel, serial, RS-232, etc. +Mass Storage: Cassettes, Disks, capacities. What's standard + + compatible extensions available. +Peripherals: Printers, Modems, etc. Availability, ease of + interfacing, etc. +Other Hardware: Other hardware features not fitting in the above. +Operating System: Monitor, DOS. Description. +Languages, Assemblers: +Editors & Text Processors: +Communications Software: Terminal emulation programs, other... +Application Programs: Games, Mailing lists, databases, etc. +Other Software: any other software features not fitting in the above. +Users' groups: names/addresses of any users' groups, magazines devoted + to this system, etc. +Comments: Evaluation, miscellenious comments, random features, + misfeatures, known bugs, etc. + +Node: CP/M, Previous: Add, Up: Top, Next: Software + +CP/M is a single user, single task operating system for 8080/8085/Z80 +based microcomputers. It is the most widely used disk operating system +for microcomputers and hence "CP/M compatible" is the defacto software +standard. CP/M was written and is currently supported by DIGITAL +RESEARCH, PO Box 579, Pacific Grove, CA 93950 (408) 649-3896. Current +versions are 1.4 and 2.2. Version 1.4 is for low to medium capacity +floppy disks, while 2.2 is for high capacity floppys and hard disks. +Version 2.2 also incorporates some improvements which handle directory +attributes for MP/M (Digital Research's multi-user/tasking OS) +compatibility. + +The standard distribution/exchange medium is an eight inch, single +density, single sided, IBM 3740 format floppy diskette. Other formats +including double density, hard disk, and 5 1/4" diskette may be used. +CP/M systems and programs on non-standard formats are available from +LIFEBOAT ASSOCIATES, 1651 Third Ave., New York, NY 10028, Phone (212) +860-0300. See their advertisement in BYTE for a current list. Prices +for CP/M start at $100 for standard V1.4 and $150 for V2.2. + +An active users group (CPMUG) exists. Their activities are covered in +a magazine called Lifelines (from Lifeboat). CPMUG has released at +least 42 volumes (disks) of public domain software. Hundreds of +programs are available including: assemblers, editors, compilers, +interpreters, text processors, disassemblers, games, communications +software,graphics software, music software, cross assemblers and +simulators for other processors, and utilities galore. All volumes are +available free+media+ postage/service. This software and more is +available via modem from Remote CP/M Systems around the country. On +ITS directory MC:CPM; there are some programs and downloading +facilities as well as more information about CP/M and Remote CP/Ms. + + MEADER@MIT-AI 02/07/81 + +* Menu: None of these are written yet!! + Volunteers, anyone? +* Users:: +* MP/M:: +* Text Processors: Text, Editors, text justifiers, spelling + checkers and so on. +* Language Processors: Languages, Assemblers, compilers, linkers, + interpreters ... +* Debugging Tools: Debug, Debuggers, disassemblers, etc. +* Cross-assemblers:: +* Database Systems: Databases, +* Communications Software: Communications, +* Financial Applications: Financial, +* Sorting Utilities: Sorting, +* Misc Utilities: Misc, + +Node: Users, Previous: CP/M, Up: CP/M, Next: MP/M + + << Please write me !!!>> + +Node: MP/M, Previous: Users, Up: CP/M, Next: Text + + << Please write me !!!>> + +Node: Text, Previous: MP/M, Up: CP/M, Next: Languages + + << Please write me !!!>> + --> starting Whitcher, from multics + will give brief descr. of known tools + +Vedit, Vedit plus + + full-screen programming editor, also available on pcdos etc. +I can only speak from experience on Vedit plus, editor supports +mem-mapped crt controllers and a massive array of terminals, 8080 or +z-80 object code. The object module is not small (23k vedit+ ~17 +vedit) the enhanced version offers 37 text registers, all of which +may act (simultaneously) as full edit buffers (vedit has only 1 edit +buffer). Vedit + also provides a "powerful" (read obscure) command +language emacs macros are superior, problem is vedit macros only work +in "command mode" (a super-sophisticated line editor) I have not used +teco, but looking at emacs, I prefer the design. + + Vedit can be made to look ~ like emacs, the conventions on (e.g.) +where a word begins/ends are different, and not very consistent. it +does handle the screen well and very fast (knows how long to delay +cursor at 19.2kb etc.) +Node: Languages, Previous: Text, Up: CP/M, Next: Debug + + << Please write me !!!>> + +Node: Debug, Previous: Languages, Up: CP/M, Next: Cross-assemblers + + << Please write me !!!>> + +Node: Cross-assemblers, Previous: Debug, Up: CP/M, Next: Databases + + << Please write me !!!>> + +Node: Databases, Previous: Cross-assemblers, Up: CP/M, Next: Communications + + << Please write me !!!>> + +Node: Communications, Previous: Databases, Up: CP/M, Next: Financial + + << Please write me !!!>> + +Node: Financial, Previous: Communications, Up: CP/M, Next: Sorting + + << Please write me !!!>> + +Node: Sorting, Previous: Financial, Up: CP/M, Next: Misc + + << Please write me !!!>> + +Node: Misc, Previous: Sorting, Up: CP/M, Next: CP/M + + << Please write me !!!>> + +Node: Software, Previous: CP/M, Up: Top, Next: Hardware + + << Please write me !!!>> + +Node: Hardware, Previous: Software, Up: Top, Next: Acorn Atom + + + <> + +Node: Acorn Atom, Previous: Hardware, Up: Top, Next: Apple II + +Users: DAVROS@MIT-AI +Manufacturer: Acorn Computer, Cambridge, UK. +Distributor: Climar Torch Group, Toronto, Canada (Current nearest, + we think) +Type: All-In-One (Bar a few bits; single board) +Target: Home/ hacker/ lab instrument (?) +Price: (Not known for USA/Canada). 140 pounds sterling minimum +CPU : 1MHZ 6502 +Memory: 8K BASIC in ROM, 4K floating point in ROM (extra), + 4K DOS in ROM (extra) + 2K RAM, extensible to 12K (onboard), maximum 37K RAM (with a + struggle). +Display: Uses MC6847, generates NTSC picture, max 8 colours in some + modes, max resolution 256 x 192. + Text 20 lines x 32 characters +Keyboard: Built into box, full ASCII, sprong contacts. +I/O: 6522 via on board (extra) + Parallel printer buffer (extra) + nurdle (extra) + "mass store" cassette also disc available. +Peripherals: Easy to interface, but no RS232. +Operating System: ACORN DOS. + Really hack level (More BASIC. + BASIC interpreter, built in assembler. +Languages: BASIC, FORTH, Pascal (mostly ACORN versions). + +We can try to get further info if you are interested. + + DAVROS@MIT-AI, 03/13/82 + + +Node: Apple II, Previous: Acorn Atom, Up: Top, Next: Apple III + +Users: ROBG@MIT-DM, INFO-APPLE@MIT-MC +Target Users: The Apple II is fairly easy to use right from the start, + with just a little experience. The manuals are fairly + complete and well written. However, to begin journeying into + the world of assembly language you need patience and more + experience with computers. All in all, it is a good choice + for an all around fun, educational and/or business machine. +Price: $1000-$1150 for the basic system (16K) +CPU: 6502 +Memory: The basic system comes with 16K of RAM. It is expandable to + 48K, or 64K if you implement the Pascal Language System. +Display: 40x24, all UPPER CASE. However, there are numerous ways + (both through software and hardware) to get around this. + There are many companies that sell 80-char boards (upper/lower + case), so if you are worried about using it as a terminal, it + is really not a problem. There are very limited features for + correcting text once it has been entered. Other than four + escape codes for up,down,left, and right, there are no insert + delete,etc commands. This, however is also software + correctable. +Mass Storage: The basic means of storing and retreiving programs comes + from the tape player. However, Apple sells the 'DISK II' + which is a 5-1/4 [5-1/2] inch mini floppy disk drive. It + retails for $600 with the controller card. Add-on disks (up + to 7) are available for $390-$430. +Operating System: With the Apple II you get Integer Basic in ROM, and + will have to buy the Floating Point Basic if you want it. + With the Apple II Plus, you get Floating Point in ROM and have + to buy the Integer Basic if you want it. The differences + between the languages are many, so I will not go into them + here. +Languages: You can get Pascal, Z80, Fortran, and now Cobol for + operating systems. +Software: There are endless companies that are constantly releasing + new and exciting software, from text editors to games, to + utilities. +Peripherals: There are many, many add ons available, so I will only + list a few here. There are many printers, hard disk drives, + extra slots, modems [specifically, the DC Hayes Micromodem + II], time clocks, and many others. There are numerous + hardware ''Houses'' which sell parts for the Apple. I have + never had a problem getting parts and/or service for my Apple, + and I am sure that this is true with almost every Apple owner. + + ROBG@MIT-DM, 01/11/81 + +Node: Apple III, Previous: Apple II, Up: Top, Next: Atari 400/800 + + +Users: INFO-APPLE@MIT-MC + +This is a reproduction of a 'facts' sheet being distributed by +the BYTE SHOP in Hayward -- SHL@MIT-MC 06/18/80 + + APPLE III facts sheet + ----- --- ----- ----- + +Size: 17.5" wide (44.45 cm), 18.2" deep (46.22 cm), + 4.8" tall (12.2 cm) + Cast aluminum base with molded plastic cover. + +Weight: 26 lb (11.8 kilos) + +Processor: Apple designed processor utilizes 6502A as one of + its major components. Other circuitry provides + extended addressing capability, relocatable stack and + zero page, and memory mapping. + +Emulation mode: provides hardware emulation of 48K byte Apple II or + Apple II plus. Allows most Apple II programs to run + without modification. + +Clock speed: 1.8 MHZ with video off, 1.4 MHZ average + 1.0 MHZ in emulation mode + +Main memory: 96K (98,304) eight-bit bytes minimum + 128K (131,072) bytes maximum + Dynamic RAM memory + +ROM memory: 4K (4096) bytes used for self-test diagnostics. + +Power supply: High-voltage switching type. +5, -5, +12, -12 Volts + +Mass storage: One 5.25" floppy disk drive built-in + 140K (143,360) bytes per diskette + Up to 3 additional drives can be connected by daisy + chain cable (572K bytes on-line storage) + +Keyboard: 74 keys (61 on main keyboard, 13 on numeric pad) + Full 128 character ascii encoded. + All keys have automatic repeat. + Three special keys: SHIFT, CONTROL, ALPHA LOCK + Two user-definable "APPLE" keys + Four directional arrow keys with two-speed repeat + Four other special keys: TAB, ESCAPE, RETURN, ENTER + +Screen: Three upper/lower case text modes: + 80 column, 24 line black-and-white + 40 column, 24 line 16 color foreground and background + 40 column, 24 line black-and-white + All text modes have a software-definable 128-character + set (includes upper and lower case) with normal or + inverse display. + + Three graphics modes: + 280X192, 16 colors (with some limitations) + 140X192, 16 colors + 560X192, black-and-white + Plus APPLE II modes + +Video output: RCA phono connector for NTSC black-and-white + Composite video + DB-15 type connector for: + NTSC black-and-white composite video + 4 TTL outputs for generating RGB color + Composite sync signal + NTSC color composite video + +5, -5, +12, -12 Volt power supplies + Color signals appear as 16-level grey scale on + black-and-white video outputs. + +Audio output: Built-in 2" speaker. + Miniature phone-tip jack on back of APPLE driven by + six-bit digital/analog converter or fixed-frequency + "BEEP" generator. + +Serial I/O: RS-232C compatible, DB-25 female connector + Software selectable baud rate and duplex mode + +Joysticks: Two DB-9 connectors for two joysticks with + pushbuttons. + +Printer: One DB-9 connector (shared with second joystick) + for APPLE SILENTYPE printer + +Clock: Can be set and read from programs + Powered by long-life replaceable watch batteries + Keeps track of month, date, day of week, + and exact time to 1/1000th of a second. + +Expansion: Four 50-pin expansion slots inside the cabinet + +SOS: Sophisticated operating system handles all system I/O. + SOS can be configured to handle standard or custom I/O + devices and peripherals by adding or deleting + "device drivers". + + All languages and application programs access data + through the SOS file system + +Languages: APPLE Business Basic, Pascal, FORTRAN (4th quarter) + +The cost is expected to be between 4400 & 4500. + + +Node: Atari 400/800, Previous: Apple III, Up: Top, Next: Compucolor II + + Atari 400 and 800 + +Users: PALEVICH@NBS-10 +Manufacturer: Atari +Target Users: The thing to buy for hobby/home video game hacking. + Probably also the best for educational purposes. Not for the + hardware hackers. The documentation is excelent, idiot proof, + glossy paper, color manuals, CAI tutorials, operating system + source, etc. Reasonable documentation of hardware is not yet + widely available. +Price: $600 ($450 if you try) +CPU: 6502B at 1.79 Mhz. +Bus: The peripherals communicate over an extremely flexible serial + i/o bus, with so many hacks and interrupts that the + documentation on it (which, I understand they are working + furiously at, in order to get it out to their customers) is + about 6" already. +Memory: 8K RAM, 10K ROM Operating system, 8K ROM Basic. + The 800 may be expanded to 112K of RAM, the 400 to 32K. + The latest rumor is that the 800 can really be expanded to + 192K (bank select of course). +Display: You supply the TV (preferably color). The unit comes with a + video-out line. The graphics hardware included with the Atari + is incredible. You can do just about everything. Just look + at Star Raiders. + You can't really get more than about 53 legible characters per + line even if you use the super dense graphics mode and plot + them yourself. + The characters are actually user definable - just set up your + date (8 bytes per char) and change one register. + Other hacks are that a line of text, or a whole screen, may be + inverted (UPSIDE DOWN, not in color), or you may scroll both + vertically and horizontally, or enable interrupts for + everything from video retrace to serial character received to + depression of the break key. And so on and on. +Keyboard: Comes with the unit. The 400's keyboard is awful. It is + monopanel with all the tactile feedback of a formica tabletop + (it is science-fictiony looking, though). The 800 has a very + nice real keyboard to it. It is possible to hook up the + keyboard of your choice to either one if you are willing to + write the software for it. +Mass Storage: Cassette recorder for $70, you must buy Atari's because + of the 15-pin plug. + Disks ($600 for 80k 5" floppy, $1000 for 120Kx2 drives, each + system can have up to 4 drive units (even 4 2-drive units for + 8 disks. . .)) +I/O Ports: High speed serial (19.2Kb) for everything. + RS-232C interface is $250 -- 4 ports, one of which can also + drive teletypes. +Peripherals: Light pen $70 -- 160 x 96 resolution, hardware, 60hz + sample rate. + Printers -- all sorts $400 up. + Joysticks, game controllers $20 each/per pair. +Software: Basic, Assembler/Editor, Telelink (TTY emulator), Visicalc, + DOS, Pilot, Pascal, Calculator, etc. Unit comes with Basic. + Software costs are $30 to $50 per ROM Pac, $18 per cassette, + ?? per disk. Very reasonable. + +Comments: + +Wins: Superb graphics & video game hardware/software. Much of this +is hidden gold -- that is, Atari doesn't tell you about it. Atari +promises to fix this. + +Crocks: No access to processor bus. All expansion via 15pin high +speed serial ports (19.2Kb) including Disk drives, etc. You cannot +access more than one device simulataiously, i.e. disk drives and +rs-232 port at the same time. Oh well. + + PALEVICH@NBS-10, Dec. 31, 1980 + +Node: Compucolor II, Previous: Atari 400/800, Up: Top, Next: H89 + +Users: Cory.cc-06@Berkeley +CPU: 8080 +Memory: 8K RAM, expensive upgrades. +Display: Fairly nice 128x128 graphics (although the colors only have + a 64x32 resolution). There is no lowercase. That part of the + character set is taken up by a set of singularly useless + graphics characters. It is very easy to get into graphics + mode from basic, which really confuses the screen. The + graphics has some nice vector modes, but a gratuitously bad + choice of graphics characters makes some of them work very + strangely. +Keyboard: a detached keyboard. +Mass Storage: A built-in disk drive. +Operating System: Basic in ROM, with a File Control System (FCS) and a + Graphics/CRT Subsystem. The BASIC is fairly complete, lacking + in particular the string function 'instr' and others of the + kind. Also irritatingly lacking are defined functions of more + than one argument. The commenting allows you to leave blank + lines in your program, even though it has a standard BASIC + editor. The BASIC uses extensive tokenisation to save memory. + It is possible to execute FCS commands from basic through an + escape sequence. It is also possible to do this in terminal + mode. + The file control system, which is required to do anything, + uses a particularly bad system of indexed files with no method + of changing the size of a file except by making a copy of it. + No sequential files in the ordinary sense at all. No way of + accessing anything but a random access indexed file from + basic. This means no fiddling with basic source (or repairing + it after a disc crash). When deleting a file, the FCS ALWAYS + COMPACTS THE DISK. It uses screen memory for temporary + storage, and if you have any bad cells in this area (as the + machine I use has) then deleting files is VERY hazardous. It + is not interfacable with anything. This means you can't use + CP/M even if you have the memory. Assembly language programs + (if you have the assembler) are fairly chancy. There is no + monitor in the ordinary sense, though I have a program to do + much of the work of one. To do any keyboard/screen I/O you + have to do all scrolling, etcetera yourself, as they don't + tell you the entry points to the Graphics/CRT Subsystem. + +Comments: + +The machine is basically locked into BASIC, and if you want anything +else you have to pay for it. + +Hitting '^A' will attempt to load a program named 'MENU' from the disk +and run it. Can be VERY bad. + +Backspace is ^Z, home is ^H, delete is ignored, and interrupt is +LINE-FEED!!! This means to use the terminal mode is VERY difficult. + +It is possibly to make it explode either by hitting CPU RESET too +often and fast or by doing an 'OUT [1-6],anything' from basic. I am +not joking. The screen disappears, there are loud noises, smoke comes +out, and you have to replace chips. + +The disk drive is right next to the screen, so if you leave a diskette +in it is likely to become randomised, and when you are loading or +saving the screen flickers badly. The compucolor diskettes are +terribly thin, and so you can only use one side of them. Better to get +someone elses disks. + +The disk format is totally incompatible with everything. The drive +can't be rewired to work with anything. + + Cory.cc-06@Berkeley, Feb. 14,1981 + + +Node: H89, Previous: Compucolor II, Up: Top, Next: Micro Chroma 68 + + Heathkit H89 (also known as Zenith Data Systems Z-89) + +Users: JJD@MIT-MC, RossJ@Rand-Unix +Price: Kit form $1695, built $2800 +CPU: Z-80 at 2.048mHz +Memory: 16K RAM (4116's) standard. Expandable to 48K by just plugging + in chips, to 64K with extra hardware (~$50). +Display: Based on the H19 Ascii terminal. Terminal has its own Z-80 + for smart terminal functions including Insert Line, Delete + Line, Insert Character, Delete Character, Clear to End of + page, Clear page, Clear to End of line, many others. See + INFO TERMS entry for H19. Fully supported by ITS via CRTSTY + and TCTYP +%TOLID and TOPS-20 via TERMINAL HEATH. Works great + with EMACS. (even at 300 baud!). Full 12" B+W screen with P39 + white phosphor. Thirty three graphics characters are + available in addition to the full upper and lowercase ascii + set. Character reverse video is provided. +Keyboard: Full ascii keyboard with 8 function keys and keypad. +I/O Ports: RS232 serial port is $100, allows you to interface + processor to printers and other computers. Although it is + possible to use the H89 as a terminal without purchasing this + interface by buying an RS232 connector plug. Of course in + this way, downline loading is impossible. +Mass Storage: One 5" mini floppy (single sided, single density, 102K + per disk formatted) is standard. Dual 8" floppies are + available for over 2Meg of storage. Cassette interface is + supplied with the kit. +Operating System: HDOS ($150), which I consider to be a good operating + system compared to CP/M. Included with HDOS is an 8080 + assembler and a version of Dartmouth BASIC (not very good). + CP/M (*note CP/M: CP/M.) is also available for $150 but + requires a ROM for $55. This is needed because the monitor is + ORG 0 and so is CP/M. +Software: Business software, wordprocessing software, COBOL, FORTRAN + and Microsoft Basic are available under both operating + systems. Walt Bilofsky (Walt@Rand-Unix) has a full screen + editor, a C compiler and a LISP interpreter for very + reasonable prices. These run under HDOS. +Users' groups: The Heath Users Group (HUG) publishes a bimonthly + newsletter and has a large sofware library available to users + at low prices. + +Comments: + +The kit is easy to build, all of the logic boards are prewired. +Approximate assembly time is 24 hours. + +I don't think this is a very good machine for hardware hackers +because I haven't seen much data on the bus or the internals of +the machine. However, I don't think it can be beat in terms of +usability, power, and convience. I don't know of any other +"packaged" system which uses an ascii keyboard or has an 80 x 24 +display. I am very pleased with it. The only real misfeature +that I know of is that is has a loud fan. + + JJD@MIT-MC, Dec 7,1980 + +I found the kit easy to assemble. I had a faulty disc drive (Siemens), +but Heath replaced in gratis under the warranty. I use Walt Bilowsky's +software (reach, PIE, C/80), which is excellent, and bought a few +things from HUG (not so great). I run HDOS. I am an amateur, not an +experienced programmer, but I give the H89 high marks. My only +complaint is the very noisy fan; I replaced it with a quieter Roton. +The H89 does need 2 disc drives to be efficient, and I plan to get +the Heath add-on drive soon. + + RossJ@Rand-Unix, Dec 18,1980 + +Node: Micro Chroma 68, Previous: H89, Up: Top, Next: Osborne 1 + +Users: FEINBERG@CMU-20C +Manufacturer: Motorola. Distributor is Austin Electronics in + Austin, Texas. +Type of System: Single board computer which connects to the + Exorsizer bus. +Price: The partial kit, which includes all LSI chips, a manual and a + double-sided PC board costs a mere $200. Or you can get the + whole deal. +CPU: 6808 (which is just a 6800 with an on chip clock) +Display: It has a 6847 color generator chip and a video modulator + chip. The generators is very versatile and can generate up to + eight different colors in low-res mode, and 192x256 graphics + in high-res mode (background and one color only in high-res + mode). The chip also supplies a 32x16 character display which + the TVBUG monitor uses to communicate with you. +Keyboard: You must supply a standard ascii keyboard. Note though, you + must tie the unused cursor position lines down if you don't + have the suggested microswitch keyboard or equivalent. +I/O Ports: Included are a 6821 PIA and a 6850 ACIA. The ACIA is used + as part of the Kansas City Standard onboard cassette interface + (at 300 baud) and the PIA is used to connect a keyboard to the + system. +Operating System: The system includes a 6846 ROM/IO/TIMER with a TVBUG + monitor. The TVBUG is reasonably smart and allows you to + enter and debug machine code, and load and save from cassette + tape. +Add-ons: There is a kludge space on the bottom of the board for + drivers for the EXORsizer bus or for whatever you want. + +Comments: A good board for the money. + + FEINBERG@CMU-20C, Feb. 8, 1981 + +Node: Osborne 1, Previous: Micro Chroma 68, Up: Top, Next: OSI + +I got a look at this beast yesterday at the West Coast Computer Faire, +and it really is sort of interesting. From their "hardware at a +glance" comes the following: + +Standard Hardware + o Z80A + o 64K RAM (60 available to programmer) + o 2 Floppies w/ 102k each + o Full "business" keyboard ("italics" mine -- a fair keyboard) + o 5" monitor. 52 by 24 memory mapped screen. Automatically + scrolls horizontally across a 128 character line. + o IEEE/488 interface + o RS232C interface + o Seperate modem interface (modem w/ coupler available Q3 81) + o External battery pack connector (pack for 5 hrs available Q3 81) + +Standard Software + o CP/M (*note CP/M: CP/M.) + o WordStar with MailMerge + o SuperCalc + o CBasic and MBasic + +All this for $1795. It also looks as if you really can fit it under a +plane seat without owning the plane. Might be a kick to get through +airport security, though. + +A few notes: The keyboard is "fairly" standard, and not too unpleasant +to the touch. The monitor is *small*, and, if the information on the +screen is dense, very hard to read. The floppies seem to be mounted +in a way that would protect them from being bashed if one were to drop +the case (look out, american tourister). Space is also provided below +each floppy for diskette storage. + +Their sales pitch seemed geared to the travelling engineer. Also, the +models on display looked slighly different from the pictures in their +literature. The said that they're demoing "experimental" models. + +Time will tell. + DWS@LLL-MFE, 4 Apr 1981 + + +Node: OSI, Previous: Osborne 1, Up: Top, Next: PDP-11/23 + + OSI C2-4P, C2-8P, C4P, C8P, C1P & Superboard (SBII) + +General: The C2-4P is 15"x18"x4.5". The general appearance is similar + to the SOL-20, but it doesn't have the stained wood sides. It + is discontinued, but is still available retailly. The C2-8P is + 17"x15"x10". It resembles pictures of the SWTP 6800 system. + All jacks are on the back panel and the front panel has a + shiny silver panel on a blue background. It has a MONSTER of + a power supply. The C4 and C8 are OSI's new versions of the + C2-4P and C2-8P. The SBII is a single board computer, just + plug in a CRT and +5 volts and you're up. The C1P is the SBII + with a case and power supply. +Prices: C2-4P is $500 with mini-floppies $600 extra. C2-8P is $700 + plus $1000 for 8" floppies. C4 is $700, $1700 with + minifloppies, and the C8 is $900, $2600 with 8" floppies (2). + The SBII is $280, C1P is $400, $1000 with 20K RAM and 5.25" + disk drive. +Bus: The OSI C2, C4 & C8 all use OSI's 48 pin bus. This is an + extremely noise free bus, but has drawbacks that should be + noted. It is not S100 and in the C2-4P and C4P, there is only + a 4 slot backplane, and two slots are used in the basic + configuration. The C2-8P has 8 backplane slots. OSI supplies + numerous boards for the 48 pin bus, notable are the Votrax (R) + unit, the universal telephone interface , AC remote control, home security system, and many + static & dynamic memory boards. +CPU: The C1, C2s, C4 & C8 are controled by a 6502 micro-processor. + Therefore, they cannot run CP/M 8080, Z80, or 6800 code; but + this is no drawback for there are millions of programs written + in 6502 code. +Ports: Three RCA phono jacks on the rear panel take care of the video + out , tape in, tape out. I have + changed these jacks on my computer to BNC, and phone, + respectively. For the video interface, simply connect the RCA + jack to the input of any CRT monitor. If you prefer to avoid + that expense, use any low cost RF modulator to hook it up to + your TV set's antenna terminals. The floppies for the C4 and + C8 have extended ports (e.g. RTC, home security, DA/AD + converters and much more.) +Display: C1 and SBII have a 24x24 screen. The C2, C4 and C8 have a + 64x27 screen, (software selectable 32x27). The C4 and C8 have + color graphics (the others are Black&White). +Keyboard: The C2-4P has a self contained keyboard which is a dream to + operate. It is a real typewriter style keyboard with + capacitive contacts and the "feel" to a touch typist is almost + indistinguishable from an office typewriter. The C2-8P has a + detached keyboard. +Mass Storage: The C2-4P and C4 are available with minifloppies and + the C2-8P and C8 with 8" floppies. OSI produces only + mini-floppy upgrades for the C2-4P and C2, and only 8" floppy + upgrades for the C2-8P and C8. This is no problem though, all + one needs to do is order whichever upgrade he wants, and + simply plug it in himself. The 630 board is available for + adding disk(s) to the SBII. The C1P is available with 5.25" + floppies. +Operating System: All the computers support Microsoft 8k basic in ROM. There is also a system + mini-monitor. On power-up, the screen displays "D/C/W/M"; D + stands for "disk boot"; C stands for "Coldstart ROM Basic"; W + for warmstart ; and M is for + monitor. +Software: OSI has a large line of educational, business, personal and + game programs, and Aardvark Electronics has a large catalog + devoted to OSI hard/software; also Kilobaud magazine has + started publishing many OSI articals lately. OSI's public + relations have improved greatly too. Problems in finding + support for OSI computers is definitly a thing of the past. + + PST@MIT-DM, Jan 15, 1981 + +Node: PDP-11/23, Previous: OSI, Up: Top, Next: SD Systems Z-80 + + PDP-11/23 running RSTS/E + +Users: LLOYD@MIT-AI + +Basic system: + +The hardware configuration I run is: + PDP-11/23 processor + BA-11N box with 9 x 4 backplane (9 usable Q-bus slots) + 256 Kb of DEC RAM (4 x MSV-11-DD) + Bootstrap/Diagnostic ROM with RT clock (BDV-11) + 4 serial ports (DLV-11-J) +All of the above is the PDP-11/23-AC from DEC. + +Price: + +IT AIN'T CHEAP! The CPU was aquired from an OEM who needed bucks in a +hurry. He let us have the CPU for $6,500. The disk/tape subsystem is +$9,900. No, it's not your basic home computer, but it might be of +interest to those of you building big business-microcomputer systems. +A RSTS/E license only (no documentation, media, binaries; nothing but +the right to run RSTS/E on your machine) runs about $8,000. If you +want full DEC support, it will set you back a mere $17,000. +Basic-Plus-II license only is about $3,000 and a Datatrieve license +only is about $2,000. My approach was to get a license only, then +spunge off of another RSTS/E site to get up and running. Much +cheaper. + +Mass Storage: + +I have a United States Design Corp. winchester disk subsystem. +It consists of: + 20 Mb IMI-7720 disk drive + DEI cartridge tape unit + power supply and box to match the DEC styling. + +The cartridge tape is the beauty of the whole system. As far as the +OS is concerned, the tape is another disk. The disk is addressed as +DK0: and the tape is addressed as DK6:. ALL disk operations +(including random seek and block overwrite) are available on the tape. +[-- USDC (Crofton, MD) is considering offering their disk subsystem +for other uP systems (I think). If you would like to have something +like it for another uP, give USDC a call and let them know. --] DEC +machines can either be a hardware hacker's delight or a turnkey (no, I +din't mean TURKEY) dream. DEC spends lots of green documenting their +hardware well. USDC is much smaller, but their documentation is +fair-to-good. Since the disk subsystem comes ready to plug in (with a +bootable RT-11 V3.2 on a tape cartridge), there should be no problem +other than plugging the interface bd. into the backplane. + +My disk system was DOA, but a new set of firmware ROMs in the +controller cured the problem. USDC assures me that their QC is much +improved, and infant mortality is about an order-of-magnitude lower +now (also my disk was a production prototype). + +Operating System: + +If you use standard DEC disk subsystems (RL01, RL02), or a DEC +compatable disk subsystem, RSTS/E will run on the 11/23 with NO +MODIFICATIONS (you do have to have the real-time clock though). The +USDC disk subsystem required a custom driver for RSTS/E. USDC offers +RT-11, RSX-11M, and UNIX drivers for their disk. + +Let me now talk of the RSTS/E OS and the software available for it. +RSTS/E stands for Resource Sharing Time Sharing / Extended. It can +support up to 64 tasks and up to 128 asynchronous ports. It can run +with as little as 128Kb RAM, but it is best with 256Kb. On the 11/23 +I feel that 6 simultanious users is a comfortable maximum allowing +reasonable (under 1 second) response time for most activities. The +big advantage of RSTS is the abundance of existing application +software. There is more software for RSTS systems than for any other +OS I know of (IBM excepted). +RSTS is also the easiest-to-use and most friendly operating system I +have ever dealt with. It is also fairly capable. Last year I +implimented a store-and-forward message switching system supporting +512 nodes. I wrote the package (at the client's demand) in BP2. It +can be done but I don't recommend it. + +Software: + +RSTS comes bundled with all utilities (assembler, linker, file and +user-account maintainence programs), a record management facility +(sequential, random-access, and B-tree organized ISAM filestructures), +and a VERY powerful shared-code BASIC interpreter that beats the pants +off of anything Microsoft makes. + +RSTS/E BASIC, called Basic-Plus, provides most language features we +have come to expect from a programming language. In Basic-Plus (BP) +you will find full arithmetic, string, and matrix functions; +print using; +IF...THEN...ELSE; FOR...UNTIL; FOR...WHILE; WHILE...; UNTIL...; + IF ; + UNLESS ; multi-line DEFs; string arithmetic, +core common (for chaining); chain to line XXX of another program; +integer, single-precision, and double-precision variables; long +variable names (all characters significant); multi-statement lines; +multi-line statements; etc. If you have ever seen a basic feature, BP +probably has it too. + +As for speed, BP is pretty fast. In recent benchmarks between +Microsoft BASIC on an 8086 and BP under RSTS/E on an 11/23, BP was +from 4 to 15 times faster. This was just comparing core-only jobs (no +disk I/O tested) in a single user environment. + +If you like Basic-Plus, DEC has also come out with Basic-Plus-II +(BP2). BP2 is a true compiled basic. It has all the features of BP. +In addition it supports external subroutines (BP2 or MACRO-11 +assembler), and direct use of RMS-11 file structures. Being a +compiled language it exhibits the usual speed increase over an +interpreter (typically 5 times over BP). If the task is too large to +fit into core, BP2 allows you to build overlays. It is possible to +fit a 600+Kb program into the 64Kb addressing range of the PDP-11 +using overlays. + +Of course RSTS/E supports the major languages too. From DEC you can +get Fortrash, COBOL, DIBOL (DIgital's Business Oriented Language), +APL, and RPG-II (Rotten Programming Garbage). Several vendors offer +'C' and Pascal. + +Another software goodie is a very nice Database query/report generator +called Datatrieve. Datatrieve uses an English-like syntax that is +very easy to use. For example: if I have defined a domain called +"Hackers" containing all the names of people on mailing lists and what +lists they are on, I could query this by saying, "Find all hackers +with mailing.list containing INFO-MICRO or HUMAN-NETS" would result in +Datatrieve responding, " records found." I could then tell it to +sort the collection on any field and print a report by saying +something like, "Sort Current collection on Mailing.list, last.name, +first.name. Print First.name, last.name, mailing.list of current." +Not AI, but not too shabby either. BTW, Datatrieve can operate on any +RMS-11 files including those generated by a BP2 program. + +Comments: + +If anyone has any questions on RSTS/E, the PDP-11/23, or applications +under RSTS, drop me a note (LLOYD at MIT-AI). + + LLOYD@AI, Dec. 10, 1980 + +Node: SD Systems Z-80, Previous: PDP-11/23, Up:Top, Next: Sinclair ZX80 + + The SD Systems Z-80 Starter Kit + +Users: LINN@BBNE +Type of System: Single card +Target Users: Clearly, also, this is a machine for hardware twiddlers, + though I could also see it as being a good general + introduction to the micro-world. +Price: Around $300, depending on whether you buy the kit or the + assembled version. +CPU: Z-80 +Memory: There is 1K worth of 2102s included, plus board positions to + add another K. There is a socket and ROM software to program + 2716s, and an extra socket to put in a 2716 that you program. +Display: Hex numeric led display. +Keyboard: Hex key pad. +I/O Ports: Z80 PIO (both sections available) and a Z80 CTC (one + section available). The ROM also provides a (painfully slow + -- 300 baud and two bytes per character) Kansas City/Intel Hex + Cassette interface, which works fine if and only if your + machine has good speed accuracy (the read routines don't adapt + to tape speed). +Add-ons: I don't believe there is much available designated as an + option for this machine, but there is a fairly sizable + wire-wrap expansion area and two "almost" S-100 sockets. Among + other attributes, the data in and data out lines are wired + together (making, in effect, a bidirectional bus). This causes + no problems to some cards (for example, I am using an Ithaca + Audio 8K static card with no hassles); any card that might + have its outputs enabled while the CPU is writing output data + would have trouble. There is also no provision for wait state + control, and some of the S-100 control lines are "replaced" + with approximate z-80 equivalents. Drive is limited by the + capacity of the CPU chip itself. As must be clear, this is + not an infinitely extensible configuration, but it is well + thought-out for what it tries to do. + +Comments: + +Altogether, I like it as a basis to put together a standalone +machine; I am currently running it as a terminal with a homebuilt +24x80 memory-mapped video board. + +The only problems I've had have come from intermittent contacts on +the keypad and in IC sockets. Also, the aforementioned criticism of +the speed and finickiness of the cassette interface. Consideration +is necessary before deciding whether a given S-100 device can or +can't be plugged into one of the sockets. This might be a good +choice for someone trying to build a ROM-based FORTH machine or the +like; there is room for several added PROMs in the wire wrap +expansion area. + LINN@BBNE, Dec. 18,1980 + +Node: Sinclair ZX80, Previous: SD Systems Z-80, Up:Top, Next: Sorcerer + +The Sinclair ZX80 comes in two forms, assembled as the ZX80, or in kit +form as the MicroAce. These are the same beast on the inside. + +Primary Language - 4K Integer Basic; version developed by Sinclair is + not compatible with any other version but is rather + powerful. An 8K floating point Basic is promised. +Memory Size - Maximum RAM is 2K, ROM on board is 4K. +CPU - Z80 +Expandability - Excellent. Most of the z80 pins are brought out to + an expansion connector. (Look what Radio Shack did + with that in TRS-80 model I (*note TRS:TRS80 I.)) + Reportedly in the plans are a low-cost printer, + memory expansion, and a fully automated tape + transport. +Input - A membrane type keyboard that should be replaced + immediately and cassette. All of the BASIC + keywords require only one keystroke to type. +Output - Video Display 32 chars on 24 lines. The TV output + is black on white, but adding a jumper makes it + white on black. + Built in RF modulator to Channel 34. + Cassette. +Peripherals - None +Cost - $149-200 depending on options and if kit or + assembled + +The Basic is fairly powerful as a Basic although it does have some +severe limitations. Capabilities include any length strings in 26 vars +(A$-Z$) any length one dimensional arrays in 26 vars(A(n)-Z(n)) and +any number of Integer variables with any length names (ie +ADDRESSOFAFRIENDOFMINE is valid, and all characters are significant). +Warning: when using strings this BASIC is SLOW. + +Functions in the Basic include a random number generator, a CHR$(n) +function for printing characters of value n, Code (n$) for getting the +numeric equivalent of the leftmost character in string n, TL$(n) for +stripping off the leftmost character of string n, and PEEK. There is +no concatenation function at all. The editor in this machine is no +EMACS but it is quite usable. + +Also Machine programming is through Pokes and a call to USR(Address). +Unfortunately USR does not allow one to pass variables, only call to a +specified address. Also there is no DATA/READ construct so entering +machine code is tough. The Z80 on board is worked to the maximum +capability, (The cassette interface is about 6 components) but it does +do everything admirably. Yet when it does something other than +display the screen, that is read a key from the keyboard or run a +program or read/write a cassette, it loses sync and/or the entire +display, depending on the function, which causes very annoying jumps +in the display on type-in and difficult interaction in programs. + +Recommendations : + +It is a fun little system and good for learning on, it is reasonably +priced and easy to assemble in kit form (the traces are quite close +though). The membrane keyboard in my kit I replaced by an old Radio +Shack keyboard and cut up the old membrane stuff, which is adhesive, +and made keycaps. The entire matrix can be brought out to a 16 pin +dip connector. Get the 2K kit since the extra ram is very useful on +any program, and get the Book on the insides for 12.50 if you are at +all interested in making a larger system out of it. + +Any other questions send them to MCMANIS@USC-ECLB-IPI + 16 Mar 1981 + + + +Node: Sorcerer, Previous: Sinclair ZX80, Up: Top, Next: Superbrain + + Exidy Sorcerer I and II + +Users: SAM@MIT-AI, TANG@MIT-AI, INFO-EXIDY@MIT-MC +Manufacturer: Exidy +Target Users: [SAM: The system requres about the same expertise as the + popular consumer computers. Sorcerer owners tend to believe + they have a better growth potential. Frustration is minimized + by a highly reliable cassette interface,and the high quality + video and keyboard] [TANG: Expertise needed to use - novice. + Expertise needed to expand unit - S-100 experience. The basic + unit is designed for the Hobbyist, ala TRS-80. The expanded + unit is designed for Business, i.e. S-100] +Prices: Since the machines future is so uncertain prices are + fluctuating. The Standard Basic with 16K ram is about $1000. + [SAM: I have seen "liquidation" sales offering the (I) for + under $400 with 8k. I recall the list price of the (I) being + $895 with 8k and the S-100 unit being $350 but I bought mine a + while ago]. + You'll also need a TV monitor for about $200 and a cassette + player (say Sony TCT-757) for about $70. +Bus: This machine is self contained and as such has only expansion + "buses". One type is for adding additional Rom cartridges, the + other is for adding an S-100 adapter. +CPU: Z-80 at 2.16 Mhz +Memory: Model I Sorcerers can have 8-32K of RAM and 16K of ROM. + Model II Sorcerers can have 16-48K of RAM but only 8K of ROM. + The Sorcerer has a feature of the Rom Pacs - user can insert + 4-8K of ROM, allowing easy switching between Basic, Word + Processor and Assembler. All three ROM Pacs are 8K. None of + them interfaces with Disk. +Display: 64x30 video display which includes upper and lower case with + descenders. A high quality video monitor is required (on the + order of a Sanyo VM3209). A cable for a monitor is provided. + The display has a character set of 256, 128 of which are in + ROM, and this includes a complete ASCII set, and the other 128 + are in RAM (programmable). So you can whip up APL and Kata + kana fonts for your favority special applications, as well as + little men and women for your games. On powerup, the monitor + loads this with an extensive graphics set. The character cell + is 8x8. So 128 characters is 1K. There is 2K of memory for + the screen. Both are memory mapped. There is no bank + switching hardware in the machine for any of the contained + memory. +Keyboard: A high quality full size keyboard with a numeric pad. The + keyboard is encoded by software scanning. +I/O Ports: It comes with a serial RS-232 port, a parallel port. +Peripherals: The S-100 expansion box ($300) gives you six S-100 slots + to do with as you wish. +Mass Storage: A 300/1200 baud cassette interface (which shares the + serial port) is included and a cable is provided for a + cassette player. Exidy also supplies a Video/Disk unit which + is a video monitor combined with dual Micropolis drives ($2000 + with CP/M). Vista makes an add-on floppy unit ($1000) that + will plug directly into the bus, or (a different model) into + the s-100 bus. +Operating System: You get a 4K monitor in ROM. + If you buy the dual drives, you get CP/M *note CP/M: CP/M. +Software: An 8K Microsoft Basic in a ROM cartridge is included in the + price. There is a Word Processor Rom Pac for $200, a Z-80 + Assembler/Editor pac for $100. Also there is a cartridge for + user supplied eproms (2716 type). Contact INFO-EXIDY@MC for + more details. + +Comments: + +Unit gets very hot. + +80% of all Sorcerers are sold overseas. Probably because it makes a +very good alternative to the TRS-80 (and Radio Shack has very few +stores overseas). Australians in particular own Sorcerers. + +The computer makes a good terminal, by the way, and there are several +good terminal emulation programs written for it. + +You can't use DMA boards with the S-100 interface. + +The best cassette recorder for the sorcerer seems to be the Sony +TCT-757 (or whatever the cheapest Sony recorder is named). + + TANG@MIT-AI 01/09/81 + + +The machine was ahead of its time when it was introduced three years +ago. My personal bias is that it was poorly marketed. I would have +liked to see hardware keyboard encoding, and a 24x80 screen format. +The supplied software (Monitor Rom) is workable but could stand much +improvement. The hardware itself tends to be reliable. + +Caution: Exidy's future plans are uncertain and the machine may be +discontinued!! + +The documentation supplied is reasonable and one would probably want +to purchase the technical manual (schematics) and the software +technical manual (Monitor Source) + + SAM@MIT-AI, 01/10/81 + +Node: Superbrain, Previous: Sorcerer, Up: Top, Next: Sym-1 + +Users: PLK@MIT-MC +Manufacturer: Intertec Data Systems, 2300 Broad River Road, + Columbia, SC 29210. Telephone: (803) 798-9100. +System Type: Video, keyboard, CPU board and drives all in one unit. +Price: The basic configuration is $2500 +Bus: The bus is of their own design, needless to say it provides + all the Z80 stuff (A0- D0-D7, BUSACK, K, BUSRQ, RD, WR etc.). + You can get an S-100 bus adaptor for about $300 extra. +CPU: Z80, 4 Mhz +Memory: 32K RAM in basic system, can go up to 64K (about $50 do it + yourself) +Display: 80x24 video display. Absolute cursor addressing, 4-way + cursor motion, home, clear to end of line, clear to end of + screen. No lower-case descenders. Very crisp, clean video. +Keyboard: separate numeric keypad, 4-way cursor motion keys. +I/O Ports: 2 RS232C ports (to 9600 baud) come with the unit. A + parallel printer port is available for about $100 extra. +Mass Storage: Comes with dual double density 5" floppies with 320K + capacity, controlled by a separate Z80. + Intertec has just announced a hard disk (10 M) system which + uses the Z80 bus (approx $2500). +Operating System: CP/M 2.2 *note CP/M: CP/M. Thus all the software + that runs under CP/M is available commercially from Lifeboat, + etc. Users' group (CPMUG and SIG/M) software is also + available, however, the non-standard disk size and file size + (512) means modem file transfer will likely be necessary + unless you can make contact with other Superbrain users. + There is a variant operating system called SUPER-IOS available + from Systems Integration, 1623 Third Ave., NY, NY 10028, (212) + 831-5229 for $175. It is CP/M compatible, apparently designed + specifically for the Superbrain, and has many nice feature + (according to their literature). +Users group: SuperBrain Users Group, 420 French Court, + Menlo Park, CA, 94025. + There is also a newsletter: Supperletter, P.O. Box 3121, + Beverly Hills, CA 90212. + +Comments: + +Misfeatures: +1) There's no documentation on hardware, port addresses, screen +location in RAM, software baud rate setting, software reversing of +video, etc +2) Generation of ctrl-W impossible even with direct keyboard input +routine (06) in BIOS. This undocumented misfeature has the following +effect: ctrl-@ is displayed and video (not printer) is turned off when +carriage return is entered. Repeating the operation, i.e. ctrl-W +followed by carriage return, turns on the display again. This probably +has to do with entering passwords etc. Since I wanted to use MINCE +(Mark of the Unicorn), a variant of EMACS for CP/M, I needed ctrl-W to +write a file etc. The misfeature was eliminated in my 64K BIOS by +replacing the code at E517H to E51BH by NOPs. +3) Very little help from manufacturer. + +Getting this machine to do anything unusual has been an adventure. For +$50 one can get hardware information which consists of a set of +circuit diagrams. Using the assembly language version of the portion +of the BIOS provided and the CPU circuit diagram one can figure out +how it all works, but what a chore. For instance, one has to search +through the BIOS to find out how the baud rates are set and what the +addresses of the RS232C ports are. After these are found then one can +write a terminal emulator (eg. VT52). To attach a parallel printer we +had to build our own interface as the manufacturer was way behind the +date he promised for delivery in his advertising. Reverse video and +other goodies can only be done by looking at the circuit diagram and +understanding how various chips function. If one wants an education in +micro hardware then here is an oportunity. Speaking to a "tech" +person a Intertec got me nowhere. For example, he told me the ctrl-W +misfeature bothered others but had no suggestions for solving the +problem. He did say that they were planning to produce a technical +manual sometime during the Spring of 81. + +I have heard from several people that there have been disk reliablity +problems. So far, I have had none. + + PLK@MIT-MC, 02/09/81 + +Node: Sym-1, Previous: Superbrain, Up: Top, Next: SWTP 680X + +Users: GNU@AI is building a chord keyboard (IEEE Computer, December + 78) using one. +Manufacturer: Synertek Systems Corp, 150 S. Wolfe Rd, Sunnyvale CA 94086 + (408) 988-5600. Stocked at many computer stores. +Type of System: Single-card. +Target users: Hacker, Student. Good for prototyping or one-shot + deals. Makes a good flexible controller. +Price: About $250 gets you the base system, which has sockets for the + extras. +Bus: KIM/SYM/AIM bus. +CPU: 6502, 1 Mhz clock. +Memory: 1K static RAM, with sockets and decoding for 4K (2114's) 128 + bytes of RAM in a SY6532, used by the monitor. 4K ROM with + monitor, sockets for 3 other ROM/PROM/EPROMs; you can replace + the monitor or any of the others with a 2716, 2316, 2332, or + 2364, up to a total of 24K E/P/ROMs onboard. You can also + select which of the 4 sockets gets ghosted to high memory at + power-on. +Display: 6-character 7-segment LED, plus power and audio LED's. Comes + with an RS-232 port, and the monitor is designed to use it. + Also has a current-loop interface, ditto. It does autospeed + (up to 4800 baud) for the RS232 port. + You can also attach an oscilloscope to a particular output pin + and using supplied hardware and software (listing), display up + to 32 characters on it. The driver routine outputs a sync + pulse and the characters in 5x7 dot matrix form every 50 ms + while doing keyboard input. This was for the electronix type + who had the scope but was stuck with the LED display. + The monitor makes good use of the 7 segments and associated + "decimal point" spots for hex and some letters -- much better + than the KIM did. You drive it in ASCII, the monitor + converts. Note that since the display is scanned in software, + it is blank while a program is running (tho a monitor entry is + provided that will scan it once; if this is called about 50 + times a second, it looks fine.) +Keyboard: 28-key solid-state flat keyboard, including the hex digits, + Reset, Debug On/Off (NMI after each instruction except in + monitor), CR, +, -, left and right arrows, Shift. The rest of + the keys, and the shifts of the hex keys, are shorthand for + the monitor's command set. Included is an ASCII key which + accepts 2 hex digits and presents the corresponding byte. The + monitor and programs deal with the keyboard in ASCII, the + monitor does the translation. There's a beeper which beeps + when a keypress has been read. The keyboard is scanned in + software (except Reset, Debug On/Off) and can be redefined by + software. A monitor routine is provided to tell if any key is + currently being pressed (BREAK is used on an RS232 or current + loop device). Pressing a key doesn't generate an interrupt, + so you have to scan if you're interested. When a terminal is + in use, it ignores the onboard keypad (exc. R, d n/f). +I/O ports: Comes with 2 SY6522's and a 6532, with all ports brought + out to one (or more) of the four edge connectors. A socket + and edge connections for a third 6522 is provided. The 6522 + VIA contains two standard 8-bit bidirectional parallel ports, + with control by bit. Each parallel port also has 2 control + lines for handshaking. The 6522 also has two powerful interval + timers and an 8-bit shift register, which can be intertwined + in a bewildering variety of ways, and can control or be + controlled by a subset of the parallel ports and control + lines. + The 6532 has 16 bits of PIO, an 8-bit timer, and 128 bytes of + RAM, which is used by the monitor for its variables, display + buffer, etc. Four of the PIO lines are buffered by circuits + which are designed to be customizable. Eight of the lines on + each chip can directly drive transistors (3ma @ 1.5v). + Note that there are no U/S/ARTs. Serial I/O is done on the + PIO ports in software. The shift register and timers in the + 6522's make it not a hard job; the monitor does it all "by + hand" though, with delay loops. This is probably the only + drawback of the board for my application, which wants to sit + between a terminal and a modem. +Mass Storage: KIM format and high speed cassette interfaces are + provided in the monitor for loading and dumping memory. + On/Off remote control is also supplied and used by the + monitor. I suspect most people download over the RS232 if + they're doing serious work. I will, from an Apple or Amdahl. +Peripherals: Micro Technology Unlimited has a motherboard/card file, + 16K RAM card, Visible Memory grafix card, and 8-bit DAC card. + They also supply software for a Music System using one or + several of the DAC boards. Any hardware you can attach to a + KIM will work. Anything you attach to an AIM will probably + work, but I'm not sure if AIM conforms exactly to the KIM + standard bus. +Operating System: Excellent; provides ASCII support so that the rest + of the software doesn't know if it's running with a terminal + or with the onboard display and keypad. A good cheap + debugging monitor, with about the power of the Apple's but + without the bugs (and, unfortunately, without the + mini-assembler and disassembler). Will read paper tape + format, and read/write Kim (8 bytes/sec) and high-speed (185 + bytes/sec) cassettes. Monitor I/O is vectored via that 128 + byte RAM so you can plug in your own routine, and there is a + command for executing "macros" by reading sequentially from + memory til it sees a hex 00. All unrecognized commands are + vectored, so you can write your own. Errors are reported with + the hex value of the char in error, or a few other values for + cassette checksum errors, etc. The monitor does not use any + interrupts except the Debug (NMI after each non-monitor + instruction). All interrupts are vectored, again thru System + RAM (in the 6532). A full source listing of the monitor is + provided, as well as flowcharts and descriptions of the System + RAM and various tricky routines. +Languages: A ROM assembler and a ROM Basic are available. Forth, + monitor and Basic extensions, Tiny Basic, and a 2K assembler + are available on cassette. +Users Group: Sym-1 Users Group, PO Box 315, Chico, CA 95927. + Telephone (916) 895-8751. + They distribute the Sym-Physis newsletter quarterly at + $10/yr. They also provide mail order access to the various + products mentioned above, books, and others. +Application programs: Moser's Sym Word Processor, various games and + demo programs, plotting programs, and an EPROM programmer + control program. + +Comments: + +A good machine for a controller. That seems to be mostly what it was +designed for. Lots of I/O, reasonable terminal support, ROM and RAM +space, and everything brought out to an edge connector. It requires ++5V @ 1.5a. I bought mine secondhand for $150 including all 4K RAM, +and also including a nice plastic case with velcroed cover. The power +supply fits in the case so it's all nice and neat. + +By the time you're done debugging on it, you'll know a good part of +the 6502 opcodes in hex. Oh well. + +GNU 5Mar81 + +Node: SWTP 680X, Previous: Sym-1, Up: Top, Next: TRS80 I + +Users: Sproul@RUTGERS: + Mark Sproul, 1368 Noah Rd., North Brunswick, NJ 08902 + (201) 246-3749 +Manufacturer: Southwest Technical Products Corp. +Target user:The FLEX operating system has a very nice user interface + for the novice and any reasonable assembler programmer can + hack on it with very little effort. The hardware is very + simple to upgrade. Special purpose hardware is very easy to + build since the bus control signals are very easy (compared to + the S-100 bus). +Price: A bare minimum system is $595 assembled and tested, $495 kit. + This includes a chasis, mother board, CPU, 8K static memory + and one RS-232 port, expandable to a second. +Bus: SS-50 (originally developed by Southwest Tech Corp). This is + a very popular standardized bus second only to the S-100 bus. +CPU: 6800/6809. All discussion is geared towards a 6809 system, + since anyone buying new equipment would want 6809. The 6800 + is not supported by SWTP since you can get the 6809 now for + the same price. (Most other companies still support the 6800 + though, and SWTP still supports the old stuff already sold). +Memory: 8K is included. +Display/Keyboard: You supply your own terminal. +I/O Ports: One RS-232 port is provided (for the terminal). You can + expand to two. +Mass Storage: $200 for the minifloppy controller plus 5" drives. This + is sold for about $1200 including cabinet, power supply and + two 5" drives. + $2495 for dual double sided double density 8" floppies with a + very good DMA type controller that uses a 1791 disk controller + chip. Currently available for $4395 is a 14" Winchester disk + with its own 6809 on the controller board. Capacity is 16 Meg. +Peripherals etc: There is all the typically required hardware + available for the 6800/6809 SS-50 bus, including: + + Full function modem - $395.00 from Thomas Instrumentation + (designed by me) which includes all the necessary software for + file transfer. + + Graphics - 256*256 and 512*512 graphics boards. + + Memory - all types of memory avalaible, both static and + dynamic and one 256K using new 64K chips. + + Misc I/O - All types of serial I/O, parellel, clocks, A/D, + D/A, AC power control, TV digitizer, etc. + +Operating System: FLEX by Technical Systems Consultants (TSC) is the + standard disk operating system to run on 6800 or 6809. It + requires 24K of memory (8K for the system, 16K for user) - it + can run with less, but you can't do much. It is very easy to + use for a new user and very nice for a system hacker. It + costs $90. + UniFLEX (Unix + FLEX) is a Unix type operating system for up + to 16 users on a 6809 system. It requires 90K memory, + supports interuser mail, forks, background jobs and a lot of + other neat stuff. I plan to have UniFLEX up and running + sometime in the next year. +Languages: Several different levels of Basic are available and the + TSC has what they claim (which I believe) fastest Basic for + the 6809. UCSD pascal is available and a company in the + Netherlands has a nice Pascal that I just started using. + There are two different versions of Lisp available, I have one + which is about 4K long and very resonable (from what little I + know about Lisp). The other is larger and from what I have + heard better but I dont know anything about it. +Editors & Text Processors: Several text processors, one modeled after + NROFF on Unix systems which I use and like. There are also + some screen oriented text processors available which I have + not seen. TSC supposidly have some screen editors available + but I have not seen them. I am writing a EMACS/TVEDIT type + editor which I hope to be able to release by the end of the + summer. +Users' groups: There are two (2) magazines JUST for the 680x/SS-50 + users: '68 Micro Journal' and 'SS-50 Computing'. + +Comments: + + I consider the SS-50 6800 or 6809 system running FLEX (or +UniFLEX) is a very good system for the beginner and the advanced +user. There is no problem with compatibility (I have not come across +any in the 4 years a have been using it). I highly recomend it to +anyone wanting to buy a microcomputer system. + +All of the manufacturers of SS-50 equipment and software houses are +very cooperative. This was fantastically demonstrated at the 1980 +Personal Computing Confrence (PCC) in Philidelphia August 1980 where +there was a large corner of the exhibition floor reserved for just +6800/6809/SS-50 hardware/software vendors. + + Sproul@RUTGERS, Dec. 11, 1980 + +Node: TRS80 I, Previous: SWTP 680X, Up: Top, Next: TRS80 II + + TRS-80 Model I + +Users: PLK@MC, MEADER@AI, JMTURN@AI, INFO-TRS80@MC +Manufacturer: Tandy Corp. / Radio Shack +Type: Distributed,SingleCard +Expertise required: The answer to this from the point of view of + software is easy. The Basic interpreter can be used by an 8 or + 9 year old. [And it really should only be used by that group. + It is VERY slow (something like 1/3 the speed of an Apple) and + you really have to move up to disk before some of the more + useful BASIC features are available (multiple machine language + calls, hex and octal notation, and some nice string stuff). + The Level I is a write-off for anyone >7 -- JMTURN] + Assembly language programming merely requires knowledge of the + Z80 instruction set and mapping of the video, + keyboard, disk FCB, etc. [If you plan to do any serious + machine hacking, you should get one of the listings of the + ROM that are available. They're a real timesaver. -- JMTURN] + What has not been provided by the manufacturer is available by + purchasing books written expressly for the TRS80 on these + subjects. Hardware expertise is another question. If one is + interested in programming, simple modem access to large + machines (such as MIT-MC), and text processing then at most + you only need to use a screwdriver. Sophisticated non-standard + interfaces in a laboratory or industrial environment requires + lots more work than, for example, using HP micros or a MINC; + on the other hand, if one has the time ability and fortitude, + the price is right. To my knowledge no commercial hardware is + available for auto-dial re-dial operation that one wants for + PCNET except by going to the S-100 bus with the DCHayes modem. +For: Consumer, Small Business +Prices: $499 Level I Basic 4K RAM + $849 Level II Basic 16K RAM + 10 to 15% Discounts available +Bus: TRS-80 Expansion Bus 40 pin +CPU: Z-80,1.78 Mhz [Hackable to 3.75] +Memory: 4K or 12K ROM Basic + 4K or 16K RAM expandable to 48K total with expansion interface + ($300-$600 depending on amount of RAM included) + [If you buy your memory from RS, they will charge about $100 + per 16k (they use 4116, 200ns). These can be bought for around + $30 per 16k elsewhere. Note - Warranty -- JMTURN] +Display: VideoMonitor included, 16x64, Memory mapped. Black & White. + Uppercase only, lowercase mod available (for about $59, or $2 + if you do it yourself Note - Warranty) + Graphics 128 horizontal x 48 vertical +Keyboard: 53 Key, scanned matrix. 12-key keypad with 16K Level II. + Keyboard is missing full set of control keys available on a + good terminal. These must be made-up (e.g. clear = escape) +I/O port: Cassette interface standard, with the expansion interface + you get a printer port, parallel output, dual cassette. RS-232 + card available ($99). One can also connect an RS-232 + interface directly to the keyboard, w/o the expansion + interface. This requires some minor soldering and installation + of a switch. (Note - Warranty) Estimated time 1/2 hour. +Mass Storage: Cassette recorder included. Disk drives (up to four + 5" single density) $300 each 40 track (expansion interface + needed). +Add-ons: As with software, a second source hardware market is fully + developed for the Model I. There is interfacing for a wide + variety of printers ($219-$1960), double density disk + controller modification,allowing 350 Kbytes on one 5" drive, + RS232C interface directly coupled to keyboard (avoids + expansion interface), remapper to put RAM at 0000H, speedup to + 4 MHz, Voice ($400) and music ($170) synthesizers, modems + ($200), wide variety of 5" and 8" drives compatable with + Western Digital controller chip, inexpensive add-on memory + that is easy to install, a S-100 bus interface, a IEEE-488 bus + interface and more. +OpSys: System comes with ROM Basic. TRSDOS comes with Radio Shack + disk drives. + NEWDOS ($135) is a debugged and expanded version of TRSDOS + from Apparat Inc. It comes with utilities including EDTASM, an + editor/Z80 Assembler, and a Disk sector editor/patcher. Both + TRSDOS and NEWDOS come with BASIC. Applications programs will + generally run on both operating systems. + Also CP/M is available, modified to run above the ROM (4200H) + for about $130. And if one is willing to pay for the extra + hardware, normal CP/M can also be run. (*Note CP/M: CP/M.) +Languages: BASIC, Tiny PASCAL + for DOS: Compiled BASIC, FORTRAN, COBOL, Forth, all in the + $100-$300 range +Machine language: EDTASM Assembler/debugger. TBUG monitor/debugger. + for DOS: There are several assemblers, disassemblers and + debuggers (including one with TRSDOS) available. E.g. + Microsoft's M80 is available under TRSDOS (it comes + with Fortran) +Text Processing: Scripsit. For DOS: Electric Pencil. +Communications software: TERM, Mailgram. Fairly sophisticated + terminal programs are available (ie emulate a VT50 and do file + transfer, etc.) +Applications software: In general, a second-source software market + for the TRS80 has developed which is comparable only to that + for the Apple II and CP/M systems. +Users' groups: Many. Also magazines, etc. 80 Microcomputing is a 250 + page monthly devoted to the TRS-80 + +comments: + +Beware of Radio Shack software! Most independent stuff is better. + -- MEADER@AI + +There's no way to use any of Z80's interrupt modes -- GZ@MIT-MC + +From Paul Kelley (PLK at MC): + +Model I is apparently no longer in production but at this date +(12/29/80) many dealers still have a good stock. Approximately 300K +Model I units have been sold and used systems should be readily +obtainable. Substantial discounts are available and prospective +purchasers of new machines should carefully scrutinize advertisements +in 80 Microcomputing, BYTE etc. + +The bad news is as follows: + * Unreliability due to connector oxidation. + * Unreliability due to poor EMI shielding and sensitivity to power + line surges. (very environment dependent, this is one + important reason why there is such a wide + satisfaction-dissatisfaction range among TRS80 users). + * Poor circuit layout and termination. + * A poor video monitor on the Model I. Try to buy a Leedex monitor + ($109) or interface a TV (use an opto-isolator circuit). + * Cassette storage can be trouble; Tandy fixed most of the early + problems but cassette I/O is still a slow, painful, unreliable + process on the Model I. + + +(JMTURN -- +Warranty: + Tandy gets REALLY nervous if you open up the machine. +In fact, it voids your warranty. Worse, they won't repair it +even if you pay them... So you have a choice between taking +your chances with your skills, or paying RS's outrageous prices. +On the other hand, there are several computer stores in the +area that service TRS-80s now.) + + My general opinion is that this is a good entry level machine, +particularly if you can find a used system. Consider the PMC-80, a +Model I equivalent from the Far East. + +Node: TRS80 II, Previous: TRS80 I, Up: Top, Next: TRS80 Color + + TRS-80 Model II + +Users: INFO-TRS80@MIT-MC +Manufacturer: Tandy/ Radio Shack +General: The entire machine is sturdy, well built, and seems to have + been designed by someone with experience. In spite of two of + ours having been dropped in shipping, both worked fine (once + we had replaced some connectors which had bounced off). + The whole thing comes in a single box. +Target Users: An excellent machine for an office or business + environment. Not for a hardware hacker (or a system level + software hacker, unless he likes getting his reference manual + in the form of a schematic!). But I recommend them freely to + customers who wish to COMPUTERISE their business. +Price: About $3500 from independent distributors for the basic + package including RS's operating system. +Bus: The TRS-80 bus. +CPU: Z80 +Memory: Memory comes with 32 or 64K, with three slots on the backplane + available for later boards. Rumor is mapped memory boards to + 256K, and a multiport serial card for multiterminal support. +Display: 80x24 clear bright display +Keyboard: reasonably good quality keyboard (unlike the Model I), but + RS has (for reasons unknown) omitted several keys, including + line-feed, rubout, break. These can be faked in, but it is + unfortunate that one has to. +I/O Ports: Two serial ports at up to 9600 baud, and a Centronics + printer port. +Mass Storage: The main unit comes with a good quality Shugart double + density disk. A little noisy but fast and reliable. Extra + disks are available up to a total of four. The expansion + drive sold by RS is a CDC drive of inferior quality. VISTA + sells the same expansion unit at a better price with a better + drive. +Operating System: TRSDOS. Several people sell CP/M for the Model II + *note CP/M: CP/M. I much prefer it to the TRSDOS from RS. My + recommendation is for Pickles and Trout CP/M over any of the + others, especially Lifeboat. + +Comments: + +This is a surprisingly nice computer from Radio Shack, in which they +corrected many of the mistakes they made on the model I. + +You get local RS service in most cities. + +Those neat new cards to plug into the backplane don't exist yet. Nor +is there the availability of 'oddball' cards for laboratory and +science applications (i.e. D/A, A/D, power control, etc.) + +The first few machines had a bad bug in the disk controller card. +Worked fine until you plugged in the disk expansion unit. Then you +got intermittent loss of files on BOTH drives. + + MKNOX@UTEXAS-11, Feb. 11,1981 + + +Node: TRS80 Color, Previous: TRS80 II, Up: Top, Next: HomeBrew + + TRS-80 Color Computer + +Users: INFO-TRS80@MIT-MC +Manufacturer: Tandy / Radio Shack +Target users: Right now, it is a fun toy with promise. Also not a + bad way to add an intelligent COLOR display to your + existing system (the machine can be driven at high speed + through the GAME port). But I would NOT purchase one for + serious computing, nor want to use one for a terminal. +Price: $350 to $400. +CPU: MC6809E +Memory: 4K RAM initially (4K by 1 dynamic) +Bus: The entire system bus is brought out to an edge-card connector + for Game-ROM insertion.. Pop the game rom and you can insert + instead an expansion interface, with more memory, floppies... +Display: 6847 color CRTCC. Display is 64 characters by 16 lines, upper + case only. Lower case is displayed as the upper case + character in reverse video. + Color resolution up to 192x256 (but down to + forground/background color only at that point). +I/O Ports: There are two 6821 PIA's inside (one for the keyboard, one + for everything else, including playing software UART for the + RS-232C) +Keyboard: The keyboard is cheap, but better than it looks. Another + keyboard could easily be inserted instead, as the keyboard + cover and the case are two separate pieces. +Mass Storage: Cassette. No floppy disk drives, although RS says + they are on their way. +Other peripherals: Joysticks +Operating System: "Level I" Basic. The current small BASIC is + adequate but limited. It has been extended to allow + high-level control of most of the features of the system + (Joysticks, color, built-in speaker, etc.). +Software: Very little. Most of the games out for it are of poor + quality. And there is as yet no real OS; no assemblers or + compilers, etc. Provisions are made in the BASIC for running + 6809 machine code, but little info is provided on this from + RS. Most notably missing are ROM entry points and addresses of + the peripheral chips. + +Comments: + +This is the color replacement for the Model I (they hope). + +The machine is well built, and RFI/TVI shielding is excellent. + +The system has been designed to be minimum cost (for example, no +ACIA for the serial port, just a parallel port and fast software +footwork). However, that is not unreasonable and everything seems +to work. We got one and immediately opened it up; popped the 4K +RAM and stuck in 4166's for 16K, no problem. + + MKNOX@UTEXAS-11, Feb. 11,1981 + + +Node: HomeBrew, Previous: TRS80 Color, Up: Top, Next: Homebrew-A + +This node contains descriptions of various home-brew or otherwise +untypical system, as well as anything else which doesn't fit anywhere +else. + +* Menu: + +* A: HomeBrew-A, a general discussion of building/buying an S-100 + system. By LS.BARRY@MIT-EECS [BADOB@MIT-AI]. + +* B: HomeBrew-B, a homebrew CPD1802 (RCA's COSMAC), similar to the + RCA Microboard system. By AEZ@AI. + +* C: HomeBrew-C, an S-100 based system, Xitan mainframe. + By PLATTS@WHARTON-10. + + +Node: HomeBrew-A, Previous: HomeBrew, Up: HomeBrew, Next: HomeBrew-B + +From: LS.BARRY@MIT-EECS (Barry A. Dobyns, BADOB@MIT-AI), Dec. 14, 1980 + + S-100 & other addictive habits + +I have s-100/z80 frobs & can safely say that nothing is the same +anymore (ever). + +Cromemco is a very good board (I have one). It is NOT IEEE-696 +compatible (the cromemco ZPU, not the SBC). The CCS (California +Computer Systems) is also a very good board, and is IEEE-compatible. +The SSM (solid state music) is about the same as the CCS, but is +harder to build correctly (they offer too many options for the S-100 +tyro to figure out) if you come unacquainted with S-100. The SDS is an +OK board, as is the Ithaca Intersystems. the Delta board has some +idiosyncracies best left alone, but otherwise is ok. + +You should look for a board that actually has minimum features, (in my +opinion) as features introduce opportunity for idiosyncracies. The 1K +rom space may be a selling point, but you will probably never use it +(you will get a prom-burner board with space for 8K,16K, or 32K. If +you want proms, you'll need to burn 'em too) and if you can't disable +it, woe betide to you. Or, almost as bad (the Delta is one of these), +you can disable it, but not with a switch, only with software. This +means that you have to hack otherwise normal software; i.e. if you +bought a Morrow floppy controller, and a Delta CPU, the Morrow drivers +have to be modified before you can ever use it. One of the advantages +of the Morrow board is that it can work with nearly any cpu/memory +configuration imaginable, with no modification. The same applies for +serial ports whose addresses are not changable (what happens when the +serial port goes from E0h to E2h and the disk controller goes from E0h +to EFh, and you can't readdress either one???) and other frobs. If +you can't find out these sort of details beforehand, then forego the +'feature'. Addressing beyond 64K is a mess in the S-100 world. There +are at least 3 non IEEE-696 bank select 'standards' none of which are +compatible. If it's not IEEE-compatible don't even bother with it. +Cromemco ZPU does not have extended addressing circuitry on the cpu +card, it puts it on the memory card(s). + +Boxes are not all created equal. The major differences are in the +quality of the motherboard. Shielding (preferred) eliminates +crosstalk, termination (active preferred) cuts down in ringing (the +SSM motherboard, a single sided, unshielded unterminated job is +excessively noisy), the heftiness of the power suply (hefty is, +needless to say, better; you never know how many high-current frobs +you will eventually stick in the box, and 22 slots is a lot of space +for frobs). Some of us still go for front panels (Ithaca Intersystems +is the only one who still make one) since one can do a lot of hardware +debugging from one, and the lights are reassuring when you have +noticed that the compile has been going on for an hour now and you are +worried that the system has hung up on you. If your box has a line +filter, that's good. Elevators and washing machines can gronk your +computer (sometimes, only if the phase of the moon is in agreement +with your computer's astrological sign, and the task you are running +is very critical and non-trivial to reproduce) but good. CCS and +Integrand make passable (and $cheap$) boxes. Godbout makes an +excellent (and $expensive$) box. If you can find an old IMSAI box, and +put a Godbout motherboard in it, you will have (in my humble opinion) +a superior box. This is what one of mine is, the other is an +Integrand. + +S-100 frobs from one company do not always work with those from +another. I have made more than a few $$ by 'integrating' systems. +(i.e. making incompatible frobs foo with each other). Be careful that +all the boards are known to work with each other. (I could produce a +list of what i know works with what. Such a list, if added to by +others, so as to fill it out, would be invaluable). + +Boards are not always equivalent, altho appearances may make it seem +otherwise. The Morrow Switchboard and the SSM I/O-4 appear roughly +equivalent (in the I/O department) but the SSM is fully programmable +(i.e. baud rates and other such frobs are settable under software +control) while the Morrow is not. If you have a number of devices that +you rotate about (two printers, a modem, two terminals, and another +computer (like me)) then programmable baud rates might make life +easier (I, on the other hand, have to pull my IMSAI box out of the +rack, and reach into its bowels with a ball point pen to get to the +switches on the switchboard every time i move any peripherals around, +since i'm too cheap to buy another I/O board). + +If you want a system that will be running by the end of the year, and +you are new to S-100, you might think about having a store 'integrate' +a system for you. Or buy an 'integrated' S-100 system (a Cromemco +System 3 or Z2-D, or a North Star Horizon). + +Most manufacturers have quit shipping kits (Cromemco and North Star +have, Ithaca Intersystems will soon, if not already) since +kit-builders are not cost-effective -- they require too much technical +support and generate too little profit. Stores also shy away from +kits for the same reasons. Sales-persons often 'play stupid' so they +can spend their time selling systems (an activity that generates +revenues) rather than supporting old sales. You can reasonably expect +to get 15-30minutes of support for every $100 you spend. After that, +the seller is losing money on you (time is money, an hour spent on you +may mean a $10,000 sale that they lost) even if only the employee's +salary is in question. If you get more support, you are gettng a good +deal. + +Buy locally if you can. it makes life easier when you have problems. +Besides, it's always cheaper in the long run to have someone to go to +when things fail; saving on sales tax may be nice, but you will lose +big if it doesn't work. + +Join the CP/M Users Group. + +Subscribe to S-100 Microsystems (a magazine). + +Have fun!! + +My own systems are actually as follows: + +#1: 4MHZ, Z-80, 64K, CP/M 2.2 +--- ------------------------- + IMSAI 8080 Mainframe w/30A power supply + and Godbout actively terminated motherboard. + Cromemco ZPU (2 or 4MHZ) + Central Data 64K Memory board + Tarbell Double Density Disk Controller (REV E) + Morrow Switchboard + Processor Tech 3P+S + Dual Shugart SA801s in custom box + +notes: The Tarbell is flaky booting at 4MHz, but this is supposed + to be a problem that has been worked out by now. Lifeboat + has a really nice version of CP/M 2.2 for the Tarbell that + gets 600K on a side of a diskette. The Tarbell is VERY + fast, and because of this, this is my favorite system. The + Switchboard RS-232 drivers are not designed quite right, + and this leads to some very serious problems when + connecting the Morrow to a modem. I use the 3P+S for a + modem because of this. + +#2 4MHz, Z-80, 48K, CP/M 1.4 +--- ------------------------- + + Custom box with SSM Motherboard and SSM terminator card, + SUNNY INT'L 30A power supply. + Ithaca Intersystems Z-80 CPU (rev 1.3) + Ithaca Intersystems Front Panel. + (3) Cromemco 16KZ 16K dynamic memory cards. + Morrow Discus 2D double density disk controller + Processor Tech 3P+S + Dual SHUGART SA801 in custom box. + +notes: The Morrow is provided with some awfully silly bios drivers + that it much slower than it should ever need to be. The + 2.2 is so slow that I use 1.4 and the FAST program from + CPMUG #38, and it is almost as fast as the Tarbell, if + somewhat annoying. The 1.4 will not automatically + determine density, but 2.2 will. Neither will let you boot + the system from a single density disk. The Morrow + controller has RAM, ROM, and a serial port on it. It has + memory mapped I/O, which I think is silly. (I have had to + modify countless programs because of this). It will also + not let you have a system bigger than 56K (as delivered + standard. You can order a special one (for about $70.00 + more) that will let you have a 62K system.). The Morrow has + worked with every memory board and CPU board that I have + ever tried with it. That is a lot more than I can say for + the Tarbell. + +#3 Random Spares +--- ------------- + IMSAI CPU + IMSAI 4K Static RAM + (4) SSM 8K Static RAM (2102 type) + (3) MITS 4K Dynamic RAM + ZOBEX Systems 64K Dynamic RAM (a good board, better than + the CD) + Polymorphics VTI rev 0.1 + Polymorphics VTI rev 1.2 + Polymorphics CPU (8080) + SSM CB1 (8080 CPU) + Cromemco 8K Bytesaver I (an excellent 2708 burner/holder) + Cromemco 32K Bytesaver III (an excellent 2516 + burner/holder) + Cromemco 4FDC floppy controller (excellent, if overpriced) + Cromemco D+7A D/A, A/D interface + Crememco 8PIO 8 paralell port board + Cromemco PRI Centronice paralell printer card + Ithaca Intersystems Video Board + SSM 8K/16K Rom board (2708) + (2) Wangco 82 minifloppies. + +#4 Peripherals +--- ----------- + Teletype ASR 33 + Integral Data Systems IDS 125 + Anderson Jacobsen 841 + DEC PDP 8I (i consider it a peripheral) + Perkin Elmer Fox 1100 (My baby. Now out of production, but + my favorite terminal of all time. This terminal has lots + of good humanoid engineering in it, and only a few flaws. + I like it better than VT100s or H19s even tho the latter + have more functions) + (2)DATAPOINT 3360 terminals (cheap & ugly & atrocious) + (1.5)Tektronix 4001 Graphics terminals with 4601 printers + (2)Cat Novation modems + +#5 The Ideal system (gleaned from my and my friends' experience) +-- ------------------------------------------------------------- + Ithaca Intersystems Mainframe (for front panel) + SD Systems CPU or Godbout 8085/8088 CPU (nice!!) + SD ddensity controller (Versafloppy II) + SD 64K Expandoram II + SSM I/O-4 or Morrow Switchboard + PMMI Modem-103 + Centronics 703 or NEC Spinwriter (or both!!) + Perkin Elmer Fox (if you can find one) or Heath H19 + (2)Per-Sci 299 or (2)Qume Datatrack double sided + VAX-11/750 (oops....not really) + + +Node: HomeBrew-B, Previous: HomeBrew-A, Up: HomeBrew, Next: HomeBrew-C + +From: AEZ@MIT-AI, Feb 10, 1981 + + I have at the present a homebrew CPD1802 (RCA's COSMAC) which +is similar to the RCA Microboard system. The processor is extremely +easy to interface as is very lenient in memory access time and +follows a rigid fetch execute cyle. The internal structure is that +there is sixteen 16 bit general registers, an 8 bit accumulator, two 4 +bit pointers that show which register will be the PC and which will be +the stack and a 1 bit register called Q. The CPU supports one level of +interrupt (actually changes the PC pointer to register #1 and saves +the process's state) and DMA in and out on chip. + The fact that the PC is a general register allows for special +microcode-like subroutines that can take immediate data. An unnestable +subroutine would simply change the PC pointer to a register that +points to the subroutine, to access the immediate data on the old +program flow, the old PC is used just like a stack, returns would just +change PC back to original. I implemented the standard gosub/return +this way (they appear as three bytes for gosub and one byte for return +in the programs). It also possible to implement relative address this +way. Also the copious amount of registers also allows for multiple +stacks or multiple quick subroutines (changing the PC pointer takes +one machine cycle). + The main disadvantage of the 1802 is that all these 16 bit +registers are bottle necked by the 8 bit accumulator. All +math/logical operations can only happen between accumulator and memory +(the stack pointer points to the data or can use immediate mode). +Moving data from register to register or memory (all implied +directions) must involve the accumulator (i.e. get the high byte of +reg. A, put into high byte of reg. B, get low byte of reg. A, put into +low byte of reg. B; two byte transfer= 4 opcodes and data passes +through accumulator). This bottle-necks the computer and wastes a lot +of opcodes (64 opcodes handle reg-acc & acc-reg alone, 255 opcodes +used by computer totally). Another problem is that the CPU is all +CMOS. It's fine on power usage and allows alot of time for memory +access (it thinks it has CMOS memory all the time), but it loses on +speed. The typical 1802 can run 2-3Mhz and the fastest goes 6.4Mhz but +that is equivalent to a 6800 or 6502 running at 1/8 of that clock +speed. + There is some interesting CMOS parts for the 1802 system but +they are limited by being CMOS. For example, the graphics chip used +in the VIP,ELF and their brothers is ok for a $12.00 chip but it can +only access 8 bytes from the computer per video line giving the +maximum resolution of 64X128 dots and the minimum resolution of 64X32 +dots (blocks?). + All in all, the 1802 is a nice processor in the hardware +department for the first time hardware hackers (like myself) but it +lacks some in the software side (RCA believes that software is easier +than hardware), In the power side, the RCA microboards are hard to +beat when a CPU board, 16K of memory takes 23ma total from 5V (battery +backup memory boards can power the entire system for 32 hours or +retain memory alone for 96 hours). + + My homebrew system has 2K RAM, 1K ROM, the crufty video +display (I thought $12.00 was worth the risk), and hex keyboard and +LED's for I/O. Present cost about $130. Near future goal is IBM +Selectric I/O ( I have one at $330), a "real" video display (6.111 +project, no cost projections yet), and some mass storage (I found an +8" disk drive that looks promising), and lots more memory (16 or 32K +dynamic problably). Projected costs will be about $600-$700 depending +on luck and cost trends. + + I hope this will be useful. + Any questions to AEZ at AI. + Adam Zilinskas + +Node: HomeBrew-C, Previous: HomeBrew-B, Up: HomeBrew + +From: PLATTS@WHARTON-10, Dec. 18, 1980 + +I am running an S100 based system, with an old TDL Xitan mainframe -- +an 8-slot S100 motherboard with power supply and miscellaneous +circuitry. It was commercially available circa 1977-1979, and there +are many still around. I have 36K of TDL's Z16 and 16K of Q&T Systems +RAM boards, a Z80 based CPU card (2 mhz), a TDL SMB IO (2K rom, 2K +ram, 3 Serial, 1 Parallel ports), SDS Versafloppy I with two 8" drives +(2 Shugart 800's in a random box with a random power supply). Also a +Processor Technology 3P+S card. My terminal is an H19, assembled by +myself, works perfectly, probably the most cost-effective one on the +market today. Also a Decwriter, and a Pennywhistle modem. + +The operating system is CDL's TPM, as is most system software +(assembler, linker, Basic). I run my own LISP. + +Critical evaluation: + Hardware: one memory board is flakey and should be replaced -- it +does not hold well with time. The 3P+S is very difficult to +understand and adapt to a system. Floppies are reliable. + Software: quite good, the only complaints are (a): lack of a screen +editor, (b) non-standard mnemonics in assembler. Outside of that, the +CDL assembler/linker is the finest I've seen for micros in terms of +flexibility. + + -Steve Platt + (4060 Irving St./Phila PA. 19104 215-222-6432) + + + +Local Modes: +Mode:Text +Auto Fill Mode:1 +Space Indent Flag:1 +Page Delimiter: +Page Flush CRLF:1 + :m.m^R Indent Relative +.º127FS^Rinit +º377.@fs^Rinit +Paragraph Delimiter: +Fill Column:70 +End: diff --git a/src/syseng/cross.38 b/src/syseng/cross.38 new file mode 100755 index 00000000..7ffe2c68 --- /dev/null +++ b/src/syseng/cross.38 @@ -0,0 +1,662 @@ +TITLE CROSS + +F==0 +A=1 +B=2 +C=3 +D=4 +E=5 +LC=6 +PG=7 +R=7 +N=10 +LL=10 +PL=11 +CN=12 +TP=13 +L=14 +L2=15 +PD=16 +P=17 + +TYI==1 +TYO==2 +I==3 +O==4 +ERRC==5 + +BUFL==400 +SYML==4400 + +JCRY=JFCL 6, +JRSTF=JRST 2, + LOC 40 + 0 + JRST CSYM +LOC 100 + +MAIN: JFCL 17,.+1 + MOVSI A,400000 + MOVNI B,6 +LOOP: ILDB C,P + XCT DTAB(C) + JUMPE B,LOOP + MOVEI B,1(B) + JRST LOOP + +CSYM: SETZB C,F + MOVEI L,JNEW + JCRY SYM + JRST @40 +SYM: TLZ A,740000 + MOVE B,A + TSC B,B + MOVMS D,B + IDIVI B,SYML + HRLI C,-SYML(C) +SYMLUP: SKIPN B,ST(C) + JRST (L) + CAMN B,A + JRST 1(L) +SL: AOBJN C,SYMLUP + TLOE F,1 + .VALUE + MOVN B,D + IDIVI B,SYML + HRLZI C,-1(C) + JRST SL + +NEW: MOVEM A,ST(C) + AOBJP LC,CORE +C1: HRRZM LC,ST2(C) + HRLZM PG,(LC) + JRST @40 + JNEW: JRST NEW +OLD: HLRZ D,ST2(C) + XCT TTAB(D) ;NORMAL CASE DOES HRRZ D,ST2(C) + HLRZ B,(D) + CAIN PG,(B) + JRST @40 + AOBJP LC,CORE +C2: HRRZM D,(LC) + HRLM PG,(LC) + HRRM LC,ST2(C) + MOVEI D,(LC) + JRST @40 + +TTAB: HRRZ D,ST2(C) + JRST @40 + JRST TXT + JRST IGCR + +CORE: MOVEI A,2000(LC) + LSH A,-10. + .CORE (A) + .VALUE + ADD LC,[-2000,,] + JUMPE B,C1 ;????? + JRST C2 + +TXT: LDB C,P + CAIE C,40 ;SPACE + JRST .+4 + ILDB C,P + CAIN C,3 + JSP L,CC1 + SKIPA B,C +IGCR: MOVEI B,15 + ILDB C,P + CAIN C,^L + JRST FF + CAIN C,3 + JSP L,CC1 + CAME C,B ;CR + JRST IGCR+1 + JRST MAIN + +CC1: SOS L +CC: MOVEI P,(P) + CAIE P,BUFE + JRST SORT + MOVE E,[-BUFL,,BUF] + .IOT I,E + MOVE P,[350700,,BUF] + LDB C,P + JRSTF -1(L) + ;READ IN A COMMAND, PROCESSING RUBOUTS, PROMPTING WITH "*". +TTILIN: .IOT TYO,[^M] + +;COME HERE AFTER NULL LINE. +TTILI2: .IOT TYO,["*] + SETZM TTICNT ;NO CHARS READ YET. + MOVE B,[440700,,TTIBUF] + MOVEM B,TTIPNT +TTILUP: .IOT TYI,B ;READ A CHAR. + CAIN B,^M + JRST TTICR ;^M MEANS ALL READ. + CAIN B,177 + JRST TTIRUB + CAIN B,^U + JRST TTILIN ;^U - CANCEL COMMAND. + IDPB B,TTIPNT ;NORMAL CHAR. + AOS TTICNT + JRST TTILUP + +TTICR: SKIPN TTICNT ;IF READING CMD, ON NULL LINE, RETRY. + JRST TTILI2 + IDPB B,TTIPNT + MOVE B,[440700,,TTIBUF] + MOVEM B,TTIPNT ;SET UP FOR REMOVAL OF CHARS. + JRST CLUP3 ;RETURN. + +TTIRUB: SOSGE TTICNT ;IF NO CHAR TO RUB, RETRY. + JRST TTILIN + LDB B,TTIPNT + .IOT TYO,B ;PRINT RUBBED CHAR. + MOVSI B,070000 + ADD B,TTIPNT + JUMPGE B,TTIRU1 ;IF STILL IN SAME WD. + MOVEI B,-1(B) ;ELSE, MOVE TO END OF PREV. WD. + HRLI B,010700 +TTIRU1: MOVEM B,TTIPNT + JRST TTILUP + +TTICNT: 0 ;NUM CHARS READ. +TTIPNT: 0 ;PTR INTO BUFFER. +TTIBUF: BLOCK 40 + BEG: .OPEN TYI,[0,,(SIXBIT /TTY/)] + .VALUE + .OPEN TYO,[1,,(SIXBIT /TTY/)] + .VALUE +IN: .CORE /2000 + .VALUE + .SUSET [.RSNAM,,N] + MOVEM N,OUTFIL+3 + MOVSI A,(SIXBIT /TPL/) + MOVEM A,OUTFIL + .BREAK 12,[5,,TTIBUF] ;TRY GETTING :JCL COMMAND. + SKIPN TTIBUF + JRST TTILIN ;IF NONE, READ LINE FROM TTY. + .BREAK 12,[SETZ [0](5)];FLUSH :JCL COMMAND +CLUP3: MOVE A,[440700,,TTIBUF] + MOVEM A,TTIPNT ;SET UP FOR READING COMMAND. +CLUP2: MOVEM N,INFIL+3 + MOVSI A,(SIXBIT /DSK/) + MOVEM A,INFIL + MOVSI A,(SIXBIT />/) + MOVEM A,INFIL+2 + MOVNI C,2 +CLUP: MOVEI A,0 + MOVE P,[440600,,A] +CLUP1: ILDB B,TTIPNT + CAIN B,40 + JRST CMSP + CAIN B,": + JRST CMCOL + CAIN B,"; + JRST CMSEM + CAIN B,"_ + JRST CBAK + CAIN B,15 + JRST CMCR + CAIN B,^Q + ILDB B,TTIPNT + SUBI B,40 + TLNE P,770000 + IDPB B,P + JRST CLUP1 + CMCR: TDZA B,B +CBAK: SETO B, +CMSP: JUMPE A,CMSP2 + MOVEM A,INFIL+3(C) + AOJL C,CMSP2 + MOVNI C,3 +CMSP2: JUMPG B,CLUP + JUMPE B,OPEN + MOVE A,[INFIL,,OUTFIL] + BLT A,OUTFIL+3 + JRST CLUP2 + +CMCOL: MOVEM A,INFIL + JRST CLUP +CMSEM: MOVEM A,INFIL+3 + JRST CLUP + +ERR: .SUSET [.SSNAM,,N] + .LOGOUT + .OPEN ERRC,ERRFIL + .VALUE +ERR0: .IOT ERRC,B ;COPY ERR DEV TO TTY. + CAIN B,^L + JRST ERR1 + .IOT TYO,B + JRST ERR0 +ERR1: .RESET TYI, + JRST IN + +ERRFIL: SIXBIT/ ERR/ + 1?0 + +OPEN: MOVEI A,2 + HLL A,INFIL + MOVSM A,INFIL + CAME N,INFIL+3 + .SUSET [.SSNAM,,INFIL+3] + .OPEN I,INFIL + JRST ERR + MOVEI A,3 + HLL A,OUTFIL + MOVSM A,OUTFIL + MOVE A,OUTFIL+3 + CAME A,INFIL+3 + .SUSET [.SSNAM,,OUTFIL+3] + .OPEN O,OUTFIL + JRST ERR + CAME A,N + .SUSET [.SSNAM,,N] MOVSI A,-SYML + SETZM ST(A) + SETZM ST2(A) + AOBJN A,.-2 + MOVEI E,ISYMT+1 +ISL: MOVE A,-1(E) + JSP L,SYM + SKIPA B,-1(E) + .VALUE + LSH B,-16 + ADD B,[1,,] + MOVEM A,ST(C) + HLLZM B,ST2(C) +TEST: CAIE E,TSS + AOJA E,ISL + + MOVEI PG,1 + MOVE LC,[-LEN-1,,FS-1] + MOVE E,[-BUFL,,BUF] + .IOT I,E + MOVE P,[440700,,BUF] + JRST MAIN + +FF: AOS PG + U MAIN + SORT: MOVEI B,SYML/2 +SORT1: MOVE C,[ST(B)] +SORT3: MOVE A,(C) + MOVEI D,@C + CAMG A,(D) + AOJA C,SORT2 + EXCH A,(D) + MOVEM A,(C) + MOVE A,ST2-ST(C) + EXCH A,ST2-ST(D) + MOVEM A,ST2-ST(C) + TLO C,400000 + AOS C +SORT2: CAIE D,ST+SYML-1 + JRST SORT3 + TLZE C,400000 + JRST SORT1 + CAIN B,1 + JRST PH3 + AOS B + LSH B,-1 + JRST SORT1 + PH3: MOVEI PD,PDL-1 + MOVSI A,-SYML + MOVEI LL,60. + MOVEI CN,BUFL*5 + MOVE P,[440700,,BUF] +PLOOP: SKIPE B,ST2(A) + TRNN B,777777 + JRST PEND + MOVE TP,LL + IMULI TP,11 + HRRZ C,(B) + HLLZS (B) + JUMPE C,REND +RLOOP: HRRZ D,(C) + SOS TP + HRRM B,(C) + MOVE B,C + MOVE C,D + JUMPN C,RLOOP +REND: CAIG LL,10. + SOJL TP,PAGE + MOVEI R,50 + MOVE C,ST(A) + PUSHJ PD,UNDO + JRST .+5 + JUMPE D,CPOPJ + MOVE D,RTAB(D) + JSP L,OUT +CPOPJ: POPJ PD, + MOVEI R,10. + MOVEI PL,11. +PENT: SOJGE PL,.+3 + JSP L2,CR + MOVEI PL,10. +MENT: MOVEI D,11 + JSP L,OUT + HLRZ C,(B) + PUSHJ PD,UNDO + JRST .+4 + ADDI D,60 + JSP L,OUT + POPJ PD, + HRRZ B,(B) + JUMPN B,PENT + JSP L2,CR +PEND: AOBJN A,PLOOP + MOVEI D,3 + JSP L,OUT + JRST .-1 +DONE: .CLOSE O, ;DONE!!! + .CLOSE I, + .LOGOUT + .BREAK 16,140000 + UNDO: MOVE D,(PD) + AOS D + HRRM D,UNDI +UND1: IDIVI C,(R) + HRLM D,(PD) + JUMPE C,UNDI + PUSHJ PD,UND1 + HLRZ D,(PD) +UNDI: JRST . + +PAGE: MOVEI D,14 + JSP L,OUT + MOVEI LL,60. + JRST REND+2 + +CR: MOVEI D,15 + JSP L,OUT + MOVEI D,12 + JSP L,OUT + SOSG LL + MOVEI LL,60. + JRST (L2) + +OUT: SOJL CN,OUT1 + IDPB D,P + JRST (L) +OUT1: MOVE E,[-BUFL,,BUF] + .IOT O,E + CAIN D,3 + JRST DONE + MOVE P,[440700,,BUF] + MOVEI CN,BUFL*5 + JRST OUT + U=1000,, +DTAB: REPEAT 3,U MAIN + JSP L,CC + REPEAT 10,U MAIN + JRST FF + REPEAT 27,U MAIN + ADD A,SQ.$(B) + ADD A,SQ.%(B) + REPEAT 10,U MAIN + ADD A,SQ..(B) + U MAIN + IRPC Z,,0123456789 + ADD A,SQ.!Z(B) + TERMIN + U MAIN + U IGCR + REPEAT 5,U MAIN + IRPC Z,,ABCDEFGHIJKLMNOPQRSTUVWXYZ + ADD A,SQ.!Z(B) + TERMIN + REPEAT 45,U MAIN +IFN .-200-DTAB,PRINTX /LOSE LOSE/ + +DEFINE SQT A,B + SQUOZE 0,B+A_40 + SQUOZE 0,B/50+A_40 + SQUOZE 0,B/50/50+A_40 + SQUOZE 0,B/50/50/50+A_40 + SQUOZE 0,B/50/50/50/50+A_40 + SQUOZE 0,B/50/50/50/50/50+A_40 +SQ.!B: A_40 +TERMIN + +IRPC Z,,ABCDEFGHIJKLMNOPQRSTUVWXYZ$% + SQT 10,Z +TERMIN + SQT 4,. +IRPC Z,,0123456789 + SQT 0,Z +TERMIN + +RTAB: 0 + IRPC Z,,0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.$% + "Z +TERMIN + CONSTANTS +VARIABLES + +INFIL: BLOCK 4 +OUTFIL: BLOCK 4 + +PDL: BLOCK 10 + +DEFINE S A + SQUOZE 0,A +TERMIN +DEFINE T A + SQUOZE 4,A +TERMIN +DEFINE II A + SQUOZE 10,A +TERMIN +DEFINE MS FOO/ +DEFINE M X +IRP Z,,[,FOO] + S X!!Z +TERMIN +TERMIN +TERMIN + +ISYMT: S UFA + S DFN + S FSC + S IBP + S ILDB + S LDB + S IDPB + S DPB +MS L,M,B,R,RL,RM,RB + M FAD + M FSB + M FMP + M FDV +MS I,M,S + M MOVE + M MOVS + M MOVN + M MOVM +MS I,M,B + M IMUL + M MUL + M IDIV + M DIV + S ASH + S ROT + S LSH + S JFFO + S ASHC + S ROTC + S LSHC + S EXCH + S BLT + S AOBJP + S AOBJN + S JRST + S JFCL + S XCT + S PUSHJ + S PUSH + S POP + S POPJ + S JSR + S JSP + S JSA + M ADD + M SUB +MS L,E,LE,A,GE,N,G + M CAI + M CAM + M JUMP + M SKIP + M AOJ + M AOS + M SOJ + M SOS +MS I,M,B + M SETZ + M AND + M ANDCA + M SETM + M ANDCM + M SETA + M XOR + M IOR + M ANDCB + M EQV + M SETCA + M ORCA + M SETCM + M ORCM + M ORCB + M SETO +MS I,M,S,Z,ZI,ZM,ZS,O,OI,OM,OS,E,EI,EM,ES + M HLL + M HRL + M HLR + M HRR +MS N,NE,NA,NN,Z,ZE,ZA,ZN,C,CE,CA,CN,O,OE,OA,ON + M TR + M TL + M TD + M TS + S BLKI + S DATAI + S BLKO + S DATAO + S CONO + S CONI + S CONSZ + S CONSO + S APR + S PI + S PTP + S PTR + S TTY + S LPT + S DIS + S DC + S UTC + S UTS + S IBM +MS I,M,B + M CLEAR + S END + S LOC + S XWORD + S RIM1 + S RIM10 + S SBLK + S RIM + II TITLE + S SQUOZE + S EXP + S XWD + S .BEGIN + S REPEAT + S .END + S OCT + S CONSTA + T SIXBIT + T ASCII + S RADIX + S BLOCK + S NOSYMS + S EXPUNGE + S NULL + S EQUALS + S DEFINE ;UGH + II IRP ;UGH + II IRPC ;UGH + II IRPS ;UGH + S TERMIN + S .QUOTE + S WORD + S RELOCA + S 1PASS + S OFFSET + S IFG + S IFGE + S IFE + S IFLE + S IFN + S IFSE ;UGH + S IFSN ;UGH + S IF1 + S IF2 + S IFL + T PRINTX + T PRINTC + S VARIAB + S .LIBRA + T .LENGTH + S .LIFS + S .ELDC + S .LIFE + S .LIFN + S .LIFG + S .LIFLE + S .LIFGE + S .LIFL + S .SLDR + S .OP + S .FORMAT + S .STOP + S .ISTOP + S .RPCNT + S .LOP + S $. + S $R. + S .LVAL1 + S .LVAL2 + S .LNKOT + S .NSTGW + S .YSTGW + S .GSSET + S .TYPE + S .LIBRQ + S .GLOBAL + S .GO + S .TAG + T .ASCII + T ASCIZ + S .BYTC + S .BYTE + S .WALGN + S .IRPCNT + S .FNAM1 + S .FNAM2 + II .INSRT + II .I + II .F +TSS: + +BUF: BLOCK BUFL +BUFE: 3_35 + +ST: BLOCK SYML +ST2: BLOCK SYML + +FS: +LOC .\1777+4000 +LEN==.-FS+1 +END BEG +  \ No newline at end of file