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

  1. 6 POKE 842,13¢ 7 NEW  3¢¢   Cyfry   po    strza kach   oznaczaj⇧¢ instrukcje, ktre  realizuj⇧  poszcze-¢ glne punkty naszego opisu.¢¢¢   Naturalnie moəemy w takim krciutkim¢ programie   wczyta⇨   jeszcze   jakie③¢ dodatkowe dane, np.fonty czy "wstawki"¢ maszynowe  dla   w a③ciwego  programu,¢ czy teə wy③wietli⇨ jaki③ obrazek...¢¢   W naszym wypadku za adowany zostanie¢ D:AUTORUNX.BAS, ale  oczywi③cie  nazw❎¢ t❎ moəna zmieni⇨.¢¢   We  w a③ciwym   programie  konieczne¢ jest rwnieə kilka dzia a dla obs ugi¢ dodatkowej pami❎ci. Poniəsze przyk ady¢ s⇧ tak napisane, əe  moəna je umie③ci⇨¢ w dowolnym miejscu w programie.¢¢¢   Pocz⇧tek programu...¢¢    GO# START¢¢ (inicjalizacj❎  zwykle  najlepiej sta-¢ wia⇨ na kocu)¢   A oto i inicjalizacja:¢¢ 1 # START¢    GRAPHICS %0¢    POKE 752,%1¢    POSITION 13,11:? "pliiz  ejd...";¢ 2 DIM BANKS(31)¢ 3 EXEC CONST¢ 4 EXEC EXTRAM¢ 5 EXEC MAIN¢ 6 GO# EXIT¢¢ 1. to trwa, wi❎c przyda si❎ jaka③  in-¢    formacja dla niecierpliwego¢ 2. istotna z naszego  punktu  widzenia¢    tablica, zawiera kody bankw pami❎-¢    ci.  Najprostsze i najbezpieczniej-¢    sze rozwi⇧zanie - prze ⇧czamy 5 bi-¢    tw, co daje 32  kombinacje,  czyli¢    512 kB RAM-u we wszystkich  bankach¢    $4000-$7FFF,  ⇧cznie z  podstawowym¢ 3. deklaracje sta ych - patrz niəej¢ 4. procedura wykrywaj⇧ca banki XMS¢ 5. program g wny¢ 6. wyj③cie¢    Sta e... czyli zmienne, ktre  si❎¢ nie  zmieniaj⇧ ;)  (nawiasem   mwi⇧c:¢ przyda oby si❎ w  Basicu  co③  takiego¢ jak #DEFINE, nie?)¢¢    PROC CONST¢      ...¢      PB=$D301:EXTM=$4000¢    ENDPROC¢¢ PB   - PortB - $D301¢ EXTM - adres pocz. banku XMS - $4000¢¢   Detekcja bankw. Metoda prosta, zna-¢ na i oklepana. Na wszelki wypadek opi-¢ sz❎ jej dzia anie.¢¢    PROC EXTRAM¢ 1   FOR I=%0 TO 31¢        POKE PB,$72+I*4¢        POKE EXTM,I¢      NEXT I¢ 2   FOR I=%0 TO 31¢        BANKS(I)=$FE¢      NEXT I:M=%0¢  3  FOR I=%0 TO 31¢        POKE PB,$72+I*4¢        IF PEEK(EXTM)=I¢          BANKS(M)=PEEK(PB):M=M+%1¢        ENDIF¢      NEXT I¢ 4   POKE PB,$FE¢    ENDPROC¢¢ 1. Pierwsza p❎tla - ustawia odpowiedni¢    kod banku w Porcie B,  a  nast❎pnie¢    wpisuje jego index pod adres $4000.¢ 2. "Zerowanie" tablicy bankw - zabez-¢    pieczenie przed "nielegalnymi"  nu-¢    merami bankw.¢ 3. Sprawdza zawarto③⇨ pami❎ci pod  ad-¢    resem $4000.  Jeəeli  zapisana  tam¢    warto③⇨ jest zgodna z aktualnym in-¢    dexem, to bank istnieje i "jest so-¢    b⇧" - jego kod  jest  wpisywany  do¢    tablicy,  ilo③⇨  dost❎pnych  bankw¢    (M) jest zwi❎kszana o 1¢ 4. Ustawia standardow⇧ warto③⇨ Portu B¢    (od ⇧czone  OS,  Self Test,  Basic;¢    ustawiony podstawowy bank pami❎ci).¢   G wny program...¢¢    PROC MAIN¢      ...hulaj dusza...¢    ENDPROC¢¢   Dost❎p do dodatkowej pami❎ci uzysku-¢ jemy za pomoc⇧ instrukcji:¢¢    POKE PB,BANKS(x)¢¢ gdzie x oznacza numer banku, z ktrego¢ chcemy  skorzysta⇨.   Podanie   numeru¢ wi❎kszego od liczby dost❎pnych  bankw¢ powoduje ustawienie banku podstawowego¢¢   Poniewaə  podstawowy   bank  pami❎ci¢ rwnieə nie  jest  wykorzystany  przez¢ TBXL, wi❎c  jest  on  traktowany  jako¢ pami❎⇨ dodatkowa.¢¢   Pozostaje  jeszcze  tylko  wyj③cie -¢ musimy zostawi⇨ interpreter  w  takiej¢ postaci,  əeby  nikt  niczego  si❎ nie¢ domy③li .¢    # EXIT¢ 1 POKE PB,$FE¢ 2 DPOKE $02E7,DPEEK($CB)¢ 3 GRAPHICS %0:NEW¢¢ 1. Ustawiamy bank podstawowy¢ 2. Memlo na poprzedni⇧ warto③⇨¢ 3. Czy③cimy ekran i... NEW! - TBXL re-¢    setuje si❎ w standardowy sposb.¢¢   Moəna pro③ciej:¢¢  # EXIT¢  ? USR($E477) - zimny start  lub¢  ? USR($E480) - Self Test/Monitor Qmeg¢¢   Metoda ta ma, przy wszystkich swoich¢ zaletach, jedn⇧ niew⇧tpliw⇧  wad❎: nie¢ da si❎ jej  wykorzysta⇨  w  programach¢ przeznaczonych do skompilowania. Niek-¢ tre instrukcje, ktre s⇧ w tym wypad-¢ ku  niezb❎dne, np. NEW - po prostu nie¢ daj⇧ si❎  kompilowa⇨, w  kaədym  razie¢ nie  w   standardowym   TBXL  Compiler¢ F. Ostrowskiego. Niestety.¢¢¢¢   I to juə chyba  wszystko.  Powyəszej¢ metody uəywa em z powodzeniem w  kilku¢ swoich programach i musz❎ przyzna⇨, əe¢ nie znam opisu lepszej, chociaə  ch❎t-¢ nie bym taki zobaczy . Metoda jest tak¢ prosta, əe nie zdziwi oby mnie,  gdyby¢ kto③ wpad  na ni⇧ wcze③niej i  opraco-¢ wa  j⇧ lepiej.¢¢   A wszystkim  tym, ktrzy skorzystaj⇧¢ z powyəszego opisu pozostaje mi əyczy⇨¢ jak najwi❎cej wykrytych bankw...¢¢   do przeczytania.¢¢                        epi/Allegresse¢