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
#7
Try this... Attribute is now handed over in sub header
Code:
FUNCTION scrAddress(x as uByte, y as uByte) as Uinteger asm ;' This fn returns the address into HL of the screen address ;' x,y in character grid notation. ;' Original code was extracted by BloodBaz - Adapted for ZX BASiC by Britlion from Na_TH_AN's fourspriter ;' x Arrives in A, y is in stack. and 31 ld l,a ld a,(IX+7) ;' Y value ld d,a and 24 add a,64 ld h,a ld a,d and 7 rrca rrca rrca or l ld l,a end asm END FUNCTION FUNCTION attrAddress(x as uByte, y as uByte) as uInteger ';; This function returns the memory address of the Character Position ';; x,y in the attribute screen memory. ';; Adapted from code by Jonathan Cauldwell - Adapted for ZX BASiC by Britlion from Na_TH_AN's fourspriter asm ld a,(IX+7) ;ypos rrca rrca rrca ;' Multiply by 32 ld l,a ;' Pass to L and 3 ;' Mask with 00000011 add a,88 ;' 88 * 256 = 22528 - start of attributes. ld h,a ;' Put it in the High Byte ld a,l ;' We get y value *32 and 224 ;' Mask with 11100000 ld l,a ;' Put it in L ld a,(IX+5) ;' xpos add a,l ;' Add it to the Low byte ld l,a ;' Put it back in L, and we're done. HL=Address. end asm END FUNCTION sub putchar(x as Ubyte,y as Ubyte,attribute as ubyte,adr as Uinteger) dim scr as uinteger dim attradr as uinteger scr=scrAddress(x,y) attradr=attrAddress(x,y) 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 attradr,attribute End sub dim x,y,atr as ubyte dim adr as Uinteger adr=32768 poke 32768,%00000000 poke 32769,%01111110 poke 32770,%01000010 poke 32771,%01010010 poke 32772,%01001010 poke 32773,%01000010 poke 32774,%01111110 poke 32775,%00000000 atr=0 for y=0 to 23 for x=0 to 31 putchar(x,y,atr,adr) atr=atr+1 next x next y
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)