
Je to moja blbinka, ktorá mi hodne pomáha, stále treba prerátavať adresy v 64kbyte adresnom priestore počítača SBC 6502 (a samozrejme nielen u neho) - prvý stĺpik má rozsah 1÷64, druhý dekadicky počítača v rozsahu 0÷63d, nasleduje prepočet do hexa tvaru 0÷3Fh. Následne je tam adresný rozsah daného kilobytu dekadicky a nakoniec nasleduje aj jeho verzia v hexa tvare. Dosť mi to pomáha, hlavne ak potrebujem dekódovať adresu, pretože sa pri prepočtoch človek ľahko stratí. Takže - ak toto využijete, fajn, poteší to, nemusíte si prácne prepočítavať. Prvý stĺpik je určený pre tých, ktorí majú problém pre prepočítavaní nultého kbyte.
|
IPT - Igiho |
pomocná |
tabuľka: |
|
|
|
|
|
|
|
|
|
|
|
| Range |
Range |
Range |
Adress |
Adress |
| kbyte |
kbyte |
kbyte |
range |
range |
| k: |
dec: |
hex: |
dec: |
hex: |
| 1 |
0 |
0 |
0- 1023 |
0000-03FF |
| 2 |
1 |
1 |
1024- 2047 |
0400-07FF |
| 3 |
2 |
2 |
2048- 3071 |
0800-0BFF |
| 4 |
3 |
3 |
3072- 4095 |
0C00-0FFF |
| 5 |
4 |
4 |
4096- 5119 |
1000-13FF |
| 6 |
5 |
5 |
5120- 6143 |
1400-17FF |
| 7 |
6 |
6 |
6144- 7167 |
1800-1BFF |
| 8 |
7 |
7 |
7168- 8191 |
1C00-1FFF |
| 9 |
8 |
8 |
8192- 9215 |
2000-23FF |
| 10 |
9 |
9 |
9216-10239 |
2400-27FF |
| 11 |
10 |
0A |
10240-11263 |
2800-2BFF |
| 12 |
11 |
0B |
11264-12287 |
2C00-2FFF |
| 13 |
12 |
0C |
12288-13311 |
3000-33FF |
| 14 |
13 |
0D |
13312-14335 |
3400-37FF |
| 15 |
14 |
0E |
14336-15359 |
3800-3BFF |
| 16 |
15 |
0F |
15360-16383 |
3C00-3FFF |
| 17 |
16 |
10 |
16384-17407 |
4000-43FF |
| 18 |
17 |
11 |
17408-18431 |
4400-47FF |
| 19 |
18 |
12 |
18432-19455 |
4800-4BFF |
| 20 |
19 |
13 |
19456-20479 |
4C00-4FFF |
| 21 |
20 |
14 |
20480-21503 |
5000-53FF |
| 22 |
21 |
15 |
21504-22527 |
5400-57FF |
| 23 |
22 |
16 |
22528-23551 |
5800-5BFF |
| 24 |
23 |
17 |
23552-24575 |
5C00-5FFF |
| 25 |
24 |
18 |
24576-25599 |
6000-63FF |
| 26 |
25 |
19 |
25600-26623 |
6400-67FF |
| 27 |
26 |
1A |
26624-27647 |
6800-6BFF |
| 28 |
27 |
1B |
27648-28671 |
6C00-6FFF |
| 29 |
28 |
1C |
28672-29695 |
7000-73FF |
| 30 |
29 |
1D |
29696-30719 |
7400-77FF |
| 31 |
30 |
1E |
30720-31743 |
7800-7BFF |
| 32 |
31 |
1F |
31744-32767 |
7C00-7FFF |
| 33 |
32 |
20 |
32768-33791 |
8000-83FF |
| 34 |
33 |
21 |
33792-34815 |
8400-87FF |
| 35 |
34 |
22 |
34816-35839 |
8800-8BFF |
| 36 |
35 |
23 |
35840-36863 |
8C00-8FFF |
| 37 |
36 |
24 |
36864-37887 |
9000-93FF |
| 38 |
37 |
25 |
37888-38911 |
9400-97FF |
| 39 |
38 |
26 |
38912-39935 |
9800-9BFF |
| 40 |
39 |
27 |
39936-40959 |
9C00-9FFF |
| 41 |
40 |
28 |
40960-41983 |
A000-A3FF |
| 42 |
41 |
29 |
41984-43007 |
A400-A7FF |
| 43 |
42 |
2A |
43008-44031 |
A800-ABFF |
| 44 |
43 |
2B |
44032-45055 |
AC00-AFFF |
| 45 |
44 |
2C |
45056-46079 |
B000-B3FF |
| 46 |
45 |
2D |
46080-47103 |
B400-B7FF |
| 47 |
46 |
2E |
47104-48127 |
B800-BBFF |
| 48 |
47 |
2F |
48128-49151 |
BC00-BFFF |
| 49 |
48 |
30 |
49152-50175 |
C000-C3FF |
| 50 |
49 |
31 |
50176-51199 |
C400-C7FF |
| 51 |
50 |
32 |
51200-52223 |
C800-CBFF |
| 52 |
51 |
33 |
52224-53247 |
CC00-CFFF |
| 53 |
52 |
34 |
53248-54271 |
D000-D3FF |
| 54 |
53 |
35 |
54272-55295 |
D400-D7FF |
| 55 |
54 |
36 |
55296-56319 |
D800-DBFF |
| 56 |
55 |
37 |
56320-57343 |
DC00-DFFF |
| 57 |
56 |
38 |
57344-58367 |
E000-E3FF |
| 58 |
57 |
39 |
58368-59391 |
E400-E7FF |
| 59 |
58 |
3A |
59392-60415 |
E800-EBFF |
| 60 |
59 |
3B |
60416-61439 |
EC00-EFFF |
| 61 |
60 |
3C |
61440-62463 |
F000-F3FF |
| 62 |
61 |
3D |
62464-63487 |
F400-F7FF |
| 63 |
62 |
3E |
63488-64511 |
F800-FBFF |
| 64 |
63 |
3F |
64512-65535 |
FC00-FFFF |
Program ktorý vygeneruje popísanú tabuľku:
1000 CLEAR:DIM D$(16):D$="0123456789ABCDEF"
1001 ? CHR$(12):POKE 15,80
1005 ?"Range Range Range Adress Adress"
1006 ?" k: dec: hex: dec: hex:"
1007 ?
1010 Q=1
1020 FOR G=0 TO 63
1022 IF G=0 THEN S=0:GOTO 1030
1025 S=G*1024: IF S=-1 THEN S=1
1030 ?Q" "G" ";:DEC=G:GOSUB 8000
1035 ? " "S;"-";:? (G*1024+1023);" ";
1040 DEC=S:GOSUB 8000:?"-";:DEC=G*1024+1023:GOSUB 8000:?" "
1065 Q=Q+1
1066 FOR K=1 TO 500:NEXT K
1070 NEXT G
1100 END
8000 NUM=DEC:GOSUB 8500:?N$;:RETURN
8500 REM Conversion Dec to Hex
8510 DIV=4096
8520 FOR I=1 TO 4
8530 N=INT(NUM/DIV)
8535 IF I=1 THEN I$=MID$(D$,N+1,1)
8536 IF I=2 THEN G$=MID$(D$,N+1,1)
8537 IF I=3 THEN O$=MID$(D$,N+1,1)
8538 IF I=4 THEN R$=MID$(D$,N+1,1)
8540 NUM=NUM-DIV*N:DIV=DIV/16
8550 NEXT I
8555 N$=I$+G$+O$+R$
8560 RETURN
Poznámka: riadok 1066 má funkciu oneskorovacej slučky, ak ho zmažete výpis prebehne bez oneskorenia v jednotlivých riadkov. Program by sa určite dal optimalizovať, ale funguje aj v tomto stave a svoju úlohu plní.
__________________________________________________________
Návrat do všetkých pokračovaní o SBC6502:
/igi/post/SBC6502-0-UvodIntroduction.aspx
____________________________________________________
Vaše hodnotenie, Rate post: