1 GOTO 100
5 ' CREATE BITS
10 DIM BI(9)
20 TMP = BY
30 FOR BP = 7 TO 0 STEP -1
40 BV = INT(2 ^ BP)
50 IF TMP>=BV THEN TMP=TMP-BV : BI(BP)=1 ELSE BI(BP)=0
60 NEXT BP
70 RETURN
99 ' START
100 INPUT "START BYTE:";BY$
105 IF BY$ = "" THEN 170 ELSE BY=VAL(BY$)-1
110 FOR X = 1 TO 14
120 BY = BY + 1
130 GOSUB 20
140 PRINT BY;BI(7);BI(6);BI(5);BI(4);BI(3);BI(2);BI(1);BI(0)
150 NEXT X
160 GOTO 100
170 PRINT "BYE"
It worked. But it's very slow
Any hints and tips to make is faster or something else?
... too many ideas and too little time ... Related stuff written in Python:
Dragon 32 emulator / PyDC - Python Dragon 32 converter: https://github.com/jedie/DragonPy
DWLOAD server / Dragon-Lib and other stuff: https://github.com/6809
10 FOR V=0 TO 255
20 PRINT CHR$(48-((V AND 128)=128));CHR$(48-((V AND 64)=64));CHR$(48-((V AND 32)=32));CHR$(48-((V AND 16)=16));CHR$(48-((V AND 8)=8));CHR$(48-((V AND 4)=4));CHR$(48-((V AND 2)=2));CHR$(48-((V AND 1)=1))
30 NEXT V
10 CLS
20 LINE INPUT"START ADDRESS (HEX) >";M$
30 IF M$="" THEN 10
40 M=VAL("&H"+M$):E$=CHR$(10):X=0:FOR L=1TO15
50 IF M+X=65536 THEN M=0:X=0
60 P$="":A$=HEX$(M+X):T=PEEK(M+X):IF LEN(A$)<4 THEN FOR Z=1TO 4-LEN(A$):P$=P$+"0":NEXT Z
70 B7=0:IF T=>128 THEN B7=1:T=T-128
80 B6=0:IF T=>64 THEN B6=1:T=T-64
90 B5=0:IF T=>32 THEN B5=1:T=T-32
100 B4=0:IF T=>16 THEN B4=1:T=T-16
110 B3=0:IF T=>8 THEN B3=1:T=T-8
120 B2=0:IF T=>4 THEN B2=1:T=T-4
130 B1=0:IF T=>2 THEN B1=1:T=T-2
140 B0=T:PRINT P$;A$;" ";B7;B6;B5;B4;B3;B2;B1;B0;E$:X=X+1:NEXT L
150 GOTO20
120 CLS
130 LINE INPUT "START ADDRESS (DEZ) >";BY$
140 IF BY$ = "" THEN 1000
145 BY=VAL(BY$)
146 IF BY<0 OR BY>255 THEN 120
150 CLS
160 FOR X = 1 TO 15
180 ' CREATE BITS
190 T = BY
200 B0=0:B1=0:B2=0:B3=0:B4=0:B5=0:B6=0:B7=0
210 IF T=>128 THEN B7=1:T=T-128
220 IF T=>64 THEN B6=1:T=T-64
230 IF T=>32 THEN B5=1:T=T-32
240 IF T=>16 THEN B4=1:T=T-16
250 IF T=>8 THEN B3=1:T=T-8
260 IF T=>4 THEN B2=1:T=T-4
270 IF T=>2 THEN B1=1:T=T-2
280 IF T=>1 THEN B0=1:T=T-1
290 PRINT RIGHT$(" "+STR$(BY),3);":";B7;B6;B5;B4;B3;B2;B1;B0
300 BY = BY + 1
310 IF BY>255 THEN BY=0
320 NEXT X
330 GOTO 130
1000 PRINT "BYE"
... too many ideas and too little time ... Related stuff written in Python:
Dragon 32 emulator / PyDC - Python Dragon 32 converter: https://github.com/jedie/DragonPy
DWLOAD server / Dragon-Lib and other stuff: https://github.com/6809
10 CLS
20 LINE INPUT"START ADDRESS (HEX) >";M$
30 IF M$="" THEN 10
40 M=VAL("&H"+M$):E$=CHR$(10):X=0:FOR L=1TO15
50 IF M+X=65536 THEN M=0:X=0
60 P$="":A$=HEX$(M+X):T=PEEK(M+X):IF LEN(A$)<4 THEN FOR Z=1TO 4-LEN(A$):P$=P$+"0":NEXT Z
70 B7=0:IF T AND 128 THEN B7=1
80 B6=0:IF T AND 64 THEN B6=1
90 B5=0:IF T AND 32 THEN B5=1
100 B4=0:IF T AND 16 THEN B4=1
110 B3=0:IF T AND 8 THEN B3=1
120 B2=0:IF T AND 4 THEN B2=1
130 B1=0:IF T AND 2 THEN B1=1
140 B0=T AND 1:PRINT P$;A$;" ";B7;B6;B5;B4;B3;B2;B1;B0;E$:X=X+1:NEXT L
150 GOTO20
10 CLS
20 LINE INPUT"START ADDRESS (DEC) >";M$
30 L=LEN(M$):IF L<1 OR L>5 THEN 10
40 FORI=1TOL:M=ASC(MID$(M$,I,1)):IF M<48 OR M>57 THEN 10 ELSE NEXT
50 M=VAL(M$):IF M<0 OR M>65535 THEN 10
60 E$=CHR$(10):X=0:FOR L=1TO15
70 IF M+X=65536 THEN M=0:X=0
80 P$="":M$=STR$(M+X):A$=RIGHT$(M$,LEN(M$)-1)+" ":T=PEEK(M+X):IF M+X <10000 THEN FOR Z=1TO 6-LEN(M$):P$=P$+"0":NEXT Z
90 B7=0:IF T AND 128 THEN B7=1
100 B6=0:IF T AND 64 THEN B6=1
110 B5=0:IF T AND 32 THEN B5=1
120 B4=0:IF T AND 16 THEN B4=1
130 B3=0:IF T AND 8 THEN B3=1
140 B2=0:IF T AND 4 THEN B2=1
150 B1=0:IF T AND 2 THEN B1=1
160 B0=T AND 1:PRINT P$;A$;B7;B6;B5;B4;B3;B2;B1;B0;E$:X=X+1:NEXT L
170 GOTO20
... too many ideas and too little time ... Related stuff written in Python:
Dragon 32 emulator / PyDC - Python Dragon 32 converter: https://github.com/jedie/DragonPy
DWLOAD server / Dragon-Lib and other stuff: https://github.com/6809
10 CLS
20 LINE INPUT"START ADDRESS (HEX) >";M$
30 IF M$="" THEN 10
40 M=VAL("&H"+M$):E$=CHR$(10):X=0:FOR L=1TO15
50 IF M+X=65536 THEN M=0:X=0
60 P$="":A$=HEX$(M+X):T=PEEK(M+X):IF LEN(A$)<4 THEN FOR Z=1TO 4-LEN(A$):P$=P$+"0":NEXT Z
70 PRINT P$;A$;" ";SGN(T AND 128);SGN(T AND 64);SGN(T AND 32);SGN(T AND 16);SGN(T AND 8);SGN(T AND 4);SGN(T AND 2);(T AND 1);E$:X=X+1:NEXT L
80 GOTO20
10 CLS
20 LINE INPUT"START ADDRESS (DEC) >";M$
30 L=LEN(M$):IF L<1 OR L>5 THEN 10
40 FORI=1TOL:M=ASC(MID$(M$,I,1)):IF M<48 OR M>57 THEN 10 ELSE NEXT
50 M=VAL(M$):IF M<0 OR M>65535 THEN 10
60 E$=CHR$(10):X=0:FOR L=1TO15
70 IF M+X=65536 THEN M=0:X=0
80 P$="":M$=STR$(M+X):A$=RIGHT$(M$,LEN(M$)-1)+" ":T=PEEK(M+X):IF M+X <10000 THEN FOR Z=1TO 6-LEN(M$):P$=P$+"0":NEXT Z
90 PRINT P$;A$;SGN(T AND 128);SGN(T AND 64);SGN(T AND 32);SGN(T AND 16);SGN(T AND 8);SGN(T AND 4);SGN(T AND 2);(T AND 1);E$:X=X+1:NEXT L
100 GOTO20