
     Basic Screens Library Utility

     Om de met de Screen Editor gemaakt schermen en karaktersets onder Basic 
     te kunnen gebruiken, kan met ScrLib een bibliotheek van schermen, 
     blokken en karaktersets gemaakt worden. De zijn met een CALL statement 
     zeer eenvoudig op te roepen en kosten geen Basic-geheugen.

     De standaard meegeleverde en lege library SCRBASIC.BIN kan onder basic 
     met het command

     BLOAD "SCRBASIC.BIN",R

     worden geinstalleerd. Hiervoor moet wel het geheugen gebied vanaf adres 
     8800h vrij zijn, dus dit commando kan niet als eerste regel van een 
     groot programma worden opgenomen, maar moet met een kleiner installatie 
     programma in het geheugen worden geladen. Als het eenmaal is 
     geinstalleerd, dan zijn de CALL commando's altijd beschikbaar.

     De volgende CALL commando's kunnen worden gebruikt vanuit directe mode 
     of een programma:

     CALL SCINIT
     CALL SCSHOW (<scherm selectie nummer>)
     CALL SCBLOK (<regel nummer>,<blok selectie nummer>)
     CALL SCCHAR (<karakterset selectie nummer>)
     CALL SCCLS
     CALL SCRST
     CALL SCEND

     Verderop volgt een uitgebreide beschrijving van de commando's.

     Met de Screen Library utility kan de library worden uitgebreid met een 
     van de schermen, karaktersets om scherm blokken. De files worden 
     gecomprimeerd opgeslagen en hoeven niet van te voren met de Screen 
     Convertor geconverteerd te worden.

     Bij het toevoegen van een file moeten niet alleen het type en de 
     bestandsnaam worden opgegeven, maar moet ook een Selectie Code worden 
     ingevoerd. Dit getal is nodig om de verschillende files uit elkaar te 
     houden. Per toe te voegen file moet een unieke code worden opgegeven. 
     Bij het oproepen van een van de files moet deze Selectie Code weer 
     worden opgegeven.


     Library beheer
     --------------

     Nadat ScrLib is opgestart moet de naam van de library worden opgegeven, 
     standaard is deze SCRBASIC.BIN. Met de HOME toets kan het naam veld in 
     een keer worden geleegd, waarna een andere naam kan worden ingevoerd. 
     Door op RETurn te drukken wordt de invoer beeindigd. Om ScrLib te 
     verlaten kan op ESCape worden gedrukt.

     Nadat de naam is ingevoerd probeert ScrLib deze in te laden. Als dit 
     niet mocht lukken, dan moet opnieuw de naam van de library worden 
     ingegeven.

     Anders wordt de library bekeken en in het info schermdeel wordt getoond 
     hoeveel schermen, scherm blokken en karaktersets er in de library 
     zitten. Verder wordt het aantal nog beschikbare bytes berekend en 
     getoond.

     Aan de rechter kan van het scherm wordt een overzicht getoond van de in 
     de library aanwezige bestanden. Als er geen bestanden aanwezig zijn, 
     dan wordt de melding "The library is empty" gegeven.

     Aan de linker kant van het scherm, onder het info gedeelte staat het 
     messages gedeelte. Hierin plaatst het programma steeds een melding over 
     de te verwachtte actie van de gebruiker. Houdt dus goed in de gaten 
     wat hier staat.

     Helemaal onder aan het scherm staan de andere toetsen die gebruikt 
     kunnen worden in het programma. Met de S en L toetsen kan de library 
     naar disk worden geschreven of een andere library worden ingeladen.

     Met de INSert en DELete toetsen kan een bestand aan de library worden 
     toegevoegd of uit de library worden verwijderd. Bij het verwijderen 
     wordt het bestand verwijderd dat op de cursorregel in het rechter kader 
     staat.

     Het toevoegen van een bestand gebeurt altijd aan het einde van de 
     library. Na het indrukken van de INSert toets wordt er een lege regel 
     toegevoegd waarin de cursor wordt geplaatst. Als eerste moet nu de 
     Selectie Code worden ingevoerd. Deze code mag tussen de -32768 enb 
     +32767 liggen. Als er een getal groter of kleiner wordt ingevoed, dan 
     wordt het automatisch geconverteerd naar een code in het vereistte 
     bereik.

     Nadat de code is ingevoerd moet het type van het bestand worden 
     opgegeven. Standaard is dit Screen, maar met de spatiebalk kan dit 
     veranderd worden in Block of CharSet. Na het drukken op return wordt 
     deze keuze opgeslagen.

     Nu moet de naam van het in te laden bestand worden ingevoerd. Aan de 
     hand van de bij het type opgegeven keuze wordt de extensie alvast 
     ingevuld, deze is niet te veranderen. Het invoeren van de naam gaat op 
     dezelfde manier als bij het ingeven van de library naam.

     Bij het invoeren van de gegevens kan op ieder moment op ESCape worden 
     gedrukt. De nieuw toegevoegde regel wordt dan weer uit de library 
     verwijderd en het programma keert terug in de selectie mode.

     Als alle gegevens zijn ingevoerd dan probeert het programma het 
     opgegeven bestand in te laden. Als dit niet mocht lukken - om welke 
     reden dan ook - dan moet vanaf het bestandstype de gegevens opnieuw 
     worden ingevoerd. Als het bestand toch niet moet worden toegevoegd, dan 
     kan met een druk op de ESCape toets de Insert mode worden verlaten.


     De Basic commando's
     -------------------

     Bij het gebruiken van de schermen staan een zevental CALL commando's 
     tot de beschikking van de programmeur, hieronder staan ze stuk voor 
     stuk beschreven.

     CALL SCINIT
     -----------

     Dit commando moet worden uitgevoerd voordat de commando's voor het 
     oproepen van de schermen gebruikt kunnen worden. Het commando 
     initialiseert de juiste schermmode en scherminstellingen. De pallet 
     waarden van de vier kleuren die worden gebruikt, worden allemaal 0 
     gemaakt. Het scherm is daardoor zwart en blijft zwart totdat de 
     palletten gewijzigd worden. Dit gebeurt alleen bij het oproepen van een 
     scherm.

     CALL SCRST
     ----------

     Deze routine doet het tegenovergestelde van SCINIT en hersteld het 
     scherm naar de instellingen in de klokchip. Hiervoor wordt de standaard 
     BIOS routine gebruikt, die ook wordt aangeroepen bij het initialiseren 
     van de Basic. Dit gebeurt bij het opstarten van de computer en als 
     msxdos wordt verlaten door naar Basic te gaan. Dit commando moet worden 
     vergeten voordat een programma wordt verlaten.

     CALL SCEND
     ----------

     Dit commando heeft geen zichtbare werking, maar maakt de commando's 
     inactief. Het is daarna niet meer mogelijk met CALL een van de 
     commando's te bereiken. Bij het beeindigen van het programma en het 
     weer naar msxdos gaan is het beter eerst dit commando te gebruiken want 
     anders kan na het weer terugkeren naar Basic nog steeds de CALL 
     commando's gebruikt worden, maar zal de code van de library door msxdos 
     overschreven zijn en ontstaan er mogelijke crashes. Daarom is het 
     netter even de library applicatie inactief te maken.

     CALL SCSHOW (<scherm selectie nummer>)
     --------------------------------------

     Met dit commando kan een van de schermen uit de library opgeroepen 
     worden. Met de selectiecode wordt het gewenste scherm aangegeven. Als 
     het scherm niet bestaat dan wordt de foutmelding "File not found" 
     opgewekt. Als de Selectie Code wel bestaat, maar het is geen scherm, 
     dan wordt de foutmelding "Bad file mode" opgewekt.

     CALL SCBLOK (<regel nummmer>,<scherm selectie nummer>)
     ------------------------------------------------------

     Met dit commando kan een van schermblokken uit de library worden 
     opgeroepen. Dit gaat op dezelfde manier als bij een volledig scherm, 
     alleen moet nu ook het regelnummer worden opgegeven van waaraf het blok 
     moet worden afgebeeld. Er wordt door het programma alleen controle 
     uitgevoerd of het regelnummer tussen de 0 en de 26 ligt. Bij het 
     afbeelden van het blok kan het zijn dat het blok te groot is en voorbij 
     de onderste schermregel gaat. Hier wordt geen controle op uitgevoerd. 
     De fylosifie hierachter is dat de maker van het blok wel weet hoeveel 
     regels zijn blok beslaat en het blok toch alleen op van te voeren 
     bepaalde posities wordt afgedrukt. Daarom is het niet zinnig een 
     controle uit te voeren op de onderste schermregel. En daarbij komt ook 
     nog eens dat de afdruk routine van de schermen helemaal niet weet op 
     welke regel deze bezig is.

     CALL SCCHAR (<karakterset selectie nummer>)
     -------------------------------------------

     Met dit commando kan een karakterset uit de library worden opgeroepen. 
     Met de selectiecode wordt de gewenste karakterset aangegeven. Er worden 
     weer dezelfde controles als bij SCSHOW uitgevoerd op de aanwezigheid 
     van de selectiecode en de juistheid van het type.

     CALL SCCLS
     ----------

     Met dit commando kan het scherm worden gewist. Hierdoor is het niet 
     noodzakelijk een leeg scherm op te nemen in de library. De palletten 
     of karakterset worden door dit commando niet gewijzigd. Alleen het text 
     scherm en het inverse scherm worden leeg gemaakt.


     Mogelijke problemen
     -------------------

     Het is goed mogelijk dat de library onder Basic niet goed samenwerkt 
     met andere utilities die buiten het Basic gebied worden ingeladen omdat 
     de library wordt vanaf adres 4000h in het TPA-slot geinstalleerd.

     Als er andere applicaties zijn die dit ook proberen te doen, dan 
     onstaan er zeker conflicten. Er zullen in eerste instantie geen crashes 
     ontstaan als er een andere applicatie over de library heen 
     geinstalleerd worden. Op dat moment werken de CALL commando's van de 
     library helemaal niet meer.

     Bij het installeren van de library over andere al vanaf adres 4000h in 
     het TPA-slot geinstalleerde toepassingen is het niet te voorspellen wat 
     er gebeurt. Als er in de andere applicatie code zit die vanaf hooks 
     wordt aangeroepen, dan springen die hooks nu in een keer midden in de 
     library applicatie en kunnen er de meest vreemde dingen gebeuren.

