블로그 이미지
안녕하세요? 이안입니다. 과학의 모든것을 좋아합니다. 이안김

카테고리

분류 전체보기 (383)N
NOTICE (7)
SALE (7)
자유 게시판 (40)
◆ APPLE II (52)
◆ SD Smart Drive (15)
◆ SD DISK II Emulator (75)
◆ SD Music card (17)
◆ Mockingboard 4c (10)N
◆ Hyperion 512K RAM+ (5)
◆ PS2 Adapter (6)
◆ My Z80 Card (25)
◆ FC-150 (15)
◆ OLD IBM PC (20)
◆ MPU 관련 (9)
◆ CPLD (1)
◆ RF (5)
◆ 진공관및 오디오 (29)
◆ AutoBike (14)
◆Other (26)
비공개 연구실 (0)
★ 개인방 (0)
스크랩 (0)
임시보관함 (0)
Total68,777
Today109
Yesterday120

달력

« » 2017.06
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

공지사항


이 ROM Writer를 PC와 연결하기 위한 ISA 슬롯용 8255 카드


이 카드는 사실 8255 PPI를 사용하기 위해 구상된 카드가 아니었다.

이 카드는 그당시에 유행하던 Adlib 카드를 손수 자작하기 위해 회로를 참조하여 만든 Adlib카드로써

388H의 Address와 기타 배선을 조금 사용하여 8255를 연결한 보드이다.

이 PPI를 이용하여 ROM Writer를 동작시켰으며,

약간의 개선을 통하여 2716~2764/27256까지 UVEPROM을 Writing할수 있었다.

이 ROM Writer가 있어야만 그 당시에는 Micro computer를 자작등을 할수 있었다.

요즘같이 편리한 세상에서 이런 ROM Writer까지 자작하면서 마이컴을 배우려고 한사람이 있을른지?

그때는 대단한 열정으로 생각보다 많은것은 했던것 같다.

위의 ADLIB카드의 중앙에는 YM3812가 꽂아져 있어야 하는데, 지금 따로 보관하고 있어 사진상에는 없다.

해당 칩은 용산에서 게임기 가게를 돌아다니면서 구한 칩이다.

그 당시에는 이 YM3812가 수출 금지 품목이어서, 겉에 YM3812라고 표기되지 않았다.

같이 사용되는 DAC YM3014인가 그렇다.. 무슨 플로팅포인트 DAC라고 하였다.

적당한 시간에 외장형으로 Adlib 사운드 카드를 만들어 볼까 한다.

이렇게 Adlib 카드와 Rom Writer용 디지탈출력(DIO)도 만들었었다.

최초에 먼저 IBM PC용 인터페이스를 시작한떄로 아마 1992년도였던것 같다.

20년전 잡동사니.. ㅎㅎ

세월이 많이 흘렀구나.. ^^

아래는 Rom writer소스

별로 다듬지 않고, 이것저것 변경하던 소스..

2764를 27256동작시키기 위해 Hardware를 변경했던 부분도 있다.

지금같으면 Latch를 써서 간단하게 만들어서 기록가능한 최대용량에 대한 문제는 없었을텐데 하는 생각도 한다.

오래전 추억꺼리라서 올려둔다.

---------------------------------------------------------------------------------------


