Ein beliebte Spielerei zum Kennenlernen höherer Programmiersprachen ist das Experimentieren mit Zufallszahlen. RND.DEB erzeugt eine Zufallszahl im Bereich 0 bis 255 und übergibt sie im Errorlevel. Das Programm liest dazu das niederwertige Byte des BIOS-Timerstands, dessen Wert sich mit einer Frequenz von 18,2 Hz ändert. Sie können mit RND den Verlauf diverser Stapeljobs vom »Zufall« beeinflussen lassen. Da der Wert einer Zufallszahl der aktuellen Systemzeit entnommen wird, wiederholt er sich regelmäßig zirka alle 14 Sekunden (255 / 18,2 ≈ 14). Wenn Sie weniger als 255 Zufallszahlen benötigen, teilen Sie einfach den Bereich zur Abfrage des Errorlevels wie in unserem Beispiel WUERFEL.BAT entsprechend auf:
@ECHO OFF IF ERRORLEVEL 212 GOTO 6 IF ERRORLEVEL 170 GOTO 5 IF ERRORLEVEL 127 GOTO 4 IF ERRORLEVEL 85 GOTO 3 IF ERRORLEVEL 42 GOTO 2 :1 ECHO 1 GOTO ENDE :2 ECHO 2 GOTO ENDE :3 ECHO 3 GOTO ENDE :4 ECHO 4 GOTO ENDE :5 ECHO 5 GOTO ENDE :6 ECHO 6 :ENDE
Ist die Durchlaufrate der Zufallszahl zu gering, müssen Sie den Bereich noch feiner aufteilen und unterschiedliche Errorlevel ein gleiches Label zwischen 1 bis 6 wählen lassen.
Name: | RND.DEB |
Funktion: | Erzeugt eine Zufallszahl im Bereich 0 bis 255. |
Übersetzung: | DEBUG <RND.DEB |
Prüfsumme: | 1AD6 |
Anwendung: | RNDIF ERRORLEVEL ## = 0 … 255 |
Einschränkungen: | ./. |
A MOV AH,0 ;100 INT 1A ;102 MOV AL,DL ;104 MOV AH,4C ;106 INT 21 ;108 RCX A NRND.COM W Q
Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot