"Skills, Knowledge, Abilities, and Experiences

are only useful....

If you are at the right place "

:main

;start code at the address 8100h

;set mode of 8255 pio

;set lcd display mode

;waiting for interruption

set_8255:

;load #38h to the acumulator

;load the pointer with port1 address

;export #38h to control port1

;load #89h to the accumulator

;load the pointer with port2 address

;export #89h to control port2

;return back to main process

lcd_set:

;load #38h to the accumulator

;call to LCD instruction trigger

;load #0eh to the accumulator

;call to LCD instruction trigger

;load #06h to the accumulator

;call to LCD instruction trigger

;return to main process

ir_set:

;load the pointer

;export data in the acc to port a1

;load the pointer with port b1 address

;load #00000010b to the accumulator

;export #00000010b to port a1

;load acc with #00000010b

;export #00000010b to port_b1

;load register r2 with #05h

;call delay

;load acc with #00000000b

;export #00000000b to port_b1

;return

dr_set:

;load data pointer with #0fc00h

;export acc value to port_a1

;load data pointer with #0fc01h

;load acc with #00000001b

;export #00000001 to port_b1

;load acc with #00000011b

;export #00000011b to port_b1

;load register r2 with #05h

;lacc delay

;load acc with #00000001b

;export #0000001b to port_b1

;return

dmsec: "delay 1/1000 second"

;load register r3 with #230

;nop

;nop

;decrement&jump r3

;decrement&jump r2

;return

lcd_dump: "dump data from external rom to lcd display"

;push data pointer upper

;pust data pointer lowwer

;01 = clear lcd

;load data pointer with #0fc00

;export #01h to port_a1

;call lcd instruction set

;pop data pointer lower

;pop data pointer upper

;clear acc

;load acc with @a+dptr

;push data pointer upper

;pust data pointer lower

;load data pointer with #0fc00h

;export acc value to port_a1

;call lcd instruction set

;pop data pointer lower

;pop data pointer upper

;increment data pointer

;clear acc

;load acc with @a+dptr

;compare&jump with #0ffh

;call return curser

;return

;push data pointer upper

;push data pointer lower

;load data pointer with #0fc00h

;export acc value to port_a1

;call lcd data set

;pop data pointer lower

;pop data pointer upper

;jump to dmp_lp2

ram_dump: "dump data from internal ram to lcd display"

;load register r0 with xy_ram value

;load acc with register r0 value

;call lcd instruction set

;increment register r0

;load acc with register r0 value

;compare&jump acc with #0ffh

;call return curser

;return

;call lcd data set

;jump to rdp2

lcd_move: "move data from lcd internal ram to lcd display"

;c0h = first colume of lcd row2

;call lcd instruction set

;80h = start colume of lcd row2

;lcd internal ram = 98h?

;if = 98h then -> return

;move data from lcd ram to accumulater

;send data to lcd

;increment pointer

ram_cls: "clear internal buffer ram of lcd"

;c0h = first colume of lcd row 2

;call lcd instruction trigger

;80h = address of lcd internal ram

;lcd internal ram = 98h

;if = 98h then -> return

;code 20h = space(blank)

;increment pointer

;jump to lclp2

dump_cha: "dump charecter one byte by one byte"

;load pointer of lcd ram

;if pointer = 98h then -> return

;return

;check key caps_flax

;check key shift_flax

;load acc with upper charecter

;jump to chalp2

;load dptr with #d_sfoff

;call lcd_dump

;load acc with lower charecter

;load r0 with ram_csr value

;move acc value to internal ram

;call lcd data trigger

;increment ram pointer

;increment lcd pointer

;clear shift_flax

;return

ramtolcd: "move data from ram to lcd ram"

;push data pointer upper

;push data pointer lower

;load register r0 with #80h

;import acc from dptr value

;move acc value to internal ram

;increment register r0

;increment data pointer

;compare&jump r0 with #98h

;pop data pointer lower

;pop data pointer upper

;return

lcdtoram: "move data from lcd ram to ram"

;push data pointer upper

;push data pointer lower

;load register r0 with #80h

;load acc with r0 value

;export acc value to dptr

;increment register r0

;increment data pointer

;compare&jump r0 with #98h

;pop data pointer lower

;pop data pointer upper

;return

Get in Touch !