Pas2Ns '92-'93
A Pascal to
Nasi-Schneider diagram convertor
Why
I once wrote this program in order to meta-hack the exercises we got in
high-school. We were expected, before writing a pascal program, to draw
the Nassi-schenider diagram. Clearly this was useless work because the
programs were too simple and because we had to do this in deluxe paint.
As a result I spent my vacation (when going from the 5th to 6th year)
with developping a pascal parser and visualizer. The output of the
program can be seen above. The program itself has been written in
pascal using the BGI drivers.
The program itself suffers from some over- and under-design at places.
E.g; the printer drivers were stored within the code (only an epson and
an HP printer were supported), nevertheless it remains interesting to
see what I did in these times. The documentation is written in some
weird form of ducth (with the 'je' and 'jij' forms. Similarily, I was
expecting to get some money from this program under the form of
registrations (this was my first and last shareware attempt as such :).
Onmy two people has registrered in these times: Maarten Dekonick and
Joris Gansemans (who both now deserve a recognition of course :)
Versions
2.0 - verwijderen van AL de command-line options
+ verwerkt files gemiddeld 2,9 maal sneller dan de vorige versies
+ Gebufferde I/O
+ Vga-screen swapping verloopt nu goed
+ Volledige grafische interface
+ Mogelijkheid om files te selecteren
+ verbeteren van de mogelijkheden om teksten voor & na een diagram
te zetten
+ Meer kleur op kleurenkaarten
+ Bug gefixed : Als je de volgende constructie maakte in
versie 1.0 of 1.5
If a=b
then ditendat else {de else juist achter het laatste woord}
begin
...
end;
dan werd het NS-diagram SLECHT getekend.
1.5 + Aanpassing voor de Deskjet Printers...
1.0 + Basisprogramma voor Epson-printers...
Documentation
°°°°°° °°°°° °°°°° °° °° °°°°°
°±±±±±± °°±±±±± °°±±±±± °° °±± °±± °°±±±±±
°±ÛÛÛÛÛÛ °±±ÛÛÛÛÛ °±±ÛÛÛÛÛ ±± °±ÛÛ °±ÛÛ°±±ÛÛÛÛÛ
°±ÛÛ°°±ÛÛ°±ÛÛ°°±ÛÛ ±ÛÛ°° ÛÛ °°°°°°°ÛÛ °±ÛÛÛ °±ÛÛ ±ÛÛ°°°ÛÛ
°±ÛÛ±±±ÛÛ°±ÛÛ±±±ÛÛ ÛÛ±±± ±±±±±±±ÛÛ °±ÛÛÛÛ°±ÛÛ ÛÛ±±±
°±ÛÛÛÛÛÛ °±ÛÛÛÛÛÛÛ°° ÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛ °±ÛÛ ÛÛ±ÛÛ°° ÛÛÛÛÛ
°±ÛÛ °±ÛÛ °±ÛÛ ±±°°°±ÛÛ ÛÛ °±ÛÛ ÛÛÛÛ ±±°°°±ÛÛ
±ÛÛ ±ÛÛ ±ÛÛ ÛÛ±±±ÛÛ ÛÛ ±ÛÛ ÛÛÛ ÛÛ±±±ÛÛ
ÛÛ ÛÛ ÛÛ ÛÛÛÛÛ ÛÛ ÛÛ ÛÛÛÛÛ
version 2.0 Made by Werner Van Belle 1992
ÉÍÍÍ> 1. Pas2ns <ÍÍÍ»
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
a) gebruik <ÄÄÄ¿
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Pas2ns is een programma dat van WERKENDE pascalprogrammas de Nassi-Schneider
diagrammen weergeeft. Deze diagrammen kunnen worden afgeprint met een gekozen
resolutie en karakterset. Het verloop van het programma. Eerst zal je door
het onmogelijke spervuur van vragen moeten en dan kan je het diagram
bewonderen. De mogelijke vragen zijn :
¯ Moeten lege kaders doorstreept worden ?
Met deze vraag wordt het volgende bedoeld. Als er lege kaders voorkomen,
moeten deze dan doorstreept worden ?
Als je JA antwoordt zullen de lege kaders van linksboven naar rechtsonder
doorstreept worden.
Lege kaders kunnen bijvoorbeeld voorkomen in een IF...THEN zonder ELSE
¯ Moet er bij elk NS-diagram een hoofding geprint worden ?
In pascal kan je procedures en functies gebruiken. Elke procedure en/of
functie wordt appart verwerkt en geeft ook een eigen NS-diagram. Bij
elk appart NS-diagram kan je een hoofding laten printen die bestaat
uit de naam van de procedure.
¯ Kan je me de linkermarge geven in pixels :
In de meeste diagrammen zal er ingesprongen worden. Bij een Repeat-until,
While-do en For-to-do doet zich dit voor. De marge waarmee ingesprongen
wordt kan je met deze vraag bepalen.
Een bruikbare marge is 20. Marges moeten liggen tussen 1 en 100.
¯ Gebruikt u een HP Deskjet ?
Met deze vraag kan je printen op een Deskjet. Als je nee antwoord zullen
de berekeningen uitgevoerd worden voor een Epson-printer.
¯ Welke breedteresolutie kies je ?
1. Grove korrel (breed)
2. Normaal gezouten
3. Onleesbaar smal
Bij deze vraag kan je drie antwoorden geven :
Hoe hoger de resolutie, hoe kleiner de pixels zullen zijn in de breedte.
Deze optie is enkel aanwezig als je op een Epson print.
¯ Welke hoogteresolutie moet ik in aanmerking nemen ?
1. Verschrikkelijk uitgerokken
2. Normaal tekens
3. Bijeen geprakt
Hoe hoger de resolutie hier, hoe kleiner de pixels in de hoogte zullen
zijn. Optie enkel aanwezig voor Epson.
¯ Moet ik het zooitje in draft afprinten ?
Als je ja antwoord zal alles draft geprint worden, OOK GRAFISCH...
Enkel Epson.
¯ Printerresolutie please ?
1. 75 Dpi
2. 100 Dpi
3. 150 Dpi
4. 300 Dã
Enkel Deskjet.
¯ Moet er tekst voor het document komen ?
Als je hier ja antwoord zal je uit een filelist de gewenste
bestanden kunnen kiezen, die voor het document komen.
De tekst voor het document is de tekst die ‚‚nmalig voor alles
wordt geprint.
¯ Moet er tekst voor een diagram komen ?
De tekst voor een diagram is de tekst die voor elk verwerkt bestand
komt. Je kan 3 mogelijke antwoorden geven :
1. Nee : Er komt geen tekst voor het diagram
2. Ja : Je selecteerd zelf welke files voor een diagram moet komen.
3. Standaard : Zet voor een diagram de volgende standaard-opmaak :
Naam : Wordt aan de gebruiker gevraagd.
Klas : Wordt eveneens aan de gebruiker gevraags.
Datum : Wordt zelf ingevuld, op basis van de interne klok.
Oefening : Hierachter komt de naam van het programma, deze
wordt gehaald uit het pascal-programma.
¯ Moet er tekst na een diagram komen ?
De tekst na een diagram is de tekst die na elk verwerkt bestand
komt. Je kan 3 mogelijke antwoorden geven :
1. Nee : Er komt geen tekst na een diagram.
2. Ja : Je moet zelf de files kiezen die na een diagram komen.
3. Standaard : de pascalfile wordt er achteraan gestuurd.
¯ Wilt u een vertaalbestand gebruiken ?
Een vertaalbestand is een bestand dat de mogelijkheid biedt om bepaalde
identifiers te veranderen door nieuwe. (Deze bestanden kunnen gemaakt
worden in P2NInst)
Als je hier ja antwoordt moet je het gewenste vertaalbestand gaan selecteren.
¯ Wilt u een karakterset gebruiken ?
Een karakterset is een reeks datas die de tekens defini‰ren. Elk teken
wordt gevormd uit 64 bits, pixels (8x8). Je kan zelf nieuwe fonts
gebruiken door ze te selecteren uit een filelist. Fonts kunnen aangemaakt
worden in P2NInst. Standaard zijn drie fonts meegeleverd
FONT1.P2N : de normale
FONT2.P2N : de inverse van font1 (om iemand liggen te hebben)
FONT3.P2N : een info-font
¯ Nu moet je de file selecteren die je wil zien als NS-diagram...
Hij verwerkt de file en toont hem op het scherm. Je kan rondwandelen
in het NS-diagram met de pijltoetsen. Als je er genoeg van hebt
drukt je Escape of Enter.
Escape : Zal dit diagram NIET mee afprinten
Enter : Zal dit diagram WEL meeprinten
¯ Moet er tekst na het document komen ?
Hier kan je eventueel nog files toevoegen aan het einde van de
print-file.
¯ Moet ik nu printen ?
Als je 'ja' antwoordt zal alles geprint worden. Bij het antwoorden
van nee moet je nadien manueel printen met PrintNS.
b) schakelopties <ÄÄÄ¿
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
het programma heeft lak aan command-line options. Ik heb ze allemaal
verwijderd uit de vorige versie omdat blijkbaar niemand ze gebruikt.
ÉÍÍÍ> 2. PrintNs <ÍÍÍ»
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
PrintNs is gemaakt om bestanden aangemaakt door pas2ns door te sturen naar
lpt1. Het gebruik is heel eenvoudig. Je typt PrintNs met daarachter de file-
name (eventueel met wildcards : '*' en '?') van het bestand dat afgedrukt
moet worden. Het programma maakt zelf uit of het bestand afkomstig is van
pas2ns of niet. De schakelopties zijn :
/R : doorzoek ook subdirectories
/?, ? : geeft wat help
ÉÍÍÍ> 3. P2Ninst <ÍÍÍ»
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
P2Ninst is een programma dat je toelaat je eigen fonts en je eigen
vertaalbestanden te schrijven. Je start het programma op en als je niet
perfect weet wat je moet doen druk dan F1. Achter p2ninst kan je ook direct
de filename van het bestand typen dat je wilt aanpassen.
ÉÍÍÍ> 4. Foutmeldingen <ÍÍÍ»
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
De twee foutmeldingen die ik het meest heb gehad toen ik pas2ns aan het
debuggen was waren stack overflow (run time error 202) en heap overflow
(run time error 203). Deze laatste fout ben ik tegengegaan door je een
berichtje te geven dat je programma te veel geheugen in beslag neemt. Hoewel
dit niet de volledige waarheid is (mijn programma kijkt ook niet op het
geheugen) kun je er weinig tegen doen. Je kan je programma opsplitsen in
meerdere procedures en functies. De stack overflow heb je als je programma
te diep genest is.
Mocht er zich onverhoopt toch een insect in deze programmas bevinden, let me
know it !
ÉÍÍÍ> 5. Shareware <ÍÍÍ»
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Het is geen shareware en het is ook geen freeware, het is
een mengsel van beiden. Je mag het programma voor mijn
part eeuwig blijven gebruiken zonder te betalen
(freeware). Maar als je betaalt ontvang je alle shareware
die ik tot nu toe heb geschreven en die ik ooit zal
schrijven. De prijs bedraagt minimum 500 BFr. (Meer is
altijd welkom). Om eventuele komende veranderingen stuur
ik u door naar de file 'Wat volgt ???'.
Wat u nu zou moeten hebben :
VERTAAL.P2N ³ Vertaalbestand als voorbeeld
FONT1.P2N ³ De default-font
FONT2.P2N ³ De inverse van de default-font
FONT3.P2N ³ Info-font
PAS2NS.EXE ³ Het hoofdprogramma
P2NINST.EXE ³ Het programma op Pas2ns op maat te snijden
PRINTNS.EXE ³ Het programma om een NS-diagram af te printen
PAS2NS.DOC ³ Deze file
P2NHELP.HLP ³ De helpfile bij P2Ninst
ORDER.TXT ³ Het formuliertje om je te laten registreren
WATVOLGT.TXT ³ Een aanmoediging voor registratie
HISTORY.DOC ³ History van Pas2ns
Van Belle Werner
Moortebeekstraat 72
1700 Dilbeek
°°°°°° °°°°° °°°°° °° °° °°°°°
°±±±±±± °°±±±±± °°±±±±± °° °±± °±± °°±±±±±
°±ÛÛÛÛÛÛ °±±ÛÛÛÛÛ °±±ÛÛÛÛÛ ±± °±ÛÛ °±ÛÛ°±±ÛÛÛÛÛ
°±ÛÛ°°±ÛÛ°±ÛÛ°°±ÛÛ ±ÛÛ°° ÛÛ °°°°°°°ÛÛ °±ÛÛÛ °±ÛÛ ±ÛÛ°°°ÛÛ
°±ÛÛ±±±ÛÛ°±ÛÛ±±±ÛÛ ÛÛ±±± ±±±±±±±ÛÛ °±ÛÛÛÛ°±ÛÛ ÛÛ±±±
°±ÛÛÛÛÛÛ °±ÛÛÛÛÛÛÛ°° ÛÛÛÛÛ ÛÛÛÛÛÛÛÛÛ °±ÛÛ ÛÛ±ÛÛ°° ÛÛÛÛÛ
°±ÛÛ °±ÛÛ °±ÛÛ ±±°°°±ÛÛ ÛÛ °±ÛÛ ÛÛÛÛ ±±°°°±ÛÛ
±ÛÛ ±ÛÛ ±ÛÛ ÛÛ±±±ÛÛ ÛÛ ±ÛÛ ÛÛÛ ÛÛ±±±ÛÛ
ÛÛ ÛÛ ÛÛ ÛÛÛÛÛ ÛÛ ÛÛ ÛÛÛÛÛ
ÞÝ
ÞÝ Naam : _____________________________________________________________
ÞÝ
ÞÝ
ÞÝ Straat : ___________________________________________________________
ÞÝ
ÞÝ
ÞÝ Postcode, gemeente : _______________________________________________
ÞÝ
NOTA : Indien u het programma nog niet heeft stuur dan
eveneens een diskette op
Source
The archive contains 3 directories. For each
version one: 1.0, 1.5, 2.0.
Screenshots