post

MAE ASSM/TED CW Moser

MAE (Macro Assembler Text Editor) or ASSM/TED is a program sold by Eastern House Software for the KIM-1, Apple, PET, C64 and more 6502 based machines.

RAE was the name by Synertek for MAE, as ROMs for the SYM-1 which could be installed to add the Resident Assembler/Editor (RAE). Synertek contracted Eastern House Software to port their Macro Assembler/Editor (MAE) into an 8 KB ROM. AS you can see in the reconstructed source, the adaptations were not much more than adding the SYM-1 I/O such as character I/O and tape handling, the essence of MAE stayed as RAE. It was not that popular in the SYM-1 world, even Synertek used internally another assembler, with more MOS Technology compatible syntax.

The author of MAE and RAE, was Carl Moser. MAE was sold in various forms not only for the KIM-1 and SYM-1 but also for other 6502-based computers including Commodore, Atari, KIM, and Apple and in the Netherlands the Elektor Junior. Other forms of MAE included a cross assembler for 6800 and 8085.
Carl Moser and JR Hall were founders of Eastern House Software, the company that created several products for Atari 8-bit users, including Monkey Wrench and Monkey Wrench II, and the KISS word processor.

On topic on this site are the preserved KIM-1, SYM-1 and Elektor Junior versions. I have binaries, manuals and (reconstructed) sources for these versions for download.

Note that the manuals for the SYM-1 RAE are well written, and a good addition for the manuals of MAE.

On this page:



Catalogs and flyers Eastern House Software

Eastern House Software Catalog

Eastern House Software Dealer Brochure

EHS catalog 1985

EHS catalog

EHS flyer

EHS Gazette 1981-03

PC commandline tools to manipulate MAE/RAE files

To get text into and out of the ASSM/TED program on the 6502 computer to the PC world,one can use several methods.
Written in Freepascal. Sources included, can be compiled in Linux etc.

The first method is using a terminal emulator and upload a text file or catch the output of the ASSM/TED program.
That gives some problems, mostly related to missing line numbers, or too much blanks.

Strip Blanks
The output of ASS/TED to the screen contains many blanks. When you want to uplaod the captured output, those blanks have to go

D:\myfiles\MAE\PC tools>StripblanksMoser.exe
V1.0 Strip blanks from captured ASSM/TED Moser source file
V1.0 Hans Otten, 2024
Syntax: StripBlanksMoser <sourcefile with blanks> <output source file to upload 
to ASSM/TED> [Y]
Y to overwrite outputfile without question asked

Add numbers
When you have a MAE/RAE source file without numbers, you can add those with this utility, increment of 10.

D:\myfiles\MAE\PC tools>AddNumbersMoser.exe
V1.0 Add numbers 0001-9999 to source file to make a ASSM/TED Moser source file
V1.0 Hans Otten, 2024
Add numbers 0001-9999 to ASSM/TED Moser source
AddnumersMoser <sourcefile without numbers> <output source file with numbers> [Y]
Y to overwrite outputfile without question asked

The other method is to dump or upload the text buffer as memory binary dumps.
Text is stored in memory as:
..
e.g.
the text
10 test
is stored as:
00 10 20 74 65 73 F3

RAE to TXT
Converts a binary MAE/RAE file to an ASCII text file without line numbers and normal line end

D:\myfiles\MAE\PC tools>RAEtoTXT.exe
V1.0 Convert a  ASSM/TED Moser RAE memory dump to text file
V1.0 Hans Otten, 2024
RAEtoTXT <sourcefile memorydump> <output text file  [Y]
Y to overwrite outputfile without question asked

TXT to RAE
Converts a text file to binary RAE format, with line numbers.

D:\myfiles\MAE\PC tools>TXTtoRAE.exe
V1.0 Convert a  text file to ASSM/TED Moser RAE memory dump
V1.0 Hans Otten, 2024
TXTtoRAE <textfile > <output memorydump file  [Y]
Y to overwrite outputfile without question asked

How to dump or upload the the MAE/RAE text buffer

Dump

Start ASS/TED and add some lines

C 1979 BY C. MOSER


