Hex Code Memory Loader

Date: 198x
Type: Program
Platform(s): TS 1000

Appears on

Assembled by Tim Ward from many sources. Contains programs 10211 – 10251.

Gallery

Hex Code Memory Loader

Source Code

  10 PRINT "HAVE YOU RESERVED MEMORY?"
  20 INPUT A$
  30 IF A$="" THEN GOTO 50
  40 IF A$(1)="N" THEN GOTO 9000
  50 CLS 
  60 LET RT=PEEK 16388+256*PEEK 16389
  70 PRINT "RAMTOP= ";RT
  80 PRINT "HEX CODE:"
 100 LET CI=0
 110 LET H$=""
 120 GOSUB 400
 130 DIM F(20)
 131 LET F(1)=700
 132 LET F(6)=800
 133 LET F(7)=900
 134 LET F(8)=1000
 135 LET F(10)=1100
 136 LET F(11)=1200
 137 LET F(12)=1300
 138 LET F(13)=1400
 139 LET F(14)=1500
 140 LET F(18)=1600
 141 LET F(17)=3000
 200 INPUT I$
 210 LET A=0
 220 LET A=A+1
 230 IF A>LEN I$ THEN GOTO 300
 240 IF I$(A)<>" " THEN GOTO 220
 250 LET I$=I$( TO A-1)+I$(A+1 TO )
 260 GOTO 230
 300 IF CODE I$(1)>=44 THEN GOTO 500
 310 LET I$=I$+"**"
 320 LET H$=H$( TO 2*CI)+I$+H$(2*CI+1 TO )
 330 GOSUB 450
 340 GOSUB 600
 350 GOSUB 400
 360 GOTO 200
 400 REM %P%R%I%N%T% %C%U%R%S%O%R
 410 PRINT AT 2+INT (CI/10),3*(CI-10*INT (CI/10));"%>";
 420 RETURN 
 450 REM %U%N%P%R%I%N%T% %C%U%R%S%O%R
 460 PRINT AT 2+INT (CI/10),3*(CI-10*INT (CI/10));" ";
 470 RETURN 
 500 REM %R%O%U%T%I%N%E%S
 510 GOSUB F(CODE I$(1)-43)
 520 GOTO 200
 600 REM %P%R%I%N%T% %A%P%P%E%N%D%E%D% %T%E%X%T
 610 FOR J=1 TO LEN I$/2
 620 PRINT I$(2*J-1 TO 2*J)+" ";
 630 LET CI=CI+1
 640 IF CI=10*INT (CI/10) THEN PRINT "  ";
 650 NEXT J
 660 RETURN 
 700 REM %G%O
 710 CLS 
 720 PRINT "NUMBER OF DATA BYTES?"
 730 INPUT D
 740 CLS 
 750 LET Y=USR (RT+D)
 760 RETURN 
 800 REM %L%O%A%D
 810 LET H$=H$+"3E1EED47FD210040C9"
 820 LET J=RT-1
 830 LET I=-1
 840 LET J=J+1
 850 LET I=I+2
 860 IF I>LEN I$ THEN RETURN 
 870 IF H$(I)="*" THEN GOTO 850
 880 POKE J,16*(CODE H$(I)-28)+CODE H$(I+1)-28
 890 GOTO 840
 900 REM %M%O%V%E% %C%U%R%S%O%R% %P%O%S%I%T%I%V%E%L%Y
 910 GOSUB 450
 920 IF LEN I$=1 THEN LET CM=1
 930 IF LEN I$>1 THEN LET CM=VAL I$(2 TO )
 940 LET CI=CI+CM
 950 IF CI>LEN H$/2 THEN LET CI=LEN H$/2
 960 GOSUB 400
 970 RETURN 
