Don't like ads? PRO users don't see any ads ;-)
Guest

NucleoOS stuff 01

By: a guest on Feb 18th, 2012  |  syntax: Z80 Assembler  |  size: 1.42 KB  |  hits: 67  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. ; Put a character to the kernel con buffer
  2. ; Input:  
  3. ;       c='char'
  4.  
  5. PUTC_S:
  6.         ld hl, (KERNEL_CON_Y2)
  7.         call CON_GET_STATUS
  8.         xor $01
  9.         ld d, a
  10.         ld a, 9
  11.         add a, d
  12.         cp l
  13.         jr nc, {@}
  14.         ret
  15. @
  16.         jr nz, {@}
  17.         ret
  18. @
  19.         ld a, h
  20.         ld h, 0
  21.         add hl, hl
  22.         add hl, hl
  23.         add hl, hl
  24.         push hl
  25.         pop de
  26.         add hl, hl
  27.         add hl, de
  28.         ld d, 0
  29.         ld e, a
  30.         add hl, de
  31.         ld de, KERNEL_CON_BUF2
  32.         add hl, de
  33.         ld a, c
  34.         ld (hl), a
  35.         ld a, (KERNEL_CON_X2)
  36.         inc a
  37.         cp 24
  38.         jr nc, {@}
  39.         ld (KERNEL_CON_X2), a
  40.         ret
  41. @
  42.         xor a
  43.         ld (KERNEL_CON_X2), a
  44.         ld a, (KERNEL_CON_Y2)
  45.         inc a
  46.         ld (KERNEL_CON_Y2), a
  47.         call CON_GET_STATUS
  48.         xor $01
  49.         ld d, a
  50.         ld a, 9
  51.         add a, d
  52.         ld e, a
  53.         ld a, (KERNEL_CON_Y2)
  54.         ld d, a
  55.         ld a, e
  56.         cp d
  57.         ret c
  58.         ret nz
  59.                 call CON_GET_WRAP
  60.                 cp 0
  61.                 jr z, {5@}
  62.                         call CON_GET_STATUS
  63.                         cp 0
  64.                         jr nz, {@}
  65.                                 ld a, KERNEL_CON_BUF2_LEN_STATUS-24
  66.                                 jr {2@}
  67.                         @
  68.                                 ld a, KERNEL_CON_BUF2_LEN-24
  69.                         @
  70.                         ld b, 0
  71.                         ld c, a
  72.                         ld hl, KERNEL_CON_BUF2+24
  73.                         ld de, KERNEL_CON_BUF2
  74.                         ldir
  75.                         ld a, (KERNEL_CON_Y2)
  76.                         dec a
  77.                         ld (KERNEL_CON_Y2), a
  78.                         call CON_GET_STATUS
  79.                         cp 0
  80.                         jr z, {@}
  81.                                 ld hl, KERNEL_CON_BUF2 + KERNEL_CON_BUF2_LEN - 24
  82.                                 jr {2@}
  83.                         @
  84.                                 ld hl, KERNEL_CON_BUF2 + KERNEL_CON_BUF2_LEN_STATUS - 24
  85.                         @
  86.                         inc hl
  87.                         push hl
  88.                         pop de
  89.                         dec hl
  90.                         xor a
  91.                         ld (hl), a
  92.                         ld bc, 23
  93.                         ldir
  94.                         ret
  95.                 @
  96.                         ld a, (KERNEL_CON_Y2)
  97.                         ;inc a
  98.                         ld (KERNEL_CON_Y2), a
  99.                         ret
  100. PUTC_S_END: