B.E.M. 6502 RAM VIA system

Photos of a BEM system, by Gerben Voort
Gerben Voort acquired a 6502 system and made photos of the system. A backplane, the BEM bus, a 6502 based CPU card, a double VIA card, a battery backed up memory card.

Brutech B.E.M. and Radio Bulletin

Brutech and the Radio Bulletin magazine worked together. The hardware produced or resold by Brutech was offered to the magazine for reviews. And Brutech placed many advertisements in the magazine. I visited the Brutech offices several times, it was close to where I lived.

BEM-1 card, as used in the KIM memory expansion article November 1977
The BEM bus
Brutech sold the VIM-1 and SYM-1, with their cards as expansions.
Review in Radio Bulletin November 1978
Brutech sold also the PC100, the Siemens OEM version of the AIM 65. Again the expansions could be used, same bus.
Review in Radio Bulletin August 1980
The AIM 65 and KTM-2 packaged as the Samson system,. the BEM-4 memory card, the SYMP universal programmer.
Review in Radio Bulletin November 1980
BEM RTC1 card, advert in the RB CB Special 1980
BEM-Impact 1000, a BEM-bus based development system, review in Radio Bulletin Oktober 1980
BEM Eurocard system, article by C.J. Bruyn, on the BEM bus, BEM-MON-1 (a TIM 6530 004 system!) and other cards

Micro-gebeuren november 1977, BEM-1, other BEM cards
Micro-gebeuren April 1980, BEM-PSIO-1 USART card, BEM-AD3, BEM-AD4
Micro-gebeuren Mei 1980, BEM-6 16/32K EPROM card

KIM-1 case

The KIM-1 came from MOS Technology and Commodore without a case or power supply. So you either build your own housing or looked at what other firms sold for the KIM-1.
There was a lot on offer, mostly targeted at system expansion with large cases.

One of the cases you saw quite often was this case. It came with one of my KIM-1’s. Small, simple and effective

A perfect solution for an unexpanded KIM-1. Quite popular in education. Add a power supply and you can start using it without exposing the electronics. The LED display was behind a red plexiglas cover, so that improves readability.

KIM-1 Case

The KIM-1 came from MOS Technology and Commodore without a case or power supply. So you either build your own housing or looked at what other firms sold for the KIM-1.
There was a lot on offer, mostly targeted at system expansion with large cases.

One of the cases you saw quite often was this case. It came with one of my KIM-1’s. Small, simple and effective

A perfect solution for an unexpanded KIM-1. Quite popular in education. Add a power supply and you can start using it without exposing the electronics. The LED display was behind a red plexiglas cover, so that improves readability.

B.E.M. photos made by Gerben Voort

Brutech, a small Dutch company, made industrial quality microprocessor systems. 6502, 6809, process control.

Gerben Voort acquired a 6502 system and made photos of the system. A backplane, the BEM bus, a 6502 based CPU card, a double VIA card, a battery backed up memory card.
Read more about Brutech here.

KIM-1, what changed in the Revisions?

I know of seven KIM-1 revisions, labeled Rev A-G and the first one unlabeled. Rev C is unknown!

What changed between these revisions?

Not much. The PCB underwent several changes around the logo area, from KIM-1 MOS to Commodore C-MOS. That happened from Rev A to Rev D, indicating the takeover by Commodore of MOS Technology. And some small numbers/artefacts etched in various Revs. The big change was in the clock circuit between the first edition and Rev A.

Some have serial numbers, the first ones on the back on the right, later had stamped/written numbers like PAxxx (Palo Alto) and SCxxx (Santa Clara) of Commodore production facilities

Clock circuit change
The first batch of KIM-1 suffered from the issue that the clock would not start. It was fixed in Rev A, with more components and a change in PCB layout.

Read more

Jolt replica by Eduardo Casino

Eduardo Casino has created a faithful replica of the Jolt single board computer. Tested! Working!
The replica design is available on GitHub, A faithful reproduction of the JOLT

More on the Jolt here.

A faithful replica of the Microcomputer Associates Inc. JOLT computer, based on photos and information gathered from various sources on the internet.

The JOLT was the first 6502‑based computer kit to be commercially released, beating the KIM‑1 to market by several weeks; the latter would launch in January of the following year. It is a small SBC featuring a 6820 PIA and the 6530‑004 RIOT, also known as TIM‑1. It includes 512 bytes of RAM, a teletype interface, and an RS‑232 interface. The 6530‑004 contains, in its 1K ROM, the monitor software DEMON, also simply referred to as TIM.

post

Jolt Replica by Eduardo Casino

Eduardo Casino has created a faithful replica of the Jolt single board computer. Tested! Working!
The replica design is available on GitHub, A faithful reproduction of the JOLT

A faithful replica of the Microcomputer Associates Inc. JOLT computer, based on photos and information gathered from various sources on the internet.

The JOLT was the first 6502‑based computer kit to be commercially released, beating the KIM‑1 to market by several weeks; the latter would launch in January of the following year. It is a small SBC featuring a 6820 PIA and the 6530‑004 RIOT, also known as TIM‑1. It includes 512 bytes of RAM, a teletype interface, and an RS‑232 interface. The 6530‑004 contains, in its 1K ROM, the monitor software DEMON, also simply referred to as TIM.

Here a proposal for a Bill of Material shopping list

BOM Jolt V3

U9 6530-004 NOS
U1 6502 NOS
U8 6821 NOS

U2, U3, U4, U5 2111 NOS

U6 74LS27 Mouser 595-SN74LS27N
U7 74LS00 Mouser 595-SN74LS00N
U13 74LS04 Mouser 595-SN74LS04N
U12 CD4081BE Mouser 595-CD4081BE

U10 1488 SN75188 Mouser 595-SN75188N
U11 1489 SN75189 Mouser 595-SN75189AN

CR1 1N914 Mouser 512-1N914

Q1 transistor 2N2907 T0-18 Mouser 494-2N2907A
Q2 transistor 2N2222 TO-18 Mouser 494-2N2222A

C1, C6, C8, C10, C12 tantalium 10 uF 25V Mouser TAP106K050CCS or
https://electronicparts-outlet.com/nl/tantaal-condensatoren-3-35v.html 10 uF 35V (exact size and color)
C7, C9, C11, C13 ceramic disc 10nF Mouser 75-562R5HKS10 (may be a little too big)
C2 10 pF Mouser 598-CD15CD100JO3F
C4 100nF Mouser 871-B32529C1104K000

R1, R2, R3, R4, R7, R12 3K3 1/4 W
R6, 10K 1/4 W
R8, R17 5K6 1/4 W
R14 1K 1/4 W
R16 4K7 1/4 W

R9 180 1/2 W
R10 270 1/2 W
R11 220 1/2 W

R5 Potentiometer 50K Mouser 531-PTC10V-50K or Mouser 652-3339P-1-503LF

J1 2×20 pin connector Double row MALE 2.54MM PITCH Right Angle PIN Header connector 2×20
J2 2×20 pin connector Double row MALE 2.54MM PITCH Right Angle PIN Header connector 2×20

7x IC socket 14 pin
4x IC socket 18 pin

Optional but recommended:
520-ECS-10-13-1XH Crystal HC49U 1 MHz (the large Quartz crystal 1.0 MHz HC6/U is very rare)

New versions of KIM-1 Simulator V2.0.0 and TIM Simulator V0.9

The KIM-1 Simulator has seen a large update.
A new piece of hardware is added, the SD Card/RTC Shield by Corsham Technology.
This addition has been written by Eduardo Casino. Lots of code contributed, thanks Eduardo!
He also added support for two operating systems using the SD Shield, xKIM by Bob Applegate and CP/M-65 by David Given.

The problem with local language keyboard layouts is solved by Eduardo. Now the host operating system takes care of the different layout.

The documentation has been enhanced and moved from a local limited html file to an online version.

Enjoy! See it here.

The keyboard and online improvements have been ported by me to the TIM/Jolt Simulator.

Download it here.

CP/M-65 on the SD Card/RTC Shield

CP/M-65

CP/M-65 is a native port of Digital Research’s seminal 1977 operating system CP/M to the 6502.
Developed by David Given. Ported to many 6502 systems, see the original github archive.

