PETSCII (PET Standard Code of Information Interchange), also known as CBM ASCII, PETSCII - C64 ASCII - CMB ASCII A# Character A# Character A# Character A# Character A# Character 32 [sp] 48 0 64 @ 80 P 96 —33 ! 49 1 65 A 81 Q 97 ♠
34 " 50 2 66 B 82 R 98 |
35 # 51 3 67 C 83 S 99 —
36 $ 52 4 68 D 84 T 100
![]()
37 % 53 5 69 E 85 U 101
38 & 54 6 70 F 86 V 102
39 ' 55 7 71 G 87 W 103
40 ( 56 8 72 H 88 X 104
41 ) 57 9 73 I 89 Y 105 ╮
42 * 58 : 74 J 90 Z 106 ╰
43 + 59 ; 75 K 91 [ 107 ╯
44 , 60 ( 76 L 92 £ 108
![]()
45 - 61 = 77 M 93 ] 109 \
46 . 62 ) 78 N 94 ↑ 110 /
47 / 63 ? 79 O 95 ← 111
![]()
Examples: 10 PRINT CHR$(40) When code is RUN, this will print ( 10 PRINT CHR$(64) When code is RUN, this will print @
This section below is for character storage in ROM and RAM order and *not* PETSCII (ASCII) order. RAM and ROM character order: Partial C64 character set - character number (char num) and character. R# Character R# Character R# Character R# Character R# Character 0 @ 13 M 26 Z 39 ' 52 4 1 A 14 N 27 [ 40 ( 53 5 2 B 15 O 28 £ 41 ) 54 6 3 C 16 P 29 ] 42 * 55 7 4 D 17 Q 30 ↑ 43 + 56 8 5 E 18 R 31 ← 44 , 57 9 6 F 19 S 32 [sp] 45 - 58 : 7 G 20 T 33 ! 46 . 59 ; 8 H 21 U 34 " 47 / 60 < 9 I 22 V 35 # 48 0 61 = 10 J 23 W 36 $ 49 1 62 > 11 K 24 X 37 % 50 2 63 ? 12 L 25 Y 38 & 51 3 64 —
C64 Basic Part II - Character manipulation Move charaters from ROM to RAM for manipulation: 100 rem copy rom routine 105 for i=0 to 26: read x: poke 828+i,x: next i 110 data 169,000,160,208,133,095,132,096 : rem LDA #0; LDY #$D0; STA 95, STY 96 115 data 169,000,160,224,133,090,132,091 : rem LDA #0; LDY #$E0; STA 90; STY 91 120 data 169,000,160,064,133,088,132,089 : rem LDA #0; LDY #$40; STA 88; STY 89 125 data 076,191,163 : rem JMP $A3BF 130 rem COPY FULL SET $D000-$DFFF -> $3000-$3FFF (POKE 12288 - 16383) 135 rem move char set rom into ram 140 poke 56334,peek(56334) and 254 : rem INTERRUPT OFF 145 poke 1,peek(1) and 251 : rem CHAR SET ROM ON 150 sys 828 : rem START COPY 155 poke 1,peek(1) or 4 : rem CHAR SET ROM OFF 160 poke 56334,peek(56334) or 1 : rem INTERRUPT ON 165 poke 53272,peek(53272) and 240 or 12 : rem CHAR SET RAM AT $3000 Each character in high resolution mode is formed by a matrix of 8 × 8 pixels, so there are 8 rows per character, each with their own POKE address. 8 pixels per row. Each row can be programmed by converting each pixel/binary value to a decimal and stored at the POKE address value. char RAM POKE num row 1 row 2 row 3 row 4 row 5 row 6 row 7 row 8 character 0 12288 12289 12290 12291 12292 12293 12294 12295 -> @ 1 12296 12297 12298 12299 12300 12301 12302 12303 -> A 2 12304 12305 12306 12307 12308 12309 12310 12311 -> B 3 12312 12313 12314 12315 12316 12317 12318 12319 -> C 4 12320 12321 12322 12323 12324 12325 12326 12327 -> D 5 12328 12329 12330 12331 12332 12333 12334 12335 -> E 6 12336 12337 12338 12339 12340 12341 12342 12343 -> F 7 12344 12345 12346 12347 12348 12349 12350 12351 -> G 8 12352 12353 12354 12355 12356 12357 12358 12359 -> H 9 12360 12361 12362 12363 12364 12365 12366 12367 -> I 10 12368 12369 12370 12371 12372 12373 12374 12375 -> J 11 12376 12377 12378 12379 12380 12381 12382 12383 -> K 12 12384 12385 12386 12387 12388 12389 12390 12391 -> L 13 12392 12393 12394 12395 12396 12397 12398 12399 -> M 14 12400 12401 12402 12403 12404 12405 12406 12407 -> N 21 12456 12457 12458 12459 12460 12461 12462 12463 -> U 22 12464 12465 12466 12467 12468 12469 12470 12471 -> V 23 12472 12473 12474 12475 12476 12477 12478 12479 -> W 24 12480 12481 12482 12483 12484 12485 12486 12487 -> X 25 12488 12489 12490 12491 12492 12493 12494 12495 -> Y 26 12496 12497 12498 12499 12500 12501 12502 12503 -> Z 27 12504 12505 12506 12507 12508 12509 12510 12511 -> [ 28 12512 12513 12514 12515 12516 12517 12518 12519 -> £ or (^ Vice) 29 12520 12521 12522 12523 12524 12525 12526 12527 -> ] 30 12528 12529 12530 12531 12532 12533 12534 12535 -> ↑ 31 12536 12537 12538 12539 12540 12541 12542 12543 -> ← 32 12544 12545 12546 12547 12548 12549 12550 12551 -> space 33 12552 12553 12554 12555 12556 12557 12558 12559 -> ! 34 12560 12561 12562 12563 12564 12565 12566 12567 -> " 35 12568 12569 12570 12571 12572 12573 12574 12575 -> # 36 12576 12577 12578 12579 12580 12581 12582 12583 -> $ 37 12584 12585 12586 12587 12588 12589 12590 12591 -> % 38 12592 12593 12594 12595 12596 12597 12598 12599 -> & 39 12600 12601 12602 12603 12604 12605 12606 12607 -> ' 40 12608 12609 12610 12611 12612 12613 12614 12615 -> ( 41 12616 12617 12618 12619 12620 12621 12622 12623 -> ) 42 12624 12625 12626 12627 12628 12629 12630 12631 -> * 43 12632 12633 12634 12635 12636 12637 12638 12639 -> + 44 12640 12641 12642 12643 12644 12645 12646 12647 -> , 45 12648 12649 12650 12651 12652 12653 12654 12655 -> - 46 12656 12657 12658 12659 12660 12661 12662 12663 -> . 47 12664 12665 12666 12667 12668 12669 12670 12671 -> / 48 12672 12673 12674 12675 12676 12677 12678 12679 -> 0 49 12680 12681 12682 12683 12684 12685 12686 12687 -> 1 EXAMPLE to rewrite character [ 170 rem rewrite char [ to stripes 171 rem Using the memory move to RAM in the above code 172 rem [ starts at 12504 and ends at 1250 173 rem 0 is an empty row of pixels and 255 is a full row of pixels in decimal 175 for a=12504 to 12511: read ze: poke a,ze: poke a+1024,255-ze: next a 180 data 255,0,255,0,255,0,255,0 Examples of 100 of the 256 possible compinations of pixels on a row.
![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |