Dynamic Publisher Twee handige hulpjes voor DP

Vergelijkbare documenten
HomeOffice to ASCII Teksten converteren

Pascal uitgediept Data structuren

In deze aflevering van deze serie zal ik proberen een groot gebrek van Turbo Pascal weg te nemen, namelijk het gemis aan Random Access Files.

Turbo Pascal (deel 1)

Turbo Pascal deel 3 MSX CLUB MAGAZINE 36. Erik van Bilsen. Scanned, ocr ed and converted to PDF by HansO, 2001

Waarden persistent (blijvend) opslaan gaat in bestanden (files). Lege tekst: eof

Installatie Software - Opdrachten Les 2

Fractals in Pascal deel 1. Henk van Wulpen, MSX CLUB MAGAZINE 44. Scanned, ocr ed and converted to PDF by HansO, 2001

DUAL TEMPERATUUR MEETSYSTEEM

Windows Command Prompt

Pascal uitgediept Recursie

MDL-lib maakt Pascal eenvoudiger BIBLIOTHEEK VOOR PASCAL PROGRAMMEURS

Tijdmenu: video-programma

Herman Post MSX Computer & Club Magazine nummer 66 - maart / april 1994

Turbo Pascal deel 4 MSX CLUB MAGAZINE 37. Erik van 'Bilsen. Scanned, ocr ed and converted to PDF by HansO, 2001

Testprogramma voor EPROMprogrammer

Midi PDF Bladmuziek lezer

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

TI-SMARTVIEW. Installeren op Windows PC

1) Een sequentieel bestand schrijven

- 1 - Inleiding. Je eerste batch bestand maken

Beschikt u over de basis module documentenbeheer dan kunt u documenten inlezen en koppelen aan de financiële mutaties en openstaande posten.

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

BLOK 3 HOOFDSTUK 8 PARAGRAAF 2

10. Mijn eerste programma

Installeren van het programma:

Korte uitleg: Wat doet de shell met mijn commandoregel?

Gebruikers handleiding. Lizard Configuration Manager ToolTip. Installatie. Instellen. Initieel instellen

Programmeren onder RISC OS: de snelstart. in BBC-Basic

Gebruik van command-line operating systems

Print deze instructie uit en lees deze goed door. Als u de volgende instructie niet uitvoert kunt u de symbolen niet gebruiken.

Online c++ leren programmeren:

Small Basic Programmeren Text Console 2

Een typisch programma in C en C++ bestaat uit een aantal onderdelen:

Bij dit hoofdstukken horen geen opgaven.

De Floppy Disk Drive (5)

Berekening van de hash-code van een bestand of CD

UPGRADE TIMEMANAGER. Wat is uw huidige versie van TimeManager? Opgelet :

Handleiding verwerking digitale films

Bijlage 1. Access VBA code voor het maken van barrièrebestanden.

Backup via King Het is ook mogelijk om via King een backup te maken dat doet u door naar Algemeen > Administratie > Backup maken te gaan

Basis UNIX commando's - overzicht

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

SI-Profinet. Unidrive M700 en Siemens S7-300 PLC (Step 7)

Handleiding Sportlink Club

Zelf PIC's programmeren. Deel-1 KnipperLED (flashing LED)

7. Gegevens opslag/ overdracht. Inhoudsopgave:

ACF PDF Invoice Uploader v1.0.9 gebruikershandleiding

Zelftest Programmeren in COBOL - deel I

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?

Universele interface RGB op MSX1 en SV.328

WORKSHOP ORANGE PI & PYTHON v september 2017

AFO 142 Titel Aanwinsten Geschiedenis

Gebruiksaanwijzing. Versie 1.0. Michiel Bouman

Een korte samenvatting van enkele FORTRAN opdrachten

FDISK. Hoofdstuk 1 Inleiding FDISK

Access cursus - Hoofdstuk 19

Programmeermethoden NA. Week 5: Functies (vervolg)

Handleiding VirtualBox

De polling is er nu dan ook in een service variant en kan dus in plaats van de normale polling gebruikt worden.

DIGITALE MODE MET POWER SDR

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

DrICTVoip.dll v 2.1 Informatie en handleiding

Thinking of Development

{ auteur, toelichting }

Numeriek eiland voor de VG8235 en NMS8245

Een fotoscanner op de joystickpoort van MSX

Stap 1. Conversie van King 3.11 of ouder naar King 4.22

Handleiding Atari 1050 diskdrive MET: SUPERDOS V 2.9

PROS1E1 Handleiding ( ) Kf/Dd/Bd

Zelftest Inleiding Programmeren

Werken met het DOS commando Fdisk

Handleiding ZKM Online. Versie 2.1

MODELSPOOR == CONTROL == SYSTEEM ==

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Een binair uurwerk. Jean Verswijvelen

Scanned, ocr ed and converted to PDF by HansO, 2001

Voeler ingang van de ilog recorder. Stop de temperatuurvoeler

Transcriptie:

Dynamic Publisher Twee handige hulpjes voor DP Ron Holst MSX Computer & Club Magazine nummer 89 - zomer 1997 Scanned, ocr ed and converted to PDF by HansO, 2001 Bij het doorspitten van diskettes en directory's kreeg ik behoefte aan een tweetal programma's: een opstartprogramma voor DP en een STP-viewer voor Multi Mente. Omdat het niet al te moeilijk was om ze te maken, heb ik dat gedaan en bied ze hierbij aan voor eenieder die er iets aan heeft. DPKEUS.BAS Het eerste programma is in basic geschreven. Het maakt, nadat een aantal vragen is beantwoord, een opstartprogramma voor DP door een batchfile naar de (harde) schijf te schrijven en deze te starten. In basic is het zeer eenvoudig om *.bat-files te maken. Het principe is simpel: open een file met de extensie 'BAT' en schrijf de tekst, bestaande uit dos-commando's, er naartoe. Het programma DPKEUS.BAS maakt een opstartprogramma aan voor Dynamic Publisher versie 2.42, die vanaf een harddisk kan starten genaamd DPKEUS.BAT. Het programma gaat uit van het aanwezig zijn van MSX dos 2. Laten we het programma in listing 1 bekijken. Regel 10 is een hulpregel die ik gebruik tijdens het programmeren. In regel 40 tot en met 90 wordt de vraag gesteld wat de A-drive wordt; dit moet bij DP tevens de schijf zijn waarop het programma zelf staat. Door het intoetsen van de return-toets, wordt de default-drive bij mij C gekozen. Het resultaat komt in DA$. In regel 100 tot en met 230 wordt gevraagd de B-drive in te vullen. Dat mag elke drive zijn, behalve de al aan 'A' toegewezen drive. Om toch gebruik te maken van de subdi-rectory's van deze drive, is er de mogelijkheid om de ramdisk te gebruiken en daar al de bestanden naar toe te kopiëren. Het resultaat komt in DB$. Als voor de ramdisk hier H wordt gekozen, wordt gevraagd van welke drive de bestanden komen. Het resultaat komt in DO$. Regel 240 tot en met 400 doen hetzelfde als die hierboven, maar nu moet worden aangegeven welke de eventuele subdirectory's van de gekozen drives zijn, die gebruikt gaan worden als de A-drive, en welke als de B-drive. De resultaten staan in de variabelen SA$, SB$ en SO$. Aanmaken batch-programma In regel 410 wordt een bestand geopend, waarin de batch-opdrachten komen te staan. Het batch-bestand komt op de drive waar ook DPKEUS.BAS staat. Eventueel kunt u dat in een andere directory plaatsen door het goede pad in te vullen; bijvoorbeeld: H:\TEMP\DPKEUS.BAT Vanaf regel 520 staan na de 'PRINT#1' de dos-opdrachten die in het batch-programma

komen. De eerste opdracht is in deze regel is SET ECHO ON. Dit is om te kunnen controleren of de aangegeven lijst compleet is; het commando kan overgeslagen worden. In regel 530 wordt nagegaan of er een ramdisk moet worden aangemaakt of niet. Zo ja, dan wordt de ramdisk aangemaakt en wordt de aangegeven directory naar de h-drive gekopieerd. Dit vindt plaats in regel 560; als de h-drive vol is, stopt hij vanzelf. Nota bene: DP kan niet meer dan 112 files met dezelfde extensie inlezen. In de volgende regels wordt de gekozen directory door middel van 'CD' ingesteld en daarna wordt de gekozen schijfeenheid met behulp van het ASSIGN-commando aan of de a- en de b-drive gekoppeld. Regel 600 is niet strikt noodzakelijk, omdat basic append toch vergeet. Nadat het bestand in regel 620 is gesloten, wordt in regel 630 MSX dos 2 gestart met de zojuist aangemaakte batch-file. In regel 700-710 staat de foutafhandeling als er geen subdirs zijn. De regels 1000-1140 bevatten enkele subroutines. 10 REM NAME "dpkeus.bas" AS "*.BAK": SAVE"c:\dpkeus.bas" 20 CLS 30 ON ERROR GOTO 700 40 PRINT "WELKE DRIVE IS DE DP-A:DRIVE ([RETURN]=C) "; 50 INPUT I$ 60 IF LEN(I$)=0 THEN I$="C":GOTO 90 70 GOSUB 1000: IF F THEN 40 REM langer dan 1 teken 80 GOSUB 1040: REM kleine letter naar hoofdletter 90 DA$=I$ 100 PRINT "WELKE DRIVE IS DE DP-B:DRIVE "; 110 INPUT I$ 120 GOSUB 1000: IF F THEN 100: REM langer dan 1 teken 130 GOSUB 1040: REM kleine letter = hoofdletter 140 GOSUB 1080: REM opnieuw invullen 150 DB$=I$ 160 IF DB$=DA$ THEN PRINT"A en B drive mogen niet gelijk zijn!": GOTO 100 170 IF DB$="H" THEN DH=-1 180 IF DH THEN PRINT "VAN WELKE DRIVE KOMEN DE BESTANDEN ";:I$="":INPUT I$ ELSE 240 190 GOSUB 1000: IF F THEN 100: REM langer dan 1 teken 200 GOSUB 1040: REM kleine letter = hoofdletter 210 GOSUB 1080: REM opnieuw invullen 220 DO$=I$ 230 IF DO$="H" THEN DH=0 240 PRINT "WELKE SUBDIR VAN "+DA$+": IS DP-A:DRIVE "; 250 I$="":INPUT I$ 260 IF LEN(I$)=0 THEN I$="DP242":GOTO 290 270 GOSUB 1080 280 F$=DA$:GOSUB 1110:IF F THEN 240 290 SA$=I$ 300 PRINT "WELKE SUBDIR VAN "+DB$+": IS DP-B:DRIVE ";: 310 I$="":INPUT I$ 320 GOSUB 1080 330 F$=DB$:GOSUB 1110:IF F THEN 300 340 SB$=I$ 350 IF DH=0 GOTO 410 360 PRINT "VAN WELKE SUBDIR KOMEN DE BESTANDEN ";: 370 INPUT I$ 380 GOSUB 1080 390 F$=DO$:GOSUB 1110:IF F THEN 360 400 SO$ = I$ 405 REM >>>>> Aanmaken BATCH-PROGRAMMA 410 OPEN "DPKEUS.BAT" FOR OUTPUT AS #1

520 PRINT#1,"SET ECHO ON" 530 IF DH THEN PRINT #1,"A:\UTILS\RRAMDISK 4080" 540 PRINT #1,"CD "+DA$+":\"+SA$ 550 IF DH THEN PRINT#1,"MD H:\"+SB$ 560 IF DH THEN PRINT#1,"COPY "+DO$+":\"+SO$+"\*.* "+"H:\"+SB$ 570 PRINT #1,"CD "+DB$+":\"+SB$ 580 PRINT #1,"ASSIGN A: "+DA$+":" 590 PRINT #1,"ASSIGN B: "+DB$+":" 600 PRINT#1,"SET APPEND TO C:\DP242" 610 PRINT #1,"BASIC AUTOEXEC.BAS" 620 CLOSE 630 _SYSTEM("C:\DPKEUS.BAT") 700 IF ERR = 53 THEN PRINT "Er zijn geen subdirectories": RESUME NEXT 710 ON ERROR GOTO 0 790 REM >>>> foutafhandeling 990 REM >>>> Subroutines 1000 REM Staat er meer dan een teken (b.v. C: dan foutmelding. 1010 F=0 1020 IF LEN(I$)<>1 THEN PRINT"Verkeerde drivenaam!":f=-1 1030 RETURN 1040 REM kleine letter omzetten in hoofdletter 1050 IF ASC(I$) > 96 THEN I$ = CHR$(ASC(I$)-32) 1070 RETURN 1080 REM ga terug naar eerste vraag, als je een fout gemaakt hebt (met < of met ESC) 1090 IF I$="<" OR I$=CHR$(27) THEN RETURN 20 1100 RETURN 1110 REM toon de subdirs van de schijf 1120 F=0 1130 IF I$="?" THEN FILES F$+":*.":PRINT:F=-1 1140 RETURN Resultaat Tenslotte een voorbeeld van een batch-bestand dat met dit programma is gegenereerd:: SET ECHO ON A:\UTILS\RRAMDISK 4080 CD C:\DP242 MD H:\stp COPY C:\vrkop\*.* H:\stp CD H:\stp. ASSIGN A: C: ASSIGN B: H: SET APPEND TO C:\DP242 BASIC AUTOEXEC.BAS STPLOOK.COM Door de nieuwe Multi Mente is het erg gemakkelijk om de verschillende viewers van de verschillende bestandstypes te laten zien. Voor het type *.STP was er echter nog geen. Beter gezegd: ik had er wel een in basic, maar niet een als com-file. Dan nu maar even in Pascal aan het werk gegaan, met als resultaat dit programma. Zet in versie 2.05 in het bestand MMRET.DAT:.STP 'STPLOOK $T en u kunt alle geselecteerde files zien. Door daarachter weer $K te zetten, hoeft u niet eens meer een toets in te drukken.

STPLOOK.COM is de ongecrunchte versie. Nota bene: onder dos kunt u bijvoorbeeld intikken: A:\STPLOOK HOLLAND.STP Het programma toont dan de stempel HOLLAND.STP { stplook, is een klein programma om onder dos stempels te laten zien } {$I KERNEL.GIC} {$I PALETTE.GIC} {$I LOADPIC.GIC} CONST XBoven=0; YBoven=0; VAR StpNaam, Stn : string[12]; tel, i, telt : Integer; Lengte, Ch : Byte; Let : string[1]; c : Char; ext : string[3]; PROCEDURE SetUp; Crtinit; Screen(6); {scherm 6} SetColor (1,0,0,0); {kleur 0=wit} SetColor (0,7,7,7); {kleur 1=zwart} SetColor (2,6,1,6); {kleur 2=geel} SetColor (3,5,1,1); {kleur 3=donkerrood} Color(1,0,0); ClrScr; END; {SetUp} FUNCTION leesbyte (adr:integer):byte; TYPE Byte_Ptr = ^BYTE; VAR BP : Byte_Ptr; BP:= PTR(adr); LeesByte := BP^; END; {LeesByte} Stpnaam:= ''; let:= ''; tel:= $82; ext:= ''; REPEAT Stpnaam:= Stpnaam+Let; ch:= leesbyte(tel);

Let:= chr(ch); tel:= tel+1; UNTIL let = '.'; FOR Tel:= Tel to Tel+3 DO Ch:= leesbyte(tel); Let:= chr(ch); Ext:= ext+let; END; IF Ext <> 'STP' then exit; Stn:= StpNaam+'.STP'; IF ORD(stpnaam[0])=8 THEN StpNaam:= StpNaam+Ext ELSE Stpnaam:= StpNaam+'.'+Ext; setup; gotoxy(400,0); pencolor(3); write(stn); IF stpnaam = '' then exit; {I-} loadpic(stpnaam,0,10,0); i := IOresult; If i = 0 then begin gotoxy(0,0); write('druk een toets om te stoppen'); REPEAT UNTIL Keypressed; end; crtexit; if i <> 0 then writeln ('fout: IOresult = ',i); END.