Skip to content

Instantly share code, notes, and snippets.

@konsumer
Created March 23, 2015 16:27
Show Gist options
  • Save konsumer/d7841c459b3bfc8b2ac3 to your computer and use it in GitHub Desktop.
Save konsumer/d7841c459b3bfc8b2ac3 to your computer and use it in GitHub Desktop.
telehack scripts
10 REM HEXREAD.BAS BY TECHMAGE@TELEHACK.COM
20 PRINT "STARTING ADDRESS (DEC)";
21 INPUT A: REM STARTING ADDRESS (DECIMAL)
25 PRINT "DATA PER LINE";
26 INPUT L: REM LINE LENGTH
30 PRINT "LINES PER PAGE";
31 INPUT P: REM PAGE LENGTH
35 DIM D(L): REM DATA ARRAY
40 AC=A: REM CURRENT ADDRESS (INCREMENTS)
50 REM *** BEGIN PAGE LOOP ***
55 FOR IA=1 TO P
60 GOSUB 100
65 GOSUB 200
70 GOSUB 300
75 GOSUB 400
80 AC=AC+L
83 PRINT: REM NEW LINE
85 NEXT
90 GOSUB 500
95 GOTO 600
100 REM *** GET DATA ARRAY ***
105 FOR IB=1 TO L
110 D(IB)=PEEK(AC+(IB-1))
115 NEXT
120 RETURN
125 D=PEEK(AC)
130 PRINT HEX$(D);" ";
200 REM *** PRINT ADDRESS ***
205 FOR J=1 TO 8-LEN(HEX$(AC))
210 PRINT "0";
215 NEXT
220 PRINT HEX$(AC);" ";
225 RETURN
300 REM *** PRINT HEX DATA ***
305 FOR IC=1 TO L
310 H$=HEX$(D(IC))
315 IF LEN(H$)=1 THEN PRINT "0"+H$+" ";
320 IF LEN(H$)>1 THEN PRINT H$+" ";
325 NEXT
330 RETURN
400 REM *** PRINT ASCII DATA ***
405 FOR ID=1 TO L
410 IF D(ID)>=32 AND D(ID)<=126 THEN PRINT CHR$(D(ID));
415 IF D(ID)<32 OR D(ID)>126 THEN PRINT ".";
420 NEXT
425 RETURN
500 REM *** PRINT PAGE FOOTER ***
505 PRINT "---0x";HEX$(AC-(L*P));"/0x";HEX$(AC-1);"---------"
600 PRINT "CONTINUE";
605 INPUT C$: REM CONTINUE? RESPONSE
610 IF C$="Y" OR C$="y" THEN GOTO 55
615 END
5 REM MEMSRCH.BAS BY TECHMAGE@TELEHACK.COM
10 PRINT "START ADDRESS (DEC)";
15 INPUT AS: REM STARTING ADDRESS (DECIMAL)
20 PRINT "END ADDRESS (DEC)";
25 INPUT AE: REM ENDING ADDRESS (DECIMAL)
30 PRINT "SEARCH STRING";
35 INPUT S$: REM SEARCH STRING
40 L=LEN(S$): REM LENGTH OF SEARCH STRING
45 DIM AA(L): REM ADDRESS ARRAY
50 AC=AS: REM CURRENT ADDRESS (INCREMENTS)
100 D=PEEK(AC): REM DATA
110 IF CHR$(D) = MID$(S$,1,1) THEN GOTO 200
115 AC=AC+1
120 IF AC >= AE THEN GOTO 300
125 GOTO 100
200 REM LOOP TO MATCH ENTIRE STRING
205 FOR I = 1 TO L
210 IF CHR$(PEEK(AC+I-1)) <> MID$(S$,I,1) THEN GOTO 115
215 AA(I)=AC+I-1
220 NEXT
225 GOTO 400
300 PRINT "SEARCH STRING ";
305 PRINT CHR$(34);S$;CHR$(34);
310 PRINT " NOT FOUND IN ADDRESS RANGE."
315 GOTO 420
400 PRINT "SEARCH STRING ";
405 PRINT CHR$(34);S$;CHR$(34);
410 PRINT " FOUND BETWEEN ADDRESSES";
415 PRINT AA(1);" AND ";AA(L);"."
420 END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment