Files
SyncHome/trunk/workspace/Z80_SBC/paolo.z80
2023-03-13 08:36:51 +00:00

71 lines
1.9 KiB
Z80 Assembly

;==================================================================================
;
; SBC Extension
; (C) 20.09.2021 Paolo Iocco
;
;==================================================================================
;
; Initialize LCD display
;
CR: EQU 0DH
LF: EQU 0AH
CS: EQU 0CH ; Clear screen
ORG $1F00
PSTART:
LCD_INIT: LD B,$09
LD HL,LCD_COMMANDS
LD IX,LCD_DELAYS
LCD_LOOP: LD A,(HL)
OUT ($10),A
LD D,(IX+1)
LD E,(IX+0)
CALL DELAY
INC HL
INC IX
INC IX
DJNZ LCD_LOOP
LD HL,MSG2 ; Write message at 0,0
CALL PRINT_LCD
LD A,$C0
OUT ($10),A
LD HL,MSG1 ; test message
CALL PRINT_S
RET ; Loop
PRINT_S: LD A,(HL) ; Get character
OR A ; Is it $00 ?
RET Z ; Then RETurn on terminator
RST 08H ; Print it
INC HL ; Next Character
JR PRINT_S ; Continue until $00
RET
PRINT_LCD: LD A,(HL) ; Get character
OR A ; Is it $00 ?
RET Z ; Then RETurn on terminator
OUT ($11),A ; Print it
INC HL ; Next Character
LD DE,$0010
CALL DELAY
JR PRINT_LCD ; Continue until $00
RET
DELAY: DEC DE
LD A,D
OR E
JP NZ,DELAY
RET
;------------------------------------------------------------------------------
LCD_COMMANDS: DB $30, $30, $30, $38, $01, $02, $02, $0F ,$0F
LCD_DELAYS: DW $0A00,$02BB,$0050,$0020,$0020,$0020,$0020,$0500,$0100
MSG1: DB "Paolo wedge done.",CR,LF,0
MSG2: DB "BONJOUR MatEliSa",0
END