home *** CD-ROM | disk | FTP | other *** search
/ Syzygy Magazine 6 / Syzygy_Magazine_6_1999___pl_Disk_2_of_3_Side_B.atr / sparta2.arc / SPARTA27.DOC < prev   
Text File  |  1988-09-01  |  20KB  |  1 lines

  1.       W drugiej cz❎③ci procedury inicjuj⇧cej inicjowany jest bufor zmiennych¢  systemowych oraz  adowane s⇧ urz⇧dzenia systemowe.¢¢           org $7000   LoaD DOS DeViCe.¢¢¢  dbyt     equ $308¢  daux     equ $30A¢  dirfatr  equ $789¢  dirf1sec equ $78A¢  dirfname equ $78F¢  FLAG     equ $C5C¢  gcgfln   equ $708F¢  golfdef  equ $715C¢  initdr   equ $724E¢  gnfdir   equ $7269¢  golffile equ $7281¢  btsecln  equ $73BB¢  btpasflg equ $73BC¢  _DOS     equ $A119¢  consol   equ $D01F¢¢  lddosdvc lda #$80        Na pocz⇧tku procedury ustawiana jest d ugo③⇨ sektora¢           sta dbyt        dyskowego na 128 bajtw oraz jego numer na 1,¢           ldx #$01¢           stx daux¢           dex¢           stx daux+1¢           stx dbyt+1¢           stx btpasflg    zostaje takəe skasowana flaga przej③cia przez¢                           podprogram ustalania pami❎ci.¢¢           lda consol      Nast❎pnie zostaje sprawdzony stan klawisza OPTION¢           and #$04        ktry warunkuje odczyt pliku CONFIG.SYS.¢           beq e706E       Gdy klawisz by  naci③ni❎ty ustalona zostanie¢                           domy③lna konfiguracja.¢¢           lda <sec2buf    Gdy nie by  wci③ni❎ty, procedura  aduje 1 sektor¢           ldx >sec2buf    dysku.Gdy przy odczycie nast⇧pi b ⇧d zostanie¢           jsr getsec      ustalona domy③lna konfiguracja.¢           bmi e706E¢¢           lda sec2buf+$7  Nast❎pnie nast❎puje rozpoznanie dysku poprzez¢           cmp #$80        odczytanie warto③ci jmpld+1 boot sektora. Powinna¢           bne e706E       znajdowa⇨ si❎ tam warto③⇨ 128.¢¢           lda sec2buf+$1F Teraz odczytywana jest d ugo③⇨ sektora dyskowego¢           sta btsecln     (secln) i ustalana w zmiennej.¢¢           lda sec2buf+$9  Nast❎pnie pobierany jest numer sektora mapy sektorw¢           ldx sec2buf+$A  katalogu g wnego msecn i z t⇧ warto③ci⇧ zostaje¢           jsr initdr      zainicjowana procedura odczytuj⇧ca pliki.¢¢           jsr gnfdir      Teraz pobierany jest pierwszy wpis katalogu.¢                           Wpis ten zawiera informacje okre③laj⇧ce sam katalog¢                           i przy szukaniu nazwy pliku moəe by⇨ pomini❎ty.¢¢  e703D    jsr gnfdir      W tej p❎tli program czyta nazw❎ pliku, a gdy brak¢           beq e706E       juə nazw w katalogu, wywo uje konfiguracj❎ domy③ln⇧.¢¢           lda dirfatr     Nast❎pnie sprawdza czy jest to wpis wolny, oznacza¢           beq e706E       rwnieə koniec katalogu.¢¢           bmi e703D       Gdy plik otwarty do zapisu,¢           and #$08¢           beq e703D       lub jest nieuəywany pobierany jest nast❎pny wpis.¢¢           ldx #$0A¢  e704F    lda dirfname,x  Dopiero teraz nast❎puje porwnanie z nazw⇧ pliku¢           cmp cfgname,x   konfiguracyjnego i przy jej niezgodno③ci zostaje¢           bne e703D       pobrany inny, nast❎pny wpis.¢           dex¢           bpl e704F¢¢           lda dirf1sec    Gdy nazwy s⇧ zgodne inicjowana zostaje procedura¢           ldx dirf1sec+1  czytaj⇧ca pliki z warto③ciami numeru pierwszego¢           jsr initdr      sektora mapy sektorw pliku.¢¢  e7063    jsr golffile    Teraz pobierana jest jedna linia pliku,¢           beq e7079       a gdy jej brak procedura si❎ koczy.¢           jsr gcfgln      Nast❎pnie linia zostaje wykonana¢           jmp e7063       i pobierana jest nast❎pna linia.¢¢  e706E    jsr golfdef     W tej cz❎③ci procedura pobiera lini❎ domy③lnego¢           beq e7079       pliku konfiguracyjnego, gdy jej brak procedura si❎¢                           koczy.¢  e7073    jsr gcfgln      Nast❎pnie linia zostaje wykonana¢           jmp e706E       i pobierana jest nast❎pna linia.¢¢  e7079    lda FLAG        W ostatnim etapie kasowana jest FLAGa i nast❎puje¢           and #$0F        skok do wej③cia do DOSu.¢           sta FLAG¢           jmp _DOS¢¢  cfgname  dta c'CONFIG  SYS' ($7084)¢¢  Omwi❎ teraz procedury wyst❎puj⇧ce w programie LDDOSDVC.¢¢           org $708F   Get ConFiG LiNe.¢¢  bufoff   equ $A62¢  lbuff    equ $A97¢  asdxenv  equ $3837¢  usep     equ $70EA¢  setp     equ $7126¢  devicep  equ $7134¢  sextmem  equ $734F¢  btpasflg equ $73BC¢  PRINTF   equ $A926¢  U_GETPAR equ $B27E¢  U_TOKEN  equ $B3F1¢¢  gcfgln   lda #$00        Na pocz⇧tku procedura kasuje wska♪nik buforu lbuff,¢           sta bufoff      po czym pobiera jeden parametr procedur⇧ bibloteczn⇧¢           jsr U_GETPAR    U_GETPAR,¢           beq e70BE       gdy barak parametrw nast❎puje koniec procedury.¢¢           lda >tokencfg   Nast❎pnie podawany jest adres tablicy z tokenami i¢           ldx <tokencfg   wywo ywana jest procedura bibloteczna U_TOKEN¢           jsr U_TOKEN     rozpoznaj⇧ca tokeny,¢           bcc cfgerr      gdy rozkaz nierozpoznany koczy program b ❎dem.¢¢           asl @           Teraz mnoəy numer rozkazu przez dwa otrzymuj⇧c¢           beq e70B5       wska♪nik do tabeli adresowej, gdy wynosi on zero¢                           (rozkaz use) natychmiastowo wywo ywana jest¢                            odpowiedni podprogram.¢¢           bit btpasflg    Gdy inny rozkaz sprawdzane jest czy wykonane by o¢           bmi e70B5       juə ustawienie pami❎ci, je③li tak to nast❎puje skok.¢¢           pha             Ta cz❎③⇨ procedury wykonywana jest tylko raz,¢           jsr sextmem     ustawia ona adresy pami❎ci extended oraz adres¢           jsr adsdxenv    buforu na zmienne systemowe i te zmienne.¢           dec btpasflg    Ustawia flag❎ wykonania przej③cia.¢           pla¢¢  e70B5    tax                 Pobierany jest adres odpowiedniej procedury i¢           lda tokenadr+1,x    wykonywany jest do niej skok.¢           pha¢           lda tokenadr,x¢           pha¢  e70BE    rts¢¢  cfgerr   jsr PRINTF  Procedura wy③wietlaj⇧ca b ⇧d konfiguracji.¢           dta c'Config error: %s',b($9B),b(0)¢           dta a(lbuff)¢           rts¢¢  tokencfg dta c'USדDEVICדSEק',b(0) Rozpoznawalne tokeny.¢¢  tokenadr dta a(usep-1)       Adresy procedur odpowiednich tokenw.¢           dta a(devicep-1)¢           dta a(setp-1)¢¢¢           org $70EA   USE Proces.¢¢  _800flg  equ $A73¢  nbnks    equ $A75¢  bankflg  equ $A76¢  osrmflg  equ $A77¢  confnam  equ $A79¢  btpasflg equ $73BC¢  U_GETPAR equ $B27E¢  TOUPPER  equ $B442¢¢  usep     bit btpasflg    Na wst❎pie procedura sprawdza czy pami❎⇨ jest juə¢           bmi e7106       ustalona i gdy tak jest, koczy dzia anie.¢¢           jsr U_GETPAR    Nast❎pnie pobiera parametr,¢           lda confnam     zmienia jego pierwsz⇧ liter❎ na duə⇧¢           jsr TOUPPER¢           ldx #$00        i wykonuje odpowiedni podprogram.¢           cmp #'O'¢           beq uosram¢           cmp #'B'¢           beq ubanked¢           cmp #'N'¢           beq unone¢  e7106    rts¢¢  uosram   bit _800flg     Gdy parametrem jest Osram, sprawdza czy komputer¢           bmi e7106       ATARI 800 i gdy tak koczy dzia anie.¢           dec osrmflg     W innym przypadku ustala flag❎ osram i kasuje¢           stx bankflg     banked.¢           rts¢¢  unone    stx osrmflg     Gdy parametrem jest None, kasuje flagi pami❎ci¢           stx bankflg     osram i banked.¢           rts¢¢  ubanked  lda nbnks       W przypadku pami❎ci BANKED sprawdza czy ta istnieje¢           beq e7106       i je③li nie koczy dzia anie.¢           dec bankflg     Je③li tak ustawia banked i kasuje osram.¢           stx osrmflg¢           rts¢¢           org $7126   SET Proces.¢¢  bufoff   equ $A62¢  lbuff    equ $A97¢  PUTENV   equ $BAC1¢¢  setp     lda <lbuff      Dla rozkazu SET ustalany jest adres zmiennej¢           ldx >lbuff      systemowej w AX,¢           clc¢           adc bufoff¢           bcc e7131¢           inx¢  e7131    jmp PUTENV      A nast❎pnie wywo ywana jest procedura bibloteczna.¢¢           org $7134   DEVICE Proces.¢¢  confnam  equ $A79¢  FLAG     equ $C5C¢  cfgerr   equ $70BF¢  U_LOAD   equ $A204¢  U_SFAIL  equ $A6F3¢  U_XFAIL  equ $A70E¢  U_GETPAR equ $B27E¢¢  devicep  jsr U_GETPAR    Dla rozkazu DEVICE, pobierana jest nazwa urz⇧dzenia¢¢           ldy #$00¢  e7139    lda sysnext,y   i dodawane jest do niej rozszerzenie .SYS.¢           sta confnam,x¢           iny¢           inx¢           cmp #$9B¢           bne e7139¢¢           lda <cfgerr     Nast❎pnie ustawiana jest pu apka na b ⇧d¢           ldx >cfgerr     konfiguracji,¢           jsr U_SFAIL¢           lda #$00¢           sta FLAG        FLAGa  adowania ustalana jest na  adowanie normalne.¢           jsr U_LOAD      Nast❎pnie procedura  aduje plik.¢           jmp U_XFAIL     Koczy dzia anie ze zdj❎ciem pu apki.¢¢  sysnext  c'.SYS',b($9B)  ($7157)¢¢¢      Procedura pobiera wiersz domy③lnej konfiguracji.¢¢           org $715C   Get One Line From DEFoult config.¢¢  lbuff    equ $A97¢¢  golfdef  ldx #$00        Indeks tablicy ustawiany jest na zero.¢¢  e715E    lda defcfg      Nast❎pnie czytany jest znak z tablicy i¢           beq e7175       gdy jest on rwny zero procedura si❎ koczy.¢           sta lbuff,x     W innym przypadku znak wpisywany jest w bufor lbuff.¢¢           inc e715E+1     I program sam si❎ modyfikuje na odczyt nast❎pnego¢           bne e716E       znaku.¢           inc e716E+2¢  e716E    inx             Zwi❎kszany jest takəe rejestr X jako indeks lbuff.¢           cmp #$9B        Gdy znak rwny jest EOL,¢           bne e715E¢           lda #$01        procedura si❎ koczy z wynikiem rənym od zera.¢  e7175    rts¢¢  defcfg   dta c'device sparta osram',b($9B)¢           dta c'device sio',b($9B)¢           dta c'device indus',b($9B)¢           dta c'device ataridos',b($9B)¢           dta c'device clock',b($9B)¢           dta c'device jiffy',b($9B)¢           dta c'device ramdisk',b($9B)¢           dta b(0)¢¢¢           org $724E   INIT Disk Registers.¢¢  dbyt     equ $308¢  btchrptr equ $73B6¢  btsecptr equ $73B7¢  btmsecn  equ $73B9¢  btsecln  equ $73BB¢¢  initdr   sta btmsecn     Procedura zapami❎tuje numer sektora mapy sektorw,¢           stx btmsecn+1¢           ldx #$00¢           lda btsecln     oraz inicjuje d ugo③ci⇧ sektora wska♪niki w¢           sta btsecptr    sektorach mapy i pliku.¢           sta btchrptr¢           sta dbyt        Ustawia takəe d ugo③⇨ sektora w zmiennych DCB.¢           bne e7265¢           inx¢  e7265    stx dbyt+1¢           rts¢¢¢           org $7269   Get Name From DIRectory file.¢¢  dirbuf   equ $789¢  gochar   equ $729D¢  btdirptr equ $73B8¢¢  gnfdir   ldx #$00        Na pocz⇧tku inicjowany jest wska♪nik buforu wpisu¢  e726B    stx btdirptr    katalogowego.¢           jsr gochar      Nast❎pnie pobierany jest bajt pliku, gdy wynikiem¢           beq e7280       operacji jest zero procedura si❎ koczy.¢  e7273    ldx btdirptr    Znak ustawiany jest w buforze na odpowiedniej¢           sta dirbuf,x    pozycji,¢           inx             a pozycja ta jest zwi❎kszana i porwnywana z maksy-¢           cpx #$17        maln⇧, gdy j⇧ nie jest p❎tla si❎ powtarza.¢           bne e726B¢           lda #$01        Procedura koczy si❎ warto③ci⇧ niezerow⇧.¢  e7280    rts¢¢           org $7281   Get One Line From FILE.¢¢  lbuff    equ $A97¢  gochar   equ $729D¢  btdirptr equ $73B8¢¢  golffile ldx #$FF        Na pocz⇧tku procedury wska♪nik pozycji w lini¢                           jest inicjowany.¢  e7283    inx             Nast❎pnie jego warto③⇨ jest zwi❎kszana i zapisywana¢           stx btdirptr    w zmiennej.¢           jsr gochar      Teraz pobierany jest jeden znak pliku, gdy funkcja¢           beq e729C       koczy si❎ warto③ci⇧ zerow⇧ koczy si❎ procedura.¢           ldx btdirptr    Teraz znak ustawiany jest na odpowiedniej pozycji w¢           sta lbuff,x     wierszu, a nast❎pnie¢           cmp #$00¢           beq e729C       porwnywany jest z zerem i z warto③ci⇧ $9B ktre¢           cmp #$9B        oznaczaj⇧ EOF (end of file) i EOL (end of line).¢           bne e7283¢           lda #$01        Gdy wyst⇧pi  eol procedura koczy si❎ warto③ci⇧¢  e729C    rts             niezerow⇧.¢¢¢           org $729D   Get One CHAR from file.¢¢  snfsec   equ $72EF¢  getsec   equ $730E¢  btchrptr equ $73B6¢  btsecln  equ $73BB¢  sec1buf  equ $73BD¢¢¢  gochar   ldx btchrptr    Na pocz⇧tku procedury bierz⇧ca pozycja wska♪nika¢           cpx btsecln     porwnywana jest z d ugo③ci⇧ sektora i gdy nie s⇧¢           beq e72AE       one rwne¢           inc btchrptr    zwi❎kszany jest ten wska♪nik.¢           lda sec1buf,x   Teraz czytany jest znak z sektora i¢           ldx #$01        procedura si❎ koczy warto③ci⇧ niezerow⇧.¢           rts¢¢  e72AE    jsr snfsec      Gdy pozycja w sektorze by a rwna jego d ugo③ci¢           beq e72C6       wywo ywana jest funkcja ustawiaj⇧ca numer nast❎pnego¢                           sektora, gdy wynik jej jest zerowy procedura si❎¢           lda <sec1buf    koczy, w przeciwnym przypadku ustawiany jest adres¢           ldx >sec1buf    buforu i¢           jsr getsec      czytany jest sektor pliku.¢           bmi e72C6       Gdy wyst⇧pi b ⇧d procedura si❎ koczy z warto③ci⇧ 0.¢¢           sec             Teraz ustawiany jest wska♪nik w sektorze na drug⇧¢           rol btchrptr    pozycj⇧, a¢¢           lda sec1buf     pierwsza zostaje odczytana.¢           ldx #$01        Na kocu zostaje ustalona warto③⇨ niezerowa.¢           rts¢¢  e72C6    ldx #$00        Przy b ❎dzie zostaje ustalona warto③⇨ zerowa.¢           rts¢¢¢¢           org $72C9   Get Next Map SECtor.¢¢  daux     equ $30A¢  getsec   equ $730E¢  btsecptr equ $73B7¢  btmsecn  equ $73B9¢  btsecln  equ $73BB¢  sec2buf  equ $74BD¢¢  gnmsec   lda btmsecn     Gdy wska♪nik w sektorze numerw by  rwny d ugo③ci¢           sta daux        sektora ustawiany jest numer nast❎pnego sektora mapy¢           lda btmsecn+1¢           sta daux+1¢           lda <sec2buf    oraz adres buforu.¢           ldx >sec2buf¢           jsr getsec      Teraz odczytywany jest sektor mapy, w przypadku¢           bmi e730B       b ❎du procedura si❎ koczy.¢¢           lda sec2buf     Nast❎pnie ustawiany jest kolejny sektor mapy i¢           sta btmsecn¢           lda sec2buf+1¢           sta btmsecn+1¢           ldy #$04¢           sty btsecptr    i wska♪nik w sektorze mapy.¢¢           org $72EF   Set Next File SECtor.¢¢  snfsec   ldy btsecptr    Wska♪nik w sektorze mapy porwnywany jest z¢           cpy btsecln     d ugo③ci⇧ sektora i gdy jest rəny¢           beq gnmsec¢¢           lda sec2buf,y   ustawiany jest wed ug niego numer nast❎pnego sektora¢           sta daux        pliku.¢           lda sec2buf+1,y¢           sta daux+1¢           iny             Teraz zwi❎kszany i zapami❎tywany jest wska♪nik.¢           iny¢           sty btsecptr¢           lda #$01        Procedura koczy si❎ warto③ci⇧ niezerow⇧.¢           rts¢¢  e730B    lda #$00        W przypadku b ❎du procedura koczy sie z warto③ci⇧¢           rts             zerow⇧.¢¢¢           org $730E   GET SECtor.¢¢  ddevic   equ $300¢  dunit    equ $301¢  dcmnd    equ $302¢  dstats   equ $303¢  dbufa    equ $304¢  jsioint  equ $E459¢¢  getsec   sta dbufa       Na pocz⇧tku adres buforu ustawiany jest wed ug AX.¢           stx dbufa+1¢           ldy #$01¢           sty dunit       Nast❎pnie ustawiany jest numer stacji dyskw,¢           ldy #$31¢           sty ddevic      urz⇧dzenie stacji,¢           ldy #'R'¢           sty dcmnd       komenda Read-czaytaj sektor,¢           ldy #$40¢           sty dstats      status na odbir danych i wywo ywana jest funkcja¢           jmp jsioint     OS obs uguj⇧ca z ⇧cze szeregowe.¢¢¢           org $734F   Set EXTended MEMory.¢¢  axext    equ $902¢  pbext    equ $906¢  portb_t  equ $90A¢  extmask  equ $91A¢  _800flg  equ $A73¢  pbmask   equ $A74¢  nbnks    equ $A75¢  bankflg  equ $A76¢  osrmflg  equ $A77¢  sdxmemlo equ $C5F¢  sdxmemhi equ $C63¢¢  sextmem  lda #$00        Z pocz⇧tku kasowane s⇧ warto③ci uaktywniaj⇧ca pami❎⇨¢           sta axext+2     rozszerzon⇧ dla standardu Axlon i maska dla PORTB.¢           sta extmask¢¢           bit bankflg     Teraz nast❎puje sprawdzenie jaka pami❎⇨ wykorzystywa¢           bpl e7382       jest przez DOS.¢¢           lda nbnks       Gdy jest to pami❎⇨ BANKED rejestr A ustawiany jest¢           dec nbnks       na numer banku, a liczba bankw ulega zmniejszeniu.¢           bit _800flg     Teraz sprawdzane jest czy komputer to 800.¢           bpl e736C¢¢           sta axext+2     Gdy tak jest warto③⇨ uaktywniaj⇧ca bank dodatkowy¢           bmi e737E       jest po prostu jego numerem.¢¢  e736C    lsr @           Gdy komputer inny niə 800, a co za tym idzie rozsze-¢           lsr @           rzenie oparte na PORTB numer banku dzielony jest¢           tax             przez cztery¢¢  e736F    dex             zmniejszany o jeden i warto③⇨ uaktywniaj⇧ca pobie-¢           lda portb_t,x   rana jest z tablicy grup bankw.¢           ora #$0C        Teraz ustawiany jest najstarszy bank w grupie i¢           sta pbext+2     ostatecznie ta warto③⇨ jest ustalana dla pami❎ci¢           lda pbmask      extended. Nast❎pnie maska PORTB jest przenoszona do¢           sta extmask     maski pami❎ci extended.¢¢  e737E    ldx #$03        Teraz ustalany jest indeks adresw memlo i memhi.¢           bne e7397¢¢  e7382    bit osrmflg     W tej cz❎③ci sprawdzane jest czy uəywana jest pami❎⇨¢           bpl e7395       OSRAM.¢¢           lda #$FE        Gdy tak jest warto③ci⇧ uaktywniaj⇧c⇧ jest $FE,¢           sta pbext+2¢           lda #$01¢           sta extmask     a mask⇧ bitw waənych 1.¢           ldx #$05¢           bne e7397       Teraz ustalany jest indeks adresw memlo i memhi.¢¢  e7395    ldx #$01        Dla pami❎ci NONE nie ma warto③ci uaktywniaj⇧cych.¢¢  e7397    ldy #$01        W ostatniej cz❎③ci procedury adresy MEMLO i MEMHI¢  e7399    lda memlotab,x  przenosone s⇧ z tablic inicjuj⇧cych do odpowiednich¢           sta sdxmemlo+2,y    rejestrw wed ug ustalonych indeksw.¢           lda memhitab,x¢           sta sdxmemhi+2,y¢           dex¢           dey¢           bpl e7399¢           rts             Po czym procedura si❎ koczy.¢¢  memlotab dta a($0000)    ($73aa) memlotab¢           dta a($4000)¢           dta a($E400)¢¢  memhitab dta a($0000)    ($73b0) memhitab.¢           dta a($8000)¢           dta a($FFC0)¢¢           org $3837   ADd SDX ENVironment.¢¢  bufadr   equ $15¢  faux1    equ $782¢  faux4    equ $785¢  jext_on  equ $7F1¢  jext_of  equ $7F4¢  env_p    equ $C4F¢  envext   equ $C56¢  saplahf  equ $A1E8¢  MALLOC   equ $AF54¢¢  adsdxenv ldx #$00        Na pocz⇧tku procedura ustawia s owo faux4 na jedn⇧¢           stx faux4       stron❎,¢           inx¢           stx faux4+1     nast❎pnie indeks X jako indeks pami❎ci ustawia na 2¢           inx             (extended), a Y zeruje po czym wywo uje funkcj❎¢           ldy #$00¢           jsr MALLOC      MALLOC przydzielaj⇧c⇧ pami❎⇨.¢           stx envext      W X zawarty jest indeks pami❎ci przydzielonej¢           lda faux1       buforowi, a w s owie FAUX1 adres buforu.¢           sta env_p       Teraz zostaj⇧ ustalone wska♪nik do buforu i adres¢           sta bufadr      pomocniczy adres buforu.¢           lda faux1+1¢           sta env_p+1¢           sta bufadr+1¢           txa             Nast❎pnie uaktywniona zostaje odpowiednia pami❎⇨ i¢           jsr jext_on¢           ldy #$FF¢  e385F    iny¢           lda sdxenv,y    przepisane zostaj⇧ domy③lne zmienne ③rodowiskowe.¢           sta (bufadr),y¢           bne e385F¢           jsr jext_off    Na kocu w ⇧czona zostaje pami❎⇨ podstawowa i¢           jmp saplahf     ustawiony zostaje wska♪nik H_FENCE.¢¢  sdxenv   dta c'COMSPEC=CAR:COMMAND.COM',b($9B) ($386D)¢           dta c'PROMPT=D$N:',b($9B)¢           dta c'PATH=CAR:',b($9B)¢           dta c'BATCH=AUTOEXEC',b($9B)¢           dta c'CAR=I:CAR.SAV',b($9B)¢           dta c'BASIC=I:BASIC.SAV',b($9B)¢           dta b(0)¢¢           end of doc.¢