Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;#################################
- ;my v put map
- ;input: a = characeter
- ; (textStart) = os small font buf
- ; (textPage) = os small font page
- ; textInverse, (iy + textFlags)
- ; (penColz)
- ;output: (penColz) increased, so it can be a subroutine
- ;destroys: none
- myyVPutC:
- di
- push af
- push bc
- push de
- push hl
- push ix
- or a
- jp z, myyVPutMapDone
- bit appTextSave, (iy + appFlags)
- jr z, dontSaveText
- ld hl, (textSavePtr)
- ld (hl), a
- inc hl
- ld (textSavePtr), hl
- dontSaveText:
- call getLetterLength
- inc hl
- drawCursorEntry:
- inc hl
- push hl
- ld h, a
- ld de, (penColz)
- ld a, d
- and 7
- add a, h
- sub 8
- ld c, a
- push de
- ld l, 0
- add hl, de
- ld (penColz), hl
- pop de
- inc e
- call getPixel2
- pop ix
- ld b, 6
- ld de, 11
- putMapLoop:
- push bc
- ld a, (textPage)
- out (07), a
- ld a, c
- ld c, 0
- or a
- jr z, charAligned
- jp m, negAligned
- posAligned:
- ld b, a
- ld a, (ix)
- posAlignedLp:
- rra
- rr c
- djnz posAlignedLp
- jr alignDone
- negAligned:
- neg
- ld b, a
- ld a, (ix)
- negAlignedLp:
- rlca
- djnz negAlignedLp
- jr alignDone
- charAligned:
- ld a, (ix)
- alignDone:
- push af
- #if _84
- ld a, $81
- #else
- ld a, $41
- #endif
- out (07), a
- pop af
- bit textInverse, (iy + textFlags)
- jr nz, inverseText
- or (hl)
- ld (hl), a
- inc hl
- ld a, c
- or (hl)
- ld (hl), a
- jr putDone
- inverseText:
- cpl
- and (hl)
- ld (hl), a
- inc hl
- ld a, c
- cpl
- and (hl)
- ld (hl), a
- putDone:
- add hl, de
- inc ix
- pop bc
- djnz putMapLoop
- myyVPutMapDone:
- pop ix
- pop hl
- pop de
- pop bc
- pop af
- ; ei
- ret
- ;########################################
- ;get pixel
- ;input: de = xy
- ;output: hl = plotSScreen loc
- ;destroys: none
- getPixel2:
- push de
- push af
- ld a, d
- ld d, 0
- ld h, d
- ld l, e
- add hl, de
- add hl, de
- add hl, hl
- add hl, hl
- and %11111000
- rrca
- rrca
- rrca
- or $40
- ld d, plotSScreen / 256
- ld e, a
- add hl, de
- pop af
- pop de
- ret
- ;########################################
- getLetterLength:
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
- add hl, hl
- push de
- push af
- ld de, (textStart)
- add hl, de
- ld a, (textPage)
- out (07), a
- ld d, (hl)
- #if _84
- ld a, $81
- #else
- ld a, $41
- #endif
- out (07), a
- pop af
- cp ' '
- jr nz, notSpacedd
- inc d
- notSpacedd:
- ld a, d
- pop de
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement