ist es normal, dass Treiber die BIOS Equipment Liste unberührt lassen oder sind das Bugs, kennt jemand die Hintergründe? Bei mir fügt weder der Aureal Vortex Treiber (ASP4DOS.COM) den Joystickport hinzu, noch der für die LogiLink PC0018 (GEMDOSIN.EXE) die parallelen/seriellen Ports. Und das USB-Diskettenlaufwerk (BIOS) ist auch nicht drin. 26h (siehe unten) dürfte wohl meinen x87+Maus+80x25Farbe [1].
Weil Alley Cat nach Interrupt 11h fragt um den Joystick auswählen zu können, habe ich mir die BIOS Equipment Liste einfach manuell angepasst [2]. In ALLEYCAT.EXE kann der Joystick dann zwar ausgewählt werden und das Spiel startet auch mit dem Feuerknopf, die Katze springt dann aber nur nach links, bei Stick rechts springt sie hoch und bei Stick unten läuft sie nach links, alles andere hat keinen Effekt. Kalibriert habe ich den Joystick mechanisch in Maniac Mansion wo er ohne solche Tricks einfach funktioniert. In Alley Cat habe ich das vorher auch schon und leider erfolglos probiert, nach rechts ging die Katze nie. Wo könnte denn da die Ursache liegen, bzw. was könnte ich noch probieren?
Besten Dank
[1] http://www.ctyme.com/intr/rb-0575.htm
[2] Standard C Programm und POSIX Makefile, konfiguriert für Open Watcom 1.9.
Ohne Argument wird eine Hilfezeile ausgegeben. Mit einer 20-Bit-Adresse als Argument wird das an dieser Speicherstelle befindliche Wort ausgegeben. Oder mit einer weiteren 16-Bit breiten Bitmaske alterniert und gezeigt.
Also um eine Hilfezeile zu bekommen,
Code: Alles auswählen
C:\>toggle
Error: No address given!
Usage: C:\TOGGLE.EXE address [bitmask]
Code: Alles auswählen
C:\>toggle 40:0010h
[0040:0010h] = 26h
Code: Alles auswählen
C:\>toggle 40:0010h 1000h
[0040:0010h] = 26h --> 1026h
Code: Alles auswählen
C:\>wmake toggle.exe
Code: Alles auswählen
CC=owcc
CFLAGS=-O2 -std=c89 -Wextra -mcmodel=c
LDFLAGS=-s -b DOS
.SUFFIXES:
.SUFFIXES: .exe .c
.c.exe:
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
Code: Alles auswählen
# include <stdio.h>
# include <stdlib.h>
int main ( int argc , char * * argv ) { unsigned u , * p ;
if ( 1 < argc )
if ( sscanf ( argv [ 1 ] , "%p" , & p ) ) {
printf ( "[%ph] = %Xh" , p , * p ) ;
if ( 2 < argc )
if ( sscanf ( argv [ 2 ] , "%X" , & u ) )
printf ( " --> %Xh\n" , * p ^= u ) , exit ( EXIT_SUCCESS ) ;
else printf ( "\n" ) ,
fprintf ( stderr , "Error: %s isn't a bitmask!\n" , argv [ 2 ] ) ;
else printf ( "\n" ) , exit ( EXIT_SUCCESS ) ; }
else fprintf ( stderr , "Error: %s isn't an address!\n" , argv [ 1 ] ) ;
else fprintf ( stderr , "Error: no address given!\n" ) ;
fprintf ( stderr , "Usage: %s address [bitmask]\n" , argv [ 0 ] ) ;
return EXIT_FAILURE ; }
EDIT2: Noch schönere Ausgabe für Toggle.
EDIT3: So gefällt mir Toggle.