Re: A83: Link Play
[Prev][Next][Index][Thread]
Re: A83: Link Play
This is link.h which comes with a bunch of different games...
;
; SOME VERY NICE LINK ROUTINES MADE BY PASCAL BOURON
;
; I've made some modifications so it fits ZTetris
;
; Ported to TI83 and highly optimized by Florent Dhordain 06/04/98
;
ReceiveByte:
ld l, 0 ; l used as lcounter
ld b,8 ; 8 bits to receive
ld a,$D0
out (0),a
rb_w_Start:
in a,(0)
and $C
cp $C ; wait one line becomes low
jr nz,rb_get_bit
call Test_ON
jr rb_w_Start
rb_get_bit:
ld l, 0 ; reset lcounter
cp 8 ; is it a 0 ?
jr z,rb_receive_zero ; Yeah !
ld a,$D1
out (0),a ; Ack for a '1'
rr c ; put the 1 (cf has been set by cp)
rb_waitstop1:
call Test_On
in a, (0)
and $8 ; wait 'til Ack is recognized
jr z, rb_waitstop1
jr rb_stopok
rb_receive_zero:
ld a,$d2 ; Ack for a '0'
out (0),a
rr c ; put the 0 (cf has been cleared by cp)
rb_waitStop0:
call Test_On
in a,(0)
and $4 ; wait 'til Ack is recognized
jr z, rb_waitStop0
rb_stopok: ; here, one line is low cause of
us(recv)
ld a,$d0 ; the sender calc has already set lines to
hi
out (0),a
djnz rb_w_Start
ld a,c
ret
Test_ON:
dec l
ret nz ; exit only if cnt = 0
pop hl ;Back to the place you were before. Gotta love it!
ld a, $d0
out (0), a
xor a
ret
SendByte:
ld hl,0
ld (lcounter),hl
ld b,8
ld c,a ; byte to send
ld d, a ; Save it
ld a,$D0
out (0),a
w_setport3:
in a,(0)
and $C
cp $C ; wait both lines are low
jr z, calc_bit
call SendTest_ON
jr w_setport3
calc_bit:
rr c
ld a, $d2
jr c,send_one
send_zero:
dec a
send_one:
out (0),A
wait_setport:
call SendTest_ON
in a,(0)
and $C ; wait both become low
jr nz,wait_setport
ld a,$D0 ; put them back to hi
out (0),A
djnz w_setport3
ld a, d ; Restore byte
ret
SendTest_ON:
ld a,(hsflag)
or a
jr z,LongWait
call GET_KEY
cp $09 ; If this is clear, exit !
ret nz
pop hl
pop hl
jp Quit
LongWait:
ld hl,(lcounter)
inc hl
ld (lcounter),hl
bit 6, h ; Has the counter reached $4000
ret z ; no, continue
pop hl
ret
mhlandry wrote:
>
> Anybody know anything about link play? Can you help me out with the
> routines?
--
Scott "_Wrath_" Dial
homosapian@geocities.com
ICQ#3608935
http://www.geocities.com/~homosapian/
References: