2023/09/13: ATOA - komunikacje ZAWSZE inicjuje Amiga Od strony Atari: PORTA dane TRIG0 sterowanie Receive: ; PORTA na wejście PACTL &= %11111011 PORTA = %00000000 PACTL |= %00000100 NMIEN = %00000000 DMACTL = %00000000 SEI $FE = <$3010 $FF = >$3010 LOOP IF TRIG0 = 0 LOOP IF TRIG0 = 1 $247F = PORTA ;MSB of data length LOOP IF TRIG0 = 0 LOOP IF TRIG0 = 1 $247E = PORTA ;LSB od data length $2480 = $247E + <$3010 $2481 = $247F + >$3010 WHILE $FE <> $2480 LOOP IF TRIG0 = 0 ($FE) = PORTA LOOP IF TRIG0 = 1 $FE++ CLI NMIEN = %11000000 Send: ; PORTA na wyjście PACTL &= %11111011 PORTA = %11111111 PACTL |= %00000100 $2480 = $247E + <$3010 $2481 = $247F + >$3010 $FE = <$3010 $FF = >$3010 NMIEN = %00000000 DMACTL = %00000000 SEI LOOP IF TRIG0 = 1 PORTA = $247F ;MSB of data length LOOP IF TRIG0 = 0 LOOP IF TRIG0 = 1 PORTA = $247E ;LSB of data length LOOP IF TRIG0 = 0 LOOP IF TRIG0 = 1 WHILE $FE <> $2480 PORTA = ($FE) LOOP IF TRIG0 = 0 LOOP IF TRIG0 = 1 $FE++ CLI NMIEN = %11000000 Od strony Amigi: PRB dane PRA.BUSY sterowanie PRA.BUSY = 0 PRA.BUSY = 1 MSB of data length = PRB LOOP 15 cykli PRA.BUSY = 0 LOOP 750 cykli PRA.BUSY = 1 LSB of data length = PRB LOOP 15 cykli PRA.BUSY = 0 LOOP 750 cykli WHILE data length <> 0 PRA.BUSY = 1 data = PRB LOOP 15 cykli PRA.BUSY = 0 LOOP 750 cykli