Marc's Place

E$INIT - Programma initialisatie




Aanroep
 
xcall e$init (titel, vlag1, vlag2)
 
Common velden, logicals en/of symbols vóór aanroep
e$pagesize
Een logical die in E$SYS:ASSIGNS.COM wordt gezet en de schermhoogte in regels aangeeft waarmee gewerkt wordt door terminal-emulatoren of onder MS-Windows. De waarde wordt voor de Synergy/DBL subroutine w_init gebruikt om de schermhoogte te zetten. De standaardwaarde is 24. De initiële schermbreedte is 80 kolommen van elk één teken breed.
terminal
Een logical die het terminalnummer bevat.
terminal_mode
Een logical die de modus waarin gewerkt wordt aangeeft (batch, interactief).
terminal_user
Een logical die een representatie bevat van de gebruiker
chtt
Een kanaalnummer dat gebruikt wordt om, tijdens een interactieve sessie, het beeldscherm te openen door het windowing-systeem te initialiseren. Deze variabele bevindt zich in e$lib:earth.h.
chadm
Een kanaalnummer dat gebruikt wordt om de administratie gegevens uit het administratie-bestand te lezen. Deze variabele bevindt zich in e$lib:earth.h.
Parameters te vullen bij aanroep
titel (a*)
De programmatitel. Deze wordt op regel 1 getoond, en afhankelijk van vlag voorafgegaan door het administratienummer waaronder gewerkt wordt.
Hier volgen twee voorbeelden, de eerste onder VMS met een administratienummer in de titel, de tweede onder MS-Windows, zonder administratienummer:
vlag1 (d1)
Besturing van de programma-initialisatie:
  • 0 = Geen complete initialisatie, maar alleen de scherm schonen en titel opnieuw plaatsen. Er worden geen gebruikersinstellingen ingelezen.
  • 1 = Normaal. Complete initialisatie en het inlezen van gebruikersinstellingen door middel van e$term. Als e$usr_stat = 3, dan wordt er in deze routine om een administratienummer gevraagd.
  • 2 = Complete initialisatie, echter zonder dat het scherm wordt aangetast. Behalve als e$usr_stat = 3, dan wordt er in deze routine om een administratienummer gevraagd.
  • 3 = Detached modus. Het terminalnummer in e$usr_term wordt ná e$term op nul gezet.
Wanneer de waarde van vlag1 negatief is of als e$usr_stat = 0, schakel je het werken met een administratienummer uit. De titel zal dan ook geen administratienummer bevatten.
Bij de initialisatie van het windowing system wordt een maximum van 255 ingesteld voor het aantal vensters dat tegelijkertijd actief kan zijn.
vlag2 (d1)
Besturing van de programma-initialisatie: indien meegeven, met een waarde ongelijk aan NUL, dan wordt in e$init de routine e$term NIET aangeroepen. Er wordt dan vanuit gegaan dat het record e$usr op de één of andere manier al eerder is gevuld.
Parameters gevuld bij terugkeer
*N/A
Common velden gevuld bij terugkeer
e$usr
Record met terminal- en gebruikersinstellingen.
e$_win
Venster-identificatie van het hoofdscherm waarin alle I/O plaatsvindt. Wordt alleen gevud met een ID indien vlag <> 0 en de modus is "INTERACTIVE".
e$_curw
Venster-identificatie van het actieve uitvoervenster. In deze routine gevuld met e$_win indien vlag <> 0 en de modus is "INTERACTIVE".
e$_time
Tijdstip waarop het programma is gestart. Wordt alleen gevuld indien vlag <> 0.
e$_sup
Schakelaar om aan de E$LIB-routines kenbaar te maken of schermuitvoer opgespaard moet worden (1) of niet (0). Standaardwaarde is 0, echter als vlag <> 2 en modus is "INTERACTIVE", wordt deze schakelaar op 1 gezet. Houdt daarom rekening met verwerkingsprogramma's die alleen scherm-uitvoer doen: zet het opsparen ná de aanroep van de eerste E$INIT weer uit.
e$_pgsz
De ingestelde schermhoogte in regels. Standaard gevuld met 24, maar als de logical e$pagesize is ingesteld, wordt die waarde genomen.
e$_sys
Type Operating System. Zie de tabel beschreven bij de externe subroutine ENVRN in de Synergy/DE handleiding.
e$_mach
Soort machine. Zie de tabel beschreven bij de externe subroutine ENVRN in de Synergy/DE handleiding.
e$_pgm
De programmanaam. Deze wordt genomen van de .MAIN compiler directive (altijd specificeren!), of, indien die niet is gespecificeerd, van de bestandsnaam van het programma-object. De eventuele MAIN$-prefix of directorynaam wordt verwijderd. Wordt alleen gevuld indien vlag <> 0.
e$_dbl
Versienummer van de Synergy/DE waarmee wordt gewerkt.
e$_dbl_serial
Registratienummer van de Synergy/DE waarmee wordt gewerkt.
e$adm
Een record uit het administratiebestand, gevuld met gegevens daaruit indien er met een administratie gewerkt wordt (vlag > 0 en e$usr_stat <> 0).
Voorbeelden
 

De routine initialiseert het windowing systeem, bereid algemene gegevens voor, maakt wel of niet het scherm schoon en plaatst wel of niet een titel. Hoe moet je deze routine nu gebruiken? Wel als volgt:

.proc
    xcall e$init ('programma-titel', 1)
    ...
    ...

Als je hierna weer het hele scherm gaat benutten, ben je de titel natuurlijk kwijt. Die kan je eenvoudig weer oproepen, zonder dat alles weer opnieuw wordt geïnitialiseerd:

.proc
    xcall e$init ('programma-titel', 1)
    do begin
      xcall e$init ('programma-titel', 0)
      call KeyScreen
      call DataScreen
    end
    until F03.or.F12
    xcall e$quit
KeyScreen,
...
...
return
 
DataScreen,
e$_sup = 1
; Gebruik het hele scherm voor data-entry
xcall e$screen (01001, 's')
xcall e$text (01001, cust.name + ' / ' + cust.address)
xcall e$text (02001, cust.tel + ' / ' + cust.city)
xcall e$draw (03001, 03080)
...
...
return
 
.end

Kijk naar de sources op E$SYSSRC: hoe daar de E$LIB routines worden toegepast.

© 1997- Marc Vos (and others)   -   Privacy Statement   -    Contact Me

On this website, Google Analytics is used to track visitor statistics. These are anonymised data about the number of visitors, which pages they visit on this site, from which regions they visit, which web browsers they use, etc.. You will also see non-personalised ads via Google AdSense. Cookies from Paddle or Paypal are placed when you click on a 'Buy now!' or 'Donate!' button, and possible cookies from Disqus when you use that system to comment on one or more blogposts.
Privacy Statement