📄 splc501sys.lst
字号:
//Input : none
//Output : [bank1] zk_data at rom bank
//Destory : R1,R2,R3,R4
//////////////////////////////////////////////////////////////////////////////
.external bank1
.external tiny3 //zk_data
.public F_zk_bank
F_zk_bank:
0000B409 40 98 r4=0x00
//////
0000B40A 06 95 r2=sr
0000B40B 0A B5 FF 03 r2&=0x03ff
0000B40D 09 93 94 84 r1=tiny3 //zk_data //zk_data at zk.asm
F_zk_bank_loop:
0000B40F 02 9D sr=r2
0000B410 E1 96 r3=D:[r1]
0000B411 0B 47 FF 00 cmp r3,0x00ff
0000B413 05 5E je F_zk_bank_0
0000B414 0C 09 00 04 r4+=0x0400
0000B416 0A 05 00 04 r2+=0x0400
0000B418 4A EE jmp F_zk_bank_loop
F_zk_bank_0:
0000B419 1C D9 A5 01 [bank1]=r4
0000B41B 90 9A retf
//////////////////////////////////////////////////////////////////////////////
//Filename : _pixel
//Function : display appoint pixel
//Input : x,y
//Output : display a appoint pixel on lcd
//Destroy : R1,r2,r3
//////////////////////////////////////////////////////////////////////////////
.external pixel_page
.external pixel_column
.external pixel_bit
.external TAB_pixel
.public _pixel
_pixel: .proc
0000B41C 88 DA PUSH BP,BP TO [SP];
0000B41D 00 9B bp=sp
0000B41E 44 0A bp+=0x04
0000B41F C5 92 r1=[bp]
0000B420 41 0A bp+=0x01
0000B421 C5 94 r2=[bp]
F_pixel:
0000B422 19 D3 A7 01 [pixel_column]=r1 //work out column
0000B424 40 92 r1=0x00
0000B425 19 D3 A6 01 [pixel_page]=r1
F_pixel_2:
0000B427 48 44 cmp r2,0x08
0000B428 09 0E jb F_pixel_1
0000B429 48 44 cmp r2,0x08
0000B42A 07 5E je F_pixel_1
0000B42B 48 24 r2-=0x08
0000B42C 11 93 A6 01 r1=[pixel_page]
0000B42E 41 02 r1+=0x01
0000B42F 19 D3 A6 01 [pixel_page]=r1
0000B431 4B EE jmp F_pixel_2
F_pixel_1:
0000B432 09 93 5A 84 r1=TAB_pixel
0000B434 02 03 r1+=r2
0000B435 C1 94 r2=[r1]
0000B436 1A D5 A8 01 [pixel_bit]=r2 //work out pixel_bit,pixel_page
// R1 = [pixel_page]
// CALL F_Set_LCD_Page_No
// R2 = [pixel_column]
// CALL F_Set_LCD_Column_Addr
0000B438 11 93 A6 01 r1=[pixel_page]
0000B43A 19 D3 1A 02 [_page]=r1
0000B43C 11 93 A7 01 r1=[pixel_column]
0000B43E 19 D3 1B 02 [_page_place]=r1
0000B440 13 97 A8 01 r3=[pixel_bit]
0000B442 1B D7 21 02 [_point_value]=r3
0000B444 40 F0 8C B9 call display_a_point
0000B446 13 97 02 02 r3=[sign]
0000B448 41 B6 r3&=0x01
0000B449 01 4E jnz F_pixel_end
0000B44A 88 98 POP BP,BP FROM [SP]
F_pixel_end:
0000B44B 13 97 02 02 r3=[sign]
0000B44D 0B B7 FE FF r3&=0xfffe
0000B44F 1B D7 02 02 [sign]=r3
0000B451 90 9A retf
.endp
//////////////////////////////////////////////////////////////////////////////
//Filename : F_Get_pixel
//参数: PlotX,PlotY
//Function : appoint pixel state,if r1=0 then point is white else point is black.
//Get the pixel color at (PlotX,PlotY), and store in A.
//Input : x,y
//Output : r1 appoint pixel state on lcd
//Destroy : R1,r2,r3
//用法: FG_GetPixel(short PlotX,short PlotY)
//Example: FG_GetPixel()
// FG_GetPixel(10,20)
//////////////////////////////////////////////////////////////////////////////
F_Get_pixel:
0000B452 19 D3 A7 01 [pixel_column]=r1 //work out column
0000B454 40 92 r1=0x00
0000B455 19 D3 A6 01 [pixel_page]=r1
F_Get_pixel_2:
0000B457 48 44 cmp r2,0x08
0000B458 09 0E jb F_Get_pixel_1
0000B459 48 44 cmp r2,0x08
0000B45A 07 5E je F_Get_pixel_1
0000B45B 48 24 r2-=0x08
0000B45C 11 93 A6 01 r1=[pixel_page]
0000B45E 41 02 r1+=0x01
0000B45F 19 D3 A6 01 [pixel_page]=r1
0000B461 4B EE jmp F_Get_pixel_2
F_Get_pixel_1:
0000B462 09 93 5A 84 r1=TAB_pixel
0000B464 02 03 r1+=r2
0000B465 C1 94 r2=[r1]
0000B466 1A D5 A8 01 [pixel_bit]=r2 //work out pixel_bit,pixel_page
0000B468 11 93 A6 01 R1 = [pixel_page]
0000B46A 40 F0 3E E8 CALL F_Set_LCD_Page_No
0000B46C 12 95 A7 01 R2 = [pixel_column]
0000B46E 40 F0 67 E8 CALL F_Set_LCD_Column_Addr
0000B470 40 F0 E9 E8 call F_Read_Lcd_data
0000B472 11 93 A8 01 r1=[pixel_bit]
0000B474 7B 97 r3=r3 lsr 0x04
0000B475 7B 97 r3=r3 lsr 0x04
0000B476 03 B3 r1&=r3
F_Get_pixel_end:
0000B477 90 9A retf
//////////////////////////////////////////////////////////////////////////////
//Filename : image
//Function : display image
//Input : x,y,tab
//Output : display image at appoint place
//Destroy : R1,r2,r3
//////////////////////////////////////////////////////////////////////////////
.external image_width_byte
.external image_high_bit
.external image_jumpoff_point_x
.external image_jumpoff_point_y
.external image_tab
.external image_page
.external image_bit
.external image_lcd_data
.external image_temp_data
.external image_temp_data1
.external image_tab_pointer
.public image
image: .proc
0000B478 88 DA PUSH BP,BP TO [SP];
0000B479 00 9B bp=sp
0000B47A 44 0A bp+=0x04
0000B47B C5 92 r1=[bp]
0000B47C 19 D3 A8 01 [image_jumpoff_point_x]=r1
0000B47E 41 0A bp+=0x01
0000B47F C5 92 r1=[bp]
0000B480 19 D3 A9 01 [image_jumpoff_point_y]=r1
0000B482 41 0A bp+=0x01
0000B483 C5 92 r1=[bp]
0000B484 41 02 r1+=0x01
0000B485 19 D3 AA 01 [image_tab]=r1
0000B487 41 0A bp+=0x01
0000B488 C5 92 r1=[bp]
0000B489 19 D3 A6 01 [image_width_byte]=r1
0000B48B 41 0A bp+=0x01
0000B48C C5 92 r1=[bp]
0000B48D 19 D3 A7 01 [image_high_bit]=r1 //get parameter form c
F_image:
0000B48F 40 92 r1=0x00
0000B490 19 D3 AB 01 [image_page]=r1
0000B492 19 D3 B1 01 [image_temp_data1]=r1
0000B494 12 95 A9 01 r2=[image_jumpoff_point_y]
F_image_page_no_end:
0000B496 48 44 cmp r2,0x08
0000B497 09 0E jb F_image_page_end
0000B498 48 44 cmp r2,0x08
0000B499 07 5E je F_image_page_end
0000B49A 48 24 r2-=0x08
0000B49B 11 93 AB 01 r1=[image_page]
0000B49D 41 02 r1+=0x01
0000B49E 19 D3 AB 01 [image_page]=r1
0000B4A0 4B EE jmp F_image_page_no_end
F_image_page_end:
0000B4A1 1A D5 AC 01 [image_bit]=r2 //work out page and bit of jumping off point
0000B4A3 40 94 r2=0x00
F_image_no_end:
0000B4A4 11 93 AA 01 r1=[image_tab]
0000B4A6 19 D3 B0 01 [image_tab_pointer]=r1
0000B4A8 11 93 A8 01 r1=[image_jumpoff_point_x]
0000B4AA 90 D4 push r1,r2 to [sp] //save [image_jumpoff_point_x],r2
// call F_image_process_1 //display eight row
0000B4AB 40 F0 CD B4 call F_image_display_eightrow
0000B4AD 90 90 pop r1,r2 from [sp]
0000B4AE 41 04 r2+=0x01
0000B4AF 19 D3 A8 01 [image_jumpoff_point_x]=r1
0000B4B1 11 93 AA 01 r1=[image_tab]
0000B4B3 41 02 r1+=0x01
0000B4B4 19 D3 AA 01 [image_tab]=r1
0000B4B6 19 D3 B0 01 [image_tab_pointer]=r1 //data pointer of image
0000B4B8 11 93 AB 01 R1 = [image_page]
0000B4BA 41 22 r1-=0x01
0000B4BB 19 D3 AB 01 [image_page]=r1
0000B4BD 12 45 A6 01 cmp r2,[image_width_byte] //if image end
0000B4BF 01 5E je F_image_finish
0000B4C0 5D EE jmp F_image_no_end
F_image_finish:
0000B4C1 11 93 02 02 r1=[sign] //if assembler transfer
0000B4C3 41 B2 r1&=0x01
0000B4C4 01 4E jne F_image_end
0000B4C5 88 98 POP BP,BP FROM [SP];
F_image_end:
0000B4C6 11 93 02 02 r1=[sign]
0000B4C8 09 B3 FE FF r1&=0xfffe
0000B4CA 19 D3 02 02 [sign]=r1
0000B4CC 90 9A retf
.endp
/////////////////////////////////////////////////////////////////////////
F_image_display_eightrow:
0000B4CD 40 98 r4=0x00 //pointer of tier data
image_display_eightrow_begin:
0000B4CE 11 93 AB 01 R1 = [image_page]
0000B4D0 49 42 cmp r1,0x0009 //area of page
0000B4D1 01 0E jb image_eightrow_begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -