COMPUTE II ISSUE 1 / APRIL/MAY 1980 / PAGE 56
PROM, RAM and I/O Expansion for the KIM
Harvey B. Herman
Digital Engineering Associates $139.95
P. O. Box 207 Bethlehem, PA 18016
Those of us who have cut our computer baby teeth on the KIM have longed to have some of the capabilities of SYM (a newer, single-board computer) without, heaven forbid, having to throw out our first love. Digital Engineering Associates has come to our rescue with their product KIMEX-1. They are marketing a single-board add-on module which plugs into the KIM expansion interface and requires 6 wires to be soldered to the KIM application connector. The following features are standard:
The last item is really neat as this should greatly simplify operation of applications programs in EPROM by users unfamiliar with KIM.
The module appears to my eye very well designed and professionally constructed. It was trivial to connect to a basic KIM (15 minutes or less). For review purposes only, the company provided a clock program on EPROM which is described as an example in their 19-page manual. I turned on power (an extra 300 mamp from the 5V supply is necessary) and I was into the clock program and counting. Their program makes use of the 6522 VIA on board (a data sheet on the 6522 is also included with the manual). I am only just beginning to appreciate the “versatility” of the VIA chip and missed having one on the original KIM. Now's my chance.
The negative points are minor. I believe it may be more difficult and/or expensive to obtain a MOSTEK 4118 (1K × 8) than a 2114 (1K × 4), for example. Furthermore, it might have been helpful in some systems to address the 4K of RAM anywhere in memory. Other than that, I think the module is a pretty good deal for KIM owners who need its features, and I recommend it to them.
Editor's Note: If this review seems familiar to you, you may have read it in Issue 3 of COMPUTE. The blank half page in that issue was supposed to be the company's ad. Hopefully it's in this issue. We're reprinting the review as a service to you and them. My apologies to Edward H. Carlson, author of Fast Tape Read/Write Programs for your OSI (Issue 3, COMPUTE, p. 115). Here, in full, is Listing 3. Oh well… RCL
10 ; FAST KC TAPE READ 20 ; 30 LEADER =$0F LEADER CHARACTER, $0F 40 SCREEN =$D100 LOCATION ON MONITOR SCREEN 50 ACIA =$FC00 6850 ACIA TAPE PORT 60 START =$00 HOLDS ADDRESS OF 1ST BYTE OF TEXT 70 END =$02 HOLDS ADDRESS OF LAST BYTE OF TEXT 80 EXECUT =$04 CONTAINS ADDRESS OF PROGRAM START 90 CURENT =$06 HOLDS ADDRESS OF CURRENT TEXT BYTE 100 CHKSUM =$08 CHECK SUM FROM TAPE STORED HERE 110 COUNT =$09 COMPUTED CHECK SUM AND OTHER STUFF 120 *=$C700 130 LDA #'N READING NOISE BEFORE LEADER 140 STA SCREEN+2 150 MAIN LDY #0 READ LEADER, $0F 0F 0F 160 STY COUNT 170 M1 JSR RT READ TAPE BYTE 180 STA SCREEN 190 CMP #LEADER IS IT A LEADER BYTE? 200 BNE MAIN NO, READ ANOTHER BYTE 210 INC COUNT YES, INCREMENT 220 LDA #'L PRINT L FOR EVERY $0F READ 230 STA SCREEN+4,Y 240 INY 250 LDA #3 READ 3 OF THEM? 260 CMP COUNT 270 BNE M1 NOT YET, READ ANOTHER 280 ADDR LDY #0 LEADER OVER. READ START, 290 STY COUNT END, EXECUTE ADDRESSES 300 LDA #'A 310 STA SCREEN+8 320 A1 JSR RT 330 STA START,Y 340 STA SCREEN 350 INY 360 CPY #6 370 BNE A1 BRANCH TO CONTINUE READING A 380 LDA START SET INITIAL ADDRESS 390 STA CURENT+1 400 LDA START+1 410 STA CURENT 420 TEXT LDY #0 430 STY COUNT CLEAR FOR CALC. CHECK SUM 440 LDA #'T 450 STA SCREEN+10 460 RBT JSR RT READ A BYTE OF TEXT 470 STA (CURENT),Y 480 STA SCREEN 490 CLC 500 ADC COUNT COUNT ACCUMULATES CHECK SUM 510 STA COUNT 520 LDA CURENT TEST FOR END OF TEXT, LO 530 CMP END+1 540 BNE M3 NOT EQUAL, INC AND READ BYTE 550 LDA CURENT+1 LO EQUAL, TEST HI 560 CMP END 570 BEQ M6 BRANCH IF TEXT IS ALL READ 580 M3 INC CURENT INCREMENT CURRENT ADDRESS 590 BNE M4 600 INC CURENT+1 610 M4 JMP RBT GO READ NEXT BYTE 620 M6 JSR RT READ CHECK SUM BYTE 630 STA CHKSUM 640 CMP COUNT TEST CHECK SUM 650 BEQ GO IF OK, BRANCH AND EXECUTE 660 LDA #'E IF NOT, PRINT ERROR MESSAGE 670 STA SCREEN+12 680 JSR $CB4B BELL 690 BRK 700 GO LDA EXECUT 710 STA CURENT+1 720 LDA EXECUT+1 730 STA CURENT 740 JSR $CB4B BELL 750 JMP (CURENT) EXECUTE 760 ; 770 ; TAPE READ SUBROUTINE 780 RT LDA ACIA READ A BYTE FROM 6850 790 LSR A 800 BCC RT 810 LDA ACIA+1 820 RTS