home *** CD-ROM | disk | FTP | other *** search
/ Syzygy Magazine 6 / Syzygy_Magazine_6_1999___pl_Disk_2_of_3_Side_B.atr / sparta1.arc / SPARTA17.DOC < prev   
Text File  |  1999-02-20  |  6KB  |  1 lines

  1. ¢      Procedury obs ugi wej③cia/wyj③cia ekranu s⇧ specjalnie wydzielone¢  poniewaə SDX dopuszcza kierowanie CON IO.¢¢      Procedura wysy a bajt na CON:. Bajt niesiony w A. B ⇧d zg aszany przez¢  U_FAIL. Procedura nie zmienia rejestrw 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 wysy a bajt na urz⇧dzenie.¢¢           org $AB5C PUT END procedure.¢¢  putend   pha             Na kocu procedura od③wierza pocz⇧tkowe ustawienia¢¢           lda ptmpiocb    rejestrw 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 wywo ywana jest procedura od③wierzaj⇧ca¢           cpx #$00        rejestry systemowe, a na koniec procedura ustawia¢           rts             wynik operacji w F.¢¢      Nast❎pne dwie procedury wysy aj⇧ i czytaj⇧ rekordy na i z CON:¢  W AX wska♪nik do buforu a w Y d ugo③⇨.¢¢¢           org $AB88 PUT String.¢¢  putend   $AB5C¢  swapc2xp $ABA5¢  FPUTS    $AD49¢¢  PUTS     jsr swapc2xp    Procedura podmienia kana  i urz⇧dzenie.¢           jsr FPUTS       Teraz wysy a ci⇧g.¢           jmp putend      I konczy dzia anie.¢¢           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 dzia anie.¢¢      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 kana u CON: dla get.¢           bne eABA9¢¢           org $ABA5 SWAP Con to X Put.¢¢  swapc2xp pha¢           lda conch_i     Procedura pobiera numer kana u CON: dla put.¢¢           pha             Na pocz⇧tku procedura zapami❎tuje ustawienia dla¢           lda siocbidx    danego kana u 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 kana y podmiany.¢  Parametr jest niesiony w Y. y=0 operacje PUT, Y=1 GET.¢  B ⇧d zg aszany 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③⇨ kana u¢           sta conswflg,y  aktywnego dla operacji CON a,¢           lda siocbidx¢           sta conch_i,y   indeks kanalu otrzymuje warto③⇨ zwrcon⇧ 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 kana u 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¢