
NucleoOS stuff 01
By: a guest on
Feb 18th, 2012 | syntax:
Z80 Assembler | size: 1.42 KB | hits: 67 | expires: Never
; Put a character to the kernel con buffer
; Input:
; c='char'
PUTC_S:
ld hl, (KERNEL_CON_Y2)
call CON_GET_STATUS
xor $01
ld d, a
ld a, 9
add a, d
cp l
jr nc, {@}
ret
@
jr nz, {@}
ret
@
ld a, h
ld h, 0
add hl, hl
add hl, hl
add hl, hl
push hl
pop de
add hl, hl
add hl, de
ld d, 0
ld e, a
add hl, de
ld de, KERNEL_CON_BUF2
add hl, de
ld a, c
ld (hl), a
ld a, (KERNEL_CON_X2)
inc a
cp 24
jr nc, {@}
ld (KERNEL_CON_X2), a
ret
@
xor a
ld (KERNEL_CON_X2), a
ld a, (KERNEL_CON_Y2)
inc a
ld (KERNEL_CON_Y2), a
call CON_GET_STATUS
xor $01
ld d, a
ld a, 9
add a, d
ld e, a
ld a, (KERNEL_CON_Y2)
ld d, a
ld a, e
cp d
ret c
ret nz
call CON_GET_WRAP
cp 0
jr z, {5@}
call CON_GET_STATUS
cp 0
jr nz, {@}
ld a, KERNEL_CON_BUF2_LEN_STATUS-24
jr {2@}
@
ld a, KERNEL_CON_BUF2_LEN-24
@
ld b, 0
ld c, a
ld hl, KERNEL_CON_BUF2+24
ld de, KERNEL_CON_BUF2
ldir
ld a, (KERNEL_CON_Y2)
dec a
ld (KERNEL_CON_Y2), a
call CON_GET_STATUS
cp 0
jr z, {@}
ld hl, KERNEL_CON_BUF2 + KERNEL_CON_BUF2_LEN - 24
jr {2@}
@
ld hl, KERNEL_CON_BUF2 + KERNEL_CON_BUF2_LEN_STATUS - 24
@
inc hl
push hl
pop de
dec hl
xor a
ld (hl), a
ld bc, 23
ldir
ret
@
ld a, (KERNEL_CON_Y2)
;inc a
ld (KERNEL_CON_Y2), a
ret
PUTC_S_END: