cpu 8048 ; Projekt: Tastaturinterface von Kai Fischer ; Belegung: Kai Fischer start clr a outl p1,a call byte1 call byte1 jmp main1 makout1 mov a,r0 movp a,@a outl p1,a call wait1 clr a outl p1,a call wait1 inc r0 djnz r1,makout1 mov r2,a makend1 mov a,r2 ret mak1f1 mov r2,a add a,#219 jnz mak1f2 mov r0,#f1_1 mov r1,#10 jmp makout1 mak1f2 mov a,r2 add a,#218 jnz mak1f3 mov r0,#f2_1 mov r1,#4 jmp makout1 mak1f3 mov a,r2 add a,#217 jnz mak1f4 mov r0,#f3_1 mov r1,#3 jmp makout1 mak1f4 mov a,r2 add a,#216 jnz mak1f5 mov r0,#f4_1 mov r1,#3 jmp makout1 mak1f5 mov a,r2 add a,#215 jnz mak1f6 mov r0,#f5_1 mov r1,#1 jmp makout1 mak1f6 mov a,r2 add a,#214 jnz mak1f7 mov r0,#f6_1 mov r1,#1 jmp makout1 mak1f7 mov a,r2 add a,#213 jnz mak1f8 mov r0,#f7_1 mov r1,#1 jmp makout1 mak1f8 mov a,r2 add a,#212 jnz mak1f9 mov r0,#f8_1 mov r1,#1 jmp makout1 mak1f9 mov a,r2 add a,#211 jnz mak1f10 mov r0,#f9_1 mov r1,#1 jmp makout1 mak1f10 mov a,r2 add a,#210 jnz mak1f11 mov r0,#f10_1 mov r1,#1 jmp makout1 mak1f11 mov a,r2 add a,#209 jnz mak1f12 cpl f1 jmp makend1 mak1f12 mov a,r2 add a,#208 jnz makend1 cpl f0 jmp makend1 f1_1 db 26 ; Print db 198 ; Shift db 22 ; Usr db 2 ; 1 db 3 ; 2 db 3 ; 2 db 9 ; 8 db 9 ; 8 db 73 ; , db 154 ; " f2_1 db 30 ; Rand db 198 ; Shift db 22 ; Usr db 9 ; 8 nop f3_1 db 25 ; Poke db 9 ; 8 db 73 ; , f4_1 db 26 ; Print db 198 ; Shift db 25 ; Peek db 255 f5_1 db 1 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 f6_1 db 1 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 f7_1 db 1 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 f8_1 db 1 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 f9_1 db 1 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 f10_1 db 1 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 db 255 byte1 call keyin1 add a,#72 jnz byte13 call keyin1 add a,#4 jz byte13 dec r3 mov a,r3 add a,#99 jnz byte12 byte11 mov a,r3 dec a jmp byte14 byte12 mov a,r3 add a,#111 jz byte11 mov a,r3 add a,#36 jnz byte13 mov r3,#89 byte13 mov a,r3 byte14 rl a rl a rl a xch a,r2 rlc a xch a,r2 rrc a rr a jf0 byte16 jf1 byte17 call tab1 byte15 mov r2,a ret byte16 call tab2 jmp byte15 byte17 call tab3 jmp byte15 keyin1 mov r2,#0 clr a keyin11 jt0 keyin11 keyin12 clr c jnt1 keyin13 cpl c keyin13 rrc a xch a,r2 rrc a xch a,r2 keyin14 jnt0 keyin14 mov r4,#40 keyin15 jnt0 keyin12 djnz r4,keyin15 mov r3,a ret nop nop main1 mov r7,#0 main11 call byte1 add a,#160 jnz main13 main12 mov r7,#128 jmp main16 main13 inc a jz main12 mov a,r2 add a,#155 jz main15 mov a,r2 call mak1f1 main14 add a,r7 outl p1,a jmp main11 main15 call byte1 add a,#160 jz main17 inc a jz main17 main16 clr a jmp main14 main17 mov r7,#0 jmp main16 wait1 clr a mov t,a mov r3,#7 strt t wait11 jtf wait12 jmp wait11 wait12 djnz r3,wait11 ret db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255 tab1 xch a,r2 rlc a xch a,r2 rrc a movp a,@a ; 0 1 2 3 4 5 6 7 8 9 a b c d e f matr1_0 db 131,039,255,255,255,255,255,011,255,255,255,030,255,017,255,255 matr1_1 db 255,255,255,067,255,068,094,255,255,255,255,085,049,255,255,063 matr1_2 db 255,255,255,079,255,002,035,255,255,004,032,255,012,255,255,009 matr1_3 db 064,010,072,255,066,255,255,255,255,255,255,255,090,091,052,255 matr1_4 db 255,255,255,040,098,097,255,255,255,015,255,255,255,255,255,031 matr1_5 db 255,025,255,255,255,255,255,255,255,083,087,056,101,055,047,255 matr1_6 db 255,038,044,255,095,255,255,003,034,255,255,006,255,007,023,255 matr1_7 db 021,255,255,074,255,060,070,255,255,075,255,084,051,255,255,092 matr1_8 db 045,255,255,093,255,027,255,255,255,005,078,255,024,255,255,008 matr1_9 db 255,001,076,255,255,255,255,069,077,255,255,255,082,057,061,255 matr1_a db 043,048,042,255,255,255,255,255,014,255,255,255,255,255,020,255 matr1_b db 019,255,255,255,255,255,071,255,255,081,053,255,054,255,255,255 matr1_c db 255,037,046,100,099,255,255,033,013,255,255,028,255,036,255,255 matr1_d db 073,255,255,026,255,080,096,255,255,088,050,086,059,255,089,058 matr1_e db 041,255,255,255,255,255,029,255,255,255,016,255,018,255,255,255 matr1_f db 255,255,022,255,255,255,255,255,255,255,255,255,255,065,062,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255,255 tab2 xch a,r2 rlc a xch a,r2 rrc a movp a,@a ; 0 1 2 3 4 5 6 7 8 9 a b c d e f matr2_0 db 131,039,255,255,255,255,255,011,255,255,255,030,255,018,255,255 matr2_1 db 255,255,255,067,255,068,094,255,255,255,255,085,049,255,255,063 matr2_2 db 255,255,255,079,255,002,035,255,255,004,032,255,012,255,255,009 matr2_3 db 064,010,072,255,066,255,255,255,255,255,255,255,090,091,052,255 matr2_4 db 255,255,255,040,098,097,255,255,255,015,255,255,255,255,255,031 matr2_5 db 255,025,255,255,255,255,255,255,255,083,087,056,101,055,047,255 matr2_6 db 255,038,044,255,095,255,255,003,034,255,255,006,255,007,023,255 matr2_7 db 021,255,255,074,255,060,070,255,255,075,255,084,051,255,255,092 matr2_8 db 045,255,255,093,255,027,255,255,255,005,078,255,024,255,255,008 matr2_9 db 255,001,076,255,255,255,255,069,077,255,255,255,082,057,061,255 matr2_a db 043,048,042,255,255,255,255,255,014,255,255,255,255,255,020,255 matr2_b db 019,255,255,255,255,255,071,255,255,081,053,255,054,255,255,255 matr2_c db 255,037,046,100,099,255,255,033,013,255,255,028,255,036,255,255 matr2_d db 073,255,255,026,255,080,096,255,255,088,050,086,059,255,089,058 matr2_e db 041,255,255,255,255,255,029,255,255,255,016,255,018,255,255,255 matr2_f db 255,255,022,255,255,255,255,255,255,255,255,255,255,065,062,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255 db 255,255,255,255,255,255,255,255,255,255,255 tab3 xch a,r2 rlc a xch a,r2 rrc a movp a,@a ; 0 1 2 3 4 5 6 7 8 9 a b c d e f matr3_0 db 131,039,255,255,255,255,255,011,255,255,255,030,255,019,255,255 matr3_1 db 255,255,255,067,255,068,094,255,255,255,255,085,049,255,255,063 matr3_2 db 255,255,255,079,255,002,035,255,255,004,032,255,012,255,255,009 matr3_3 db 064,010,072,255,066,255,255,255,255,255,255,255,090,091,052,255 matr3_4 db 255,255,255,040,098,097,255,255,255,015,255,255,255,255,255,031 matr3_5 db 255,025,255,255,255,255,255,255,255,083,087,056,101,055,047,255 matr3_6 db 255,038,044,255,095,255,255,003,034,255,255,006,255,007,023,255 matr3_7 db 021,255,255,074,255,060,070,255,255,075,255,084,051,255,255,092 matr3_8 db 045,255,255,093,255,027,255,255,255,005,078,255,024,255,255,008 matr3_9 db 255,001,076,255,255,255,255,069,077,255,255,255,082,057,061,255 matr3_a db 043,048,042,255,255,255,255,255,014,255,255,255,255,255,020,255 matr3_b db 019,255,255,255,255,255,071,255,255,081,053,255,054,255,255,255 matr3_c db 255,037,046,100,099,255,255,033,013,255,255,028,255,036,255,255 matr3_d db 073,255,255,026,255,080,096,255,255,088,050,086,059,255,089,058 matr3_e db 041,255,255,255,255,255,029,255,255,255,016,255,018,255,255,255 matr3_f db 255,255,022,255,255,255,255,255,255,255,255,255,255,065,062,255