PofoWiki

Die ultimative Informationsquelle zum ATARI Portfolio

Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:diy:batch:aes

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:diy:batch:aes [17/12/2011 02:12] – internen Link eingefügt uxtsoftware:diy:batch:aes [22/09/2022 21:09] (aktuell) – [Erste Versuche] Rechtschreibung bttr
Zeile 1: Zeile 1:
 +====== Batchen im AES-Look ======
 +AES steht für "Application Environment Services". Dabei handelt es sich um den Teil des Betriebssystems, der für die Menüsteuerung und Zeilen-Editor-Funktionen von Portfolios internen Applikationen verantwortlich ist.\\
 +Dies geht zwar schon allein mit den internen DOS-Befehlen, sieht dann aber nur so lala aus. Mit Hilfe von ein Paar Utilities und Tools allerdings kann man komplexe "Programme" schreiben.
  
 +Diese Utilities/Tools sind alle kostenlos erhältlich:
 +  * [[software:vorstellung:utilities:μxt#CSRPOS.COM|CSRPOS.COM]] -- Ermöglicht das freie Positionieren des Textcursors.
 +  * [[software:vorstellung:utilities:μxt#CSRMOD.COM|CSRMOD.COM]] -- Ermöglicht das Ein- und Ausschalten des Textcursors.
 +  * [[software:vorstellung:utilities:μxt#SCRSTR.COM|SCRSTR.COM]] -- Speichert komplette Textbildschirme als Datei.
 +  * [[software:vorstellung:utilities:μxt#SCRRST.COM|SCRRST.COM]] -- Liest den mit SCRSTR.COM gespeicherten Bildschirm zurück.
 +  * [[software:vorstellung:utilities:μxt#BOX.COM|BOX.COM]] -- Erstellt einen AES-üblichen Rahmen.
 +  * [[software:vorstellung:utilities:μxt#MSG.COM|MSG.COM ]] -- Zeigt eine eingerahmte Meldung.
 +  * [[software:diy:pascal:pascalbjg#MENU.EXE|MENU.EXE]] -- Erzeugt eine Auswahlbox.
 +  * [[software:vorstellung:utilities:μxt#INPUT.COM|INPUT.COM]] -- Ermöglicht die Eingabe von Zeichen samt Zeilen-Editing.
 +  *GETFILE.EXE -- Ermöglicht das Laden/Ausführen von Dateien in einer Auswahlbox.
 +
 +Diese Dateien sind im [[software:download|Downloadbereich]] erhältlich.
 +
 +Downloaden, zum Pofo übertragen, und los geht's ...
 +
 +===== Erste Versuche =====
 +Wir schreiben uns folgende Batchdatei:
 +<code dos>
 +BOX
 +CSRPOS 1,5
 +ECHO AES-Batchen
 +CSRPOS 2,3
 +ECHO Mit dieser Batchdatei und ein paar
 +CSRPOS 3,3
 +ECHO Utilities kann ich mir meine eigene
 +CSRPOS 4,3
 +ECHO AES-Umgebung zurecht-batchen.
 +SCRSTR.COM SCR0.PGT
 +</code>
 +
 +Nennen wir sie MKAES01.BAT. Wenn wir sie ausführen, sehen wir dabei zu, wie DOS uns einen Startbildschirm "bastelt" und ihn zum Schluss in der Datei mit dem Namen SCR0.PGT ablegt.
 +
 + Nun ein kleines Hauptprogramm:
 +<code dos>
 +:START
 +SCRRST SCR0.PGT
 +SET FILENAME=UNSET
 +GETFILE *.*
 +IF %FILENAME%==UNSET GOTO ENDE
 +CLS
 +ECHO %FILENAME%
 +PAUSE >NUL
 +SET FILENAME==
 +CLS
 +SCRRST SCR0.PGT
 +GOTO START
 +:ENDE
 +</code>
 +
 +Nennen wir es AES.BAT. Starten wir diese Batchdatei, erscheint unser vorher generierter Startbildschirm und ein Fenster mit allen auf dem gegenwärtigen Pfad befindlichen Dateien. Mit den Pfeiltasten oder durch Drücken eines der Anfangsbuchstaben wählen wir sie aus. Dies erledigt GETFILE.EXE. Haben wir eine Datei ausgewählt, steht ihr Name in der Umgebungsvariable FILENAME. Nun können wir mit dieser Datei alles mögliche anstellen:\\
 + Sie löschen: DEL %FILENAME% \\
 + Sie ansehen: TYPE %FILENAME% \\
 + Sie kopieren: COPY %FILENAME% C:\*.* \\
 + usw. \\
 +Im obigen Beispiel wird der Name auf einem leeren Bildschirm dargestellt (''ECHO %FILENAME%''). Drücken wir eine Taste, kehren wir zum Startbildschirm zurück. Um das Programm zu verlassen, drücken Sie <key>Esc</key>, während Sie das Dateiauswahlmenü sehen.
 +
 +===== Ladebalken =====
 +Na ja, dies ist nicht AES-typisch, eher Windows, aber manchmal ganz nett.
 +
 +<code dos>
 +scrstr SCREEN0.PGT
 +csrmod /o
 +csrpos 4,10
 +box 3,20
 +csrpos 4,14
 +echo loading...
 +csrpos 5,11
 +echo █
 +csrpos 5,12
 +echo ██
 +csrpos 5,14
 +echo ██
 +csrpos 5,16
 +echo ██
 +csrpos 5,18
 +echo ███
 +csrpos 5,21
 +echo █
 +csrpos 5,22
 +echo █
 +csrpos 5,23
 +echo █
 +csrpos 5,24
 +echo ██
 +csrpos 5,26
 +echo ██║
 +pause >nul
 +scrrst SCREEN0.PGT
 +csrmod /b
 +</code>
 +
 +Zwischen ECHO und CSRPOS können jeweils Teile einer Routine eingefügt werden. So kann man anhand des wachsenden Balkens das Fortschreiten der Gesamtroutine beobachten.
 +
 +
 +===== Elementarer Filemanager =====
 +Eine etwas komlexere Batch-Datei die so etwas ähnliches wie ein Filemanager ist. Das Programm prüft am Anfang ob alle erforderlichen Utilities und Tools zur Verfügung stehen. Es wird eine gewisse Verzeichnis-Struktur vorausgesetzt (A:\COMMANDS\, A:\TOOLS\, A:\UTILITY\...), sollten Sie die Programme MENU, INPUT, GETFILE, BOX... in anderen Verzeichnissen haben passen sie dies vorher an. Es wird zusätzlich zu den oben erwähnten Utilities noch die Utility  [[software:vorstellung:utilities:μxt|ALF.COM]] benötigt.\\
 +
 +<code dos>
 +@echo off
 +echo checking environment integrity...
 +if not exist a:\tools\scrrst.com goto noaes
 +if not exist a:\tools\scrstr.com goto noaes
 +if not exist a:\utility\aes.pgt goto noaes
 +if not exist a:\commands\csrpos.com goto noaes
 +if not exist a:\commands\box.com goto noaes
 +scrrst a:\utility\aes.pgt
 +csrpos 7,39
 +pause >nul
 +csrmod /o
 +csrpos 4,10
 +box 3,20
 +csrpos 4,14
 +echo loading...
 +csrpos 5,11
 +echo █
 +if not exist a:\commands\msg.com goto noaes2
 +csrpos 5,12
 +echo ██
 +if not exist a:\tools\menu.exe goto noaes2
 +if not exist a:\tools\getfile.exe goto noaes2
 +csrpos 5,14
 +echo ██
 +if not exist a:\commands\alf.com goto noaes2
 +csrpos 5,16
 +echo ██
 +csrpos 5,18
 +echo ███
 +csrpos 5,21
 +echo █
 +csrpos 5,22
 +echo █
 +csrpos 5,23
 +echo █
 +csrpos 5,24
 +echo ██
 +csrpos 5,26
 +echo ██║
 +csrpos 7,1
 +scrrst a:\utility\aes.pgt
 +csrpos 4,4
 +box 3,33
 +csrpos 5,6
 +echo welcome to batch-environment!
 +csrmod /b
 +csrpos 5,35
 +chkdsk >nul
 +csrmod /o
 +scrrst a:\utility\aes.pgt
 +goto main
 +
 +:noaes2
 +scrstr c:\aeserr.pgt
 +csrpos 3,5
 +box 3,34
 +csrpos 4,7
 +echo sorry, environment incomplete.
 +chkdsk >nul
 +scrrst a:\utility\aes_req.pgt
 +pause >nul
 +scrrst c:\aeserr.pgt
 +del c:\aeserr.pgt
 +goto quit
 +
 +:main
 +csrpos 2,17
 +csrmod /b
 +menu main apps commands tools dos quit
 +if errorlevel 5 goto quit
 +if errorlevel 4 goto dos
 +if errorlevel 3 goto tools
 +if errorlevel 2 goto commands
 +if errorlevel 1 goto apps
 +goto quit
 +
 +:apps
 +a:
 +scrstr c:\aes01.pgt
 +:appmenu
 +menu apps adr dry wks txt cal
 +if errorlevel 5 goto cal
 +if errorlevel 4 goto txt
 +if errorlevel 3 goto wks
 +if errorlevel 2 goto dry
 +if errorlevel 1 goto adr
 +scrrst c:\aes01.pgt
 +del c:\aes01.pgt
 +goto main
 +
 +:adr
 +scrstr c:\aes02.pgt
 +set spec=a:\apps\*.adr
 +set appl=/a
 +goto getapp
 +
 +:dry
 +scrstr c:\aes02.pgt
 +set spec=a:\apps\*.dry
 +set appl=/d
 +goto getapp
 +
 +:wks
 +scrstr c:\aes02.pgt
 +set spec=a:\apps\*.wks
 +set appl=/w
 +goto getapp
 +
 +:txt
 +scrstr c:\aes02.pgt
 +set spec=a:\apps\*.txt
 +set appl=/e
 +goto getapp
 +
 +:cal
 +scrstr c:\aes02.pgt
 +app /c
 +scrrst c:\aes02.pgt
 +del c:\aes02.pgt
 +goto appmenu
 +
 +:quit
 +csrmod /o
 +scrrst a:\utility\aes.pgt
 +csrpos 4,10
 +box 3,18
 +csrpos 5,12
 +echo leaving AES...
 +csrpos 5,26
 +csrmod /b
 +goto end
 +
 +:getapp
 +if not exist %spec% goto nofil
 +if not exist c:\system\permdata.dat goto nopd
 +set filename=unset
 +getfile %spec%
 +if %filename%==unset goto appret
 +set cmd=alf a:\apps\%filename% %appl%
 +%cmd%
 +app %appl%
 +set spec=
 +set filename=
 +set appl=
 +set cmd=
 +scrrst c:\aes02.pgt
 +del c:\aes02.pgt >nul
 +goto appmenu
 +
 +:appret
 +scrrst c:\aes02.pgt
 +del c:\aes02.pgt >nul
 +set spec=
 +set filename=
 +set appl=
 +set cmd=
 +goto appmenu
 +
 +:nofil
 +msg no matching file found.
 +goto appret
 +
 +:nopd
 +copy a:\utility\permdata.dat c:\system\*.* >nul
 +goto getapp
 +
 +:commands
 +scrstr c:\aes01.pgt
 +:commenu
 +set filename=unset
 +set spec=a:\commands\*.*
 +if not exist %spec% goto nocom
 +getfile %spec%
 +if %filename%==unset goto comret
 +scrstr c:\aes02.pgt
 +cls
 +%filename%
 +pause
 +scrrst c:\aes02.pgt
 +del c:\aes02.pgt
 +set filename=
 +set spec=
 +goto commenu
 +
 +:comret
 +scrrst c:\aes01.pgt
 +del c:\aes01.pgt
 +goto main
 +
 +:nocom
 +msg no matching file found.
 +set filename=
 +set spec=
 +scrrst c:\aes01.pgt
 +del c:\aes01.pgt
 +goto main
 +
 +:tools
 +scrstr c:\aes01.pgt
 +:toolmenu
 +set filename=unset
 +set spec=a:\tools\*.*
 +if not exist %spec% goto noexe
 +getfile %spec%
 +if %filename%==unset goto exeret
 +scrstr c:\aes02.pgt
 +if not %filename%==TCCALC.COM cls
 +%filename%
 +csrpos 8,3
 +pause
 +scrrst c:\aes02.pgt
 +del c:\aes02.pgt
 +set filename=
 +set spec=
 +goto toolmenu
 +
 +:exeret
 +scrrst c:\aes01.pgt
 +del c:\aes01.pgt
 +goto main
 +
 +:noexe
 +msg no matching file found.
 +set filename=
 +set spec=
 +scrrst c:\aes01.pgt
 +del c:\aes01.pgt
 +goto main
 +
 +:dos
 +scrstr c:\aes01.pgt
 +:dosmenu
 +menu DOS dir chkdsk time label
 +if errorlevel 4 goto doslab
 +if errorlevel 3 goto dostim
 +if errorlevel 2 goto doschkdsk
 +if errorlevel 1 goto dosdir
 +scrrst c:\aes01.pgt
 +del c:\aes01.pgt
 +goto main
 +
 +:dosdir
 +scrstr c:\aes02.pgt
 +cls
 +dir /p
 +pause
 +scrrst c:\aes02.pgt
 +del c:\aes02.pgt
 +goto dosmenu
 +
 +:doschkdsk
 +scrstr c:\aes02.pgt
 +cls
 +chkdsk /p
 +csrpos 8,1
 +pause
 +scrrst c:\aes02.pgt
 +del c:\aes02.pgt
 +goto dosmenu
 +
 +:dostim
 +scrstr c:\aes02.pgt
 +cls
 +csrpos 3,1
 +time
 +date
 +pause
 +scrrst c:\aes02.pgt
 +del c:\aes02.pgt
 +goto dosmenu
 +
 +:doslab
 +scrstr c:\aes02.pgt
 +cls
 +csrpos 3,1
 +label
 +pause
 +scrrst c:\aes02.pgt
 +del c:\aes02.pgt
 +goto dosmenu
 +
 +
 +:noaes
 +echo sorry, environment incomplete.
 +goto exit
 +
 +:end
 +set filename=
 +set spec=
 +
 +del c:\aes??.pgt >nul
 +scrrst a:\utility\aes.pgt
 +csrmod /b
 +:exit
 +</code>
 +
 +Download: {{:software:diy:batch:aes.zip|AES.BAT}}
 +
 + [[v-hamann@web.de|volker hamann]]