|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 4096 (0x1000) Types: TextFile Names: »EPROM.BAS«
└─⟦a2831e659⟧ Bits:30004217 MBASIC r5.21 og BASIC programmer └─ ⟦this⟧ »EPROM.BAS«
10 ' ******************************************************** 20 ' Program for "brænding" af 2732 EPROM via special I/O-box 30 ' ******************************************************** 40 ' 50 ' Set "top of memory", til plads for 100 bytes maskincode 60 ' 70 CLEAR ,58274 ' 58374 var default ved opstart 80 ' 160 ' Init Konstanter 170 ' ****************** 180 ' 190 DELAY%=63 ' 50 mSec 200 FFTEST%=58275! 201 ' Load maskincode for FF-test 202 ' 203 FOR I%=FFTEST% TO FFTEST%+50 204 READ A% 205 POKE I%,A% 206 NEXT I% 207 ' 210 ' 220 ' PIO-I/O-adresser 230 ' 240 PIO.A%=132 ' Hex(84) 250 PIO.B%=133 ' Hex(85) 260 PIO.C%=134 ' Hex(86) 270 PIO.CTRL%=135 ' Hex(87) 280 ' 290 ' Definering af kontrolbytes 300 ' 310 PIO.INIT.1%=128 ' Hex(80) - port A,B,C alle outputs 320 PIO.INIT.2%=144 ' Hex(90) - port A-input, B og C-output 330 ' 340 ' Pioport C, bruges til styring af prombrænderen 350 ' 360 STANDBY.1%=0 ' Vcc:off pin 18:low, pin 20: 0V 370 STANDBY.2%=208 ' Hex(D0), Vcc:on, pin 18:high, pin 20: 5V 380 VP.ON%=224 ' Hex(E0), Vcc:on, pin 18:high, pin 20:25V 390 PROGRAMPULSE.ON%=160 ' Hex(A0), Vcc:on, pin 18:low, pin 20:25V 400 PROGRAMPULSE.OFF%=224 ' Hex(E0) 410 ADR.STROBE.HIGH%=232 ' Hex(E8) 420 ADR.STROBR.LOW%=224 ' Hex(E0) 430 READ.PROM%=128 ' Hex(80) 440 ' 450 ' Definering af kontrolbytes slut 460 ' 470 ' Init konstanter slut 480 ' *********************** 490 ' 500 ' Init variabler 510 ' ***************** 520 ' 525 ADRESSE%=0 526 LOW.ADR%=0 ' Alle variabler skal vaere assignet 527 HIGH.ADR%=0 ' naar funktionen VARPTR kaldes. 528 ' 530 ' init variabler slut 540 ' ******************* 550 OUT PIO.CTRL%,PIO.INIT.1% 560 OUT PIO.C,STANDBY.1% 570 PRINT "ISAET 2732 NU, OG TRYK <return> 580 IF INKEY$="" THEN GOTO 580 590 OUT PIO.C,STANDBY.2% 600 PRINT "FF-test igang " 610 CALL FFTEST% 620 ADRFLAG%=PEEK(&HE3D5) 630 IF ADRFLAG% <> 4096 THEN 5000 ELSE PRINT "FF-test OK, skal den programmeres, ja/nej " 640 INPUT SVAR$ 650 IF SVAR$ = "JA" THEN OR IF SVAR$="ja" THEN GOSUB 5350 ELSE STOP 660 ' 791 ' Begynd at braende EPROM 792 ' 793 OUT PIO.C,VP.ON% 795 FOR I%=1 TO 32 798 MEMADR%=VARPTR(BUFFER$(I%)) 'Get memorypointer 800 IF MEMADR% < 0 THEN MEMADR%=MEMADR%+65536 'Juster hvis minus 805 FOR J%=1 TO 128 840 GOSUB 5150 ' Output adresse til eprom 850 OUT PEEK(MEMADR%),PIO.A% ' Output data til eprom 860 GOSUB 5070 ' 50 mS programming-pulse 870 ADRESSE%=ADRESSE%+1 880 NEXT J% 890 NEXT I% 5000 OUT PIO.C%,STANDBY.1% 5010 PRINT "FF-test fejler, ved adr: (decimal) ";ADRFLAG% 5020 PRINT "EPROM kan udtages nu" 5030 STOP 5040 ' 5050 ' Subroutine for generering af 50 mS programming-pulse 5060 ' 5070 OUT PIO.C,PROGRAMPULSE.ON% 5080 FOR I%=1 TO DELAY% 5090 NEXT I% 5100 OUT PIO.C%,PROGRAMPULSE.OFF% 5110 RETURN 5120 ' 5130 ' Subroutine to output næste adresse til EPROM 5140 ' 5150 LOW.ADR%=ADRESSE% 5160 LOW.ADR%=LOW.ADR% AND 255 ' mask ud, high byte m. hex(0FF) 5170 HIGH.ADR%=ADRESSE% 5180 HIGH.ADR%=HIGH.ADR% AND 1792 ' mask ud, low byte m. hex(700) 5190 HIGH.ADR%=HIGH.ADR% /256 ' shift highbyte to lowbyte 5200 OUT PIO.A%,LOW.ADR% 5210 OUT PIO.C%,ADR.STROBE.HIGH% ' latch out low-order adr. 5220 OUT PIO.C%,ADR.STROBE.LOW% 5230 OUT PIO.B%,HIGH.ADR% 5240 RETURN 5250 ' 5350 ' Hent inputfil 5360 ' 5370 DIM BUFFER$(32) ' 32*128=4096 (størrelsen af 2732) 5380 INPUT "Input-fil ";FILNAVN$ 5390 INPUT "På hvilket drive (A/B) ";DRIVE$ 5400 FILSPEC$=DRIVE$+":"+FILNAVN$ 5410 OPEN "R",#1,FILSPEC$,128 5420 FIELD #1,128 AS INBUF$ 5430 FOR I%=1 TO 32 5440 GET #1,I% 5450 BUFFER$(I%)=INBUF$ 5460 NEXT I% 5470 CLOSE #1 5480 RETURN 5500 ' 5510 DATA &H21,0,0,&H3E,&H80,&HD3,&H87,&H7D,&HD3,&H84,&H3E,&HE8,&HD3,&H86 5520 DATA &H3E,&HE0,&HD3,&H86,&H3E,&H90,&HD3,&H87,&H7C,&HE6,&H0F,&HD3,&H85 5530 DATA &H3E,&H80,&HD3,&H86,&HDB,&H84,&HFE,&HFF,&H20,&H09,&H23,&HA7,&H11 5540 DATA &H10,0,&HED,&H52,&H20,&HD5,&H22,&HE3,&HD5,&HC9,&H12,&H34 «eof»