Hex Code Memory Loader

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

Content

Appears On

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

Related Products

Related Articles

Related Content

Image 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 
\n1000 REM %M%O%V%E% %C%U%R%S%O%R% %N%E%G%A%T%I%V%E%L%Y
\n1010 GOSUB 450
\n1020 IF LEN I$=1 THEN LET CM=1
\n1030 IF LEN I$>1 THEN LET CM=VAL I$(2 TO )
\n1040 LET CI=CI-CM
\n1050 IF CI<0 THEN LET CI=0
\n1060 GOSUB 400
\n1070 RETURN 
\n1100 REM %P%R%I%N%T
\n1110 CLS 
\n1120 PRINT "RAMTOP= ";RT
\n1130 PRINT "HEX CODE:"
\n1140 PRINT " ";
\n1150 LET CI=0
\n1160 FOR J=1 TO LEN H$/2
\n1170 PRINT H$(2*J-1 TO 2*J)+" ";
\n1185 LET CI=CI+1
\n1187 IF CI=10*INT (CI/10) THEN PRINT "  ";
\n1190 NEXT J
\n1192 GOSUB 400
\n1195 RETURN 
\n1300 REM %R%E%L%A%T%I%V%E% %J%U%M%P%S
\n1310 LET JCI=VAL I$(2 TO )
\n1320 LET JS=JCI-CI-1
\n1325 GOSUB 2000
\n1330 IF JS>=-128 AND JS<=127 THEN GOTO 1357
\n1335 CLS 
\n1340 PRINT AT 10,6;"INVALID JUMP SIZE"
\n1345 FOR Q=1 TO 20
\n1346 NEXT Q
\n1350 GOSUB 1100
\n1355 RETURN 
\n1357 IF JS<0 THEN LET JS=JS+256
\n1360 LET X1=INT (JS/16)
\n1365 LET X0=JS-16*X1
\n1367 LET X$=CHR$ (X1+28)+CHR$ (X0+28)
\n1370 LET H$=H$( TO 2*CI)+X$+H$(2*CI+1 TO )
\n1375 LET CI=CI+1
\n1380 GOSUB 1100
\n1390 RETURN 
\n1400 REM %S%A%V%E
\n1410 PRINT "%S%A%V%E.INPUT PROGRAM NAME.                                        (DEFAULT NAME ""H"")"
\n1420 INPUT N$
\n1430 IF N$="" THEN LET N$="H"
\n1440 SAVE N$
\n1450 CLS 
\n1460 GOTO 10
\n1600 REM %D%E%L%E%T%E
\n1610 IF LEN I$=1 THEN LET K=1
\n1620 IF LEN I$>1 THEN LET K=VAL I$(2 TO )
\n1630 LET H$=H$( TO 2*CI)+H$(2*CI+2*K+1 TO )
\n1640 RETURN 
\n2000 REM %A%S%T%E%R%I%S%K% %A%D%J%U%S%T
\n2010 IF JS<0 THEN LET W$=H$(2*JCI+1 TO 2*CI)
\n2020 IF JS>=0 THEN LET W$=H$(2*CI+1 TO 2*JCI)
\n2030 LET SC=0
\n2040 FOR T=1 TO LEN W$
\n2050 IF W$(T)="*" THEN LET SC=SC+1
\n2060 NEXT T
\n2070 IF JS<0 THEN LET JS=JS+SC/2
\n2080 IF JS>0 THEN LET JS=JS-SC/2
\n2090 RETURN 
\n3000 REM %D%O%W%N%L%O%A%D
\n3010 LET LH=0
\n3020 FOR I=1 TO LEN H$
\n3030 IF H$(I)<>"*" THEN LET LH=LH+1
\n3040 NEXT I
\n3050 LET LH=LH/2+9
\n3060 PRINT AT 21,0;"LENGHT ";LH;" BYTES."
\n3070 LET H$="00002A04404E23462B118240C5011D0009C1EDB03E1EED47FD210040C9"+H$
\n3080 GOSUB 800
\n3090 LET LS=INT (LH/256)
\n3100 LET LJ=LH-256*LS
\n3110 POKE RT,LJ
\n3120 POKE RT+1,LS
\n3130 RETURN 
\n9000 REM %R%E%S%E%R%V%E% %M%E%M%O%R%Y
\n9010 PRINT "HOW MANY 256-BYTE BLOCKS?"
\n9020 INPUT NB
\n9030 PRINT "AFTER LIST PRESS RUN"
\n9040 FOR T=1 TO 20
\n9050 NEXT T
\n9060 POKE 16389,128-NB
\n9070 PRINT USR 1040
\n9080 STOP 
\n9090 CLEAR 
\n9100 SAVE "1024%5"
\n9110 RUN 

People

No people associated with this content.

Scroll to Top