1000 REM %M%O%V%E% %C%U%R%S%O%R% %N%E%G%A%T%I%V%E%L%Y
1010 GOSUB 450
1020 IF LEN I$=1 THEN LET CM=1
1030 IF LEN I$>1 THEN LET CM=VAL I$(2 TO )
1040 LET CI=CI-CM
1050 IF CI<0 THEN LET CI=0
1060 GOSUB 400
1070 RETURN 
1100 REM %P%R%I%N%T
1110 CLS 
1120 PRINT "RAMTOP= ";RT
1130 PRINT "HEX CODE:"
1140 PRINT " ";
1150 LET CI=0
1160 FOR J=1 TO LEN H$/2
1170 PRINT H$(2*J-1 TO 2*J)+" ";
1185 LET CI=CI+1
1187 IF CI=10*INT (CI/10) THEN PRINT "  ";
1190 NEXT J
1192 GOSUB 400
1195 RETURN 
1300 REM %R%E%L%A%T%I%V%E% %J%U%M%P%S
1310 LET JCI=VAL I$(2 TO )
1320 LET JS=JCI-CI-1
1325 GOSUB 2000
1330 IF JS>=-128 AND JS<=127 THEN GOTO 1357
1335 CLS 
1340 PRINT AT 10,6;"INVALID JUMP SIZE"
1345 FOR Q=1 TO 20
1346 NEXT Q
1350 GOSUB 1100
1355 RETURN 
1357 IF JS<0 THEN LET JS=JS+256
1360 LET X1=INT (JS/16)
1365 LET X0=JS-16*X1
1367 LET X$=CHR$ (X1+28)+CHR$ (X0+28)
1370 LET H$=H$( TO 2*CI)+X$+H$(2*CI+1 TO )
1375 LET CI=CI+1
1380 GOSUB 1100
1390 RETURN 
1400 REM %S%A%V%E
1410 PRINT "%S%A%V%E.INPUT PROGRAM NAME.                                        (DEFAULT NAME ""H"")"
1420 INPUT N$
1430 IF N$="" THEN LET N$="H"
1440 SAVE N$
1450 CLS 
1460 GOTO 10
1600 REM %D%E%L%E%T%E
1610 IF LEN I$=1 THEN LET K=1
1620 IF LEN I$>1 THEN LET K=VAL I$(2 TO )
1630 LET H$=H$( TO 2*CI)+H$(2*CI+2*K+1 TO )
1640 RETURN 
2000 REM %A%S%T%E%R%I%S%K% %A%D%J%U%S%T
2010 IF JS<0 THEN LET W$=H$(2*JCI+1 TO 2*CI)
2020 IF JS>=0 THEN LET W$=H$(2*CI+1 TO 2*JCI)
2030 LET SC=0
2040 FOR T=1 TO LEN W$
2050 IF W$(T)="*" THEN LET SC=SC+1
2060 NEXT T
2070 IF JS<0 THEN LET JS=JS+SC/2
2080 IF JS>0 THEN LET JS=JS-SC/2
2090 RETURN 
3000 REM %D%O%W%N%L%O%A%D
3010 LET LH=0
3020 FOR I=1 TO LEN H$
3030 IF H$(I)<>"*" THEN LET LH=LH+1
3040 NEXT I
3050 LET LH=LH/2+9
3060 PRINT AT 21,0;"LENGHT ";LH;" BYTES."
3070 LET H$="00002A04404E23462B118240C5011D0009C1EDB03E1EED47FD210040C9"+H$
3080 GOSUB 800
3090 LET LS=INT (LH/256)
3100 LET LJ=LH-256*LS
3110 POKE RT,LJ
3120 POKE RT+1,LS
3130 RETURN 
9000 REM %R%E%S%E%R%V%E% %M%E%M%O%R%Y
9010 PRINT "HOW MANY 256-BYTE BLOCKS?"
9020 INPUT NB
9030 PRINT "AFTER LIST PRESS RUN"
9040 FOR T=1 TO 20
9050 NEXT T
9060 POKE 16389,128-NB
9070 PRINT USR 1040
9080 STOP 
9090 CLEAR 
9100 SAVE "1024%5"
9110 RUN 

People

No people associated with this content.

Scroll to Top