/* Keep these headers */ #include #include #include #include /* Standard headers - it's recommended to leave them included */ #include #include #include #include /* Your code here */ // No need to call, it's just to have the code get assembled. // Pieces of code from MateoConLechuga's things here and there void textRoutines() { // Some required equates asm("posX equ D052C6h"); asm("posY equ D052C9h"); asm("_cphlde equ 02013Ch"); asm("vbuf1 equ D40000h"); asm("vbuf2 equ D52C00h"); asm("drawStringSmall:"); asm(" ld a,(hl)"); asm(" or a"); asm(" ret z"); asm(" call DrawChar"); asm(" push hl"); asm(" ld de,320-10"); asm(" ld hl,(posX)"); asm(" call _cphlde"); asm(" pop hl"); asm(" ret nc"); asm(" inc hl"); asm(" jr drawStringSmall"); asm("drawStringLarge:"); asm(" ld a,(hl)"); asm(" or a"); asm(" ret z"); asm(" call DrawBigChar"); asm(" push hl"); asm(" ld de,320-10"); asm(" ld hl,(posX)"); asm(" call _cphlde"); asm(" pop hl"); asm(" ret nc"); asm(" inc hl"); asm(" jr drawStringLarge"); asm("DrawBigChar:"); asm(" ld bc,(posX)"); asm(" push hl"); asm(" push af"); asm(" push de"); asm(" push bc"); asm(" push af"); asm(" ld a,(posY)"); asm(" push bc ; Save X"); asm(" call compute8bpp"); asm(" pop de ; de = Y"); asm(" add hl,de ; Add X"); asm(" pop af"); asm(" push hl"); asm(" or a"); asm(" sbc hl,hl"); asm(" ld l,a"); asm(" add hl,hl"); asm(" add hl,hl"); asm(" add hl,hl"); asm(" ex de,hl"); asm(" ld hl,Char000"); asm(" add hl,de ; hl -> Correct Character"); asm(" pop de ; de -> correct place to draw"); asm(" ld b,8"); asm("_iloop2:"); asm(" push bc"); asm(" ld c,(hl)"); asm(" ld b,8"); asm(" ex de,hl"); asm(" push de"); asm(" push hl"); asm(" ld de,(ForeColor)"); asm("_i2loop2:"); asm(" ld a,d"); asm(" rlc c"); asm(" jr nc,+_heh1"); asm(" ld a,e"); asm("_heh1:"); asm(" ld (hl),a"); asm(" inc hl"); asm(" ld (hl),a"); asm(" inc hl"); asm(" djnz _i2loop2"); asm(" ld bc,320-16"); asm(" add hl,bc ; next line"); asm(" ex de,hl"); asm(" pop hl"); asm(" ld bc,16"); asm(" ldir"); asm(" ex de,hl"); asm(" ld bc,320-16"); asm(" add hl,bc ; next line"); asm(" pop de"); asm(" ex de,hl"); asm(" inc hl"); asm(" pop bc"); asm(" djnz _iloop2"); asm(" pop bc"); asm(" pop de"); asm(" pop af ; character"); asm(" cp 128"); asm(" jr c,+_heh2"); asm(" xor a"); asm("_heh2:"); asm(" ld hl,CharSpacing"); asm(" call _AddHLAndA"); asm(" ld a,(hl) ; A holds the amount to increment per character"); asm(" add a,a"); asm(" jp AddToPosistion"); asm("DrawChar:"); asm(" ld bc,(posX)"); asm(" push hl"); asm(" push af"); asm(" push de"); asm(" push bc"); asm(" push af"); asm(" ld a,(posY)"); asm(" push bc ; Save X"); asm(" call compute8bpp"); asm(" pop de ; de = Y"); asm(" add hl,de ; Add X"); asm(" pop af"); asm(" push hl"); asm(" or a"); asm(" sbc hl,hl"); asm(" ld l,a"); asm(" add hl,hl"); asm(" add hl,hl"); asm(" add hl,hl"); asm(" ex de,hl"); asm(" ld hl,Char000"); asm(" add hl,de ; hl -> Correct Character"); asm(" pop de ; de -> correct place to draw"); asm(" ld b,8"); asm("_iloop:"); asm(" push bc"); asm(" ld c,(hl)"); asm(" ld b,8"); asm(" ex de,hl"); asm(" push de"); asm(" ld de,(ForeColor)"); asm("_i2loop:"); asm(" ld (hl),d"); asm(" rlc c"); asm(" jr nc,+_heh3"); asm(" ld (hl),e"); asm("_heh3:"); asm(" inc hl"); asm(" djnz _i2loop"); asm(" ld (hl),d"); asm("NextL:"); asm(" ld bc,320-8"); asm(" add hl,bc"); asm(" pop de"); asm(" ex de,hl"); asm(" inc hl"); asm(" pop bc"); asm(" djnz _iloop"); asm(" pop bc"); asm(" pop de"); asm(" pop af ; character"); asm(" cp 128"); asm(" jr c,+_"); asm(" xor a"); asm("_:"); asm(" ld hl,CharSpacing"); asm(" call _AddHLAndA"); asm(" ld a,(hl) ; A holds the amount to increment per character"); asm("AddToPosistion:"); asm(" or a,a"); asm(" sbc hl,hl"); asm(" ld l,a"); asm(" add hl,bc"); asm(" push hl"); asm(" pop bc"); asm(" inc bc"); asm(" ld (posX),bc"); asm(" pop hl"); asm(" ret"); asm("ForeColor:"); asm(" DB 7"); asm("BackColor:"); asm(" DB 23"); asm("compute8bpp:"); asm(" ld de,320"); asm(" call 000348h ; MultDEA"); //asm(" ld de,vbuf2"); // off screen (vram + 320x240) asm(" ld de,vbuf1"); // direct screen (vram) asm(" add hl,de"); asm(" ret"); asm("CharSpacing:"); asm("; 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F"); asm(" DB 8,8,8,7,7,7,8,8,8,8,8,8,8,1,8,8"); asm(" DB 7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8"); asm(" DB 2,3,5,7,7,7,7,4,4,4,8,6,3,6,2,7"); asm(" DB 7,6,7,7,7,7,7,7,7,7,2,3,5,6,5,6"); asm(" DB 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7"); asm(" DB 7,7,7,7,8,7,7,7,7,7,7,4,7,4,7,8"); asm(" DB 3,7,7,7,7,7,7,7,7,4,7,7,4,7,7,7"); asm(" DB 7,7,7,7,6,7,7,7,7,7,7,6,2,6,7,7"); asm(" DB 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7"); asm("Char000: DB 0,0,0,0,0,0,0,0"); asm("Char001: DB 7Eh,81h,A5h,81h,BDh,BDh,81h,7Eh"); asm("Char002: DB 7Eh,FFh,DBh,FFh,C3h,C3h,FFh,7Eh"); asm("Char003: DB 6Ch,FEh,FEh,FEh,7Ch,38h,10h,00h"); asm("Char004: DB 10h,38h,7Ch,FEh,7Ch,38h,10h,00h"); asm("Char005: DB 38h,7Ch,38h,FEh,FEh,10h,10h,7Ch"); asm("Char006: DB 00h,18h,3Ch,7Eh,FFh,7Eh,18h,7Eh"); asm("Char007: DB 00h,00h,18h,3Ch,3Ch,18h,00h,00h"); asm("Char008: DB FFh,FFh,E7h,C3h,C3h,E7h,FFh,FFh"); asm("Char009: DB 00h,3Ch,66h,42h,42h,66h,3Ch,00h"); asm("Char010: DB FFh,C3h,99h,BDh,BDh,99h,C3h,FFh"); asm("Char011: DB 0Fh,07h,0Fh,7Dh,CCh,CCh,CCh,78h"); asm("Char012: DB 3Ch,66h,66h,66h,3Ch,18h,7Eh,18h"); asm("Char013: DB 3Fh,33h,3Fh,30h,30h,70h,F0h,E0h"); asm("Char014: DB 7Fh,63h,7Fh,63h,63h,67h,E6h,C0h"); asm("Char015: DB 99h,5Ah,3Ch,E7h,E7h,3Ch,5Ah,99h"); asm("Char016: DB 80h,E0h,F8h,FEh,F8h,E0h,80h,00h"); asm("Char017: DB 02h,0Eh,3Eh,FEh,3Eh,0Eh,02h,00h"); asm("Char018: DB 18h,3Ch,7Eh,18h,18h,7Eh,3Ch,18h"); asm("Char019: DB 66h,66h,66h,66h,66h,00h,66h,00h"); asm("Char020: DB 7Fh,DBh,DBh,7Bh,1Bh,1Bh,1Bh,00h"); asm("Char021: DB 3Fh,60h,7Ch,66h,66h,3Eh,06h,FCh"); asm("Char022: DB 00h,00h,00h,00h,7Eh,7Eh,7Eh,00h"); asm("Char023: DB 18h,3Ch,7Eh,18h,7Eh,3Ch,18h,FFh"); asm("Char024: DB 18h,3Ch,7Eh,18h,18h,18h,18h,00h"); asm("Char025: DB 18h,18h,18h,18h,7Eh,3Ch,18h,00h"); asm("Char026: DB 00h,18h,0Ch,FEh,0Ch,18h,00h,00h"); asm("Char027: DB 00h,30h,60h,FEh,60h,30h,00h,00h"); asm("Char028: DB 00h,00h,C0h,C0h,C0h,FEh,00h,00h"); asm("Char029: DB 00h,24h,66h,FFh,66h,24h,00h,00h"); asm("Char030: DB 00h,18h,3Ch,7Eh,FFh,FFh,00h,00h"); asm("Char031: DB 00h,FFh,FFh,7Eh,3Ch,18h,00h,00h"); asm("Char032: DB 00h,00h,00h,00h,00h,00h,00h,00h"); asm("Char033: DB C0h,C0h,C0h,C0h,C0h,00h,C0h,00h"); asm("Char034: DB D8h,D8h,D8h,00h,00h,00h,00h,00h"); asm("Char035: DB 6Ch,6Ch,FEh,6Ch,FEh,6Ch,6Ch,00h"); asm("Char036: DB 18h,7Eh,C0h,7Ch,06h,FCh,18h,00h"); asm("Char037: DB 00h,C6h,CCh,18h,30h,66h,C6h,00h"); asm("Char038: DB 38h,6Ch,38h,76h,DCh,CCh,76h,00h"); asm("Char039: DB 30h,30h,60h,00h,00h,00h,00h,00h"); asm("Char040: DB 30h,60h,C0h,C0h,C0h,60h,30h,00h"); asm("Char041: DB C0h,60h,30h,30h,30h,60h,C0h,00h"); asm("Char042: DB 00h,66h,3Ch,FFh,3Ch,66h,00h,00h"); asm("Char043: DB 00h,30h,30h,FCh,FCh,30h,30h,00h"); asm("Char044: DB 00h,00h,00h,00h,00h,60h,60h,C0h"); asm("Char045: DB 00h,00h,00h,FCh,00h,00h,00h,00h"); asm("Char046: DB 00h,00h,00h,00h,00h,C0h,C0h,00h"); asm("Char047: DB 06h,0Ch,18h,30h,60h,C0h,80h,00h"); asm("Char048: DB 7Ch,CEh,DEh,F6h,E6h,C6h,7Ch,00h"); asm("Char049: DB 30h,70h,30h,30h,30h,30h,FCh,00h"); asm("Char050: DB 7Ch,C6h,06h,7Ch,C0h,C0h,FEh,00h"); asm("Char051: DB FCh,06h,06h,3Ch,06h,06h,FCh,00h"); asm("Char052: DB 0Ch,CCh,CCh,CCh,FEh,0Ch,0Ch,00h"); asm("Char053: DB FEh,C0h,FCh,06h,06h,C6h,7Ch,00h"); asm("Char054: DB 7Ch,C0h,C0h,FCh,C6h,C6h,7Ch,00h"); asm("Char055: DB FEh,06h,06h,0Ch,18h,30h,30h,00h"); asm("Char056: DB 7Ch,C6h,C6h,7Ch,C6h,C6h,7Ch,00h"); asm("Char057: DB 7Ch,C6h,C6h,7Eh,06h,06h,7Ch,00h"); asm("Char058: DB 00h,C0h,C0h,00h,00h,C0h,C0h,00h"); asm("Char059: DB 00h,60h,60h,00h,00h,60h,60h,C0h"); asm("Char060: DB 18h,30h,60h,C0h,60h,30h,18h,00h"); asm("Char061: DB 00h,00h,FCh,00h,FCh,00h,00h,00h"); asm("Char062: DB C0h,60h,30h,18h,30h,60h,C0h,00h"); asm("Char063: DB 78h,CCh,18h,30h,30h,00h,30h,00h"); asm("Char064: DB 7Ch,C6h,DEh,DEh,DEh,C0h,7Eh,00h"); asm("Char065: DB 38h,6Ch,C6h,C6h,FEh,C6h,C6h,00h"); asm("Char066: DB FCh,C6h,C6h,FCh,C6h,C6h,FCh,00h"); asm("Char067: DB 7Ch,C6h,C0h,C0h,C0h,C6h,7Ch,00h"); asm("Char068: DB F8h,CCh,C6h,C6h,C6h,CCh,F8h,00h"); asm("Char069: DB FEh,C0h,C0h,F8h,C0h,C0h,FEh,00h"); asm("Char070: DB FEh,C0h,C0h,F8h,C0h,C0h,C0h,00h"); asm("Char071: DB 7Ch,C6h,C0h,C0h,CEh,C6h,7Ch,00h"); asm("Char072: DB C6h,C6h,C6h,FEh,C6h,C6h,C6h,00h"); asm("Char073: DB 7Eh,18h,18h,18h,18h,18h,7Eh,00h"); asm("Char074: DB 06h,06h,06h,06h,06h,C6h,7Ch,00h"); asm("Char075: DB C6h,CCh,D8h,F0h,D8h,CCh,C6h,00h"); asm("Char076: DB C0h,C0h,C0h,C0h,C0h,C0h,FEh,00h"); asm("Char077: DB C6h,EEh,FEh,FEh,D6h,C6h,C6h,00h"); asm("Char078: DB C6h,E6h,F6h,DEh,CEh,C6h,C6h,00h"); asm("Char079: DB 7Ch,C6h,C6h,C6h,C6h,C6h,7Ch,00h"); asm("Char080: DB FCh,C6h,C6h,FCh,C0h,C0h,C0h,00h"); asm("Char081: DB 7Ch,C6h,C6h,C6h,D6h,DEh,7Ch,06h"); asm("Char082: DB FCh,C6h,C6h,FCh,D8h,CCh,C6h,00h"); asm("Char083: DB 7Ch,C6h,C0h,7Ch,06h,C6h,7Ch,00h"); asm("Char084: DB FFh,18h,18h,18h,18h,18h,18h,00h"); asm("Char085: DB C6h,C6h,C6h,C6h,C6h,C6h,FEh,00h"); asm("Char086: DB C6h,C6h,C6h,C6h,C6h,7Ch,38h,00h"); asm("Char087: DB C6h,C6h,C6h,C6h,D6h,FEh,6Ch,00h"); asm("Char088: DB C6h,C6h,6Ch,38h,6Ch,C6h,C6h,00h"); asm("Char089: DB C6h,C6h,C6h,7Ch,18h,30h,E0h,00h"); asm("Char090: DB FEh,06h,0Ch,18h,30h,60h,FEh,00h"); asm("Char091: DB F0h,C0h,C0h,C0h,C0h,C0h,F0h,00h"); asm("Char092: DB C0h,60h,30h,18h,0Ch,06h,02h,00h"); asm("Char093: DB F0h,30h,30h,30h,30h,30h,F0h,00h"); asm("Char094: DB 10h,38h,6Ch,C6h,00h,00h,00h,00h"); asm("Char095: DB 00h,00h,00h,00h,00h,00h,00h,FFh"); asm("Char096: DB C0h,C0h,60h,00h,00h,00h,00h,00h"); asm("Char097: DB 00h,00h,7Ch,06h,7Eh,C6h,7Eh,00h"); asm("Char098: DB C0h,C0h,C0h,FCh,C6h,C6h,FCh,00h"); asm("Char099: DB 00h,00h,7Ch,C6h,C0h,C6h,7Ch,00h"); asm("Char100: DB 06h,06h,06h,7Eh,C6h,C6h,7Eh,00h"); asm("Char101: DB 00h,00h,7Ch,C6h,FEh,C0h,7Ch,00h"); asm("Char102: DB 1Ch,36h,30h,78h,30h,30h,78h,00h"); asm("Char103: DB 00h,00h,7Eh,C6h,C6h,7Eh,06h,FCh"); asm("Char104: DB C0h,C0h,FCh,C6h,C6h,C6h,C6h,00h"); asm("Char105: DB 60h,00h,E0h,60h,60h,60h,F0h,00h"); asm("Char106: DB 06h,00h,06h,06h,06h,06h,C6h,7Ch"); asm("Char107: DB C0h,C0h,CCh,D8h,F8h,CCh,C6h,00h"); asm("Char108: DB E0h,60h,60h,60h,60h,60h,F0h,00h"); asm("Char109: DB 00h,00h,CCh,FEh,FEh,D6h,D6h,00h"); asm("Char110: DB 00h,00h,FCh,C6h,C6h,C6h,C6h,00h"); asm("Char111: DB 00h,00h,7Ch,C6h,C6h,C6h,7Ch,00h"); asm("Char112: DB 00h,00h,FCh,C6h,C6h,FCh,C0h,C0h"); asm("Char113: DB 00h,00h,7Eh,C6h,C6h,7Eh,06h,06h"); asm("Char114: DB 00h,00h,FCh,C6h,C0h,C0h,C0h,00h"); asm("Char115: DB 00h,00h,7Eh,C0h,7Ch,06h,FCh,00h"); asm("Char116: DB 30h,30h,FCh,30h,30h,30h,1Ch,00h"); asm("Char117: DB 00h,00h,C6h,C6h,C6h,C6h,7Eh,00h"); asm("Char118: DB 00h,00h,C6h,C6h,C6h,7Ch,38h,00h"); asm("Char119: DB 00h,00h,C6h,C6h,D6h,FEh,6Ch,00h"); asm("Char120: DB 00h,00h,C6h,6Ch,38h,6Ch,C6h,00h"); asm("Char121: DB 00h,00h,C6h,C6h,C6h,7Eh,06h,FCh"); asm("Char122: DB 00h,00h,FEh,0Ch,38h,60h,FEh,00h"); asm("Char123: DB 1Ch,30h,30h,E0h,30h,30h,1Ch,00h"); asm("Char124: DB C0h,C0h,C0h,00h,C0h,C0h,C0h,00h"); asm("Char125: DB E0h,30h,30h,1Ch,30h,30h,E0h,00h"); asm("Char126: DB 76h,DCh,00h,00h,00h,00h,00h,00h"); asm("Char127: DB 00h,10h,38h,6Ch,C6h,C6h,FEh,00h"); asm("Char128: DB 7Ch,C6h,C0h,C0h,C0h,D6h,7Ch,30h"); asm("Char129: DB C6h,00h,C6h,C6h,C6h,C6h,7Eh,00h"); asm("Char130: DB 0Eh,00h,7Ch,C6h,FEh,C0h,7Ch,00h"); asm("Char131: DB 7Eh,81h,3Ch,06h,7Eh,C6h,7Eh,00h"); asm("Char132: DB 66h,00h,7Ch,06h,7Eh,C6h,7Eh,00h"); asm("Char133: DB E0h,00h,7Ch,06h,7Eh,C6h,7Eh,00h"); asm("Char134: DB 18h,18h,7Ch,06h,7Eh,C6h,7Eh,00h"); asm("Char135: DB 00h,00h,7Ch,C6h,C0h,D6h,7Ch,30h"); asm("Char136: DB 7Eh,81h,7Ch,C6h,FEh,C0h,7Ch,00h"); asm("Char137: DB 66h,00h,7Ch,C6h,FEh,C0h,7Ch,00h"); asm("Char138: DB E0h,00h,7Ch,C6h,FEh,C0h,7Ch,00h"); asm("Char139: DB 66h,00h,38h,18h,18h,18h,3Ch,00h"); asm("Char140: DB 7Ch,82h,38h,18h,18h,18h,3Ch,00h"); asm("Char141: DB 70h,00h,38h,18h,18h,18h,3Ch,00h"); asm("Char142: DB C6h,10h,7Ch,C6h,FEh,C6h,C6h,00h"); asm("Char143: DB 38h,38h,00h,7Ch,C6h,FEh,C6h,00h"); asm("Char144: DB 0Eh,00h,FEh,C0h,F8h,C0h,FEh,00h"); asm("Char145: DB 00h,00h,7Fh,0Ch,7Fh,CCh,7Fh,00h"); asm("Char146: DB 3Fh,6Ch,CCh,FFh,CCh,CCh,CFh,00h"); asm("Char147: DB 7Ch,82h,7Ch,C6h,C6h,C6h,7Ch,00h"); asm("Char148: DB 66h,00h,7Ch,C6h,C6h,C6h,7Ch,00h"); asm("Char149: DB E0h,00h,7Ch,C6h,C6h,C6h,7Ch,00h"); asm("Char150: DB 7Ch,82h,00h,C6h,C6h,C6h,7Eh,00h"); asm("Char151: DB E0h,00h,C6h,C6h,C6h,C6h,7Eh,00h"); asm("Char152: DB 66h,00h,66h,66h,66h,3Eh,06h,7Ch"); asm("Char153: DB C6h,7Ch,C6h,C6h,C6h,C6h,7Ch,00h"); asm("Char154: DB C6h,00h,C6h,C6h,C6h,C6h,FEh,00h"); asm("Char155: DB 18h,18h,7Eh,D8h,D8h,D8h,7Eh,18h"); asm("Char156: DB 38h,6Ch,60h,F0h,60h,66h,FCh,00h"); asm("Char157: DB 66h,66h,3Ch,18h,7Eh,18h,7Eh,18h"); asm("Char158: DB F8h,CCh,CCh,FAh,C6h,CFh,C6h,C3h"); asm("Char159: DB 0Eh,1Bh,18h,3Ch,18h,18h,D8h,70h"); asm("Char160: DB 0Eh,00h,7Ch,06h,7Eh,C6h,7Eh,00h"); asm("Char161: DB 1Ch,00h,38h,18h,18h,18h,3Ch,00h"); asm("Char162: DB 0Eh,00h,7Ch,C6h,C6h,C6h,7Ch,00h"); asm("Char163: DB 0Eh,00h,C6h,C6h,C6h,C6h,7Eh,00h"); asm("Char164: DB 00h,FEh,00h,FCh,C6h,C6h,C6h,00h"); asm("Char165: DB FEh,00h,C6h,E6h,F6h,DEh,CEh,00h"); asm("Char166: DB 3Ch,6Ch,6Ch,3Eh,00h,7Eh,00h,00h"); asm("Char167: DB 3Ch,66h,66h,3Ch,00h,7Eh,00h,00h"); asm("Char168: DB 18h,00h,18h,18h,30h,66h,3Ch,00h"); asm("Char169: DB 00h,00h,00h,FCh,C0h,C0h,00h,00h"); asm("Char170: DB 00h,00h,00h,FCh,0Ch,0Ch,00h,00h"); asm("Char171: DB C6h,CCh,D8h,3Fh,63h,CFh,8Ch,0Fh"); asm("Char172: DB C3h,C6h,CCh,DBh,37h,6Dh,CFh,03h"); asm("Char173: DB 18h,00h,18h,18h,18h,18h,18h,00h"); asm("Char174: DB 00h,33h,66h,CCh,66h,33h,00h,00h"); asm("Char175: DB 00h,CCh,66h,33h,66h,CCh,00h,00h"); asm("Char176: DB 22h,88h,22h,88h,22h,88h,22h,88h"); asm("Char177: DB 55h,AAh,55h,AAh,55h,AAh,55h,AAh"); asm("Char178: DB DDh,77h,DDh,77h,DDh,77h,DDh,77h"); asm("Char179: DB 18h,18h,18h,18h,18h,18h,18h,18h"); asm("Char180: DB 18h,18h,18h,18h,F8h,18h,18h,18h"); asm("Char181: DB 18h,18h,F8h,18h,F8h,18h,18h,18h"); asm("Char182: DB 36h,36h,36h,36h,F6h,36h,36h,36h"); asm("Char183: DB 00h,00h,00h,00h,FEh,36h,36h,36h"); asm("Char184: DB 00h,00h,F8h,18h,F8h,18h,18h,18h"); asm("Char185: DB 36h,36h,F6h,06h,F6h,36h,36h,36h"); asm("Char186: DB 36h,36h,36h,36h,36h,36h,36h,36h"); asm("Char187: DB 00h,00h,FEh,06h,F6h,36h,36h,36h"); asm("Char188: DB 36h,36h,F6h,06h,FEh,00h,00h,00h"); asm("Char189: DB 36h,36h,36h,36h,FEh,00h,00h,00h"); asm("Char190: DB 18h,18h,F8h,18h,F8h,00h,00h,00h"); asm("Char191: DB 00h,00h,00h,00h,F8h,18h,18h,18h"); asm("Char192: DB 18h,18h,18h,18h,1Fh,00h,00h,00h"); asm("Char193: DB 18h,18h,18h,18h,FFh,00h,00h,00h"); asm("Char194: DB 00h,00h,00h,00h,FFh,18h,18h,18h"); asm("Char195: DB 18h,18h,18h,18h,1Fh,18h,18h,18h"); asm("Char196: DB 00h,00h,00h,00h,FFh,00h,00h,00h"); asm("Char197: DB 18h,18h,18h,18h,FFh,18h,18h,18h"); asm("Char198: DB 18h,18h,1Fh,18h,1Fh,18h,18h,18h"); asm("Char199: DB 36h,36h,36h,36h,37h,36h,36h,36h"); asm("Char200: DB 36h,36h,37h,30h,3Fh,00h,00h,00h"); asm("Char201: DB 00h,00h,3Fh,30h,37h,36h,36h,36h"); asm("Char202: DB 36h,36h,F7h,00h,FFh,00h,00h,00h"); asm("Char203: DB 00h,00h,FFh,00h,F7h,36h,36h,36h"); asm("Char204: DB 36h,36h,37h,30h,37h,36h,36h,36h"); asm("Char205: DB 00h,00h,FFh,00h,FFh,00h,00h,00h"); asm("Char206: DB 36h,36h,F7h,00h,F7h,36h,36h,36h"); asm("Char207: DB 18h,18h,FFh,00h,FFh,00h,00h,00h"); asm("Char208: DB 36h,36h,36h,36h,FFh,00h,00h,00h"); asm("Char209: DB 00h,00h,FFh,00h,FFh,18h,18h,18h"); asm("Char210: DB 00h,00h,00h,00h,FFh,36h,36h,36h"); asm("Char211: DB 36h,36h,36h,36h,3Fh,00h,00h,00h"); asm("Char212: DB 18h,18h,1Fh,18h,1Fh,00h,00h,00h"); asm("Char213: DB 00h,00h,1Fh,18h,1Fh,18h,18h,18h"); asm("Char214: DB 00h,00h,00h,00h,3Fh,36h,36h,36h"); asm("Char215: DB 36h,36h,36h,36h,FFh,36h,36h,36h"); asm("Char216: DB 18h,18h,FFh,18h,FFh,18h,18h,18h"); asm("Char217: DB 18h,18h,18h,18h,F8h,00h,00h,00h"); asm("Char218: DB 00h,00h,00h,00h,1Fh,18h,18h,18h"); asm("Char219: DB FFh,FFh,FFh,FFh,FFh,FFh,FFh,FFh"); asm("Char220: DB 00h,00h,00h,00h,FFh,FFh,FFh,FFh"); asm("Char221: DB F0h,F0h,F0h,F0h,F0h,F0h,F0h,F0h"); asm("Char222: DB 0Fh,0Fh,0Fh,0Fh,0Fh,0Fh,0Fh,0Fh"); asm("Char223: DB FFh,FFh,FFh,FFh,00h,00h,00h,00h"); asm("Char224: DB 00h,00h,76h,DCh,C8h,DCh,76h,00h"); asm("Char225: DB 38h,6Ch,6Ch,78h,6Ch,66h,6Ch,60h"); asm("Char226: DB 00h,FEh,C6h,C0h,C0h,C0h,C0h,00h"); asm("Char227: DB 00h,00h,FEh,6Ch,6Ch,6Ch,6Ch,00h"); asm("Char228: DB FEh,60h,30h,18h,30h,60h,FEh,00h"); asm("Char229: DB 00h,00h,7Eh,D8h,D8h,D8h,70h,00h"); asm("Char230: DB 00h,66h,66h,66h,66h,7Ch,60h,C0h"); asm("Char231: DB 00h,76h,DCh,18h,18h,18h,18h,00h"); asm("Char232: DB 7Eh,18h,3Ch,66h,66h,3Ch,18h,7Eh"); asm("Char233: DB 3Ch,66h,C3h,FFh,C3h,66h,3Ch,00h"); asm("Char234: DB 3Ch,66h,C3h,C3h,66h,66h,E7h,00h"); asm("Char235: DB 0Eh,18h,0Ch,7Eh,C6h,C6h,7Ch,00h"); asm("Char236: DB 00h,00h,7Eh,DBh,DBh,7Eh,00h,00h"); asm("Char237: DB 06h,0Ch,7Eh,DBh,DBh,7Eh,60h,C0h"); asm("Char238: DB 38h,60h,C0h,F8h,C0h,60h,38h,00h"); asm("Char239: DB 78h,CCh,CCh,CCh,CCh,CCh,CCh,00h"); asm("Char240: DB 00h,7Eh,00h,7Eh,00h,7Eh,00h,00h"); asm("Char241: DB 18h,18h,7Eh,18h,18h,00h,7Eh,00h"); asm("Char242: DB 60h,30h,18h,30h,60h,00h,FCh,00h"); asm("Char243: DB 18h,30h,60h,30h,18h,00h,FCh,00h"); asm("Char244: DB 0Eh,1Bh,1Bh,18h,18h,18h,18h,18h"); asm("Char245: DB 18h,18h,18h,18h,18h,D8h,D8h,70h"); asm("Char246: DB 18h,18h,00h,7Eh,00h,18h,18h,00h"); asm("Char247: DB 00h,76h,DCh,00h,76h,DCh,00h,00h"); asm("Char248: DB 38h,6Ch,6Ch,38h,00h,00h,00h,00h"); asm("Char249: DB 00h,00h,00h,18h,18h,00h,00h,00h"); asm("Char250: DB 00h,00h,00h,00h,18h,00h,00h,00h"); asm("Char251: DB 0Fh,0Ch,0Ch,0Ch,ECh,6Ch,3Ch,1Ch"); asm("Char252: DB 78h,6Ch,6Ch,6Ch,6Ch,00h,00h,00h"); asm("Char253: DB 7Ch,0Ch,7Ch,60h,7Ch,00h,00h,00h"); asm("Char254: DB 00h,00h,3Ch,3Ch,3Ch,3Ch,00h,00h"); asm("Char255: DB 00h,10h,00h,00h,00h,00h,00h,00h"); } void printSmall8bpp(const char* string, uint16_t x, uint8_t y) { _OS( asm("LD DE,(IX+9)"); asm("LD (posX),DE"); asm("LD A,(IX+12)"); asm("LD (posY),A"); asm("LD HL,(IX+6)"); asm("CALL drawStringSmall"); ); }