4163-53FC  5400-5EFC  5F00
4163  5400

>10test
>20 lege regel
>set

4163-53FC  5400-5EFC  5F00
4176  5400

Current (4176 in example above is to be stored at D3 (low), D4 (high))

BR to the KIM monitor and save 4163 to 4176 to a file, remember the end address, add that to the filename!
Upload

– Start ASSM/TED and BR to monitor
– Load the text file, place the end address in D3 (low), D4 (high)
– Enter ASSM/TED via the warm start at 2003 (KIM-1) or B003 (SYM-1)

post

The KIM-1 family

The KIM-1 is one of the first computer systems build around the 6502 microprocessor, somewhere in 1975.
The hardware and software concepts in the KIM-1 were reused in a number of systems created later.

  • Application and expansion connector
  • KIM-1 monitor software in ROMs 6430-002 and 6430-003
  • RRIOTs in 6530 (equivalent to 6532)
  • Bitbanged serial interface
  • 6 multiplexed seven segment LEDs and hex keyboard
  • MOS Technology papertape format load and save
  • KIM-1 audiotape format

Over the years I have collected a ‘family’ of small computers with one or more concepts of the KIM-1, as shown in the figure above.

System          Connectors KIM-1 monitor Serial  LEDS + keypad Papertape KIM-1 audio RIOT
-----------------------------------------------------------------------------------------
KIM-1                X           X         X           X          X           X        X
SYM-1                X           X         X           X                      X        X
AIM 65               X                                                        X        X
MCS Alpha 1                                X           X                      X        X
Elektor Junior                             X           X                      X        X
KIM UNO                          X                     X          X                    X 
Micro-KIM                        X         X           X          X                    X
KIM Clone                        X         X           X          X                    X
PAL-1                            X         X           X          X           X        X
MOS Reproduction     X           X         X           X          X           X        X
KIM-1 Simulator                  X         X           X          X                    X
-----------------------------------------------------------------------------------------

Elektor Junior VIA 6522 German

Found in my archive: the German version of the Elektor Junior VIA 6522 book.

Added tot the Elektor books page.

