51 IF BYTE(LOOK) > 127 THEN BYTE(LOO K) = BYTE(LOOK) - 128 52 IF BYTE(LOOK) < 32 THEN BYTE(LOOK ) = BVTE(LOOK) + 64: GOTO 55 53 IF BYTE(LOOK) < 97 THEN BVTE(LOOK ) = BYTE(LOOK) - 32 55 NEXT LOOK 59 FOR EXTRA = 0 TO 7 60 FOR LOOK = 1 TO LEN(A$) 70 WANT(LOOK) = PEEK(CHBASE + EXTRA + BYTE(LOOK)*8) 80 POKE TV + EXTRA, WANT(LOOK): TV = TV + 1 82 NEXT LOOK 85 SCREEN = SCREEN + 39: TV = SCREEN 90 NEXT EXTRA 100 SCREEN = REAL + TIME*320 110 IF SCREEN > REAL + 6080 THEN TIM E = 0: GOTO 100 120 GOTO 30 This program simply takes the bytes which represent the letters you input as A$ and finds their places in the ROM character set. It then proceeds to POKE the bytes into the screen RAM, using a FOR-NEXT loop. To convert ATASCII codes to the internal codes, use this table: ATASCII value Operation for internal code 0 -- 31 add 64 32 -- 95 subtract 32 96 -- 127 remains the same 128 -- 159 add 64 160 -- 223 subtract 32 224 -- 255 remains the same See COMPUTE!, November 1981, for the program "TextPlot" which displays text in different sizes in GRAPHICS modes three to eight, and January 1982 for a program to edit character sets, "SuperFont." --------------------------------------------------------------------------- Locations 58368 to 58447 ($E400 to $E44F) are the vector tables, stored as LSB, MSB. These base addresses are used by resident handlers. Handler vectors use the following format: OPEN vector CLOSE vector