KIM-1 Cassette Tapes

From Makerspace Nanaimo
Revision as of 19:13, 8 March 2019 by Chrisgerlinsky (talk | contribs) (→‎Cassette Data Storage: added diagram of cassette pulse train)
Jump to navigation Jump to search


A collection at Makerspace Nanaimo of data cassette tapes for late-1970's KIM-1 microcomputers.

KIM-1

Micro-KIM

Micro-KIM is a nearly-100%-compatible KIM-1 clone, made in 2007. (no longer sold)

Cassette Data Storage

Data is stored as a series of 2415 and 3625 Hz tones.

Information sources:

Program: TONES A0 - Sound Effect

Source: TONES, FF, DAN OLIVER MAKES MUSIC WITH KIM COMPUTER - side 1


YouTube - TONES, FF, DAN OLIVER MAKES MUSIC WITH KIM COMPUTER.

This program starts around 1:36 into cassette tape - it's the first program stored on the tape.

Audio on the tape preceeding this program:

This is a sound effect subroutine at address 0200 to address 022C.
It can be varied to go up or down in frequency in any number of repeats.
Start with a jump to subroutine at address 0200.
ID is A0.

Cassette tape data: TONES A0 - Sound Effect

Timestamp Binary  Hex ASCII Description
0:00.055 01101000 0x16     SYN
0:00.114 01101000 0x16     SYN
0:00.173 01101000 0x16     SYN
0:00.233 01101000 0x16     SYN
0:00.292 01101000 0x16     SYN
0:00.352 01101000 0x16     SYN
0:00.411 01101000 0x16     SYN
0:00.471 01101000 0x16     SYN
0:00.530 01101000 0x16     SYN
0:00.590 01101000 0x16     SYN
0:00.649 01101000 0x16     SYN
0:00.709 01101000 0x16     SYN
0:00.768 01101000 0x16     SYN
0:00.828 01101000 0x16     SYN
0:00.887 01101000 0x16     SYN
0:00.947 01101000 0x16     SYN
0:01.006 01101000 0x16     SYN
0:01.066 01101000 0x16     SYN
0:01.125 01101000 0x16     SYN
0:01.185 01101000 0x16     SYN
0:01.244 01101000 0x16     SYN
0:01.304 01101000 0x16     SYN
0:01.363 01101000 0x16     SYN
0:01.423 01101000 0x16     SYN
0:01.482 01101000 0x16     SYN
0:01.542 01101000 0x16     SYN
0:01.601 01101000 0x16     SYN
0:01.661 01101000 0x16     SYN
0:01.720 01101000 0x16     SYN
0:01.780 01101000 0x16     SYN
0:01.839 01101000 0x16     SYN
0:01.898 01101000 0x16     SYN
0:01.957 01101000 0x16     SYN
0:02.017 01101000 0x16     SYN
0:02.077 01101000 0x16     SYN
0:02.136 01101000 0x16     SYN
0:02.195 01101000 0x16     SYN
0:02.255 01101000 0x16     SYN
0:02.314 01101000 0x16     SYN
0:02.374 01101000 0x16     SYN
0:02.434 01101000 0x16     SYN
0:02.493 01101000 0x16     SYN
0:02.553 01101000 0x16     SYN
0:02.612 01101000 0x16     SYN
0:02.672 01101000 0x16     SYN
0:02.731 01101000 0x16     SYN
0:02.790 01101000 0x16     SYN
0:02.850 01101000 0x16     SYN
0:02.909 01101000 0x16     SYN
0:02.969 01101000 0x16     SYN
0:03.028 01101000 0x16     SYN
0:03.088 01101000 0x16     SYN
0:03.147 01101000 0x16     SYN
0:03.207 01101000 0x16     SYN
0:03.266 01101000 0x16     SYN
0:03.326 01101000 0x16     SYN
0:03.385 01101000 0x16     SYN
0:03.445 01101000 0x16     SYN
0:03.504 01101000 0x16     SYN
0:03.563 01101000 0x16     SYN
0:03.623 01101000 0x16     SYN
0:03.682 01101000 0x16     SYN
0:03.742 01101000 0x16     SYN
0:03.801 01101000 0x16     SYN
0:03.861 01101000 0x16     SYN
0:03.920 01101000 0x16     SYN
0:03.980 01101000 0x16     SYN
0:04.039 01101000 0x16     SYN
0:04.099 01101000 0x16     SYN
0:04.158 01101000 0x16     SYN
0:04.218 01101000 0x16     SYN
0:04.277 01101000 0x16     SYN
0:04.337 01101000 0x16     SYN
0:04.396 01101000 0x16     SYN
0:04.455 01101000 0x16     SYN
0:04.515 01101000 0x16     SYN
0:04.574 01101000 0x16     SYN
0:04.634 01101000 0x16     SYN
0:04.693 01101000 0x16     SYN
0:04.753 01101000 0x16     SYN
0:04.812 01101000 0x16     SYN
0:04.872 01101000 0x16     SYN
0:04.932 01101000 0x16     SYN
0:04.991 01101000 0x16     SYN
0:05.050 01101000 0x16     SYN
0:05.110 01101000 0x16     SYN
0:05.169 01101000 0x16     SYN
0:05.229 01101000 0x16     SYN
0:05.288 01101000 0x16     SYN
0:05.348 01101000 0x16     SYN
0:05.407 01101000 0x16     SYN
0:05.467 01101000 0x16     SYN
0:05.526 01101000 0x16     SYN
0:05.586 01101000 0x16     SYN
0:05.645 01101000 0x16     SYN
0:05.705 01101000 0x16     SYN
0:05.764 01101000 0x16     SYN
0:05.824 01101000 0x16     SYN
0:05.883 01101000 0x16     SYN
0:05.943 01101000 0x16     SYN
0:06.002 01010100 0x2A '*' SOF
0:06.062 10000010 0x41 'A' ID1
0:06.121 00001100 0x30 '0' ID2
0:06.180 00001100 0x30 '0' START_ADDR_L1
0:06.240 00001100 0x30 '0' START_ADDR_L2
0:06.299 00001100 0x30 '0' START_ADDR_H1
0:06.359 01001100 0x32 '2' START_ADDR_H2
0:06.418 10000010 0x41 'A' END_ADDR_L1
0:06.478 00001100 0x30 '0' END_ADDR_L2
0:06.537 00001100 0x30 '0' END_ADDR_H1
0:06.597 00101100 0x34 '4' END_ADDR_H2
0:06.656 10000010 0x41 'A' DATA
0:06.716 10011100 0x39 '9' DATA
0:06.775 00001100 0x30 '0' DATA
0:06.835 00001100 0x30 '0' DATA
0:06.894 00011100 0x38 '8' DATA
0:06.954 10101100 0x35 '5' DATA
0:07.013 10100010 0x45 'E' DATA
0:07.073 10100010 0x45 'E' DATA
0:07.132 10000010 0x41 'A' DATA
0:07.192 10011100 0x39 '9' DATA
0:07.251 00001100 0x30 '0' DATA
0:07.311 10001100 0x31 '1' DATA
0:07.370 00011100 0x38 '8' DATA
0:07.430 00100010 0x44 'D' DATA
0:07.489 00001100 0x30 '0' DATA
0:07.549 01101100 0x36 '6' DATA
0:07.608 10001100 0x31 '1' DATA
0:07.668 11101100 0x37 '7' DATA
0:07.727 10000010 0x41 'A' DATA
0:07.787 10011100 0x39 '9' DATA
0:07.846 00001100 0x30 '0' DATA
0:07.905 10001100 0x31 '1' DATA
0:07.965 00011100 0x38 '8' DATA
0:08.024 00100010 0x44 'D' DATA
0:08.083 00001100 0x30 '0' DATA
0:08.143 10001100 0x31 '1' DATA
0:08.202 10001100 0x31 '1' DATA
0:08.262 11101100 0x37 '7' DATA
0:08.321 10100010 0x45 'E' DATA
0:08.381 10100010 0x45 'E' DATA
0:08.440 00001100 0x30 '0' DATA
0:08.499 00001100 0x30 '0' DATA
0:08.559 10001100 0x31 '1' DATA
0:08.619 11101100 0x37 '7' DATA
0:08.678 10000010 0x41 'A' DATA
0:08.738 01101100 0x36 '6' DATA
0:08.797 10100010 0x45 'E' DATA
0:08.857 10100010 0x45 'E' DATA
0:08.916 11000010 0x43 'C' DATA
0:08.976 10000010 0x41 'A' DATA
0:09.035 00100010 0x44 'D' DATA
0:09.094 00001100 0x30 '0' DATA
0:09.154 01100010 0x46 'F' DATA
0:09.214 00100010 0x44 'D' DATA
0:09.273 01001100 0x32 '2' DATA
0:09.332 11000010 0x43 'C' DATA
0:09.391 00001100 0x30 '0' DATA
0:09.451 11101100 0x37 '7' DATA
0:09.511 10001100 0x31 '1' DATA
0:09.570 11101100 0x37 '7' DATA
0:09.629 10001100 0x31 '1' DATA
0:09.689 00001100 0x30 '0' DATA
0:09.748 01100010 0x46 'F' DATA
0:09.807 11001100 0x33 '3' DATA
0:09.867 10100010 0x45 'E' DATA
0:09.927 01101100 0x36 '6' DATA
0:09.986 10100010 0x45 'E' DATA
0:10.045 10100010 0x45 'E' DATA
0:10.105 10000010 0x41 'A' DATA
0:10.164 10101100 0x35 '5' DATA
0:10.224 10100010 0x45 'E' DATA
0:10.283 10100010 0x45 'E' DATA
0:10.342 11000010 0x43 'C' DATA
0:10.402 10011100 0x39 '9' DATA
0:10.461 01100010 0x46 'F' DATA
0:10.521 01100010 0x46 'F' DATA
0:10.580 01100010 0x46 'F' DATA
0:10.640 00001100 0x30 '0' DATA
0:10.699 00001100 0x30 '0' DATA
0:10.758 01001100 0x32 '2' DATA
0:10.818 00100010 0x44 'D' DATA
0:10.877 00001100 0x30 '0' DATA
0:10.936 00100010 0x44 'D' DATA
0:10.996 01100010 0x46 'F' DATA
0:11.055 00011100 0x38 '8' DATA
0:11.115 00011100 0x38 '8' DATA
0:11.174 01100010 0x46 'F' DATA
0:11.233 00001100 0x30 '0' DATA
0:11.293 00001100 0x30 '0' DATA
0:11.353 01001100 0x32 '2' DATA
0:11.412 00100010 0x44 'D' DATA
0:11.471 00001100 0x30 '0' DATA
0:11.531 00100010 0x44 'D' DATA
0:11.590 10000010 0x41 'A' DATA
0:11.649 00101100 0x34 '4' DATA
0:11.709 11000010 0x43 'C' DATA
0:11.769 11110100 0x2F '/' EOF
0:11.828 01001100 0x32 '2' CSUML1
0:11.887 01001100 0x32 '2' CSUML2
0:11.947 10001100 0x31 '1' CSUMH2
0:12.006 11101100 0x37 '7' CSUMH2
0:12.066 00100000 0x04  ?  EOT1
(EOT2 missing due to .wav file being cut short)

Disassembly: TONES A0 - Sound Effect

Disassembled using https://www.masswerk.at/6502/disassembler.html.

                  * = 0200
0200   A9 00      LDA #$00
0202   85 EE      STA $EE
0204   A9 01      LDA #$01
0206   8D 06 17   STA $1706
0209   A9 01      LDA #$01
020B   8D 01 17   STA $1701
020E   EE 00 17   INC $1700
0211   A6 EE      LDX $EE
0213   CA         DEX
0214   D0 FD      BNE $0213
0216   2C 07 17   BIT $1707
0219   10 F3      BPL $020E
021B   E6 EE      INC $EE
021D   A5 EE      LDA $EE
021F   C9 FF      CMP #$FF
0221   F0 02      BEQ $0225
0223   D0 DF      BNE $0204
0225   88         DEY
0226   F0 02      BEQ $022A
0228   D0 DA      BNE $0204
022A   4C 00 00   JMP $0000
022D              .END