EN

published: 31.10.2016

autor: Hood

Dear useful software users, this programme enables the user to allocate memory pages for his own use. The least alocated unit is just one 16 KB page. All hints and help are to be found in the programme itself. The programme is MB02+ only and can do the following: 1) memory detection
Takes place during programme start. Profi Interface (PI) and 128K memories cannot coexist, so if PI has been detected, 128K memory pages are automatically blocked. This is logical and neccessary, because first 8 PI pages= 128K memory. Also detection for emptiness of all pages takes place at the start. This info is written into the table for later use.

2) display of pages
  • X= page cannot be used for the user and its status cannot be changed. It concerns e,g. ROM pages.
  • O= page can be used but was not selected by the user
  • █(full square)= page can be used and was selected by the user
  • * above a page= the page contains non zero bytes

    For better orientation, all pages on the screen are also displayed in the form of 3 numbers and text. Applicable both for all pages and for individual hardwares are:
  • Total= total number of detected pages
  • Available= maximum pages number, which the user can allocate for his own use
  • Reserved= number of pages which the user allocated for himself

    The fourth number in the row represents current page on which the cursor stands, and again both in absolute count (red line) and individual hardwares.

    3) Table format (see picture below)
    The table is 256B long and consists of 128 items. Each item is 2 byte long and defines one page. Individual hardwares have fixed place in the table. First 64 items are reserved for PI, next 8 for 128K and next 32 for MB02+. Let's have a closer look onto the item. If the first byte of the item is 0, then the HW was not found or we do not want to define it (eg. in the already mentioned case of PI and 128K coexistence). Then the second byte has no meaning. If the first byte is #FF, the page is blocked. Bit 7 of the second byte tells us if the page is empty (0) or contains non zero bytes (1). This bit 7 of the second item byte is also used in all further cases. First byte can also be 1 for MB02+, 2 for 128K, 3 for PI- then it means these pages were selected by the user. If these values are negated (ie. 254, 253 and 252), it means these pages were not selected by the user, even though they could be used and selected. The second byte of the item carries linear page number, ie. 0- 63 for PI, 0- 7 for 128K and 0- 31 for MB02+. Keep in mind that bit 7 still carries info about page emptiness.

    4) Loading the table
    The table can be also loaded from disk. It has to be 256B long file. If the table corresponds or not with detected HW, the programme will let the user know after file loading and also on the upper red line ("HW = table" or "HW x table"). If the table does not correspond with your HW, the programme can be restarted for any reason again with "R" key.

    5) Page viewing
    With "V" key you can view any page content. It is just a simple viewing. Only characters 32- 127 are displayed. All others lower or above are displayed as value 128 as a full square. If the page contains non zero bytes, displaying starts at the closest non zero byte. Browsing through page is done with cursor keys. If the page contains only zeros, informative text will be displayed instead of characters.

    The table that the programme pours out for you can be used at your will in your applications. I know, the programme is specific only for certain type of HW, for PI and MB02+, but if you have only 128K memory, no table is really required in my opinion. MB02+ is my native (and the best) disk system and the programme also needs to save and load on disk, so it would be rather hard to solve it universally. If someone would like to rework it for other disk systems, please, contact me.

    Thanks go to: Busy, Velesoft, 8BC.

    I wish you many applications with my Memory allocator tables:)



















    CZ

    zveřejněno: 31.10.2016

    autor: Hood

    Ahojte příznivci užitečného softwaru,

    tento program umožňuje uživateli naalokovat příslušné paměťové stránky pro vlastní účely. Nejmenší alokovaná jednotka je právě jedna stránka, tedy 16KB. Veškerá nápověda je uvedena přímo v programu. Program funguje jen na MBčku a umí v kostce: 1) detekce paměti
    Děje se na začátku programu. Paměti Profi Interface (PI) a 128K nemohou zároveň existovat. Proto, pokud je detekováno PI, automaticky se blokuje práce se 128K. Je to ovšem logické a nutné. Totiž, prvních 8 bloků paměti PI= pamět 128K. Zároveň se na začátku zkoumá, zda je stránka prázdná a tato informace se zapisuje do tabulky pro pozdější využití.

    2) zobrazení stránek
  • X= stránku nelze za žádných okolností použít, nelze její status měnit. Jde např. o stránku s ROM, a pod.
  • O= stránku lze použít, ale uživatel si ji nevybral
  • █(plný čtverec)= stránku lze použít a uživatel si ji vybral
  • * nad stránkou= stránka obsahuje nenulové bajty

    Pro lepší orientaci jsou paměti na obrazovce vyjádřeny vždy i třemi čísly a textem. A to jak pro všechny stránky v součtu, tak pro jednotlivé hardwary:
  • Total= celkový počet detekovaných stránek
  • Available= maximální počet stránek, které si pro sebe může uživatel zabrat
  • Reserved= počet stránek, které si uživatel pro sebe zabral Čtvrté číslo v řadě představuje aktuální stránku, na které je umístěn kurzor, a to jak v absolutním počtu (červěný řádek), tak pro jednotlivé hardwary.

    3) formát tabulky (viz. obrázek výše)
    Tabulka je dlouhá 256 B a skládá se ze 128 členů/položek. Každý člen/položka tedy zabírá dva bajty a definuje jednu stránku. Jednotlivé hardwary mají v tabulce pevná místa. Prvních 64 položek je vyhrazeno pro PI, dalších 8 pro 128K a dalších 32 pro MB02+. Podívejme se nyní na položku. Pokud první bajt položky je 0, znamená to, že HW nebyl nalezen, nebo jej nechceme definovat (např. v případě již zmíněné koexistence PI a 128K). Druhý bajt nemá v tomto případě význam. Pokud je bajt #FF je stránka blokována. 7. bit druhého bajtu položky nám říká, zda je stránka prázdná (0) nebo nenulová (1), a tento bit je použit i ve všech dalších případech. Dále může mít první byte hodnoty 1 pro MB02+, 2 pro 128K a 3 pro PI- pak to znamená, že uživatel si tyto stránky vybral. Pokud jsou tyto hodnoty negovány (tedy 254, 253 a 252), znamená to, že si tyto stránky uživatel nevybral, i když jsou určeny k použití. Druhý bajt takových položek pak v sobě nese lineární číslo stránky, tedy 0- 63 pro PI, 0-7 pro 128K a 0- 31 pro MB02+. Pozor 7. bit i v těchto případech stále nese informaci o prázdnosti stránky.

    4) nahrání tabulky
    Tabulku lze i nahrát z disku. Musí to být soubor o délce 256 bajtů. Pokud tabulka ne/koresponduje s detekovaným HW, je na to uživatel upozorněn jednak po nahrání souboru, jednak na horním červeném řádku ("HW = table", nebo "HW x table"). Pokud nekoresponduje, program lze kdykoliv odstartovat pro jakékoliv účely znovu, pomocí klávesy "R".

    5) prohlížení stránek
    Pomocí klávesy "V" lze prohlédnout obsah jakékoliv stránky. Jde o jednoduché prohlížení. Zobrazeny jsou znaky o hodnotě 32- 127, vše pod a nad je zobrazeno jako znak s hodnotou 128 a tedy jako plný čvterec. Pokud stránka obsahuje nenulové bajty, začne zobrazení na nejbližším nenulovém bajtu. Listovat stránku nahoru a dolů lze kurzorem. Pokud stránka obsahuje samé nuly, znaky se nezobrazují, jen se zobrazí text informující o samých nulách.

    Tabulku, kterou vám program vyplivne můžete použít dle vaší libosti ve vašich aplikacích. Vím, že program je specifický pro určitý typ HW, pro PI a MBčko, ale pokud máte jen 128K paměť, není myslím tabulky třeba. MBčko je jednak můj rodný (a nejlepší) diskový systém, jednak program ukládá a nahrává na disk, a tam nevím, jak bych to univerzálně řešil. Pokud chce nějaký zájemce program přepracovat pro jiné diskové systémy, obraťte se na mě.

    Poděkování: Busy, Velesoft, 8BC.

    Přeji hodně vašich aplikací s tabulkami z mého Memory allocatoru:)