KIM-1

Micro-KIM

Micro-KIM

Now everybody can own a KIM-1 at a very reasonable price! Vince Briel is selling the micro-KIM,
with nearly identical specifications. As a kit and as an assembled working unit.

 

Specifications:

Micro-KIM

 

As you can see from the photographs above, I have received this professional machine. Note that when receiving this in Europe you will have to pay taxes to the customs, 30 euro for the Netherlands, and it will take at least three weeks.

 

See the KIM-1 resource page and the KIM-1 Info page for more KIM-1 info and programs.

 

My first impressions

 

  • It really feels as a KIM-1. Smaller, but just as simple to operate. Easy to connect a serial cable and connect to a terminal program like Hyperterminal. That also brings back the memories to the seventies, I really hated the KIM-1 serial inetrface, I miss my 6850 ACIA extension! A 6551 will cure this annoyance.
  • No cassette port. This means the programs with real nostalgic value like the editor/assembler MicroAde will not have much sense. The first extension to be made (I have the impression Vince Briel is already working on that)
  • No second 6532 (though the 6530-002 and 003 ROM is present!). So no funny I/O experiments yet.
  • 32K RAM extension! Yes, this makes the machine worthwhile! Now I can run Microsoft Basic and MicroAde and try to get the Mpascal compiler working again.
  • Some small mistakes are on the board and this needs three hardware fixes to be made, so I have to get the soldering iron into action.Simple fixes and it lets MicroAde run!. Great support by Vince!
  • Loading programs via the serial interface is slow. But it works! Fun to test all those KIM-1 programs I have rescued (and see some fail, like Qchess, I dont remember the startaddress). KIMTAPE and KIMPAPER help a lot here.
  • Tested programs

    After receiving the Micro-KIM I have tested several programs, available on this page. More test work to do, like getting MicroAde to work).

     

    Microsoft KB-9 Basic, dated 1977

    KB-9 stands for Kim-Basic with 9 digits precision. Runs fine.

    Scanned manual

    The original KB9 and Version 3.0

    Focal V3d

    The program in binary format

    The Focal programming language Version 3d for the KIM-1

    A small interpreter (about 5K) for a convenient interpreted language.
    Requires memory from $2000 and up. Has some terminal echo problems.

    The scanned manual

    Disassembled source by Paul R. Santa-Maria

    No picture

    Micro-ADE assembler/editor

    Micro-Ade program
    Original Micro-Ade program in Papertape format, ready for the Micro-KIM Requires 32K RAM ex[pansion and the three! fixes for the decode problem of 6530 RAM areas.

    Micro-ADE was the working horse for many KIM-1 users, the small and powerfull assembler/editor written by Peter Jennings.
    Manual and program are placed here with permission by Peter Jennings (thank you Peter for this and for a great program!).

    Scanned manual

    Source in scanned format (from a bad photocopy):
    - editor
    - assembler
    - i/o
    The frontpage is shown on the right.

    Also this program was enhanced by the KIM Club, resulting in version 9.0, present in the program archive.
    Page 1 and 2 of the command summary.
    Read here in the future the source of the enhancements (text by S.T. Woldringh).

    No picture

    No picture

     

    Not tested are: the CWMoser asm/ted program. Tiny Basic works, but has some character display problems.

    TSC Games

    See the KIM resource page for the complete scan of the TSC book with KIM terminal games.

    Hangman
    Copyright (c) 1976 by Technical systems consultants box 2574 w. Lafayette in 47906
    This program implements the word guessing game "hangman" for 6502 based computers. The object of this game is to guess the word selected from the supplied list. This is done by entering a letter (A-Z) in response to the prompt "guess? ". If that letter is in the selected word the computer will print the word showing the location of that letter. Letters not yet guessed will be indicated by "-". If more than one of that particular letter is in the word only the first occurence of the letter is displayed. For each incor¬rect guess the computer will display one more letter of the word "hangman". When the word "hangman" appears completely you lose and the word is then revealed. You are then asked to "Play again?". The appropriate responses are y or n. If n is typed control will be transferred to your monitor. The word list supplied can be easily modified to suit your needs. The list starts at "wrdlst" (0397) and each word is preceeded and followed by hex code 04. Each word can be up to 9 letters long with one ascii character in each byte. If the number of words is changed (listing is supplied with 16) the value of "wrdcnt" must also be changed. That is, you must change the contents of location 025A to reflect the number of words (in hex) in the list. After any word is used it is marked to preclude the possibility of it occuring more than once in a particular game. When all words have been used the computer will appear to hang just before printing the number of letters in the word. This your indication that it is all done. To play again you must then reload the word list or the whole program. To disable the marking of the used words change location 0278 to EA (nop), before starting this program you must be certain that not both bytes rndm and rndm+1 are zero. If so, set one or both to some non-zero value. The starting address of this program is 0200.

    Hangman in Papertape format

    Hurkle

    This game is adapted for the 6502 from the version released by the Peoples Computer Company. The object of the game is to find the hiding hurkle. He will be hiding on a 10x10 grid with o,o being the southwest corner of the playing field. You will have three guesses to find him! To start the game, start execution at hex location 0200. You will then be asked for an initial guess. If you didnt find him the computer will give you a clue, telling you which direction you need to go to find him. For example, if you guessed 2,3 and the hurkle was hiding at 6,6 you would be told to go north east. The first number entered moves you north or south (increasing values move you north) and the 2nd number moves you east or west (increasing numbers move you east). If you cant find him in 3 guesses, you will be told where he was hiding. Happy hurkle hunting !!

    Hurkle in Papertape format

    Mastermind

    This program implements the popular Mastermind. The object of this game is to guess a sequence of 4 letters in the range of A-F that the computer-has selected. The computer will give you clues as to the accuracy of your guess as follows. One black marker for each letter guessed in the correct position. One white marker for each letter guessed in the sequence but not in the correct position. The total number of markers (black + white) will never exceed 4 because the computer will award at most one marker for each position of the user's guess. When you receive 4 black markers you have guessed the sequence and the computer will inform you as to how many tries you needed. If you give up, you may type a 'G' as one of of your guesses and the computer will tell you what the sequence was. Caution must be excercised so that not both bytes rndm and rndm+1 are zero. If this is the case, change one or both bytes to some value (non-zero) before you begin running the program. The starting address of this program is 0200. Have fun!

    Mastermind in Papertape format

    Acey Ducey

    Acey-Ducy in Papertape format

    This program implements the popular card game Acey-Ducey. The object of this game is to place bets on the relative probability of the occurence of a particular card. The computer deals you your first two cards and you place a bet on the third card being between the first two. The low card is 2 while ace (a) is the high card. The third card must not be equal to either of the first two cards or you lose. When you accumulate $2000 you win or when you lose all your money you lose. Dollar amounts are entered for the bets and must be less than or equal to the money you presently have. Bets are terminated with a carriage return. Only the last 4 digits typed remain as the bet. (leading zeros not required). Before running Acey-Ducey you must be certain that rnsm anb rnsm+1 are not both zero. If so, set one or both to some zero value. The starting address of this program is 0200.

    Switch

    This program implements a game of skill and logic called 'Switch' for the 6502 computer. The object of this game is to rearrange a random sequence of the numbers 1 to 9 to numerical order left to right. This is done by reversing the sequence of the first n numbers where n is the response to the prompt "SWITCH?" by reversing sequences of appropriate length (in the proper order) the re-ordering can be achieved in a maximum of 15 moves regardless of the initial randomness. Before starting the program you must be certain that not both bytes rndm and rndm+1 are zero, if so, set one or both to some non-zero value. The starting address of this program is 0200. Good luck!

    Switch in Papertape format

    Useful utilities

    KIMTAPE

    The binary files in the KIM-1 program archives below have been reproduced, from the original cassette recordings, with the tool KIMTAPE on a PC in a DOS box. See Ed's DX-Forth and Utilities Page for this and other nice programs.
    This program also makes it possible to reproduce the original cassette recordings that can be read by a KIM-1.

    The files were made as follows: The KIM-1 cassette audio was connected to the PC audio input and (with Cooledit) recorded as a wave file.
    For example: qchess.wav
    The wave file was then converted with KIMTAPE to a binary file (the exact content of of the KIM-1 memory when recorded).
    And the KIMTAPE utility then displays load address (for example and tape ID

    c:\kimtape qchess.wav qchess.bin 
    
    KIMTAPE version 0.5 17-May-04 
    infile: qchess.wav 
    outfile: qchess.BIN
    Program 01 address 0200 checksum OK xxxx bytes done 
    

    This .bin file (any extension is fine!) is NOT a wave file! It contains the exact content of the KIM-1 memory when recorded. The size is exactly the number of bytes as stored in the memory of the KIM-1 and much smaller than the wave file. This binary file can be converted back to a wave file with KIMTAPE or converted to a papertape file with KIMPAPER:

    C:\kimtape -M -A0200 -D01 -B2 qchess.bin qchess.wav 
    

    As you can see: you have to specify the load address and the program ID. The B parameter indicates hypertape speed (2 here, slow)
    The resulting wav file should be acceptable for the KIM-1. It is (as I have tested) acceptable as input for KIMTAPE!

    All command parameters can be seen by typing KIMTAPE without parameters:

     
    C:\kimtape
     
     KIMTAPE version 0.5  17-May-04
     
     Use:  KIMTAPE [options] infile[.typ] [outfile[.typ]]
     
     -C    console output              -M    make wavefile
     -Bn   HYPERTAPE speed  2x 3x 6x   -I    invert wavefile
     -U    SYM-1 high speed format     -V    VOC wavefile
     -Fn   offset  -127 to 127         -R    RAW wavefile
     -Hn   hysteresis  0 to 127        -Ln   leader (sec)
     -Gn   timing  -2 to 2             -T    sine tone
     -An   load address (hex)          -Dn   prog ID (hex)
     
     default: decode WAV file, KIM-1 format
              load address=0200, file ID=00
     
     Conversion utility for KIM-1 and SYM-1 format audio tapes. 
     Input/output is an 8-bit mono WAV, VOC or RAW wavefile recorded at 
     22,050 samples per second.
     

    KIMPAPER KIM-1 papertape conversion

    When you attach a serial device like the teletype or a modern PC with Hyperterminal you can use the TIM monitor of the KIM-1. One of the functions is loading from and saving to a papertape device on the teletype. Now since this is a way to load and save data as a textfile this is in fact usefull.

    The Micro-KIM micro-KIM triggered me to modernize my conversion utility to for MOS Technology papertape format. Well, not too modern, it has become a Freepascal commandline utility. Runs fine in a commandline window, also when compiled for Linux with Freepascal. In the KIMPAPER archive the program., source and information on the program and papertape format can be found.

    C:\MICROKIM>kimpaper
    KIM-1 Mos Technology BIN - papertape format conversion utility, Hans Otten, 2007 v1.1
    Syntax is: KIMPAPER [-[b|p] filename [startaddress]
    
    C:\MICROKIM>kimpaper -h
    KIM-1 Mos Technology BIN - papertape format conversion utility, Hans Otten, 2007 v1.1
    Syntax is: KIMPAPER [-[b|p|h] filename [startaddress]
     first parameter switches
            -h help
            -p convert to papertape
            -b convert to binary
    
    second parameter (first if no parameters, assumed binary to papertape)
                   name of file to convert
                   .BIN for binary, forces conversion to PAPertape
                   .PAP for papertape, forces conversion to BINary
    
    third parameter (assumed 0000 if not present)
        startaddress for BIN to papertape conversion
    
    Files of type .BIN wil force conversion to papertape.PAP
    Files of type .PAP wil force conversion to binary .BIN	
    

    Examples:

    C:\MICROKIM>kimpaper mastermind.bin 0200
    KIM-1 Mos Technology BIN - papertape format conversion utility, Hans Otten, 2007 v1.1
    
    C:\MICROKIM>kimpaper mastermind.pap
    KIM-1 Mos Technology BIN - papertape format conversion utility, Hans Otten, 2007 v1.1
    Start address 0200 in file mastermind.BIN
    Start address 03CB in file mastermind.BIN