Deja Vu #09
13 ноября 1999 |
|
drop of solder - circuit programmer for chip-only memory (ROM).
(C) Unknown __________________________________________ Read-only memories (ROM) widely used in all areas of electronic technology - for storage of programs decoding and encoding programs, etc. Of great interest is the use of reprogrammiruemyh ROM - RPZU with UFstiraniem, since you can repeatedly overwrite the information contained in them, even in home. To erase information of these ROMs, you need a source of ultraviolet radiation. Good results can be obtained by using, for example, home cosmetic device "Photon", or quartz lamp for tanning "PHOTON" erases information ROM for 15-20 minutes at a distance of 1-2 cm mikroshomy For programming RPZU needed Programmer - a special device that can be done as a separate unit or as a prefix to computer. Bring to your attention Scheme programmer - is an attachment to your computer "Spectrum", which is designed for programming the most widely used RPZU capacity from 2 up to 32 kilobytes, both domestic and foreign production. This chip: K573RF2, K573RF5, K573RF4, K573RF6, K573RF8, 2716, 2764, 27128, 27256. Pinout circuits RPZU given in Table 3 and Table 4 shows the signals findings chips in various modes. Table 3. _______________________32K X 8________________________ | _________________16K X 8__________________ | | | X ____________8K 8____________ | | | | | X ______2K 8______ | | | ___|_____|_____|___ | ____________ | ___|_____|_____|___ | Vpp | Vpp | Vpp | | | 1 | __ | 28 | | | Vcc | Vcc | Vcc | | A12 | A12 | A12 |__|__ | 2 ------- 27 | __|__| PGM | PGM | A14 | | A7 | A7 | A7 | A7 | | 3 (1) (24) 26 | | Vcc | - | A13 | A13 | | A6 | A6 | A6 | A6 | | April 1925 | | A8 | A8 | A8 | A8 | | A5 | A5 | A5 | A5 | | May 1924 | | A9 | A9 | A9 | A9 | | A4 | A4 | A4 | A4 | | June 1923 | | Vpp | A11 | A11 | A11 | | A3 | A3 | A3 | A3 | | July 1922 | | OE | OE | OE | OE | | A2 | A2 | A2 | A2 | | August 1921 | | A10 | A10 | A10 | A10 | | A1 | A1 | A1 | A1 | | September 1920 | | CS | CS | CS | CS | | A0 | A0 | A0 | A0 | | October 1919 | | D7 | D7 | D7 | D7 | | D0 | D0 | DO | DO | | November 1918 | | D6 | D6 | D6 | D6 | | D1 | D1 | D1 | D1 | | December 1917 | | D5 | D5 | D5 | D5 | | D2 | D2 | D2 | D2 | | 13 16 | | D4 | D4 | D4 | D4 | | Gnd | Gnd | Gnd | Gnd | | 14 (12) 15 | | D3 | D3 | D3 | D3 | |_____|_____|_____|____| |__________| |____|_____|_____|_____| The scheme of the programming carried on programmiruemrm interface adapter: KR580VV55A. Three 8-bit port addresses PIA 1F, 3F, 5F (HEX) is used for input / output and the formation of the address ROM. Control signals ROM - CS, OE, PGM formed with the help of an additional register K155IR1 address EF (HEX). Address control register PIA - 7F (HEX). Level or data address and control signals ROM connected to a 28-pole connector (sockets, socket) provides a reliable contact with the pin inserted in her chips. Table 4 _______________________________________________________________ | ___2K_H_8____ | ___8K_H_8____ | ___16K_H_8___ | ___32K_H_8___ | Number | | Reading | Writing | Reading | Writing | Reading | Writing | Reading | Writing | O | | ---- | ---- | +5 In | Vpp | +5 B | Vpp | +5 B | Vpp | 1 | | 0 | _ | | _ | 0 | 0 | 0 | 0 | 0 | 0 | 20 (18) | | 0 | 1 | 0 | 1 | 0 | 1 | 0 | _ | | _ | 22 (20) | | +5 B | Vpp | A11 | A11 | A11 | A11 | A11 | A11 | 23 (21) | | +5 B | +5 B | --- | --- | A13 | A13 | A13 | A13 | 26 (24) | | --- | --- | 1 | "| |" | 1 | "| |" | A14 | A14 | 27 | |______|______|______|______|______|______|______|______|______| Vpp - Voltage programming is determined by the manufacturer of the chip. Sometimes Vpp are written on the chip, such as PGM 12,5 B. Switching addresses and control signals for various types of ROM by with the switch P2. M / s. K573RF2, RF5 and 2716 with 24 O and inserted into the slot offset (see Table 3). The same can be solved in another way, install the programmer board are three types of connectors under chips and thus cross-connected them. In this case, switch P2 is not needed. As the connectors under the ROM can be used hand-made from Connector type SNP. Chip ROM can be inserted into the slot and take out of it only at the average position of the switch P1. In this position, the connector is not served supply voltages. Two other provisions switch P1 are used to select - Read or write (programming). Maintenance program programmer consists of parts, written in BASIC, and of 463 bytes of machine code. Program in BASIC supports interactive exchange with the help of several menus. In the block of machine code contains routines: read, write and test. These programs need to be memorized computer and save. After downloading the program appears on the screen - "Load MONITOR (Y / N)?". Need to answer Y, if you use the MONITOR. After entering the Y and Enter computer is ready for loading MONITOR. If you enter N, Enter, you will be taken directly to the top of the program. On the screen - "Programming 2716,2764,27128,27256" and the menu - "Read or Wnle or Test or Verify" - Turn on CAPS LOCK and enter symbol mode you are in: - R - read mode from ROM memory comput following text; - W - programming mode ROM information tion from the computer memory; - T - Test mode "purity" of Rom. "Numbers Taya "ROM contains all the addresses of bytes FF (HEX); - V - Mode comparison of the contents of ROM contents of computer memory. Area of computer memory reserved for all modes of programming takes 32K from the address 8000 (HEX) to FFFF (HEX). If you are working with programmer monitor, workspace memory is reduced to the "upper" 4.5 KB, etc. e. 8000 - EE6A. After you select, for example, W and Enter, You need to select the type of chip. Type: - 1 - to work with chips in 2716 and K537RF2, K537RF5; - 2 - to work with chips in 2764 and K537RF4; - 3 - to work with 27,128 chips and K537RF6; - 4 - to work with 27,256 chips and K537RF8. Switch position P2 must match the type selection of the chip. Then You need to select the starting and ending addresses of the programmable chip. Address is entered in hexadecimal with 4 symbols, ie two bytes, for example, 01FF. Similarly, we introduce the starting address of the computer work area (RAM addres ....), which is information for programming. To the question: "Correct (Y / N)?" You answer Y, Enter, if you typed information does not require adjustment, otherwise - N. Then, the message "Insert chip - Ready? - Press any key ". Now you need to insert ROM chip in the socket, switch P1 set in position "PGM" and press any button to start programming. Stroke process is graphically displayed on the screen. In the case of an error in programming appear on the screen and erroneous data address. Other modes performed similarly. If you use the programmer for entries in the ROM itself composed programs in machine code, then a great help in this case you will have a "Monitor" - an application that allows to do programming, debugging and dizasemblirovaniem programs in machine code. P R O G R A M M 5 GO TO 10 CLEAR 31999: LOAD "" CODE: INPUT "Load MONITOR (Y / N) ? "; M $: IF M $ =" N "THEN GO TO 30 1920 IF M $ = "Y" THEN LOAD "" CODE 30 CLS: PRINT AT 0,10: "PROGRAMMING" 50 PRINT AT 2,5; "2716,1764,27128,27256" 60 INPUT "Read or Write or Test or Verify"; Q $ 1970 IF Q $ = "R" THEN PRINT AT 5,8; "READ": GO TO 120 1980 IF Q $ = "W" THEN PRINT AT 5,8; "WRITE": GO TO 120 1990 IF Q $ = "T" THEN PRINT AT 5,8; "TEST": GO TO 120 100 IF Q $ = "V" THEN PRINT AT 5,8; "VERIFY": GO TO 120 110 GO TO 60 120 INPUT "INPUT 1-2716, 2-2764, 3-27128, 4-27256"; Q 130 IF Q = 1 THEN PRINT AT 5,17; "2716": GO SUB 3500: GO TO 180 140 IF Q = 2 THEN PRINT AT 5,17; "2764": GO SUB 3600: GO TO 180 150 IF Q = 3 THEN PRINT AT 5,17; "27128": GO SUB 3600: GO TO 180 160 IF Q = 4 THEN PRINT AT 5,17; "27256": GO SUB 3700: GO TO 180 170 GO TO 120 180 PRINT AT 8,1; ROM addres from ";: DIM W $ (4): INPUT W $: GO SUB 5000: GO SUB 6000 190 POKE 32117, R: POKE 32190, R: POKE 32314, R 200 POKE 32118, E: POKE 32191, E: POKE 32315, E 250 GO SUB 7000: PRINT I $ 260 PRINT AT 8,22; "to";: DIM W $ (4): INPUT W $: GO SUB 5000: GO SUB 6000 270 POKE 32120, R: POKE 32193, R: POKE 32317, R 280 POKE 32121, E: POKE 32194, E: POKE 32318, E 330 GO SUB 7000: PRINT I $ 335 IF Q $ = "T" THEN GO TO 420 340 PRINT AT 10,1; "RAM adress irom";: DIM W $ (4): INPUT W $: GO SUB 5000: GO SUB 6000 350 POKE 32123, R: POKE 32196, R: POKE 32334, R 360 POKE 32124, E: POKE 32197, E: POKE 32335, E 410 GO SUB 7000: PRINT I $ 420 INPUT "CORRECT (Y / N)?"; P $ 430 IF P $ = "N" THEN GO TO 30 440 IF P $ = "Y" THEN PRINT AT 14,10; "Insert chip READY? Press any key ": PAUSE 0: GO TO 460 450 GO TO 420 460 IF Q $ = "R" THEN GO TO 1000 470 IF Q $ = "W" THEN GO TO 1500 480 IF Q $ = "T" THEN GO TO 2000 490 IF Q $ = "V" THEN GO TO 2500 1000 POKE 32009,119: RANDOMIZE USR 32112 1020 PRINT FLASH 1; AT 21,15; "END": PRINT "For continue press any key ": PAUSE 0: GO TO 30 1500 RANDOMIZE USR 32304 1510 IF PEEK 32463 = 255 THEN PRINT FLASH 1; AT 21,15; "END": PRINT "For continue press any key": PAUSE 0: GO TO 30 1520 PRINT AT 18,1; "ROM adress": LET U = PEEK 32394 +256 * PEEK 32395: GO SUB 7010: PRINT AT 18,13; I $ 1530 PRINT AT 18,20; "ROM data": LET D = PEEK 32095: GO SUB 7500: PRINT AT 18,30; S $ 1540 PRINT AT 19,1; "RAM adress": LET U = PEEK 32400 +256 * PEEK 32401: GO SUB 7010: PRINT AT 19,13; I $ 1550 PRINT AT 19,20; "RAM data": LET D = PEEK (PEEK 32 400 256 * PEEK 32401): GO SUB 7500: PRINT AT 19,30; S $ 1560 INPUT "Continue (Y / N)?"; G $ 1570 IF G $ = "N" THEN GO TO 30 1580 IF G $ = "Y" THEN RANDOMIZE USR 32384: GO TO 1510 2000 POKE 32009,0: POKE 32210,254: POKE 32211,255 2030 RANDOMIZE USR 32176 2040 IF PEEK 32303 = 255 THEN PRINT FLASH 1; AT 21,15; "END": PRINT For continue press any key ": PAUSE 0: GO TO 30 2050 PRINT AT 18,1; ROM adress ": LET U = PEEK 32249 +256 * PEEK 32250: GO SUB 7010: PRINT AT 18,13; I $ 2060 PRINT AT 18,20; "ROM data": LET D = PEEK 32015: GO SUB 7500: PRINT AT 18,30; S $ 2070 INFUT "Continue (Y / N)?"; H $ 2080 IF H $ = "Y" THEN RANDOMIZE USR 32240: GO TO 2040 2090 IF H $ = "N" THEN GO TO 30 2100 GO TO 2070 2500 POKE 32009,0: POKE 32210,0: POKE 32211,190 2530 RANDOMIZE USR 32176 2540 IF PEEK 32303 = 255 THEN PRINT FLASH 1; AT 21,15; "END": PRINT "For continue press any key": PAUSE 0: GO TO 30 2550 PRINT AT 18,1; "ROM adress": LET U = PEEK 32249 +256 * PEEK 32250: GO SUB 7010: PRINT AT 18,13; I $ 2560 PRINT AT 18,20; "ROM data": LET D = PEEK 32015: GO SUB 7500: PRINT AT 18,30; S $ 2570 PRINT AT 19,1; "RAM adress": LET U = PEEK 32255 +256 * PEEK 32256: GO SUB 7010: PRINT AT 19,13; I $ 2580 PRINT AT 19,20; "RAM data": LET D = PEEK (PEEK 32255 * 256 PEEK32256): GO SUB 7500: PRINT AT 19,30; S $ 2590 INPUT "Continue (Y / N)?"; J $ 2600 IF J $ = "N" THEN GO TO 30 2610 IF J $ = "Y" THEN RANDOMIZE USR 32240: GO TO 2540 2620 GO TO 2590 3500 POKE 32001,8: POKE 32011,10: POKE 32046,2: POKE 32050,3 3510 POKE 32068,10: POKE 32082,8: POKE 32091,10: RETURN 3600 POKE 32001,12: POKE 32011,15: POKE 32046,6: POKE 32050,2 3610 POKE 32068,15: POKE 32082,12: POKE 32091,15: RETURN 3700 POKE 32001,8: POKE 32011,9: POKE 32046,0: POKE 32050,2 3710 POKE 32068,9: POKE 32082,8: POKE 32091,9: RETURN 5010 LET T = 0 5020 FOR Y = 1 TO 4 5030 LET T = T +16 ^ (4-Y) * (CODE W $ (Y) -48-7 * (CODE W $ (Y)> 57)) 5040 NEXT Y 5050 POKE 32030, INT (T-(INT (T/256)) * 256) 5060 POKE 32031, INT (T/256) 5070 RETURN 6000 LET W = PEEK 32030 +256 * PEEK 32031 6010 LET E = INT (W/256) 6020 LET R = INT (W-(E * 256)) 6030 RETURN 7000 LET U = PEEK 32030 +256 * PEEK 32031 7010 DIM I (4): DIM I $ (4) 7020 LET I (1) = INT (U/4096) 7030 LET U = U-I (1) * 4096 7040 LET I (2) = INT (U/256) 7050 LET U = U-I (2) * 256 7060 LET I (3) = INT (U/16) 7070 LET I (4) = U-I (3) * 16 7080 FOR O = 1 TO 4 7090 LET I $ (O) = CHR $ (I (O) +48 +7 * (I (O)> 9)) 7100 NEXT O 7110 RETURN 7500 DIM S (2): DIM S $ (2) 7510 LET S (1) = INT (D/16) 7520 LET S (2) = INT (D-S (1) * 16) 7530 FOR F = 1 TO2 7540 LET S $ (F) = CHR $ (S (F) +48 +7 * (S (F)> 9)) 7550 NEXT F 7560 RETURN 9999 SAVE "PROG +" LINE 10: SAVE "PROG +" CODE 32000,500: SAVE "MONITOR" CODE 61000,4535: STOP 7D00 3E 00 D3 EF DB 1F 32 0F 7DE8 00 00 00 00 00 00 0 7D08 7D 00 3E 00 D3 EF C9 00 7DF0 C5 D5 E5 F5 3E 90 D3 7F 7D10 00 00 00 00 00 00 00 00 7DF8 01 00 00 11 00 00 21 00 7D18 00 00 00 00 00 00 00 00 7E00 00 78 AA 20 1B 79 AB 20 7D20 3E 80 D3 7F 7E D3 1F 78 7E08 17 3E FF 32 2F 7E F1 E1 7D28 D3 3F 79 D3 5F 3E 00 D3 7E10 D1 C1 C9 00 00 00 00 00 7D30 EF 3E 00 D3 EF 3E 55 32 7E18 00 00 00 00 00 00 00 00 7D38 18 7D 32 18 7D 32 18 7D 7E20 23 March 1918 A2 00 00 00 00 7D40 3D 20 F4 3E 00 D3 EF 3E 7E28 00 00 00 00 00 00 00 00 7D48 90 D3 7F 78 D3 3F 79 D3 7E30 C5 D5 E5 F5 3E 00 32 CF 7D50 5F 3E 00 D3 EF DB 1F 32 7E38 7E 01 00 00 11 00 00 7A 7D58 5F 7D 3E 00 D3 EF 3E 00 7E40 32 F1 40 32 F1 41 7B 32 7D60 BE C9 00 00 00 00 00 00 7T48 F2 F2 40 32 41 21 00 00 7D68 00 00 00 00 00 00 00 00 7E50 78 32 F1 43 32 F1 44 79 7D70 C5 D5 E5 F5 01 00 00 11 7E58 32 F2 43 32 F2 3E 44 33 7D78 00 00 21 00 00 3E 90 D3 7E60 3D 32 5F 7E 32 EC 43 32 7D80 7F 78 D3 3F 79 D3 5F CD 7E68 EC 44 20 3C 22 90 7E ED 7D88 7D 00 78 AA 20 September 1979 AB 7E70 53 8D 7E ED 43 8A 7E F1 7D90 May 20 F1 E1 D1 C1 C9 03 7E78 E1 D1 C1 C9 00 00 00 00 7D98 23 18 E6 00 00 00 00 00 7E80 C5 D5 E5 F5 3E 33 32 5F 7DA0 00 00 00 00 00 00 00 00 7E88 7E 01 00 00 11 00 00 21 7DA8 00 00 00 00 00 00 00 00 7E90 00 00 18 16 00 00 00 00 7DB0 C5 D5 E5 F5 3E 90 D3 7F 7E98 CD 20 7D 2O C1 3E FF 32 7DB8 3E 00 32 2F 7E 01 00 00 36 7EA0 7D CD 20 7D 3E 55 32 7DCO 11 00 00 21 00 00 78 D3 7EA8 36 7D 78 AA 20 December 1979 AB 7DC8 3F 79 D3 5F CD 00 7D 3A 7EB0 20 0E 3E FF 32 CF 7E F1 7DD0 OF 7D 00 00 28 2B 22 FF 7EB8 E1 D1 C1 C9 00 00 00 00 7DD8 7D ED 53 FC 7D ED 43 F9 7EC0 03 23 3E 33 32 5F 7E C3 7DE0 7D F1 E1 D1 C1 C9 00 00 7EC8 50 7E 00 00 00 00 00 00
Other articles:
Similar articles:
kodit Who's there? - Quick graphics: a few recipes from Zetter'a (print sprites, update the screen).
В этот день... 23 November