¢ Procedury obsugi wej③cia/wyj③cia ekranu s⇧ specjalnie wydzielone¢ poniewaə SDX dopuszcza kierowanie CON IO.¢¢ Procedura wysya bajt na CON:. Bajt niesiony w A. B⇧d zgaszany przez¢ U_FAIL. Procedura nie zmienia rejestrw X i Y.¢¢ org $AB56 PUT Char.¢¢ siocbidx $760¢ device $761¢ ptmpiocb $C39¢ ptmpdev $C3A¢¢ swapc2xp $ABA5¢ FPUTC $AD8C¢¢ PUTC jsr swapc2xp Na pocz⇧tku procedura prze⇧cza urz⇧dzenie.¢¢ jsr FPUTC Teraz wysya bajt na urz⇧dzenie.¢¢ org $AB5C PUT END procedure.¢¢ putend pha Na kocu procedura od③wierza pocz⇧tkowe ustawienia¢¢ lda ptmpiocb rejestrw systemowych.¢ sta siocbidx¢ lda ptmpdev¢ sta device¢ pla¢ rts¢¢ Procedura pobiera bajt z urz⇧dzenia CON:.¢ Bajt niesiony jest w A. Gdy nast⇧pi koniec pliku X=$FF i w F N=1,Z=0.¢ w przeciwnym razie X=0,N=0 a Z=1. Rejestr Y bez zmian.¢¢ org $AB6B GET Char.¢¢ putend $AB5C¢ swapx2xg $AB9F¢ XDIVIO $ABEC¢ FGETC $ADA1¢¢ GETC jsr swapc2xg Na pocz⇧tku procedura podmienia kana i urz⇧dzenie.¢¢ jsr FGETC Teraz pobiera bajt danych i¢¢ org $AB71 GET END procedure.¢¢ getend cpx #$00 sprawdza wynik.¢ bpl eAB82¢¢ pha Gdy nast⇧pil koniec pliku¢ tya¢ pha¢ ldy #$01 wy⇧cza kierowanie IO dla GET.¢ jsr XDIVIO¢ ldx #$FF i sygnalizuje koniec pliku w X.¢ pla¢ tay¢ pla¢¢ eAB82 jsr putend Teraz wywoywana jest procedura od③wierzaj⇧ca¢ cpx #$00 rejestry systemowe, a na koniec procedura ustawia¢ rts wynik operacji w F.¢¢ Nast❎pne dwie procedury wysyaj⇧ i czytaj⇧ rekordy na i z CON:¢ W AX wska♪nik do buforu a w Y dugo③⇨.¢¢¢ org $AB88 PUT String.¢¢ putend $AB5C¢ swapc2xp $ABA5¢ FPUTS $AD49¢¢ PUTS jsr swapc2xp Procedura podmienia kana i urz⇧dzenie.¢ jsr FPUTS Teraz wysya ci⇧g.¢ jmp putend I konczy dziaanie.¢¢ org $AB91 GET String.¢¢ getend $AB71¢ swapc2xg $AB9F¢ FGETS $AD62¢¢ GETS jsr swapc2xg Procedura podmienia kana i urz⇧dzenie.¢ jsr FGETS Teraz pobiera ci⇧g.¢ jmp getend I konczy dziaanie.¢¢ Procedury podmieniaj⇧ kana dla urz⇧dzenia CON: zgodnie z ustawionym¢ kierowaniem CON IO.¢¢ org $AB9A SWAP Con to Video.¢¢ siocbidx $760¢ device $761¢ conch_i $A5E¢ ptmpiocb $C39¢ ptmpdev $C3A¢¢ swapc2v pha Procedura ustawia urz⇧dzenie Video (szybkie IO dla¢ lda #$64 ekranu).¢ bne eABA9¢¢ org $AB9F SWAP Con to X Get.¢¢ swapc2xg pha¢ lda conch_i+1 Procedura pobiera numer kanau CON: dla get.¢ bne eABA9¢¢ org $ABA5 SWAP Con to X Put.¢¢ swapc2xp pha¢ lda conch_i Procedura pobiera numer kanau CON: dla put.¢¢ pha Na pocz⇧tku procedura zapami❎tuje ustawienia dla¢ lda siocbidx danego kanau IO.¢ sta ptmpiocb¢ lda device¢ sta ptmpdev¢ pla Nast❎pnie ustawia kana podmiany.¢ sta siocbidx¢ pla¢ rts¢¢ Najwaəniejsze procedury dla CON IO to funkcje ustalaj⇧ce kanay podmiany.¢ Parametr jest niesiony w Y. y=0 operacje PUT, Y=1 GET.¢ B⇧d zgaszany przez U_FAIL.¢¢ org $ABBC DIVert con IO.¢¢ siocbidx $760¢ opmode $778¢ fatr1 $779¢ fatr2 $77A¢ conch_i $A5E¢ conswflg $A60¢ temp1 $C38¢¢ FOPEN $AC56¢ setnewe $B9A8¢¢ DIVIO sty temp1 Na pocz⇧tku procedura zapami❎tuje tryb pracy.¢¢ lda conswflg,y Teraz sprawdza czy dany kana jest juə prze⇧czony.¢ bpl eABE9¢¢ lda ioopmode,y Gdy tak nie jest pobiera tryb otwarcia z tabeli,¢ sta opmode wpisuje do rejestru.¢ lda #$00¢ sta fatr2 Ustala atrybuty nadawane na standardowe i¢ lda #$A0¢ sta fatr1 poszukiwane na niekatalog i nie ukryty¢ jsr FOPEN i otwiera kana.¢¢ ldy temp1¢ lda conch_i,y Teraz flaga prze⇧czenia przyjmuje warto③⇨ kanau¢ sta conswflg,y aktywnego dla operacji CON a,¢ lda siocbidx¢ sta conch_i,y indeks kanalu otrzymuje warto③⇨ zwrcon⇧ przez OPEN.¢ jsr setnewe Na koniec ustawiany jest nowy sterownik con.¢ eABE9 rts¢¢ ioopmode dta b($08),b($04)¢¢ Procedura wy⇧cza kierowanie CON IO.¢¢ org $ABEC eXit DIVert con IO.¢¢ devtab $740¢ siocbidx $760¢ conch_i $A5E¢ conswflg $A60¢ temp1 $C38¢¢ FCLOSE $ACC3¢ setolde $B9C1¢¢ XDIVIO sty temp1 Na pocz⇧tku procedura zapami❎tuje tryb pracy.¢¢ lda conswflg,y Teraz sprawdza czy dany kana jest juə prze⇧czony.¢ bmi eAC13¢¢ ldx conch_i,y Gdy kana by prze⇧czony ustawiany¢ stx siocbidx jest jego numer.¢¢ lda devtab,x procedura sprawdza czyzosta on zamkni❎ty.¢ bmi eAC02¢¢ jsr FCLOSE Gdy nie kana jest zamykany.¢¢ eAC02 ldy temp1 Teraz¢ lda conswflg,y¢ sta conch_i,y indeks kanau CON zostaje ustawiony na standardowy,¢ lda #$FF¢ sta conswflg,y a flaga prze⇧czenia zostaje zgaszona.¢ jsr setolde Na koniec zostaje ustawiony standardowy sterownik¢ eAC13 rts urz⇧dzenia con.¢¢ end of doc¢