" ü ùÉ * ú ÷É * ø õÉ  õóðAæ úñ"û ò ïÉ  óðAæ ú*û ò ïÉ DW `00000000 DW `01111100 DW `10000010 DW `10000010 DW `01111110 DW `00000010 DW `00000010 DW `01111100 DW `00000000 DW `00111000 DW `01000100 DW `10000010 ÃPÎíffÌ sƒ ˆ‰ÜÌnæÝÝÙ™»»gcnìÌÝÜ™Ÿ»¹3>Davinci KB €WLBÍåÍb͙̀͡ÃSðVËgÂb!À>�àðËÂrð" ïÉúÀúÀÍ�xê ÀÉ€ËØÂ’úÀ<êÀÉÍ Íçú À!šÍÎÀ!˜Í¶À!˜Í¶À! ˜Í¶À! ˜Í¶À!˜Í¶À!˜Í¶Éú ÀGú À¸ê Àú ÀËÀ!ššÍ@!ššÍ@!ššÍ@!ššÍ@!ššÍ@! ššÍ@! š šÍ@! š šÍ@! š šÍ@! š šÍ@!š šÍ@!ššÍ@!ššÍ@!ššÍ@!ššÍ@!ššÍ@!ššÍ@!ššÍ@!ššÍ@É!#šCšÍ@!š#šÍ@!㙚Í@!Ùã™Í@!£™ÙÍ@!ƒ™£™Í@!c™ƒ™Í@!C™c™Í@!#™C™Í@!™#™Í@!㘙Í@!Øã˜Í@!£˜ØÍ@!ƒ˜£˜Í@!c˜ƒ˜Í@!C˜c˜Í@!#˜C˜Í@!˜#˜Í@ÉðAæ úGæ"ðAæ úxæðË7wÉËÀÆõðAæ úñwÉðDþ�ÂÝÉðDþ�0ú>à@>€àh>ài>ài>þài>ài>ÿài>ài>ÿài>ài!i €@Í !g@�Í>àO>`!˜Í>àO>!˜PÍ>àBàC>àG>àÿ>‘à@¯à$¯êÀ>ÀàVÉ~BBBBBB~~�¥�½™�~~ÿÛÿÃçÿ~lþþþ|88|þ|88|8þþ|8|8|þ|8|<<ÿÿçÃÃçÿÿþ><~~<ffffffÛÛ{>c8ll8Ìx~~~<~~<ÿ<~~< þ 0`þ`0ÀÀÀþ$fÿf$<~ÿÿÿÿ~<000000lllllþlþll0|Àx ø0ÆÌ0fÆ8l8vÜÌv``À0```0`00`f<ÿÌÌÌüÌÌÌx00000x ÌÌxæflxlfæ``````~ÆîþþÖÆÆÆæöÞÎÆÆ8lÆÆÆl8üff|``ðxÌÌÌÜxüff|lfæxÌàxÌxü000000ÌÌÌÌÌÌüÌÌÌÌÌx0ÆÆÆÖþîÆÆÆl88lÆÌÌÌx00xþ 0`þx`````xÀ`0 xx8lÆÿ00x |Ìvà``|ffÜxÌÀÌx |ÌÌvxÌüÀx8l`ð``ðvÌÌ| øà`lvffæ0p000x ÌÌxà`flxlæp00000xÌþþÖÆøÌÌÌÌxÌÌÌxÜff|`ðvÌÌ| Üvf`ð|Àx ø0|004ÌÌÌÌvÌÌÌx0ÆÖþþlÆl8lÆÌÌÌ| øü˜0dü00à00à0000àvÜ8lÆþP�œð�ž(xÌÌÌx(xÌÌÌx xÌÌÌx(ÌÌÌÌv ÌÌÌÌv(ÌÌÌ| ø(|ÆÆÆÆ|(ÆÆÆÆÆ|xÌÀÌx8D@ð@@þÃf<~~üff|``ð0ü0000àx |Ìv p000x xÌÌÌx ÌÌÌÌv2LøÌÌÌÌ2LÆæÖÎÆ8 DD8ÌDDDz@||’’||‚º‚||‚‚l(î| 8DD8l’’lL’’|<@0@< 1.1 ; <---- NOTE!!! PUT FILE REVISION NUMBER HERE WARN "Version \1 or Z''me0Ê_‚@Ê_‚ 8p_‚pÌ_‚� ß_‚ ±dv.asm‚ INCLUDE "hardware.inc" ; Make sure include files are useable revisions. rev_Check_hardware_inc 1.5 ; Macro that ph1il ðÊ_‚Ë_‚�€V±dv.asm‚ ldh a,[rSTAT] ; <---+ and STATF_BUSY ; | jr nz,@-4 ; ----+ ENDM j5CTI °Ë_‚ÀË_‚�€*±dv.asm‚************************************************************** ;* ;* mem_Set - "Set" a memory region ;* ;* input: ;* a - value ;* l9m €Ì_‚�Ì_‚ ˆr_‚@Í_‚� ß_‚****±dv.asm‚********************************************* mem_Set:: inc b inc c jr .skip .loop ld [hl+],a .skip dec c jr nz,.loop dec b jn=p PÍ_‚`Í_‚ °s_‚Î_‚� ß_‚****±dv.asm‚**************************** ;* ;* mem_Copy - "Copy" a memory region ;* ;* input: ;* hl - pSource ;* de - pDest ;* bc - bytecouxG*** Î_‚0Î_‚ Øt_‚àÎ_‚� ß_‚****±dv.asm‚**************** mem_Copy:: inc b inc c jr .skip .loop ld a,[hl+] ld [de],a inc de .skip dec c jr nz,.loop dec b jr nz,.l|J ðÎ_‚Ï_‚ v_‚pÐ_‚� ß_‚****±dv.asm‚********************* ;* ;* mem_Copy - "Copy" a monochrome font from ROM to RAM ;* ;* input: ;* hl - pSource ;* de - pDest ;* b~Noun°Ï_‚ÀÏ_‚� ß_‚****±dv.asm‚***************************************************** md de,display_col+$20*9 ld bc,display_quantity call mem_CopyVRAM ld hl,display_col+$20*7 ld de,display_col+$20*8 ld bc,display_quantity call mem_CopyVRAM ld hl,display_col+$20*6 ld de,display_col+$20*7 ld bc,display_quantity call mem_CopyVRAM ld hl,display_col+$20*5 ld de,display_col+$20*6 ld bc,display_quantity call mem_CopyVRAM ld hl,display_col+$20*4 ld de,display_col+$20*5 ld bc,display_quantity call mem_CopyVRAM ld hl,display_col+$20*3 ld de,display_col+$20*4 ld bc,display_quantity call mem_CopyVRAM ld hl,display_col+($20*2) ld de,display_col+($20*3) ld bc,display_quantity call mem_CopyVRAM ld hl,display_col+($20*1) ld de,display_col+($20*2) ld bc,display_quantity call mem_CopyVRAM ld hl,display_col+($20*0) ld de,display_col+($20*1) ld bc,display_quantity call mem_CopyVRAM ret display_byte lcd_WaitVRAM ld a,[de] ld b,a and $0F ld [hl+],a lcd_WaitVRAM ld a,b and $F0 swap a ld [hl],a ret display_char bit 7,a ret nz add a,20 push af lcd_WaitVRAM pop af ld [hl],a ret waitVB ldh a,[$44] cp 144 jp nz,waitVB ret initialize .wait ldh a,[$44] cp 144 jr nc,.wait ld a,0 ldh [$40],a ld a,%10000000 ldh [$68],a ld a,%00000000 ldh [$69],a ld a,%00000000 ldh [$69],a ld a,%11111110 ldh [$69],a ld a,%00011110 ldh [$69],a ld a,%11111111 ldh [$69],a ld a,%01111111 ldh [$69],a ld a,%11111111 ldh [$69],a ld a,%01111111 ldh [$69],a ld hl,Font ld de,$8000 ld bc,20*8*2 call mem_Copy ld hl,ibm_characters ld de,$8000+20*8*2 ld bc,8*128 call mem_CopyMono ld a,1 ldh [$4F],a ld a,%01100000 ld hl,$9800 ld bc,32*32 call mem_Set ld a,0 ldh [$4F],a ld a,16 ld hl,$9800 ld bc,20*32*32 call mem_Set ld a,0 ldh [$42],a ldh [$43],a ld a,%00000011 ldh [$47],a ld a,$00000000 ldh [$FF],a ld a,%10010001 ldh [$40],a xor a ld [$FF24],a xor a ld [counter],a ld a,%11000000 ldh [$56],a ret ibm_characters chr_IBMPC1 1,8 Font: DW `01111100 DW `10000010 DW `10000010 DW `10000010 DW `10000010 DW `10000010 DW `01111100 DW `00000000 DW `00010000 DW `00110000 DW `00010000 DW `00010000 DW `00010000 DW `00010000 DW `00111000 DW `00000000 DW `01111100 DW `10000010 DW `00000010 DW `01111100 DW `10000000 DW `10000000 DW `11111110 DW `00000000 DW `01111100 DW `10000010 DW `00000010 DW `00011100 DW `00000010 DW `10000010 DW `01111100 DW `00000000 DW `00001100 DW `00010100 DW `00100100 DW `01000100 DW `11111110 DW `00000100 DW `00000100 DW `00000000 DW `11111110 DW `10000000 DW `10000000 DW `11111100 DW `00000010 DW `00000010 DW `11111100 DW `00000000 DW `01111100 DW `10000000 DW `10000000 DW `11111100 DW `10000010 DW `10000010 DW `01111100 DW `00000000 DW `11111110 DW `00000010 DW `00000100 DW `00001000 DW `00010000 DW `00010000 DW `00010000 DW `00000000 DW `01111100 DW `10000010 DW `10000010 DW `01111100 DW `10000010 DW `10000010 DW `01111100 DW `00000000 DW `01111100 DW `10000010 DW `10000010 DW `01111110 DW `00000010 DW `00000010 DW `01111100 DW `00000000 DW `00111000 DW `01000100 DW `10000010 DW `11111110 DW `10000010 DW `10000010 DW `10000010 DW `00000000 DW `11111100 DW `10000010 DW `10000010 DW `11111100 DW `10000010 DW `10000010 DW `11111100 DW `00000000 DW `00111100 DW `01000010 DW `10000000 DW `10000000 DW `10000000 DW `01000010 DW `00111100 DW `00000000 DW `11111000 DW `10000100 DW `10000010 DW `10000010 DW `10000010 DW `10000100 DW `11111000 DW `00000000 DW `11111110 DW `10000000 DW `10000000 DW `11111000 DW `10000000 DW `10000000 DW `11111110 DW `00000000 DW `11111110 DW `10000000 DW `10000000 DW and STATF_BUSY jr nz,@-4 )lcd_WaitVRAM /�  3� H ( J‚œK‚V48 ÔÿJ‚œK‚( J‚( ÔÿJ‚œK‚èC,$0 ( J‚œK‚3,$73,$00,$83,$00,$0C,$00,$0D DB $00,$08,$11,$1F,$88,$89,$00,$0E,$DC,$CC,$6E,$E6,$DD,$DD,$D9,$99 DPÀhK‚�ØÿJ‚)°K‚K‚Vÿÿÿÿÿÿÿÿ`ûJ‚@p=ƒ Memory1 CodeK‚....)mem_Set DB %........ DB %.....X.. DB %...X.... DB %.X...... DB %...X.... DB %.....X.. DB %XXXXXXX. DB %........ DB %........ DB IˆK‚ D).skipK‚ DB %...X.... DB %...X.... DB %...X.... DB %...X.... DB %...X.... DB %...X.... DB %...X.... DB %...X.... DB %...X.... D@K‚ ).loopK‚ DB %...X.... DB %...X.... DB %.XX..... DB %........ DB %........ DB %...X.... DB %........ DB %XXXXXXX aÈK‚¸K‚ˆK‚ ).skipK‚ IF 1.5 > 1.9 WARN "Version \1 or later of 'hardware.inc' is required." ENDC ( J‚œK‚ DB %........ DB %........ DB %..XX.... aÈK‚�K‚ˆK‚X...)mem_Copy..X... DB %..XX.... DB %........ DB %........ DB %........ DB %........ DB %........ DB %........ DB %........ DB %..XX.... I Äb‚ˆK‚.XX.).skipK‚ %........ DB %........ DB %........ DB %........ DB %........ DB %........ DB %........ DB %....X... DB %........ DB %.....à K‚ %..).loopK‚ %.......X DB %......X. DB %XXX...X. DB %..X..X.. DB %...X.X.. DB %...XX... DB %....X... DB %........ DB %........ DB %ahK‚`Š_‚ˆK‚ ).skipK‚ DB %..X..X.. DB %..X..X.. DB %........ DB %........ DB %........ DB %..XX.... DB %.X..X... DB %...X.... DB %..X..... DB ahK‚8‰_‚ˆK‚ DB )_VRAMK‚_INCbc,1 call mem_CopyVRAM ld hl,text_line+7 ld de,text_line+8 ld bc,1 call mem_CopyVRAM ld hl,text_line+6 ld de,text_line+7 ld bc,1 call mem_CopyVRAM ld hl,text_line+5 ld de,text_line+6 ld bc,1 call mem_CopyVRAM ld hl,text_line+4 l€B >ƒ bc,ñ IF \1 > 1.9 WARN "Version \1 or later of 'hardware.inc' is required." ENDC ,t)rev_Check_hardware_incem_CopyVRAM ret ld hl,display_col+$20*17 ld de,display_col+$20*18 ld bc,display_quantity call mem_CopyVRAM ld hl,