Reformat with z80fmt

This commit is contained in:
maddiebaka
2026-08-16 06:52:47 -04:00
parent adce930a17
commit b8a3647ae5
+226 -226
View File
@@ -1,226 +1,226 @@
org 100h org 100h
siob_data equ 083h siob_data equ 083h
siob_ctrl equ 082h siob_ctrl equ 082h
lcd_data equ 0dbh lcd_data equ 0dbh
lcd_ctrl equ 0dah lcd_ctrl equ 0dah
celcius_offset equ 08ah celcius_offset equ 08ah
pressure_offset equ 0cah pressure_offset equ 0cah
humid_offset equ 09eh humid_offset equ 09eh
bdos equ 0005h bdos equ 0005h
conout equ 02h conout equ 02h
conin equ 01h conin equ 01h
char_idx equ 10h char_idx equ 10h
start: start:
call init_lcd call init_lcd
call init_siob call init_siob
call lcd_delay call lcd_delay
ld a,celcius_offset ; write celcius label ld a,celcius_offset ; write celcius label
out (lcd_ctrl),a out (lcd_ctrl),a
call lcd_delay call lcd_delay
ld hl,clabel ld hl,clabel
call print_str_to_lcd call print_str_to_lcd
ld a,pressure_offset ; write pressure label ld a,pressure_offset ; write pressure label
out (lcd_ctrl),a out (lcd_ctrl),a
call lcd_delay call lcd_delay
ld hl,plabel ld hl,plabel
call print_str_to_lcd call print_str_to_lcd
ld a,humid_offset ; write humidity label ld a,humid_offset ; write humidity label
out (lcd_ctrl),a out (lcd_ctrl),a
call lcd_delay call lcd_delay
ld hl,hlabel ld hl,hlabel
call print_str_to_lcd call print_str_to_lcd
main: main:
call read_char_b call read_char_b
call parse_char call parse_char
;call lcd_delay ;call lcd_delay
;call print_char_to_lcd ;call print_char_to_lcd
ld c,11 ld c,11
call bdos call bdos
or a or a
jr z,main jr z,main
ret ret
init_siob: init_siob:
ld a,018h ; channel reset ld a,018h ; channel reset
out (siob_ctrl),a out (siob_ctrl),a
ld a,04h ld a,04h
out (siob_ctrl),a ; wr4 baud settings out (siob_ctrl),a ; wr4 baud settings
ld a,0c4h ld a,0c4h
out (siob_ctrl),a out (siob_ctrl),a
ld a,03h ld a,03h
out (siob_ctrl),a ; rx enable out (siob_ctrl),a ; rx enable
ld a,0c1h ld a,0c1h
out (siob_ctrl),a out (siob_ctrl),a
ld a,05h ld a,05h
out (siob_ctrl),a ; tx settings out (siob_ctrl),a ; tx settings
ld a,0eah ld a,0eah
out (siob_ctrl),a out (siob_ctrl),a
ret ret
init_lcd: init_lcd:
ld a,38h ld a,38h
out (lcd_ctrl),a ; function 8 bit, 2 lines, 5x8 dot font out (lcd_ctrl),a ; function 8 bit, 2 lines, 5x8 dot font
call lcd_delay call lcd_delay
ld a,0ch ld a,0ch
out (lcd_ctrl),a ; display on, cursor off, no blink out (lcd_ctrl),a ; display on, cursor off, no blink
call lcd_delay call lcd_delay
ld a,01h ld a,01h
out (lcd_ctrl),a ; clear display out (lcd_ctrl),a ; clear display
ret ret
lcd_delay: lcd_delay:
ld bc,500 ld bc,500
delay1: delay1:
dec bc dec bc
ld a,b ld a,b
or c or c
jr nz,delay1 jr nz,delay1
ret ret
convert_to_hpa: convert_to_hpa:
ld a,(pressure) ld a,(pressure)
ret ret
read_char_b: read_char_b:
wait: wait:
in a,(siob_ctrl) in a,(siob_ctrl)
bit 0,a bit 0,a
jr z,wait jr z,wait
in a,(siob_data) in a,(siob_data)
ret ret
parse_char: ; char should be in register a parse_char: ; char should be in register a
cp a,25h ; percent sign (end of transmission) cp a,25h ; percent sign (end of transmission)
jr z,print_telem_to_lcd jr z,print_telem_to_lcd
cp a,0dh ; carriage return cp a,0dh ; carriage return
jr z,null_term jr z,null_term
cp a,0ah ; new line cp a,0ah ; new line
jr z,parse_char_done jr z,parse_char_done
cp a,054h ; T character cp a,054h ; T character
jr z,set_char_idx_t ; point the char_idx to the temperature buffer jr z,set_char_idx_t ; point the char_idx to the temperature buffer
cp a,050h ; P character cp a,050h ; P character
jr z,set_char_idx_p ; point the char_idx to the pressure buffer jr z,set_char_idx_p ; point the char_idx to the pressure buffer
cp a,048h ; H character cp a,048h ; H character
jr z,set_char_idx_h ; point the char_idx to the humidity buffer jr z,set_char_idx_h ; point the char_idx to the humidity buffer
ld bc,(char_idx) ; get address stored in char_idx ld bc,(char_idx) ; get address stored in char_idx
ld (bc),a ; deref that address and store char ld (bc),a ; deref that address and store char
inc bc inc bc
ld (char_idx),bc ; store incremented address in char_idx ld (char_idx),bc ; store incremented address in char_idx
;out (lcd_data),a ;out (lcd_data),a
parse_char_done: parse_char_done:
ret ret
print_telem_to_lcd: print_telem_to_lcd:
call move_to_tempaddr call move_to_tempaddr
ld hl,temperature ld hl,temperature
call print_str_to_lcd call print_str_to_lcd
call move_to_presaddr call move_to_presaddr
ld hl,pressure ld hl,pressure
call print_str_to_lcd call print_str_to_lcd
call move_to_humidaddr call move_to_humidaddr
ld hl,humidity ld hl,humidity
call print_str_to_lcd call print_str_to_lcd
ld a,1h ld a,1h
out (0),a out (0),a
ret ret
null_term: ; null terminate end of parsed string in memory null_term: ; null terminate end of parsed string in memory
ld a,00h ld a,00h
ld bc,(char_idx) ld bc,(char_idx)
ld (bc),a ld (bc),a
jr parse_char_done jr parse_char_done
set_char_idx_t: set_char_idx_t:
ld bc,temperature ld bc,temperature
ld (char_idx),bc ld (char_idx),bc
ret ret
set_char_idx_p: set_char_idx_p:
ld bc,pressure ld bc,pressure
ld (char_idx),bc ld (char_idx),bc
ret ret
set_char_idx_h: set_char_idx_h:
ld bc,humidity ld bc,humidity
ld (char_idx),bc ld (char_idx),bc
ret ret
print_char_to_lcd: print_char_to_lcd:
cp a,00h ; null byte cp a,00h ; null byte
jr z,lcd_done jr z,lcd_done
cp a,0dh ; carriage return cp a,0dh ; carriage return
jr z,lcd_done jr z,lcd_done
cp a,0ah ; new line cp a,0ah ; new line
jr z,lcd_done jr z,lcd_done
cp a,054h ; T character cp a,054h ; T character
call z,move_to_tempaddr call z,move_to_tempaddr
cp a,050h ; P character cp a,050h ; P character
call z,move_to_presaddr call z,move_to_presaddr
cp a,048h ; H character cp a,048h ; H character
call z,move_to_humidaddr call z,move_to_humidaddr
out (lcd_data),a out (lcd_data),a
lcd_done: lcd_done:
ret ret
print_str_to_lcd: ; place memory address in hl first print_str_to_lcd: ; place memory address in hl first
ld a,(hl) ld a,(hl)
or a or a
jr z,print_done jr z,print_done
out (lcd_data),a out (lcd_data),a
call lcd_delay call lcd_delay
inc hl inc hl
jr print_str_to_lcd jr print_str_to_lcd
print_done: print_done:
ret ret
move_to_tempaddr: move_to_tempaddr:
ld c,a ld c,a
ld a,85h ld a,85h
out (lcd_ctrl),a out (lcd_ctrl),a
ld a,c ld a,c
call lcd_delay call lcd_delay
ret ret
move_to_presaddr: move_to_presaddr:
ld a,0c1h ld a,0c1h
out (lcd_ctrl),a out (lcd_ctrl),a
call lcd_delay call lcd_delay
ret ret
move_to_humidaddr: move_to_humidaddr:
ld a,99h ld a,99h
out (lcd_ctrl),a out (lcd_ctrl),a
call lcd_delay call lcd_delay
ret ret
clabel: DB 'degree C',0 clabel: DB 'degree C',0
plabel: DB 'pascal',0 plabel: DB 'pascal',0
hlabel: DB '% RH',0 hlabel: DB '% RH',0
temperature: DS 16 temperature: DS 16
humidity: DS 16 humidity: DS 16
pressure: DS 16 pressure: DS 16