67 PRINT
1000 ' ROM READ & WRITE '
1001 RS=&H90:SA=&H0:OUT 783,RS: OUT 782,&HFF:OUT 781,&HFF:OUT 780,&HFF
1002 DIM M(8192)
1004 DIM EAH(2048),EAL(2048),EDA(2048)
1010 CLS
1020 PRINT"===================================================================="
1025 PRINT" -- 27256 ROM WRITER -- FILE=";F$
1027 PRINT" START ADDR=";SA
1029 PRINT"===================================================================="
1030 PRINT
1035 PRINT" (1) ROM ERASE CHACK"
1040 PRINT" (2) READ FILE"
1050 PRINT" (3) WRITE ROM & VERIFY"
1060 PRINT" (4) VERIFY DATA WRITING"
1065 PRINT" (5) READ DATA"
1067 PRINT
1070 INPUT" SELECT ONE ";I
1075 IF I>5 THEN 1010
1080 ON I GOSUB 1500,2000,3000,4000,5000
1090 GOTO 1010
1500 OUT 783,RS
1510 FOR AH=SA TO &H7F
1520 OUT 782,AH
1530 FOR AL=0 TO &HFF
1540 OUT 781,AL:LOCATE 19,1:PRINT HEX$(AH);HEX$(AL)
1550 A=INP(780)
1555 GOSUB 10000
1560 IF A<>255 THEN LOCATE 20,1:PRINT CHR$(7);" ROM CLEAR ERROR AT ";HEX$(AH);HE
X$(AL);"="HEX$(A)
1570 NEXT AL
1580 NEXT AH
1590 RETURN
2000 ' READ FILE '
2002 PRINT"--------------------"
2004 PRINT" READ FILE"
2006 PRINT"--------------------"
2020 FILES
2030 INPUT "INPUT YOUR WANTED FILE (FULL NAME) ";F$
2035 IF F$="" THEN RETURN
2040 OPEN F$ FOR INPUT AS #1
2060 FOR I=1 TO 4096
2070 INPUT #1,M(I)
2080 NEXT I
2085 CLOSE #1
2090 RETURN
3000 ' ROM WRITE '
3002 PRINT
3004 PRINT"-------------------"
3005 OUT 783,&H80:OUT 782,&HFF:OUT 781,&HFF:OUT 780,&HFF
3006 PRINT" WRITE ROM "
3007 C=0
3008 PRINT"-------------------"
3009 PRINT" REMOVE OLD ROM AND SETNEW ROM AND PUSH WRITE BUTTON "
3010 PRINT
3012 INPUT "WHEN READY PRESS RETURN ";K$
3015 FOR AH=SA TO &H7F
3020 OUT 782,AH+&H80
3030 FOR AL=0 TO &HFF
3035 C=C+1
3040 OUT 781,AL
3050 OUT 780,M(C)
3052 LOCATE 19,1:PRINT HEX$(AH);HEX$(AL)
3055 OUT 782,AH
3060 FOR T=1 TO 100:NEXT T
3070 OUT 782,AH+&H80
3080 NEXT AL
3090 NEXT AH
3100 OUT 780,&HFF:OUT 781,&HFF:OUT 782,&HFF:OUT 783,RS
3110 INPUT "25 Vpp Switch OFF and press RETURN. ";K$
3120 C=0:EC=0
3140 FOR AH=SA TO &H7F
3150 OUT 782,AH+64
3160 FOR AL=0 TO &HFF
3170 C=C+1
3180 OUT 781,AL
3190 LOCATE 19,1:PRINT HEX$(AH);HEX$(AL)
3200 A=INP(780)
3205 GOSUB 10000
3210 IF M(C)<>A THEN EC=EC+1:LOCATE 20,1: PRINT"error counted .";HEX$(EC);EAH(E
C)=AH:EAL(EC)=AL:EDA(EC)=MC
3220 NEXT AL
3230 NEXT AH
3240 IF EX=0 THEN RETURN
3250 GOSUB 4080
3260 RETURN
4000 'VERIFYING ROM AND WRITE ONCE MORE"
4002 C=0:EC=0
4005 OUT 783,RS
4010 FOR AH=SA TO &H7F
4015 OUT 782,AH+64
4020 FOR AL=0 TO &HFF
4025 C=C+1
4030 OUT 781,AL
4040 A=INP(780)
4045 GOSUB 10000
4050 IF M(C)<>A THEN EC=EC+1:LOCATE 20,1:PRINT"ERROR COUNTED ";HEX$(EC):EAH(EC)=
AH:EAL(EC)=AL:EDA(EC)=M(C)
4060 NEXT AL
4070 NEXT AH
4075 IF EC=0 THEN RETURN
4080 PRINT
4090 PRINT" PUSH WRITE BUTTEN AND HIT RETURN";:INPUT K$
4095 OUT 783,&H80
4100 FOR I=1 TO EC
4110 OUT 782,EAH(I)+32:OUT 781,EAL(I):OUT 780,EDA(I)
4120 FOR T=1 TO 110:NEXT T
4130 OUT 782,EAH(I)+64
4140 NEXT I
4150 RETURN
5000 CLS
5010 OUT 783,RS
5020 FOR AH=SA TO &H7F
5030 OUT 782,AH
5040 FOR AL=0 TO &HFF STEP 16
5050 OUT 781,AL:PRINT HEX$(AH);HEX$(AL);"-";
5060 FOR C2=AL TO AL+15
5070 OUT 781,C2
5080 A=INP(780):
5085 IF INP(783)<>RS THEN OUT 783,RS:OUT 782,AH:OUT 781,C2:A=INP(780):GOTO 5085
5090 IF A<&H10 THEN PRINT" ";
5100 PRINT ;" ";HEX$(A);
5110 NEXT C2
5120 PRINT
5130 NEXT AL
5140 PRINT
5150 NEXT AH
5160 INPUT "press return";K$
5170 RETURN
10000 IF INP(783)<>RS THEN OUT 783,RS:OUT 782,AH:OUT 781,AL:A=INP(780):GOTO 1000
0
10010 RETURN

기록을 위한 APPLEII F ROM

APPLE-F.ROM

신고

'◆ APPLE II' 카테고리의 다른 글

APPLE][와 IBM FDD  (0) 2013.07.20
APPLE2용 SD Memory Emulator를 위하여  (0) 2012.05.14
ROM WRITER 카드 및 BASIC 소스  (2) 2012.04.28
SN76489  (0) 2012.04.22
APPLE2+의 CPU를 65C02CPU로 교체  (0) 2012.04.21
CPU를 바꿀까?  (0) 2012.04.17
Posted by 이안김

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

티스토리 툴바