asm-test/lcd.asm

131 lines
2.7 KiB
NASM

;; Set pins 0-7 on Port B to Output
LDA # FF
STA a 8002
;; Set pins 0-2 on Port A to Output
LDA # 7
STA a 8003
;; 00111000 set 8-bit mode, 2-line display, 5x8 font
LDA # 38
STA a 8000
LDA # 0
STA a 8001 ; clear RS|RW|E
LDA # 1
STA a 8001 ; set E
LDA # 0
STA a 8001 ; clear RS|RW|E
;; 00001110 display on; cursor on; blink off
LDA # E
STA a 8000
LDA # 0
STA a 8001 ; clear RS|RW|E
LDA # 1
STA a 8001 ; set E
LDA # 0
STA a 8001 ; clear RS|RW|E
;; 00000001 Clear Display:
LDA # 1
STA a 8000
LDA # 0
STA a 8001 ; clear RS|RW|E
LDA # 1
STA a 8001 ; set E
LDA # 0
STA a 8001 ; clear RS|RW|E
;; 00000110 Entry Mode Set: increment and shift cursor; don't shift display
LDA # 6
STA a 8000
LDA # 0
STA a 8001 ; clear RS|RW|E
LDA # 1
STA a 8001 ; set E
LDA # 0
STA a 8001 ; clear RS|RW|E
;; l
LDA # 6C
STA a 8000
LDA # 2
STA a 8001 ; set RS; clear RW|E
LDA # 3
STA a 8001 ; set RS|E
LDA # 2
STA a 8001 ; set RS; clear RW|E
;; o
LDA # 6F
STA a 8000
LDA # 2
STA a 8001 ; set RS; clear RW|E
LDA # 3
STA a 8001 ; set RS|E
LDA # 2
STA a 8001 ; set RS; clear RW|E
;; v
LDA # 76
STA a 8000
LDA # 2
STA a 8001 ; set RS; clear RW|E
LDA # 3
STA a 8001 ; set RS|E
LDA # 2
STA a 8001 ; set RS; clear RW|E
;; e
LDA # 65
STA a 8000
LDA # 2
STA a 8001 ; set RS; clear RW|E
LDA # 3
STA a 8001 ; set RS|E
LDA # 2
STA a 8001 ; set RS; clear RW|E
;; ' '
LDA # 20
STA a 8000
LDA # 2
STA a 8001 ; set RS; clear RW|E
LDA # 3
STA a 8001 ; set RS|E
LDA # 2
STA a 8001 ; set RS; clear RW|E
;; a
LDA # 61
STA a 8000
LDA # 2
STA a 8001 ; set RS; clear RW|E
LDA # 3
STA a 8001 ; set RS|E
LDA # 2
STA a 8001 ; set RS; clear RW|E
;; n
LDA # 6E
STA a 8000
LDA # 2
STA a 8001 ; set RS; clear RW|E
LDA # 3
STA a 8001 ; set RS|E
LDA # 2
STA a 8001 ; set RS; clear RW|E
;; a
LDA # 61
STA a 8000
LDA # 2
STA a 8001 ; set RS; clear RW|E
LDA # 3
STA a 8001 ; set RS|E
LDA # 2
STA a 8001 ; set RS; clear RW|E
forever: JMP a :forever