DataMuseum.dk

Presents historical artifacts from the history of:

Christian Rovsing CR7, CR8 & CR16 CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Christian Rovsing CR7, CR8 & CR16 CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦232eaa1cf⟧ TextFile

    Length: 4096 (0x1000)
    Types: TextFile
    Names: »EPROM.BAS«

Derivation

└─⟦a2831e659⟧ Bits:30004217 MBASIC r5.21 og BASIC programmer
    └─ ⟦this⟧ »EPROM.BAS« 

TextFile

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»