ZX Utilities

ZX Machine Code Loader and List Remedy
From Your Computer March 1983. By Trevor Hill

  1 REM 40 CHARACTERS TO BE REPLACED BY MACHINE CODE
 10 DIM M$(3040)
 20 RAND USR 16514
 30 SAVE "ROUTINES"
 40 RAND USR 16531
 90 STOP
100 PRINT "LIST FROM"
110 GOSUB 8100
120 LET A = X
130 GOSUB 8000
140 PRINT X$; " ";
150 FOR J = 1 TO 4
160 LET X = PEEK A
170 GOSUB 8050
180 PRINT X$
190 LET A = A+1
200 NEXT J
210 PRINT
220 GOTO 130
300 PRINT "WRITE TO"
310 GOSUB 8100
320 LET A = X
330 SCROLL
340 LET X = A
350 GOSUB 8000
360 PRINT X$
370 INPUT A$
380 IF A$ = "S" THEN STOP
390 IF LEN A$ <> 2*INT(LEN A$/2) THEN GOTO 370
400 PRINT A$
410 LET X$ = A$( TO 2)
420 GOSUB 8120
430 POKE A, X
440 LET A = A + 1
450 LET A$ = A$( 3 TO )
460 IF A$ = "" THEN GOTO 410
470 GOTO 330
500 PRINT "RUN FROM"
510 GOSUB 8100
520 CLS
530 RAND USR X
540 STOP
8000 LET X = INT A/256
8010 LET Y = X
8020 GOSUB 8050
8030 LET X = A - Y * 256
8040 GOTO 8060
8050 LET X$ = ""
8060 LET K = INT ( X/16)
8070 LET X$ = X$ + CHR$( K + 28)
8080 LET X$ = X$ + CHR$( X - K*16 + 28)
8090 RETURN
8100 INPUT X$
8110 IF LEN X$ <> 4 THEN GOTO 8100
8120 LET X = 0
8130 FOR I = 1 TO LEN X$
8140 LET X = X * 16 + CODE X$(I) - 28
8150 NEXT I

Hex dump of LIST remedy. Relocatable machine code

16 15 D5 01 00 14 CD F5 08 21 7D 40 46 23 4E CD
98 0A D1 1E 16 D5 23 46 05 23 23 AF 20 EE 7E FE
7E 20 09 78 01 05 00 09 91 47 18 0C CB 77 F5 C5
C4 4B 09 C1 F1 CC 10 00 23 3A 3A 40 FE 03 20 51
D1 15 1D AF BA 20 03 53 1E 22 D5 C5 E5 20 1E 2A
0C 40 11 F8 02 19 E5 36 80 2A 25 40 11 7F FD A7
ED 52 19 CC 08 00 0C 24 28 EF E1 36 00 2A 0C 40
E5 11 21 00 19 D1 01 B5 02 ED B0 AF 06 20 13 12
10 FC 3A 39 40 4F 3B 21 91 4F 06 14 CD F5 08 E1
C1 10 3B 3E 76 D7 23 7E FE 76 20 80 D1 C9