-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathRAMTEST.BAS
165 lines (150 loc) · 3.28 KB
/
RAMTEST.BAS
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
10 RB=&H0106: ADDR=&H0104
20 B2R=&H0394: R2B=&H03A9
30 ST=&H8000: BANK=&H0188
40 DIM X$(0)*24
50*DSP24: GOSUB *ADJUST
60 FOR J=0 TO 5
70 H$=HEX$(ST+J*4)+": "
80 T$="| "
90 X$(0)=""
100 FOR I=0 TO 3
110 A=PEEK(RB+J*4+I)
120 IF A<16 THEN
130 X$(0)=X$(0)+"0"
140 ENDIF
150 IF A<16 OR A>126 THEN
160 T$=T$+"."
170 ELSE
180 T$=T$+CHR$(A)
190 ENDIF
200 X$(0)=X$(0)+HEX$(A)+" "
210 NEXT
220 LOCATE 0,J: PRINT H$+X$(0)+T$
230 NEXT
240*WEHT00: H$=INKEY$
250 IF H$="" THEN *WEHT00
260 IF H$="Q" THEN *THEEND
270 IF H$="J" THEN
280 ST=ST+24
290 GOTO *DSP24
300 ENDIF
310 IF H$=CHR$(5) THEN
320 ST=ST+4
330 GOTO *DSP24
340 ENDIF
350 IF H$="K" THEN
360 ST=ST-24
370 IF ST<&H8000 THEN ST=&H8000
380 GOTO *DSP24
390 ENDIF
400 IF H$=CHR$(4) THEN
410 ST=ST-4
420 IF ST<&H8000 THEN ST=&H8000
430 GOTO *DSP24
440 ENDIF
450 IF H$="G" THEN
460 LOCATE 6,1: PRINT "____________"
470 LOCATE 6,2: PRINT " GOTO "
480 LOCATE 6,3: PRINT " "
490 LOCATE 6,4: PRINT "____________"
500 LOCATE 7,3: INPUT "ADDR: ",H$
510 IF H$="" THEN *DSP24
520 WHILE LEN(H$)<4
530 H$="0"+H$
540 WEND
550 A=VAL("&H"+LEFT$(H$,2))
560 B=VAL("&H"+RIGHT$(H$,2))
570 A=A*256+B
580 IF A<&H8000 THEN *DSP24
590 IF A>&HBFE8 THEN *DSP24
600 ST=INT(A/16)
610 ST=ST*16
620 IF ST<&H8000 THEN ST=&H8000
630 GOTO *DSP24
640 ENDIF
650 IF H$="B" THEN
660 LOCATE 6,1: PRINT "____________"
670 LOCATE 6,2: PRINT " BANK # "
680 LOCATE 6,3: PRINT " "
690 LOCATE 6,4: PRINT "____________"
700 LOCATE 6,3: INPUT " NUM: 0-3? ",H$
710 IF H$<"0" OR H$>"3" THEN *DSP24
720 IF H$="0" THEN
730 POKE (BANK),&H40
740 ENDIF
750 IF H$="1" THEN
760 POKE (BANK),&H50
770 ENDIF
780 IF H$="2" THEN
790 POKE (BANK),&H60
800 ENDIF
810 IF H$="3" THEN
820 POKE (BANK),&H70
830 ENDIF
840 GOTO *DSP24
845 ENDIF
850 IF H$="Z" THEN
860 LOCATE 6,1: PRINT "____________"
870 LOCATE 6,2: PRINT " ZERO OUT "
880 LOCATE 6,3: PRINT " "
890 LOCATE 6,4: PRINT "____________"
900 LOCATE 6,3: INPUT " YOU SURE?",H$
910 IF H$<>"Y" THEN *DSP24
920 A=0: GOTO *FILLA
930 ENDIF
940 IF H$="S" THEN
950 LOCATE 6,1: PRINT "____________"
960 LOCATE 6,2: PRINT " STRING "
970 LOCATE 6,3: PRINT " "
980 LOCATE 6,4: PRINT "____________"
990 LOCATE 6,3: INPUT " FILL?",X$(0)
1000 IF X$(0)="" THEN *DSP24
1010 J=LEN(X$(0))
1020 IF J>23 THEN J=23
1030 FOR I=1 TO J
1040 POKE (RB+I-1),ASC(MID$(X$(0),I,1))
1050 NEXT
1060 POKE(RB+I-1),0
1070 CALL R2B
1080 GOTO *DSP24
1090 ENDIF
1100 IF H$="F" THEN
1110 LOCATE 6,1: PRINT "____________"
1120 LOCATE 6,2: PRINT " FILL OUT "
1130 LOCATE 6,3: PRINT " "
1140 LOCATE 6,4: PRINT "____________"
1150 LOCATE 7,3: INPUT "VALUE: ",H$
1160 IF H$="" THEN *DSP24
1170 IF LEN(H$)>2 THEN *DSP24
1180 A=VAL("&H"+H$)
1190*FILLA: FOR I=0 TO 23
1200 POKE (RB+I),A
1210 NEXT
1220 CALL R2B
1230 GOTO *DSP24
1240 ENDIF
1250 IF H$="H" THEN
1260 CLS
1270 PRINT "J: DOWN 24 : UP 24"
1280 PRINT "K: UP 24 : UP 4"
1290 PRINT "Z: ZERO OUT F: FILL"
1300 PRINT "S: STRING G: GO ADDR"
1310 PRINT "B: BANK # Q: QUIT"
1320 PRINT "PRESS SPACE TO CONTINUE"
1330 GCURSOR(70,15)
1340 GPRINT "04027F0204"
1350 GCURSOR(70,7)
1360 GPRINT "10207F2010"
1370*HELP: H$=INKEY$
1380 IF H$=" " THEN *DSP24
1390 GOTO *HELP
1400 ENDIF
1410 GOTO *WEHT00
1420*THEEND: END
1430*ADJUST: A=INT(ST/256)
1440 B=ST-(A*256)
1450 POKE (ADDR),B
1460 POKE (ADDR+1),A
1470 CALL B2R
1480 RETURN