Author Topic: CROSS CHASE: multi-system 8 bit game  (Read 528 times)

0 Members and 1 Guest are viewing this topic.

Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.336
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 605
Re: CROSS CHASE: multi-system 8 bit game
« Reply #10 on: 13:51, 21 September 17 »
I wrote a routine for redefining the character set in Small-C, which uses the Control Code (25) followed by the 8 Lines of Data it needs for the Character:


Code: [Select]
   symbol(ch,p1,p2,p3,p4,p5,p6,p7,p8)
   int ch,p1,p2,p3,p4,p5,p6,p7,p8;
   {
    putchar(25);
    putchar(ch);
    putchar(p1);
    putchar(p2);
    putchar(p3);
    putchar(p4);
    putchar(p5);
    putchar(p6);
    putchar(p7);
    putchar(p8);
   }


So something like this should work:


Code: [Select]
   symbol(254,1,1,65,67,71,127,67,1);
   symbol(255,128,128,130,194,226,254,194,128);
   putchar(254);
   putchar(255);


Unfortunately my example doesn't extensively test how many characters can be redefined. In Locomotive BASIC the limit is 15 (or so I read somewhere), before a SYMBOL AFTER needs to be used, which means characters 240-255 can be redefined by default. The SYMBOL AFTER is the equivalent to the TXT SET M TABLE, which was mentioned in the other thread, unfortunately it doesn't exist as a Control code. In BASIC you cannot tell where you this TABLE with SYMBOL AFTER, though with TXT SET M TABLE the HL register can be used to point to an area in the central 32k of RAM, along with DE which represent the same figure found after a SYMBOL AFTER, the lower the number the more area gets allocated for the table, so whatever number of characters you need to redefine, I'd suggest keeping to that.