; ; Written by Mark Six ; Date : 7-10-2205 ; Filename : serial.psm ; Description : Example program for demonstration of the serial port. ; ; Serial settings ;--------------------- ; Transmit port = 1 ; Receive port = 1 ; Status port = 0 constant ascii_h, 48 constant ascii_e, 65 constant ascii_l, 6c constant ascii_o, 6f constant ascii_>, 3e constant ascii_nl, 0A main: call prompt ; 'Hello>' call serial_read ; wait for input call serial_write ; echo input load s1, ascii_nl ; new line call serial_write jump main ; repeat until doomsday ; write 'Hello>' to serial port prompt: load s1, ascii_h call serial_write load s1, ascii_e call serial_write load s1, ascii_l call serial_write load s1, ascii_l call serial_write load s1, ascii_o call serial_write load s1, ascii_> call serial_write return ; Write character in register s1 to serial port serial_write: load s0, 0 ; Read status register at IO port 0 input s2, (s0) test s2, 2 ; Check if transmit fifo is full jump nz, serial_write ; if full, then wait. load s0, 1 ; Write to transmit register at IO port 1 output s1, (s0) return ; Done... ; Read character from serial port in register s1 serial_read: load s0, 0 ; Read status register at IO port 0 input s2, (s0) test s2, 10 ; Check if data ready (DR) jump z, serial_read ; if not ready, then wait load s0, 1 ; Read for receive register at IO port 0 input s1, (s0) return ; Done...