home *** CD-ROM | disk | FTP | other *** search
/ Serious Magazine 12 / Serious_Magazine_12_2003_01_07_Dial_pl_Side_A.atr / tcp._12 < prev    next >
Text File  |  2023-02-26  |  10KB  |  1 lines

  1. ¢   Thunder Command Processor 1.0beta¢  -----------------------------------¢¢   DUP.SYS  jaki  jest  -  kaədy widzi.¢ Szczeglnie  wtedy,  kiedy  takie cudo¢ jak  MYDOS  traci  wiele przez swojego¢ dupa (bez skojarze).¢   Dlatego   postanowi em  swego  czasu¢ napisa⇨   programik,   ktry   zast⇧pi¢ DUP.SYS, ale jego obs uga b❎dzie nieco¢ bardziej "qlturalna". Tzn.  b❎dzie  on¢ dzia a  na zasadach oglnie przyj❎tych¢ dla "normalnych" Command Processorw -¢ - rezydentny CP pracuj⇧cy w tzw trybie¢ konwersacyjny:  komenda  -  odpowied♪,¢ itd. W  podobny  sposb  wygl⇧da praca¢ w SpartaDOSie, CP DOS 2.5 (z Avalonu),¢ DOS II+/D, etc...¢¢   TCP jest rezydentnym Command  Proce-¢ ssorem przeznaczonym dla MYDOS-a 4.50.¢ Moim zdaniem jest to najpopularniejsza¢ wersja  tego  DOS-a, a z przerobieniem¢ na inne nie powinno by⇨ problemw...¢   Jego najwi❎ksz⇧  wad⇧  jest  bardzo¢ wysokie MEMLO (aktualnie prawie $2600)¢ charakterystyczne   dla   rezydentnych¢ Command Processorw.¢   Jednak programu nie koczy em.  Zos-¢ tawi em go takim, jakim  by ,  bo  juə¢ istniej⇧cy fragment wystarczy  do  wy-¢ konywania podstawowych operacji dysko-¢ wych. W kocu postanowi em pu③ci⇨ nie-¢ dokoczony program jako Public Domain.¢ Mo əe kto③ go dokoczy?¢¢   KOMENDY TCP¢¢   Aktualnie TCP wykonuje komendy:¢¢  * polecenie zewn❎trzne¢    nazwa¢¢ uruchomienie  polecenia   zewn❎trznego¢ czyli pliku wykonywalnego DOS.¢ Brak rozszerzenia powoduje automatycz-¢ ne dodanie .COM¢ np.:  ST.EXE¢       PANTHER¢¢¢¢ * PATH¢¢ PATH ③cieəka¢   lub¢ ③cieəka¢¢ zmienia aktualn⇧ ③cieək❎ dost❎pu.¢ ③cieəka - nazwa zakoczona dwukropkiem¢ np.:  PATH D1:¢       D4:LISTY:ZENON:¢¢¢¢ * DIR¢¢ DIR (maska)¢¢ katalog dyskietki wed ug podanej maski¢ Brak maski daje spis *.*  w  aktualnym¢ katalogu.¢ np.:  DIR D2:SAMPLE:*.D15¢       DIR¢   * 1...8, *¢¢ *¢¢ spis katalogu g wnego  stacji  1...8,¢ gwiazdka "*" daje spis katalogu  g w-¢ nego aktualnej stacji.¢¢  * MD¢¢ MD nazwa¢¢ utworzenie podkatalogu w aktualnym ka-¢ talogu.¢ np.:  MD PLIKI¢¢  * CD¢¢ CD nazwa|..¢¢ przej③cie  do  podkatalogu  o  podanej¢ nazwie lub do  katalogu  macierzystego¢ (po podaniu ".." zamiast nazwy)¢ np.:  CD ..¢       CD PLIKI¢   * DEL¢¢ DEL nazwa¢¢ skasowanie plik(w) w/g podanej maski¢ np.:  DEL PLIK.TXT¢       DEL *.BAS¢¢  * LOCK¢¢ LOCK nazwa¢¢ zabezpieczenie  plik(w)  w/g  podanej¢ maski¢ np.:  LOCK PLIK.TXT¢       LOCK *.BAS¢¢  * UNL¢¢ UNL nazwa¢¢ odbezpieczenie plik(w) w/g podanej¢ maski¢ np.:  UNL PLIK.TXT¢       UNL *.BAS¢   * REN¢¢ REN stara_nazwa,nowa_nazwa¢¢ zmiana nazwy pliku (plikw)¢ np.:  REN PLIK.DOC PLIK.TXT¢       REN *.EXE *.COM¢¢  * MON¢¢ MON¢¢ przej③cie do MLM Q-Mega lub Self Testu¢ (zaleənie od uəywanego systemu)¢¢  * VIEW¢¢ VIEW nazwa(@)¢¢ wy③wietlenie zawarto③ci pliku o  poda-¢ nej nazwie. Ma pa umieszczona po  naz-¢ wie sygnalizuje, əe kody steruj⇧ce ma-¢ j⇧ by⇨ wy③wietlane, a nie wykonywane.¢ np.:  VIEW PLIK.TXT¢       VIEW FILE.DAT@¢   * RUN¢¢ RUN (adres)¢¢ uruchomienie programu od podanego  ad-¢ resu (hex).  Brak adresu powoduje uru-¢ chomienie programu od adresu zapisane-¢ go w RUNAD.  Przydaje si❎,  bo czasami¢ program po wczytaniu nie uruchamia si❎¢ :( Wiem əe to mj b ⇧d. Dobre, nie!?¢ np.:  RUN 8000¢       RUN¢       RUN E477¢¢  * CLS¢¢ CLS¢¢ wyczyszczenie ekranu.¢¢  * MEM¢¢ MEM¢¢ podaje woln⇧ pami❎⇨ (MEMLO -> MEMHI)¢   Kilku komend brakuje, chociaə s⇧ one¢ umieszczone w tablicy.  S⇧ to: (sk ad-¢ nia i opis podane wed ug tego, co mia-¢  em zaplanowane)¢¢¢ * INIT¢¢ INIT (dysk)(CD:g❎sto③⇨|CT:l_③cieəek¢       S:l_stron F:l_sektorw¢       L:d _sektora)¢¢ formatowanie dysku  w  podanej  stacji¢ oraz g❎sto③ci. Moəna poda⇨ g❎sto③⇨ li-¢ terowo:    S (single),   E (enhanced),¢ D (double), I (ibm s-9), Q (quadruple)¢ ewentualnie dok adnie  okre③li⇨  para-¢ metry formatu (liczba ③cieəek,  stron,¢ sektorw/③cieək❎, d ugo③⇨ sektora)¢ np.:  INIT¢       INIT 1¢       INIT CD:E¢       INIT CT:40 S:1 F:18 L:256¢       INIT 2 CD:D¢       INIT 2 CS:1 CT:40 CL:256 CF:18¢   * SYS¢¢ SYS (dysk)¢¢ zapis plikw systemowych na dysk o po-¢ danym numerze.¢ np.:  SYS¢       SYS 3¢¢  * CAR¢¢ CAR (on|off)¢¢ uruchomienie cartdridge-a.  Z  komend⇧¢ on lub off w ⇧cza lub wy ⇧cza wbudowa-¢ ny interpreter Basica.  Sam  nie  wiem¢ czemu tego jeszcze nie napisa em...¢¢   PRZEKAZYWANIE PARAMETR⓪W¢¢   Dekoder rozkazw TCP jest tak  skon-¢ struowany, əe  umoəliwia przekazywanie¢ parametrw  do  polece  zewn❎trznych.¢ Ca y tekst  zapisany  za  nazw⇧  pliku¢ jest kopiowany od  adresu  $0530.¢   Daje to  atwy dost❎p do tre③ci para-¢ metru we wczytywanym programie.¢¢   Kto  bawi   si❎  np.  DSD z TA 2/91,¢ pami❎ta, jak wczytywanie tego programu¢ w Chaos CP,  z  podanymi  parametrami,¢ wymusza o podanie rozszerzenia.¢ Wygl⇧da o to tak:¢   DSD¢ ale¢   DSD.COM /T¢ W TCP nie  ma takiego ograniczenia, bo¢ polecenie   jest   interpretowane   po¢ podziale  na   instrukcj❎  i  parametr¢ i TCP dodaje  ".COM"  na  kocu  samej¢ nazwy, zostawiaj⇧c parametr w spokoju.¢¢   JAK TO SI② JE?¢¢  Adres kompilacji jest ustalony sztyw-¢ no. Musi to by⇨ 8169 (dec), niəszy mo-¢ əe powodowa⇨  nieprawid owe  dzia anie¢ ca o③ci (kod TCP b❎dzie pokrywa  si❎ z¢ buforem MYDOS-a), wyəszy niepotrzebnie¢ podniesie i tak juə wysokie MEMLO.¢¢   Naleəy pami❎ta⇨  o  inicjalizacji D:¢ po  reset  (Init  - $07E0).  {adowanie¢ DUP.SYS przy starcie komputera  odbywa¢ si❎  w  specyficzny   sposb.  Program¢ uruchamiany  jest  tylko  raz - wed ug¢ adresu w INITAD, a wi❎c nie  odpalicie¢ əadnego intra, wpisywanie czegokolwiek¢ do RUNAD teə nie odniesie skutku.¢¢   TCP obs uguje przerwanie  BRK,  przy¢ czym nie ma əadnej pewno③ci, əe zawsze¢ robi to poprawnie.¢¢   Opcja wczytywania  plikw  binarnych¢ nie dzia a do  koca  poprawnie -  tj.¢ nie zawsze jest  wykonywany  skok  pod¢ adres w RUNAD po  wczytaniu  programu.¢ Dzieje si❎ tak m.in. przy prbie wczy-¢ tania programu zaraz po komendzie DIR,¢ za③ je③li przy  wykonaniu  poprzedniej¢ komendy wyst⇧pi  b ⇧d I/O, to s⇧  duəe¢ szanse na poprawne wykonanie  tej  ko-¢ mendy. Nie mam poj❎cia od czego to za-¢ leəy.¢¢   Zdaj❎ sobie spraw❎ z tego, əe zmiana¢ bieə⇧cego katalogu mog a by⇨  wykonana¢ w inny (czytaj: lepszy) sposb.  Obec-¢ nie przy zmianie ③cieəki TCP nie spra-¢ wdza,  czy  podana  ③cieəka  istnieje,¢ a przy odczycie przedziera  si❎  przez¢ ca e drzewo, zanim dotrze do w a③ciwe-¢ go  katalogu.  Ten   sposb  dzia ania¢ komendy  CD   zosta   wymuszony  przez¢ istnienie  komenty  PATH, a  nie  wiem¢ gdzie MYDOS przechowuje ③cieək❎ dost❎-¢ pu (D: = ....). Lepiej by oby to  zro-¢ bi⇨ w a③nie przez zmian❎ ③cieəki w sa-¢ mym DOSie a nie tylko w CP. U atwi oby¢ to prac❎ z programami nie przystosowa-¢ nymi do operacji na dyskietkach z pod-¢ katalogami.¢¢¢  No i oczywi③cie brakuje  kopiowania.¢ Procedurka  kopiuj⇧ca  zaj❎ aby  sporo¢ miejsca i praktycznie lepiej jest uəy⇨¢ zewn❎trznego kopiera, ktrych powsta a¢ masa.¢¢¢   Tyle w kaədym razie  wynika z  moich¢ eksperymentw. Poniewaə kaədy moəe si❎¢ myli⇨  (a  ja w  szczeglno③ci),  wi❎c¢ bardzo  prawdopodobne  jest,  əe cz❎③⇨¢ z tych zastrzeəe nie  jest  do  koca¢ prawdziwa, tym  bardziej,  əe  s⇧  one¢ oparte  wy ⇧cznie  na  do③wiadczeniach¢ metod⇧  prb  i  b ❎dw  i  domys ach:¢ dlaczego  tak  a  nie   inaczej.  Przy¢ pisaniu  TCP  nie  mia em  dost❎pu  do¢ əadnej,  nawet   najbardziej   oglnej¢ dokumentacji  MYDOS-a.  A  szkoda,  bo¢ moəe oszcz❎dzi bym sobie sporo  nerww¢ i skoczy bym ca o③⇨.¢¢¢¢   PROPOZYCJE¢  ------------¢¢   Jeəeli kto③ b❎dzie mia  ochot❎ zaj⇧⇨¢ si❎ rozwijaniem idei TCP, to mam kilka¢ propozycji. Oto i one:¢¢ - MEMLO moəna  obniəy⇨  przez  podzia ¢ kodu TCP na j⇧dro systemu oraz kod po-¢ lece. System mg by np. przy  wczyty-¢ waniu kopiowa⇨ kod  polece  wewn❎trz-¢ nych (no, juə nie tak ca kiem  wewn❎t-¢ rznych) do XMS. J⇧dro sk ada oby si❎ z¢ interpretera polece, ktry sprawdza -¢ by, czy instrukcja jest w XMS, czy teə¢ naleəy jej szuka⇨ na dysku.¢ - Sposb  zmiany   aktualnej   ③cieəki¢ dobrze by oby zmieni⇨ w  taki  sposb,¢ əeby TCP ca y czas operowa   na  "D:",¢ a dost❎pem do  odpowiednich  dyskw  i¢ katalogw zajmowa  si❎  sam MYDOS. Jak¢ to zrobi⇨? To proste! Wystarczy  wywa-¢ li⇨ polecenie PATH, bo  jego  przydat-¢ no③⇨ jest nik a  a  zmieni⇨  dzia anie¢ instrukcji CD tak, əeby nazwa katalogu¢ do ktrego ma  nast⇧pi⇨  przeniesienie¢ by a przekazywana do DOS-u  z  wykona-¢ niem odpowiedniej komendy (o ile  dob-¢ rze pami❎tam, ChDir to w MYDOS-ie #41)¢ No i nazw❎ pliku naleəy zawsze  kopio-¢ wa⇨ po samym "D:".¢¢ - Oczywi③cie po wykonaniu punktu pier-¢ wszego moəna i③⇨  na  ca o③⇨.  Dodanie¢ polece typu:  kopiowanie  plikw  czy¢ ca odyskw,  ustawienia  konfiguracji,¢ etc. nie wp ynie na MEMLO,  wi❎c moəna¢ sobie szale⇨...¢¢¢  Pytanie:  Dlaczego sam tego nie zro-¢ bi em? ;) Juə odpowiadam:  Bo  mi  si❎¢ autentycznie nie chce.. LENISTFO ROOLZ¢¢¢   Ofukajcie mnie za to, ale po  prostu¢ nie mam do tego cierpliwo③ci. Nied ugo¢ b❎d❎ instalowa  sobie  HDD i  do  tego¢ juə na 100% b❎d❎ pisa  DOS obs uguj⇧cy¢ ca y potencja  interface'u  J.  ⑧uka -¢ czyli dwa dyski po 8GB. I najprawdopo-¢ dobniej b❎dzie  to  co③ wi❎cej niə sam¢ DOS - co③ na kszta t skrzyəowania naj-¢ lepszych cech SDX i QMEG-a... Nic wi❎-¢ cej nie powiem. A na razie i tak musz❎¢ skoczy⇨ OSADNIK⓪W. S⇧ post❎py...¢¢   Na r❎ce naczelnego trafi a ♪rd wka¢ TCP oraz efekt jej kompilacji. Szukaj-¢ cie w③rd stuff-u plikw קבס«IJצל  oraz¢ קבס«צךצ¢¢   I to chyba wszystko. My③l❎, əe  cho⇨¢ nie jest to nic wielkiego,  to  jednak¢ gra moəe by⇨  warta  ③wieczki.  By bym¢ niezmiernie  szcz❎③liwy,   gdyby   TCP¢ dalej si❎ rozwija .¢¢                 epi/Allegresse^AeR^LSD¢¢¢¢ p.s. Mam nadziej❎,  əe wszyscy wiedz⇧,¢ co naleəy zrobi⇨ z plikiem  TCP.SYS...¢ Kto nie wie, to s uə❎ pomoc⇧.  Oczywi-¢ ③cie TCP po zassemblowaniu  zapisujemy¢ jako DUP.SYS zamiast oryginalnego pli-¢ ku o tej samej nazwie.¢¢                - end -¢