Junior Computer ][ update

I reported some time ago about a new based upon the Elektor Junior design, by Jörg Walke, the Junior Computer ][.

Junior Computer ][ Main board

In the meantime the Junior ][ has grown up. A Bus card and an Interface card with a lot of functionality has been designed by Jörg, the software has also been updated with EHBasic and much more.

More information on the Junior ][ Computer can be found on the Vintage computing forum of the German “VzEkC e.V” – a club dedicated to the preservation of old computers and on the Junior Computer][ page.
The design, Gerbers, software is on the website of  Jörg Walke.

Here the foreword by Jörg (the ‘I’ is Jörg!)

In May 1980 the DIY project Junior Computer was presented in the Elektor electronics magazine.
The little single-board computer was equipped with 1 KB ROM, in which the monitor program is located, 1 KB RAM (plus 128 bytes of RAM located in the 6532 RIOT), which, according to the authors, was more than enough at the time.

At the 40th anniversary of the computer, I decided to design a version with all features I wanted for the junior back in the 80s. The result is the Junior Computer ][ described here. It has 8KB ROM and a maximum of 128KB RAM. A additional serial RS232 interface and a simple sound output (as described in Junior Computer Book 2, from page 41) are also added. A 5V plug-in power supply with 2A should be sufficient. If external hardware needs to be supplied with voltage via the expansion connector, 3 Amps is recommended.

In order to be able to address the additional memory, the originally address decoding had to be extended. This is designed in such a way that the compatibility of the computer with the original Junior is preserved. An adaptation of the original monitor ROM to match the new memory location was not necessary.

Like its ancestor, the Junior Computer ][ can be expanded with external hardware via a 64-pin connection. The pin assignment oft he bus was largely retained.
In the new version, the 16 available port lines of the 6532 are available via 20-pin connector instead of a 31-pin connector.
The circuit changes mentioned here were made exclusively by me and expressly without the prior consent of the publisher Elektor, which is hopefully forgivable after 40 years. Of course, all rights to the original circuit design remain to Elektor and the authors.

Circuit diagrams, Gerber files, ROM images and other documents of the Junior Computer ][ (including this description) can be downloaded from https://old-computer-tech.net/downloads/ .

The computer and all its documents are published under the Creative Commons Attribution 4.0 license.

Junior Computer ][ Interface board

Junior ][ Main board

Junior ][ Interface Card

Junior ][ Backplane

 

CPM-65 and Elekterminal emulator

CPM-65, a CP/M-80 like operating system for 6502 based microcomputer

Dietrich Lausberg build a Junior long ago and expanded it to quite a system. He added hardware Elektor components, floppy and hard disk drives and wrote a CP/M inspired operating system, called CP/M-65. He still uses and maintains the system!

post

CPM-65 and Elekterminal emulator

CPM-65, a CP/M-80 analogue operating system for 6502 based microcomputer

Dietrich Lausberg build a Junior long ago and expanded it to quite a system. He added hardware Elektor components, floppy and hard disk drives and wrote a CP/M inspired operating system, called CP/M-65. He still uses and maintains the system!

All software is published on his github page Dietrich-L

System Requirements

  • 6502 processor
  • at least 12 kByte RAM
  • 6532 I/O chip for the system timer (could be replaced by a 6522 or other)
  • minimal 1 Floppy drive
  • Serial I/O

The system is a heavily modified and expanded Elektor Junior Computer. For system components and memory map see below.

System Structure
CPM-65 consists of 3 layers:

  • BIOS Basic I/O system – currently 3 kB, could be reduced to 2kB by removing SCSI and I2C drivers. Drives can be A-H non consecutive.
  • BDOS Basic disc operating system – this is the CPM-65 kernal. Size 2 kB
  • CCP Console command program – a simple console which only allows to invoke CPM-65 programs. No resident commands. Size 1 kB

File and Disc Format
Filenames are CP/M-style d:filename.ext with d
Programs must have .COM as extension and are loaded to $0200 and started there.

The directory structure is CP/M-compatible and can be read with appropriate tools like CPMTOOLS

The Disc format is typically 40 tracks/ 8 sectors/ 256 byte/sector. It is defined in the BIOS. The BDOS operates on sector numbers. Maximum sector number is $800 blocks with $20 sectors = 65536 sectors á 256 bytes = 16 MBytes

Software List of CPM-65

Name		Version
ALLOC		2.8
ASM	        2.5
BASIC		1.4
BDOS		2.2
BIOS		3.0
BOOT		1.7
BOOTPROM	3.0
BROWSE		1.0
CCP	        1.5
COPY            1.4
D	        2.0
DATETIME	1.1
DEBUG		1.5
DRUCKER		1.0
DUTIL		1.5
EPROMMER	1.2
ERASE		1.5
FORMAT		2.4
FORTH		1.6a
HEXMON		1.1
I2C-UTIL	1.2
RENAME		1.1
RFILE		1.1
SCSIMGR		1.1
STEP		1.0a
SUPERTAP	1.4
SYS 		1.5
SYSGEN		1.0
TYPE		1.6
XMODEM		1.2

Programming

Available software (all written by Dietrich Lausberg)

  • Basic interpreter
  • Forth interpreter
  • Assembler for 6502

All software is supplied as assembler files to be assembled with the CPM-65 assembler.

Hardware

Dietrich Lausberg’s system now has:

  • Base Junior
  • Interface card
  • 64k Universal Memorycard
  • 8k RAM/EPROM card
  • Universal Disk Controller (Elektor Computing 6) for HD SCSI disk (SD card) and floppy disk
  • EPROMmer
  • Elekterminal

Modifications made to Elektor cards

  • The Junior basecard was mapped to 1K RAM $E000-$E3FF, RIOT at $F600-$F7FF, EPROM was converted to a 2716 and is at $F800-$FFFF
  • The Interface card is mapped 1K RAM at $E400-$E7FF, 2K RAM (6116 replacing a 2716) at $E800-$EFFF, the VIA 6522 at $F800-$F9FF.
    The tape interface is removed.
  • The 64k RAM card from Elektor 83/3-60 (Universelle Speicherkarte) with 48 k RAM (6 x 6264) is mapped to $0000 – $BFFF.
    The card has a modification, which allows the Elektor EPROMMER to take over $B000-$BFFF when present on the bus
  • The 8K RAM-EPROM card was modified to 4 x 6116 at $C000-$DFFF, 1K RAM $F000-$F3FF

All modifications in the adressing were done with the existing glue logic. I know, its a bit convoluted, but it has evolved over time – actually the last change is from 2021. The system works very stable. So the mapping does not violate the 6502 timing requrements.

The target always was to have as much consecutive RAM from zero page to HIMEM as possible. This is a bit CP/M style and makes it easy for the software to use as much RAM as it can grab until the CCP is met (cwhich is currently at $D800). CPM-65 has up to 53 kB transient memory. The largest program is BASIC, which easily assembles in the RAM to a 10 kB program with 26K to spare. Basic then has 45247 Bytes free.

Drives

  • A: and B:  2 x BASF 6108 40 Tracks double density
  • C:  Gotek with Flashfloppy V3.32 from Keir Fraser emulating another 40 tracks DD drive
  • E: and F: SCSI drive SCSI2SD V5.1 by Michael McMaster configured to emulate 2 x 16 MB harddiscs

Serial interface
Serial 1200 – 9600 Baud TTY to ELEKTERMINAL (1200 Baud) or Terminal emulator (600 Baud). As emulator TeraTerm is ued especially for file transfer via Xmodem or a a self-written ELEKTERMINAL emulator. The emulator is necessary, because some of the software, most notably the FORTH screen editor needs the very specific ELEKTERMINAL control codes.

TTY9600 Elekterminal Emulator

This program emulates the ELEKTERMINAL published by the magazine ELEKTOR in November/December 1978.

All software is published on his github page Dietrich-L

The program is written in Free Pascal and compiles in the LAZARUS PASCAL environment. The TTY5.EXE is verified to work under Windows 10 64 bit. No installation is needed, just invoke TTY5

Commands

   alt-B - Baudrate                      alt-I - info
   alt-C - COM-Port
   alt-H - help
   alt-D - debug
   alt-X - exit

Fixed parameters:

	word length = 8       
	stop bits = 1
	parity bit = none
	flow = no     

These parameters can be changed in the source code only.

ELEKTERMINAL commands
The ELEKTERMINAL uses the SF.F 96364 CRT Controller and some glue logic. The terminal displays 16 lines with 64 characters and interprets some ASCII command codes

Code 	Function
$08	Cursor <--
$09	Cursor -->
$0A	Cursor down
$0B	Cursor up
$0C	Home cursor + clear screen
$0D	Carriage Return
$1A	Clear current line
$1C	Home Cursor
$1D	Cursor to begin of line

Elektor books Junior and Computing

Added to the Elektor book pages:
– Junior Book 1 Francais
– Elektor Computing German 1-6

More Elektor Junior

I think I am for now finished with the Junior pages:

post

Junior Computer Replica by laurent-fr

This is a replica PCB made with KiCAD.

This board is not a 100% accurate replica, because the added directly on the PCB a few updates published later by Elektor :

  • a fix for memory decoding needed for the expansion board
  • the main decoupling capacitor C2 was on wrong side of S25 (activate display) which could reset the computer
  • a simple reset circuit with a resistor and a capacitor
  • Also replaced the 2708 EPROM by a 2716, which avoid the need of a hard to find EPROM & EPROM programmer, and has the big benefit of reducing the required power supplies from 3 (+5,-5,+12) to only +5V.

More details, also yet untested Interface card and other cards at his github page.

post

EPROMmer EPS82010

A programmer for 2716 and 2732 EPROMS with the Elektor bus, PCB EPS82010(A).

2716/2732 programmer
EPROMmer using the Junior Computer, including listing
EPROMmer software binary, start adsress 0200

Many users build this programmer, often with extending the EPROM ZIF socket and switches to the frontpanel of the card, so they are accessible.
The photos show PCB EPS82010A, that revision had the Junior adaptations as outlined in the 1983 article.