Serce systemu Sparta DOS X.¢¢¢Najwaəniejsze dla systemu SDX procedury, wektory i inne obiekty przepisywane s⇧¢podczas zimnego startu do obszaru RAM przeznaczonego standardowo dla DOS-u,¢czyli pod adres $0700. Takie rozwi⇧zanie umoəliwia atw⇧ zmian❎ wektorw i¢procedur, co stanowi o elastyczno③ci systemu.¢¢Obszar ten dzieli si❎ na kilka cz❎③ci - w pierwszej znajduj⇧ si❎ tablice i¢zmienne.¢¢W opisie podano nazw❎, warto③⇨ bezpo③rednio po zainicjowaniu DOS-u, dugo③⇨ i¢adres zmiennej. UWAGA: warto③ci te s⇧ aktualne jeszcze przed odczytem¢sterownikw systemowych zawartych w pliku konfiguracyjnym (CONFIG.SYS)!¢¢¢s_flag dta 'S' ($0700) Sdx FLAG.¢¢Symboliczna nazwa SDX.¢¢¢s_ver dta b($40) ($0701) Sdx VERsion¢¢Numer wersji SDX w kodzie BCD.¢¢¢... dta b($00)¢¢ Znak zarezerwowany.¢¢¢sioidx dta b($FF) (9) ($070F) Sector IO InDeX.¢¢Tablica zamiany numerw DSK:¢¢¢siohand dta a($00) (4) ($0718) Sector IO HANDler.¢¢Tablica adresw handlerw SIO.¢¢¢slvtab dta b($FF) (16) ($0720) System LeVel TABle.¢¢Tablica warto③ci SYSLEVEL dla kanaw IO SDX. Warto③⇨ $FF oznacza kana¢zamkni❎ty.¢¢¢ldftab dta b($00) x16 ($0730) Logical Disk Format adress TABle¢¢Tablica adresw procedur obsuguj⇧cych logiczne formaty dyskietek.¢¢¢devtab dta b($FF) (16) ($0740) DEVice TABle¢¢Tablica urz⇧dze dla kanau IO SDX. Warto③⇨ $FF oznacza kana zamkni❎ty.¢¢¢handtab dta a(0) (16) ($0750)¢¢Tablica adresw sterownikw urz⇧dze SDX.¢¢¢siocbidx equ $0760 (1) Sdx IOCB InDeX¢¢Numer aktualnie uəywanego kanau IO.¢¢¢device equ $0761 (1) Aktualnie uəywane urz⇧dzenie SDX. Cztery starsze to¢numer typu urz⇧dzenia (0-DSK:,1-CLK: itd.). Cztery modsze bity to numer¢kolejny urz⇧dzenia.¢¢¢name equ $762 (11)¢¢Nazwa pliku 8+3.¢¢¢names equ $76D (11)¢¢Nazwa pliku 8+3 dla operacji zmiany nazwy.¢¢¢opmode equ $778 (1) OPen MODE¢¢Tryb otwarcia pliku:¢x4-odczyt,x8-zapis,xC-zapis i odczyt, 0x-plik,1x-katalog.¢¢¢fatr1 equ $779 (1) File ATtRibutes 1¢¢Zadane przez uəytkownika atrybuty dla pliku dla jego odszukania¢¢¢fatr2 equ $77A (1) File ATtRibutes 2¢¢Atrybuty dla zamiany lub utworzenia pliku.¢¢¢date equ $77B (3)¢¢Data utworzenia pliku.¢¢¢time equ $77E (3)¢¢Czas utworzenia pliku.¢¢¢dateset equ $781 (1) DATE SET flag¢¢Flaga zmiany czasu i daty dla pliku. Gdy rəne od zera pozostaj⇧ bez zmian.¢Kasowane po uəyciu¢¢¢faux1 equ $782 (1)¢¢Bajty pomocnicze.¢¢¢faux2 equ $783 (1)¢faux3 equ $784 (1)¢faux4 equ $785 (1)¢faux5 equ $786 (1)¢¢¢syscall equ $787 (1) SYStem CALL flag.¢¢Gdy wywoywane s⇧ procedury SIO przez uəytkownika to z warto③ci⇧ $FF.¢¢¢dirbuf equ $789 (23) DIRectory entry BUFfer.¢¢Wpis katalogowy ostatnio otwartego pliku. Zawiera on :¢¢¢dirfatr equ $789 (1) DIR File ATtRibuts¢¢Atrybuty pliku.¢¢¢dirf1sec equ $78A (2) DIR File 1st map SECtor.¢¢Pierwszy sektor mapy sektorw pliku.¢¢¢dirflen equ $78C (3) DIR File LENght¢¢Dugo③⇨ pliku.¢¢¢dirfname equ $78F (11) DIR File NAME. ¢Nazwa pliku.¢¢¢dirfdate equ $79A (3) DIR File DATE. ¢Data utworzenia pliku.¢¢¢dirftime equ $79D (3) DIR File TIME. ¢Czas utworzenia pliku.¢¢path equ $7A0 (64)¢¢⇦cieəka dost❎pu do pliku.¢¢dosvect equ $7E0 (16) DOS VECTors¢¢Wektor i skoki do najwaəniejszych procedur SDX.¢¢Teraz omwi❎ wektory i skoki do najwaəniejszych procedur SDX.¢¢ org $703¢¢kernel equ $800¢err_84 equ $854¢lsiomain equ $865¢¢jkernel jmp kernel ($703) Jump to KERNEL¢¢Skok do j⇧dra systemu.¢¢¢jpsio jmp err_84 ($706) Jump to Physical Sector IO¢¢Skok do fizycznych operacji sektorowych¢¢¢jmisc jmp err_84 ($709) Jump to MISCellaneous functions¢¢Skok do funkcji pomocniczych¢¢¢jlsio jmp lsiomain ($70C) Jump Logical Sector IO¢¢Skok do logicznych operacji sektorowych¢¢Skoki te wskazuj⇧ na əywotne procedury SDX, bez w⇧tpienia najwaəniejsz⇧ z nich¢jest procedura KERNEL steruj⇧ca urz⇧dzeniami SDX.¢¢Procedur❎ KERNEL wywouje si❎ z numerem funkcji w Y, urz⇧dzeniem w DEVICE i¢kanaem SDX IOCB w SIOCBIDX.¢¢ org $800¢¢slvtab equ $720¢devtab equ $740¢handtab equ $750¢device equ $761¢siocbidx equ $760¢¢kernel cpy #$08 Na pocz⇧tku procedura porwnuje rozkaz z liczb⇧ 8.¢ bcs e0835 Numerami 0-7 oznaczone s⇧ te funkcje ktre wymagaj⇧¢ kanau otwartego.¢ ldx siocbidx Dla nich teə ustawiane jest urz⇧dzenie,¢ lda devtab,x¢ sta device a gdy ono nie istnieje wywoywany jest b⇧d.¢ bmi err_85¢ cpy #$07 Gdy rozkazem nie jest CLOSE nast❎puje wywoanie¢ bne jhandler sterownika urz⇧dzenia.¢ lda #$FF¢ sta slvtab,x Gdy chodzi o rozkaz CLOSE, kana jest zamykany.¢ sta devtab,x¢jhandler lda device Teraz nast❎puje obliczenie indeksu adresu sterownika¢ and #$70 wedug numeru urz⇧dzenia.¢ lsr @¢ lsr @¢ lsr @¢ tax¢ lda handtab,x Pobranie i ustawienie adresu,¢ sta e0833+1¢ lda handtab+1,x¢ sta e0833+2¢ beq err_84 a gdy brak adresu wywoywany jest b⇧d,¢e0833 jmp $0000 w przeciwnym wypadku nast❎puje wywoanie i koniec¢ procedury.¢e0835 lda #$FF Gdy operacje wymagaj⇧ zamkni❎tego kanau, procedura¢ sta siocbidx ustawia kana nieaktywny.¢ jsr jhandler Wywouje procedur❎ sterownika,¢ pha zapami❎tuje zwrcon⇧ warto③⇨ i¢ ldx siocbidx¢ bmi e084F sprawdza czy kana zosta otwarty (przez OPEN).¢ lda device Gdy si❎ tak stao ustawia urz⇧dzenie i poziom¢ sta devtab,x systemu w odpowiednich tablicach.¢ lda syslevel¢ sta slvtab,x¢¢e084F pla Na kocu od③wierza warto③⇨ zwrcon⇧ przez handler i¢ rts koczy dziaanie.¢¢err_85 lda #$85 Channel or IOCB not open.¢ rts¢err_84 lda #$84 No device handler installed.¢ sec¢ rts¢¢Procedura KERNEL korzysta z tablicy adresw sterownikw ktra ma posta⇨:¢¢ org $750¢¢conhand equ $BE6¢prnhand equ $BE9¢carhand equ $BC4¢¢handtab dta a($0000) DSK: ($750) HANDler adress TABle.¢ dta a($0000) CLK: Tablica wektorw procedur obsugi urz⇧dze.¢ dta a(carhand) CAR: Po zimnym starcie istniej⇧ tylko trzy¢ dta a(conhand) CON: sterowniki.¢ dta a(prnhand) PRN:¢ dta a($0000) COM:¢ dta a($0000) Reserved.¢ dta a($0000) Reserved.¢¢Nast❎pn⇧ waən⇧ cz❎③ci⇧ SDX jest procedura wywouj⇧ca sterowniki czytaj⇧ce¢sektory. Swoje wektory wpisuj⇧ tu np.: SIO.SYS - obsuguj⇧ce z⇧cze szeregowe¢jak i RAMDISK.SYS obsuguj⇧ce ramdyski. Uniezaleənia to system od fizycznego¢formatu dyskw bowiem wszystkie one rozpoznaj⇧ komendy bloku DCB.¢¢Procedura ma dwa pocz⇧tki Jeden uəytkownika, a drugi systemu.¢¢ org $0860¢¢siohand equ $0718¢syscall equ $0787¢shndidx equ $0A1E¢¢lsiouser lda #$00 Logical Sector IO for USER. Dla odrənienia kasuje¢ sta syscall flag❎ wywoania systemowego.¢lsiomain ldx #$00 Logical Sector IO MAIN procedure. Na pocz⇧tku¢ procedura kasuje i¢e0867 stx shndidx zapami❎tuje indeks wywoywanego sterownika.¢ lda siohand,x Nast❎pnie pobiera adres sterownika.¢ sta e0879+1¢ lda siohand+1,x¢ sta e0879+2¢ beq e087D A gdy jest on nieobecny pobierany jest nast❎pny.¢e0879 jsr $0000 Teraz sterownik jest wywoywany, a gdy sw⇧¢ bcc e0888 dziaalno③⇨ zakoczy prawidowo procedura koczy¢ si❎.¢e087D ldx shndidx W innym przypadku zwi❎kszany jest indeks¢ inx¢ inx¢ cpx #$08 i porwnywany z maksymalnym.¢ bne e0867 Gdy jest mniejszy procedura si❎ powtarza.¢ lda #$8A Gdy wi❎kszy nast❎puje b⇧d Drive not present.¢e0888 cmp #$00 Dla ustawienia znacznikw nast❎puje porwnanie z¢ rts zerem i koniec procedury.¢¢Procedury JMISC i JPSIO omwione b❎d⇧ wraz z sterownikiem DSK: adowanym z¢plikiem SPARTA.SYS. Teraz omwi❎ wektory DOSVECT zawieraj⇧ce inne waəne¢procedury SDX.¢¢ org $7E0¢¢p_rts equ $857¢ext_on equ $88B¢ext_off equ $8B9¢ext_sw equ $8E0¢hdosini equ $92F¢cio_ equ $975¢edit_ equ $9A2¢crunch_ equ $9AE¢dos_ equ $9BA¢mdosvect equ $A000¢¢jhdosini jmp hdosini ($7E0) Jump to Hard DOS INItiation¢¢Skok do bezwarunkowej inicjacji DOSu.¢¢¢vdos dta a(dos_) ($7E3) Vector to DOS¢¢Wektor wej③cia do DOS-u wskazywany po③rednio przez DOSVEC ($0A)¢¢¢vcio dta a(cio_) ($7E5) Vector to CIO¢¢Wektor wej③cia do CIO.¢¢¢vedit dta a(edit_) ($7E7) Vector to EDITor¢¢Wektor wej③cia do edytora.¢¢¢vcrunch dta a(crunch_) ($7E9) Vector to CRUNCH line. Wektor wej③cia do¢procedury obrbki wst❎pnej wiersza polece.¢¢¢jtemp jmp $0000 ($7EB) Jump to TEMPorary procedure.¢¢¢jmdvect jmp mdosvect ($7EE) Jump to Move DOS VECTors. Skok do procedury¢ inicjuj⇧cej t⇧ tabel❎ adresow⇧.¢¢¢jext_on jmp ext_on ($7F1) Jump to EXTended memory ON. Skok do procedury¢ w⇧czaj⇧cej pami❎⇨ ext.¢¢¢jext_off jmp ext_off ($7F4) Jump to EXTended memory OFf. Skok do procedury¢ wy⇧czaj¢⇧cej ext.¢¢¢jext_sw jmp ext_sw ($7F7) Jump to EXTended memory SWich. Skok do¢ procedury prze⇧czaj⇧cej ext.¢¢¢jcar_sw jmp p_rts ($7FA) Jump to CARtridge ON. Skok do procedury¢ prze⇧czaj⇧cej¢biblotek❎ SDX.¢¢¢jcar_old jmp p_rts ($7FD) Jump to CARtridge OFf. Skok do procedury¢ w⇧czaj⇧cej poprzednie ustawienie bibloteki.¢¢¢Ostatnie dwa skoki zawieraj⇧ skoki do rozkazw RTS, nie jest to przypadek, te¢procedury instalowane s⇧ tylko podczas wywoywania programu komend⇧ X.¢¢¢ org $92F Hard DOS INItiation.¢¢gintlk equ $3FA¢jcar_old equ $7FD¢jcar_on equ $85B¢abank equ $CFFF¢trig3 equ $D013¢portb equ $D301¢cart_of equ $D508¢cbank_1 equ $D5E1¢¢hdosini lda portb Na pocz⇧tku procedura wy⇧cza wewn❎trzny BASIC,¢ ora #$02¢ sta portb¢ sta cbank_1 ustawia bank 1 moduu (biblotek❎ procedur) i wy⇧cza¢ sta cart_of inny zainstalowany modu.¢ lda #$00¢ sta abank Nastepnie wy⇧cza bank pami❎ci axlon.¢ lda trig3¢ sta gintlk Teraz ustawia zmienne systemowe obecno③ci moduu.¢ jsr jcar_on W⇧cza modu.¢ jsr _INITZ Wykonuje inicjowanie systemu.¢ jmp jcar_old Wy⇧cza modu.¢¢Z t⇧ cz❎③ci⇧ zwi⇧zana jest procedura DOSINIP ktr⇧ wskazuje wektor DOSINI ($C).¢¢ org $91B DOS INItiation process.¢¢iniflg equ $47¢dosflg equ $A78¢vdos equ $7E3¢¢dosinip lda iniflg Z pocz⇧tku procedura sprawdza flag❎ inicjowania i¢ bmi e092E gdy jest ona ustawiona procedura si❎ koczy.¢ pha Teraz flaga jest zapami❎tywana i wywoywane jest¢ jsr jhdosini twarde inicjowanie.¢ pla Nast❎pnie przypominana jest warto③⇨ flagi i¢ bne e092E gdy jest ona rəna od zera procedura si❎ koczy.¢ bit dosflg W przeciwnym przypadku sprawdzana jest flaga wywoa-¢ bpl e092E nia DOSu i gdy jest ona ustawiona¢ jmp (vdos) DOS jest wywoywany w innym przypadku procedura si❎¢e092E rts koczy.¢¢Inn⇧ waən⇧ procedur⇧ cz❎sto wywoywan⇧ przez programy w sercu SDX jest jcar_on¢w⇧czaj⇧ca modu. Wyst❎puje ona w parze z jcar_of.¢¢ org $858 Jump CARtridge OFf.¢¢jcar_sw equ $7FA¢¢jcar_of lda #$00 Wywouj⇧ one podprogram jcar_sw z innym parametrem.¢ dta b($2C) bit¢jcar_on lda #$FF ($85B) Jump CARtridge ON.¢ jmp jcar_sw¢¢Nast❎pne dwie procedury maj⇧ prawie identyczny przebieg. W⇧czaj⇧ one 1 bank¢moduu, wywouj⇧ odpowiedni⇧ procedur❎ biblioteczn⇧ i wy⇧czaj⇧ modu.¢¢ org $9AE¢¢jcar_old equ $7FD¢jcar_on equ $85B¢_CRUNCH equ $B9FB¢¢crunch_ jsr jcar_on ($9AE)¢ jsr _CRUNCH¢ jmp jcar_old¢¢ org $9BA¢¢jcar_on equ $85B¢_DOS equ $A119¢¢dos_ jsr jcar_on ($9BA)¢ jmp _DOS¢¢Nast❎pne procedury maj⇧ znaczenie czysto pomocnicze. S⇧ one wskazywane skokami¢z COMTAB i natychmiast skacz⇧ dalej pod odpowiednie wektory.¢¢¢ org $9B7 Jump DOS_¢¢vdos equ $7E3¢¢jdos_ jmp (vdos) Jest to skok po③redni wskazywany przez COMTAB.¢¢ org $9AB Jump CRUNCH_¢¢vcrunch equ $7E9¢¢jcrunch_ jmp (vcrunch) Jest to skok po③redni wskazywany przez COMTAB+3.¢(zcrname)¢¢Nast❎pna procedura do ktrej istnieje skok w tablicy DOSVECT to MDOSVECT ktra¢to inicjuje wa③nie t⇧ tablic❎.¢¢ cbank 1¢ org $A000 Move DOS VECTors.¢¢dosvect equ $7E0¢clsalsys equ $A1B5¢tdosvect equ $A00F¢¢mdosvect jsr clsalsys Procedura wywouje funkcj❎ CLSALSYS ktra zamyka¢ ldx #$1F wszystkie kanay IO ATARI OS.¢eA005 lda tdosvect,x Nast❎pnie przepisuje tablic❎ wektorw i skokw pod¢ sta dosvect,x jej wa③ciwy obszar.¢ dex Wygl⇧d tablicy opisany by wcze③niej.¢ bpl eA005¢ rts¢¢¢Nast❎pne trzy procedury opisane skokami w tabeli s⇧ odpowiedzialne za¢prze⇧czanie bankw pami❎ci main i ext. Dla wszystkich trzech procedur¢parametrem jest indeks wywoywanej pami❎ci niesiony w A. Rejstry X,Y i F przez¢procedury zostaj⇧ zachowane.¢¢ org $88B EXTended memory ON¢¢ext_sw equ $8E0¢pbext equ $906 (T_+4)¢tempx0 equ $A1F¢extidx_t equ $A21¢pbext_t equ $A31¢calext_i equ $A41¢extidx equ $A42¢portb equ $D301¢¢ext_on php Na pocz⇧tku odkadana na stos jest flaga procesora.¢ sei Nast❎pnie wy⇧czane s⇧ przerwania IRQ i odkadany na¢ pha stos indeks wywoywanej pami❎ci.¢ stx tempX0 Teraz zapami❎tywany jest rejestr X.¢ ldx calext_i Nast❎pnie procedura pobiera i zwi❎ksza indeks¢ inc calext_i wywoa.¢ lda pbext W odpowiedniej tablicy zapami❎tywana jest warto③⇨¢ sta pbext_t,x wywouj⇧ca pami❎⇨ main (indeks 0).¢ lda extidx Teraz zapami❎tywany jest rwnieə indeks poprzedniego¢e08A0 sta extidx_t,x wywoania. I gdy byo to wywoanie pami❎ci MAIN¢ bne e08AB¢ lda portb ustawiony zostaje powtrnie rejestr PBEXT dla¢ sta pbext pami❎ci main wedug warto③ci PORTB.¢e08AB pla Teraz pobrany zostaje indeks nowej pami❎ci i¢ cmp extidx gdy jest nie rwny poprzedniemu wywoaniu¢ beq e08B4¢ jsr ext_sw procedura prze⇧cza banki.¢e08B4 ldx tempX0 W ostatnim etapie zostaje przywrcony rejestr X i F¢ plp procesora i procedura si❎ koczy.¢ rts¢¢ org $8B9 EXTended memory OFF¢¢ext_sw equ $8E0¢pbext equ $906 (T_+4)¢tempx0 equ $A1F¢extidx_t equ $A21¢pbext_t equ $A31¢calext_i equ $A41¢extidx equ $A42¢¢ext_off php Na wst❎pnie zapami❎tane zostaj⇧ rejestry F,X i A.¢ sei¢ pha¢ stx tempX0¢ dec calext_i Nast❎pnie zmniejszony i pobrany zostaje indeks¢ ldx calext_i wywoa.¢ lda extidx_t,x Teraz porwnane zostaje bierz⇧ce i poprzednie¢ cmp extidx ustawienie pami❎ci i gdy s⇧ rəne¢ beq e08D0¢ jsr ext_sw prze⇧czony zostaje bank pami❎ci.¢e08D0 ldx calext_i Nast❎pnie ponownie ustawiona zostaje warto③⇨ uakty-¢ lda pbext_t,x wniaj⇧ca pami❎⇨ main.¢ sta pbext¢ ldx tempX0 W ostatnim etapie procedura od③wierza rejsetry X, F¢ pla i A i koczy dziaanie.¢ plp¢ rts¢¢ org $8E0 EXTended memory SWich.¢¢axext equ $902 (T_+0)¢pbext equ $906 (T_+4)¢extmask equ $91F (T_+1D)¢tempx1 equ $A20¢extidx equ $A42¢abank equ $CFFF¢portb equ $D301¢¢ext_sw php Na wst❎pie zapami❎tane zostaj⇧ rejestry F i X i¢ sei¢ sta extidx ustawiony zostaje indeks aktualnie uəywanej pami❎ci.¢ stx tempX1¢ tax¢ lda pbext,x Teraz nast❎puje uaktywnienie danej pami❎ci¢ eor portb¢ and extmask tylko wobec bitw waənych w standardzie ATARI oraz¢ eor portb¢ sta portb¢ lda axext,x w standardzie AXLON.¢ sta abank¢ ldx tempX1 W ostatnim etapie przywrcone zostaj⇧ rejestry X¢ plp i F i procedura si❎ koczy.¢ rts¢¢Wykorzystywane w tych procedurach tablice s⇧ bardzo waəne dla SDX i ich¢procedur dlatego teə wskazywane s⇧ symbolem T_.¢¢T_ equ $902¢¢axext dta b($00),b($00),b($00),b($00) ($902)¢pbext dta b($FF),b($00),b($AF),b($00) ($906)¢¢portb_t dta b($E3),b($A3),b($C3),b($83) ($90A)¢ dta b($E1),b($A1),b($C1),b($81)¢ dta b($63),b($23),b($43),b($03)¢ dta b($61),b($21),b($41),b($01)¢¢extmask dta b($FF) ($91A) Maska bitw waənych dla pami❎ci EXTENDED. Dla¢pami❎ci none ma warto③⇨ 0, dla OSRAM 1, a dla banked jest kopi⇧ rejestru pbmask¢($A74).¢¢W przestrzeni adresowej $700-$CC4 znajduj⇧ si❎ teə inne waəne dla SDX procedury.¢Oto one:¢¢Procedura obsugi przerwa. Poniewaə SDX uəywa pami❎ci pod ATARI OS, a procedury¢IRQ i NMI mieszcz⇧ si❎ wa③nie w tym obszarze dla zapobieəenia zawieszenia si❎¢systemu podczas zimnego startu komputera wektory NMIVEC i IRQVEC pod ROM-em¢zostaj⇧ ustawione na t⇧ wa③nie procedur❎. Rodzaj przerwa sygnalizowany jest¢bitem Carry.¢¢¢ org $9F1 NMI and IRQ.¢¢irts equ $A15¢portb equ $D301¢NMIVEC equ $FFFA¢IRQVEC equ $FFFE¢¢nmi sec Ustawia znacznik NMI.¢ dta b($24) bit¢irq clc ($9F3) Ustawia znacznik IRQ.¢ pha Nast❎pnie procedura zapami❎tuje A,¢ txa¢ tsx S, oraz X.¢ pha¢ lda portb Teraz zapami❎tuje ustawienie PORTB,¢ pha¢ ora #$01 w⇧cza ATARI OS.¢ sta portb¢ lda <irts-1 Nast❎pnie na stos odkada adres powrotu z¢ pha przerwania na wasn⇧ procedur❎ kocz⇧c⇧.¢ lda >irts-1¢ pha¢ inx Zwi❎ksza o dwa indeks stosu i odczytuje z niego¢ inx warto③⇨ F, ktr⇧ ponownie odkada na stos.¢ lda $0100,x¢ pha¢ bcc e0A12¢ jmp (NMIVEC) Teraz procedura wykonuje skok do odpowiednich proce-¢e0A12 jmp (IRQVEC) dur systemowych.¢¢irts pla ($A15) Przy powrocie z przerwania o③wierzane s⇧ warto③ci¢ sta portb PORTB,¢ pla¢ tax X i¢ pla A po czym procedura si❎ koczy.¢ rti¢¢Inn⇧ waən⇧ procedur⇧ zachowan⇧ dla zgodno③ci z poprzednimi wersjami SDX jest¢funkcja aduj⇧ca COMMAND.COM (DOS Shell) i wykonanie polecenia z wiersza¢polece LBUF w COMTAB. Moəna j⇧ wywoa⇨ poprzez wektor VXCOMLD ($FFD2).¢¢¢ org $9C0 Jump LoaD Comman.COM¢¢jcar_old equ $7FD¢jcar_on equ $85B¢ldccom equ $A13C¢portb equ $D301¢¢jldccom lda portb Na pocz⇧tku procedura w⇧cza ATARI OS,¢ ora #$01¢ sta portb¢ jsr jcar_on nast❎pnie w⇧cza modu,¢ lda #$01¢ jsr ldccom aduje COMMAND.COM z rozkazem.¢ jmp jcar_old Na kocu wy⇧cza modu i koczy dziaanie.¢¢Nast❎pne procedury znajduj⇧ce si❎ w obszarze serca systemu ($0700-$0CC4) s⇧¢cz❎③ciami skadowymi trzech sterownikw zdefiniowanych dla SDX od samego¢pocz⇧tku. To znaczy CAR:, CON: i PRN: i omwione zostan⇧ wraz z tymi¢sterownikami, a takəe pomocniczych procedur wywouj⇧cych _CIO, _CRUNCH i _EDIT¢i zostan⇧ one z nimi omwione.¢¢ end of doc.¢