Changes

Light pen driver

295 bytes added, 06:52
ld de,00000h
ld hl,00000h
ld (0a12dhdata_a12d),de
sub_a050h:
ld a,000h
ld (0a12chdata_a12c),a ;; accumulated pixels.
ld de,(0a12dhdata_a12d)
call sub_a10dh ;; store current graphics position
call 0bd2bh ;; mc print char
ld a,(0a12chdata_a12c) ;; pixel data
call 0bd2bh ;; mc print char
jr la0f9h
call 0bd2bh ;; mc print char
la0f9h:
ld a,(0a12chdata_a12c) ;; pixel data
call 0bd2bh ;; mc print char
call 0bb1eh ;; km test key
ret nz
ld hl,(0a12dhdata_a12d)
ld de,0000eh
add hl,de
ld (0a12dhdata_a12d),hl
ld hl,00000h
call sub_a10dh
ld de,(0a12dhdata_a12d)
ld a,d
cp 002h
;; pixel is set to foreground. accumulate it into the pixel data so far
ld hl,(0a12chdata_a12c)
add hl,de
ld (0a12chdata_a12c),hl
ret
sub_a10dh:
ld (0a12fhdata_a12f),hl ld (0a131hdata_a131),de
ret
sub_a115h:
ld hl,(0a12fhdata_a12f) ld de,(0a131hdata_a131)
ret
call 0bbf0h ;; gra test absolute
ret
data_a12c: db 00h,data_a12d: db 84h,02h,data_a12f: db 00h,00h,data_a131: db 0eh,00h,00h,00h
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
la1b7h:
call 0bb99h ;; txt get paper
ld (0a1f9hpen_cmp+1),a
ld bc,00000h
ld (data_a24c),bc
ld (data_a24e),bc
call sub_a210
la18bh:
ld a,02fh ;; 47 - space
call 0bb1eh ;; km test key
ld bc,05398h
add hl,bc
ld (0a1aahbuffer_addr3+2),hl;; +2 to skip ED,53buffer_addr3:
ld de,(055e0h)
ld hl,(data_a24e)
ld bc,057e4h
add hl,bc
ld (0a1b7hbuffer_addr4+1),hl;; +1 to skip 22buffer_addr4:
ld hl,(05a2ch)
la1f9h: ld (la257hdata_a257),hl
ld (data_a255),de
ld bc,00000h
ret z
jp la18bh
 
sub_a1efh:
push de
pop hl
pop de
pen_cmp:
cp 000h
jr nz,la248h
ld (data_a250),hl
ld (data_a250+2data_a252),de
push bc
call sub_0a210h
sub_a210:
ld hl,(data_a250)
ld de,(data_a250+2data_a252)
call 0bbeah ;; gra plot absolute
ld hl,(data_a24c)
ld bc,05398h
add hl,bc
ld de,(data_a250+2data_a252) ld (0a237hbuffer_addr1+2),hl;; +2 to skip ED, 53buffer_addr1:
ld (05648h),de
ld hl,(data_a24c)
add hl,bc
ld de,(data_a250)
ld (0a249buffer_addr+2),hl;; +2 to skip ED, 53buffer_addr2:
ld (05a94h),de
ret
2,590
edits