Currently you can cross-assemble programs from a PC, as well as a working C toolchain with llvm-mos. For native development, there’s a basic assembler, a couple of editors, a BASIC, and a byte-compiled Pascal subset and interpreter.

Eduardo Casino ported CP/M-65 to the KIM-1 with an MTU K-1013 FDC, directly connected SD card module, the 1541 drive or Corsham Technology SD CARD/RTC Shield.
And now Eduardo has ported a version special to the KIM-1 Simulator with SD Card/RTC Shield simulation. See his fork of CP/M-65 on his github archive. Several branches are available, development versions with a.o. the KIM-1 Simulator version.
The main changes are to support the KIM-1 Simulator character I/O, using the ACIA simulation instead of low level KIM-1, for non-blocking character input.

How to start CP/M-65

To start using the SD Card/RTC Shield go to the menu settings.

  1. Enable Corsham SDShield emulation
  2. Copy the folder from the KIM-1 Simulator setup distribution archive called SDCARD to your disk.
  3. Choose the Disk images directory pointing to the folder SDCARD. You will see the files on Disk 0 etc filled in, DSK files are for operating systems like CP-M/65
  4. Make sure the first disk mounted is CPM-BOOT.DSK. The DSK files are in the SDCARD folder.

Now you start CP/M-65.

  1. Load the file bootshield.pap into memory with File – Load file in Memory – papertape.
    The file is in the SDCARD folder.

  2. Start the console by pressing the TTY Console button on the main window
  3. Start the Simulator by pressing Run/Stop button
  4. Start CP/M with
    0200 G
    and see the CP/M-65 prompt.
    Note that this boot program gets overwritten by CP/M-65, so you have to load it again after a reset.

Alternative boot program
In the SDCARD folder you find a second boot program called bootsdshield-kimrom.bin
This one can be placed in the unused 6530-003 ROM area, the same idea as Wozmon for the KIM-1.
The advantage is that this is not overwritten by CP/M-65,
Load at $1AA0, start at $1AA0.

Working with disks

The disks, stored in files with type .DSK are in the SDCARD folder. You can mount/dismount/create disks from the Settings screen.
You can have as many as four.

On the Settings screen the disks mounts are shown. Click on the name of a mounted disk or an empy Mount, to go to the Mount Disk dialog. Mount/Dismount here, in Write or read Only mode.

Press the the three … next to the field Image file to select or create a disk image.

Press New and you get the New diskimage dialog.

There is also the IMU utility in CP/M-65 to work with disks from within CP/M-65: mount/unmount, list the directory of the SDCARD folder. create/delete and copy.

Example session

KIM                                                   
0200 D8                                               
KIM                                                   
0200 D8 G                                             
                                                      
CP/M-65 for the KIM-1                                 
                                                      
A>dir                                                 
A: SCRVT100 COM : IMU      COM                        
A: IMU      TXT : SYS      COM                        
A: PASC     PAS : ASM      TXT                        
A: HELLO    ASM : DEMO     SUB                        
A: ASM      COM : ATTR     COM                        
A: BEDIT    COM : CAPSDRV  COM                        
A: COPY     COM : CPUINFO  COM                        
A: DEVICES  COM : DINFO    COM                        
A: DUMP     COM : LS       COM                        
A: STAT     COM : SUBMIT   COM                        
A: MORE     COM : BEDIT    ASM                        
A: BEDIT    TXT : DUMP     ASM                        
A: LS       ASM : CPM65    INC                        
A: DRIVERS  INC : ATBASIC  COM                        
A: ATBASIC  TXT : OBJDUMP  COM                        
A: MKFS     COM : ADM3ADRV COM                        
A: ADM3ATST COM : CLS      COM                        
A: LIFE     COM : QE       COM                        
A: SCRNTEST COM : VT52DRV  COM                        
A: VT52TEST COM : KBDTEST  COM                        
A: MBROT    COM : DS       COM                        
A: DS       TXT : PINT     COM                        
A: PASC     OBB : PLOAD    COM                        
A: HELLO    PAS : IMU3     TXT                        
A: HELLO    SYM                                       
                                                      
A>pint PASC.OBB PASC.PAS PASC.OBS                     
Pascal-M interpreter for CP/M-65: B66F bytes free     
Pascal-M compiler V2k1 for CP/M-65                    
Processing: writeerr                                  
Processing: beginlin                                  
Processing: endline                                   
Processing: error                                     
Processing: stringsi                                  
Processing: nextchar                                  
Processing: insymbol                                  
Processing: enterid                                   
Processing: searchse                                  
Processing: searchid                                  
Processing: getbound                                  
Processing: hexout                                    
Processing: writeout                                  
Processing: bytegen                                   
Processing: wordgen                                   
Processing: genujpen                                  
Processing: plantwor                                  
Processing: skip                                      
Processing: test1                                     
Processing: test2                                     
Processing: intest                                    
Processing: constant                                  
Processing: comptype                                  
Processing: isstring                                  
Processing: simplety                                  
Processing: fieldlis                                  
Processing: typ                                       
Processing: constdec                                  
Processing: typedecl                                  
Processing: vardecla                                  
Processing: paramete                                  
Processing: procdecl                                  
Processing: ldcigen                                   
Processing: ldagen                                    
Processing: lodgen                                    
Processing: condgen                                   
Processing: loadsetc                                  
Processing: cspgen                                    
Processing: incgen                                    
Processing: load                                      
Processing: store                                     
Processing: loadaddr                                  
Processing: falsejum                                  
Processing: calluser                                  
Processing: selector                                  
Processing: variable                                  
Processing: processt                                  
Processing: readproc                                  
Processing: processt                                  
Processing: writepro                                  
Processing: newstate                                  
Processing: releases                                  
Processing: resetrew                                  
Processing: closepro                                  
Processing: assignpr                                  
Processing: getcomma                                  
Processing: ordfunc                                   
Processing: succfunc                                  
Processing: predfunc                                  
Processing: chrfunc                                   
Processing: oddfunc                                   
Processing: eofeolns                                  
Processing: callnons                                  
Processing: call                                      
Processing: opgen                                     
Processing: setexpre                                  
Processing: factor                                    
Processing: term                                      
Processing: simpleex                                  
Processing: expressi                                  
Processing: assignme                                  
Processing: compound                                  
Processing: ifstatem                                  
Processing: casestat                                  
Processing: repeatst                                  
Processing: whilesta                                  
Processing: forstate                                  
Processing: statemen                                  
Processing: body                                      
Processing: block                                     
Processing: stdnames                                  
Processing: enterstd                                  
Processing: enterstn                                  
Processing: enterund                                  
Processing: initiali                                  
Processing: compileh                                  
Processing: compilep                                  
Processing: skipspac                                  
Processing: getword                                   
Processing: findend                                   
Processing: openfile                                  
Processing: closefil                                  
Processing: dumperro                                  
Processing: cpascalm                                  
Compilation successful.                               
No compilation errors PASC.PAS                        
                                                      
A>pload PASC.OBS PASC.OBB                             
Opening input file...                                 
Opening output file...                                
Reading OBP...                                        
Seen 94 procedures                                    
Writing output file...                                
Closing output file...                                
Success.                                              
A>type HELLO.PAS                                      
program HelloWorld;                                   
                                                      
begin                                                 
    writeln('Hello from Pascal!')                     
end.                                                  
                                                      
A>                                                    
A>pint PASC.OBB HELLO.PAS HELLO.OBS                   
Pascal-M interpreter for CP/M-65: B66F bytes free     
Pascal-M compiler V2k1 for CP/M-65                    
Processing: hellowor                                  
Compilation successful.                               
No compilation errors HELLO.PAS                       
                                                      
B>A:pload A:HELLO.OBS HELLO.OBB                       
Opening input file...                                 
Opening output file...                                
Reading OBP...                                        
Seen 1 procedures                                     
Writing output file...                                
Closing output file...                                
Success.                                              
B>A:pint HELLO.OBB                                    
Pascal-M interpreter for CP/M-65: B66F bytes free     
Hello from Pascal!                                    
                                                      
B>