The following warnings occurred:
Warning [2] Undefined array key 0 - Line: 1677 - File: showthread.php PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/showthread.php 1677 errorHandler->error_callback
/showthread.php 916 buildtree




Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Using PutcharLcd
#1
I was testing the Putchar Lcd´s routine and I think It´s very handly and work right for my games. Perhaps is not the fastest, but I´m happy with the facilities of modifying its code. Big Grin
Code:
'=========================== '= putchar lcd compiuter = '= version 1.100603 <-date = '=========================== '#include <sinclair.bas> '#include <memcopy.bas> '#include <keys.bas> '#include <print42.bas> '#include <attr.bas> '--- cls border 5 '------------------------------------- sub putcharLcd1x1(x as Uinteger,y as Uinteger,adr as Uinteger) dim scr as Uinteger dim a as Uinteger a=peek(@linebuffer+y) scr=(a<<5)+x+16384 poke ubyte scr,peek(adr) poke ubyte scr+256,peek(adr+1) poke ubyte scr+512,peek(adr+2) poke ubyte scr+768,peek(adr+3) poke ubyte scr+1024,peek(adr+4) poke ubyte scr+1280,peek(adr+5) poke ubyte scr+1536,peek(adr+6) poke ubyte scr+1792,peek(adr+7) poke ubyte 22528+x+(y<<5),peek (adr+8) End sub '------------------------------------------- sub putcharLcd1x2(x as Uinteger,y as Uinteger,adr as Uinteger) dim scr as Uinteger dim a as Uinteger a=peek(@linebuffer+y) scr=(a<<5)+x+16384 poke ubyte scr,peek(adr) poke ubyte scr+256,peek(adr+1) poke ubyte scr+512,peek(adr+2) poke ubyte scr+768,peek(adr+3) poke ubyte scr+1024,peek(adr+4) poke ubyte scr+1280,peek(adr+5) poke ubyte scr+1536,peek(adr+6) poke ubyte scr+1792,peek(adr+7) poke ubyte 22528+x+(y<<5),peek (adr+8) x=x+1 a=peek(@linebuffer+y) scr=(a<<5)+x+16384 poke ubyte scr,peek(adr+9) poke ubyte scr+256,peek(adr+10) poke ubyte scr+512,peek(adr+11) poke ubyte scr+768,peek(adr+12) poke ubyte scr+1024,peek(adr+13) poke ubyte scr+1280,peek(adr+14) poke ubyte scr+1536,peek(adr+15) poke ubyte scr+1792,peek(adr+16) poke ubyte 22528+x+(y<<5),peek (adr+17) End sub '------------------------------------------- sub putcharLcd2x1(x as Uinteger,y as Uinteger,adr as Uinteger) dim scr as Uinteger dim a as Uinteger a=peek(@linebuffer+y) scr=(a<<5)+x+16384 poke ubyte scr,peek(adr) poke ubyte scr+256,peek(adr+1) poke ubyte scr+512,peek(adr+2) poke ubyte scr+768,peek(adr+3) poke ubyte scr+1024,peek(adr+4) poke ubyte scr+1280,peek(adr+5) poke ubyte scr+1536,peek(adr+6) poke ubyte scr+1792,peek(adr+7) poke ubyte 22528+x+(y<<5),peek (adr+8) y=y+1 a=peek(@linebuffer+y) scr=(a<<5)+x+16384 poke ubyte scr,peek(adr+9) poke ubyte scr+256,peek(adr+10) poke ubyte scr+512,peek(adr+11) poke ubyte scr+768,peek(adr+12) poke ubyte scr+1024,peek(adr+13) poke ubyte scr+1280,peek(adr+14) poke ubyte scr+1536,peek(adr+15) poke ubyte scr+1792,peek(adr+16) poke ubyte 22528+x+(y<<5),peek (adr+17) End sub '------------------------------------------- sub putcharLcd2x2(x as Uinteger,y as Uinteger,adr as Uinteger) dim scr as Uinteger dim a as Uinteger a=peek(@linebuffer+y) scr=(a<<5)+x+16384 poke ubyte scr,peek(adr) poke ubyte scr+256,peek(adr+1) poke ubyte scr+512,peek(adr+2) poke ubyte scr+768,peek(adr+3) poke ubyte scr+1024,peek(adr+4) poke ubyte scr+1280,peek(adr+5) poke ubyte scr+1536,peek(adr+6) poke ubyte scr+1792,peek(adr+7) poke ubyte 22528+x+(y<<5),peek (adr+8) x=x+1 a=peek(@linebuffer+y) scr=(a<<5)+x+16384 poke ubyte scr,peek(adr+9) poke ubyte scr+256,peek(adr+10) poke ubyte scr+512,peek(adr+11) poke ubyte scr+768,peek(adr+12) poke ubyte scr+1024,peek(adr+13) poke ubyte scr+1280,peek(adr+14) poke ubyte scr+1536,peek(adr+15) poke ubyte scr+1792,peek(adr+16) poke ubyte 22528+x+(y<<5),peek (adr+17) x=x-1 y=y+1 a=peek(@linebuffer+y) scr=(a<<5)+x+16384 poke ubyte scr,peek(adr+18) poke ubyte scr+256,peek(adr+19) poke ubyte scr+512,peek(adr+20) poke ubyte scr+768,peek(adr+21) poke ubyte scr+1024,peek(adr+22) poke ubyte scr+1280,peek(adr+23) poke ubyte scr+1536,peek(adr+24) poke ubyte scr+1792,peek(adr+25) poke ubyte 22528+x+(y<<5),peek (adr+26) x=x+1 a=peek(@linebuffer+y) scr=(a<<5)+x+16384 poke ubyte scr,peek(adr+27) poke ubyte scr+256,peek(adr+28) poke ubyte scr+512,peek(adr+29) poke ubyte scr+768,peek(adr+30) poke ubyte scr+1024,peek(adr+31) poke ubyte scr+1280,peek(adr+32) poke ubyte scr+1536,peek(adr+33) poke ubyte scr+1792,peek(adr+34) poke ubyte 22528+x+(y<<5),peek (adr+35) End sub '---next will be probably putcharlcd1x3 '--- linebuffer: asm defb 0,1,2,3,4,5,6,7,64,65,66,67,68,69,70,71,128,129,130,131,132,133,134,135 end asm '-------------------------- start: dim x,y as ubyte dim adr as Uinteger adr=@gfx1a x=1 y=1 putcharLcd1x1(x,y,adr) adr=@gfx1a x=1 y=3 putcharLcd1x2(x,y,adr) adr=@gfx1a x=1 y=5 putcharLcd2x1(x,y,adr) adr=@gfx1a x=1 y=8 putcharLcd2x2(x,y,adr) '---fin--- END '---------------------------------------- gfx1a: ASM DEFB 0,8,8,8,8,8,8,0,00010001B DEFB 0,60,4,4,60,32,60,0,00011001B DEFB 0,60,4,4,60,4,60,0,00100001B DEFB 0,36,36,36,60,4,4,0,00101001B END ASM '-----------------------------------------
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 3 Guest(s)