Subversion Repositories zxusbnet

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1. #include <string.h>
  2. #include <intrz80.h>
  3. #include <stdio.h>
  4. char * mylib_font8x8=(void*)0x3c00;
  5. static union {char * w;char b[2];}scrxy;
  6. void scr_init(char a){
  7.         *((char *)0x5800)=a;
  8.         output8(0xfe,a>>3);
  9.         memcpy((void *)0x5801, (void *)0x5800, 32*24-1);
  10.         scrxy.w=(void *)0x4000;
  11.         *((char *)0x4000)=0;
  12.         memcpy((void *)0x4001, (void *)0x4000, (unsigned int)256*192/8-1);
  13. }
  14. int putchar(int ch){
  15.         switch(ch){
  16.                 case '\n':      scrxy.b[0]+=32;
  17.                 case '\r':      scrxy.b[0]&=0xe0;
  18.                         break;
  19.                 default:{
  20.                                 char* s=mylib_font8x8+(ch<<3);
  21.                                 unsigned char i=8;
  22.                                 while(i--){
  23.                                         *scrxy.w=*(s++);
  24.                                         scrxy.b[1]++;
  25.                                 }
  26.                         }
  27.                         scrxy.w-=0x07ff;
  28.                         break;
  29.         }
  30.         if(!scrxy.b[0]){
  31.                 if((scrxy.b[1]+=8)==0x58) scrxy.b[1]=0x40;
  32.         }
  33.         return 1;
  34. }