;******************************************************************************* ;* Patchfile fr das deutsche TOS 3.06 V2.0 (TosPatch V2.9.2 erforderlich) ;* ;* Das Format dieser Datei kann man wohl den Zeilen selbst entnehmen. ;* Mit dem ";" beginnt eine Kommentarzeile (wer h„tte es gedacht?), damit ;* kann man sehr sch”n einzelne Patches auslassen. Die meisten Patches haben ;* jetzt jedoch eine Variable am Anfang, die bestimmt, ob der Patch eingebunden ;* wird oder nicht. Zus„tzlich kann in einigen F„llen mit dieser - oder auch ;* einer darauf folgenden Variablen - der Patch konfiguriert werden. ;* ;* Ich hoffe, daž durch dieses Patchprogramm das Žndern des TOS nun endlich ;* auf geregelten Bahnen verl„uft, denn jeder kann relativ einfach Patches ;* ver”ffentlichen und auch nicht so erfahrene User k”nnen diese bernehmen. ;* ;* Wer eigene Patches hinzufgen will, sollte eine eigene Kennung w„hlen, ;* und diese im folgenden Kopf eintragen. Patches von anderen NIEMALS „ndern! ;* Vielleicht hat sich derjenige doch was dabei gedacht! Wenn doch, so ist ;* die Žnderung genau zu dokumentieren! Es muž herausgestellt werden, wie ;* der Patch vorher aussah und was ge„ndert wurde. ;* ;* Nochwas zu Weitergabe: Es sollten nur die Patches aktiviert sein, die fr ;* JEDEN etwas bringen. Also NUR FEHLERKORREKTUREN. Alle "Verbesserungen" sind ;* besser zu deaktivieren. Wer sie will, kann sie immer noch bernehmen. ;* ;* Kennung: | Name des Urhebers bzw. desjenigen, der den Patch gesammelt hat ;* ------------------------------------------------------------------------- ;* MRF | Markus Fritze, ä-soft ;* HUCKY | ??? ;* TFR | Jrgen Meyer ;* MH | Markus Heiden ;* TRK | Tracker ;* RB | Ralf Biedermann ;* SE | Steffen Engel ;* ;* Bei Fehlermeldungen und Erweiterungen bitte ich um eine Mitteilung an meine ;* InterNet-Adresse: ;* ;* Markus_Heiden@public.uni-hamburg.de ;* ;* Oder ”ffentlichen Messages in folgende Box: ;* D-Box Hamburg (040)72910042 (NUR eigenes Tauschsystem: DTAUSCH) ;* ;* TosPatch: ½ 1990 ä-soft, Markus Fritze (MRF) ;* ½ 1992-97 Markus Heiden (MH) ;* ;* Bitte wendet Euch nicht mehr an Markus Fritze, wenn Ihr Probleme habt, ;* sondern ausschliežlich an mich (Markus Heiden) !!! ;******************************************************************************* ;* MH: ;* TOS-Daten festlegen. ;* >>> Achtung: TOS-L„nge (.LENGTH) MUSS durch 16 teilbar sein! .BASE = E00000 ;TOS-ROM-Adresse (TOS 3.06: $E00000) .LENGTH = 80000 ;TOS-L„nge (TOS 3.06: $80000) .WIDTH = .32 ;TOS-Breite (TOS 3.06: .32) .NATION = .FRG ;TOS-Nationalit„t (Federal Republic of Germany) ;******************************************************************************* ;* MRF: ;* Einleseformat des Patchprogramms [Anzahl der TOS-Files] [Obere Ramgrenze des Rechners - .LENGTH] ;>1 01F80000 ; 16MB-TT-RAM / 1 File ;Im TT-Ram l„uft das TOS schneller! ;>1 01780000 ; 8MB-TT-RAM / 1 File ;Dies ersetzt (fast) ROMRAM ;>1 01380000 ; 4MB-TT-RAM / 1 File ;oder „hnliche TOS-Beschleuniger! >1 00380000 ; 4MB-ST-RAM / 1 File ;(FastVar nicht implementiert) ;>1 00280000 ; 3MB-ST-RAM / 1 File ;>1 00200000 ; 2,5MB-ST-RAM / 1 File ;Mit weniger als 2MB Speicher macht es ;>1 00180000 ; 2MB-ST-RAM / 1 File ;kaum Sinn TOS 3.06 im Ram zu halten, ;>1 00080000 ; 1MB-ST-RAM / 1 File ;aužer vielleicht zum Testen der Patches. ;>1 ; 1 nicht relozierte Datei (TOS.IMG) erzeugen, z.B. fr ROMRAM. ;>2 ; 2 nicht relozierte Dateien (TOS.LO/HI) erzeugen. ;>4 ; 4 nicht relozierte Dateien (TOS.EE/EO/OE/OO) erzeugen. ;******************************************************************************* ;* MH: ;* Reloc-Korrekturen NUR (!!!) fr das TOS 3.06 vom 24.9.1991 ;* nach einer Idee von Andreas Kromke (KAOS 1.2 bzw. KAOS 1.4). ;* Die Reloc-Korrekturen untersttzen TOS-L„ngen bis $100000. ;* [FRG] _SWITCH .NATION _CASE .FRG: !1D6,1514,1CE6,1E88,28D8,38B2,650E,73B4,E5BC,14126,1561C,15676,15D70,163C8 !169D6,16B24,1738E,173A2,1B5B0,1C6C2,1CB62,1CCDA,1D7CA,1ECAA,1FE62,204CA !20730,207FE,20A24,21290,242BA,24C76,26642,2665E,2A01E,2A10C,2A3CA,2F268 !2F290,2F47E,3091C,362AC,36518,36B18,36B1A,371E0,371E2,377AA,383AA,38C7A !39580,395D4,3969C,39876,39956,39964,399A0,399A2,399A4,399A6,39AB0,39F6A !39F74,39F7A,3A1FE,3A4BE,3A6BE,3A6CE,3A714,3A8CE,3A914,3ACC4,3B518,3B718 !3B898,3BC98,3BEB0,3BFB6,3C356,3C76E,3D062,3D41E,3D420,3D422,3D424,3D426 !3D428,3D42A,3D42C,3D42E,3D430,3D432,3D434,3D436,3D438,3D43A,3D43C,3D61E !3D620,3D622,3D624,3D626,3D628,3D62A,3D62C,3D62E,3D630,3D632,3D634,3D636 !3D638,3D63A,3D63C,3FA66,4254C,426E6,42874,42878,43938 ! 14F6.. 1516 ;Bombenimage !36018..36420 ;Atari-Logo !3676C..368EC ;Keyboard-Tabelle !36CCE..3714E ;6x6 Fontimage !373AA..37BAA ;8x8 Fontimage !37BAA..38BAA ;8x16 Fontimage !38E60..3CE60 ;16x32 Fontimage !3E514..3E532 ;Desktop-Tastaturbelegung _DEFAULT: _IF .RELOCADR <> .BASE _ERROR 'Nation wird nicht untersttzt' _ENDIF _ENDSWITCH ;******************************************************************************* ;* MH: ;* Berechnen und Setzen der CRC-Prfsumme von TOS 2.06/3.06. ;* Beim Start des TOS erscheint sonst die Message 'CRC-error in chip X.', ;* falls der Test nicht ausgeschaltet ist (s.u.). ;* (Auch wichtig fr den RAMRESET-Patch, da sonst bei jedem Hardreset das TOS ;* aus dem RAM entfernt wird.) .CRC = 1 ;1: CRC berechnen, 0: CRC nicht berechnen ;******************************************************************************* ;* Ins Patchdirectory wechseln: -PATCHFLD.306\ ;Dsetpath("patchfld.306\") ;******************************************************************************* ;* SE: (eingebunden von MH) ;* PAK III-Patches Version 2 (fr 68020- und 68030-Version). Es gibt auch noch ;* ein modifiziertes Atari-Fuji mit PAK/3-Schriftzug von SE (s.u.). ;* [FRG/USA] ;* ;* >>> Einige andere Patches werden deaktiviert (s.u.). .PAK = 1 ;1: PAK-Patches einbinden, 0: PAK-Patches nicht einbinden .StaticRAM = 0 ;1: TOS fr Static-RAMs, 0: TOS fr ROMs/EPROMs .Grafik_Bombs = 0 ;1: Bomben auf Grafikkarten/Grafikerweiterungen ausgeben, ; funktioniert bei allen Systemen mit Bitplanes. ;0: Nicht-Grafikkartenbesitzer oder Grafikkartenbesitzer ; mit angeschlossenem ST-Screen sollten diesen Patch ; herauszunehmen, da die Bomben dort sichtbar sind. .BootJMP = 1 ;1: PAK-Trick, um mit FC-TOS auf Mainboard in die ; PAK-ROMs hochzukommen, einbinden. Falls Probleme ; mit diesem Patch auftauchen, sollte man den RSC- ; Patch aktivieren. ;0: PAK-Trick nicht einbinden. .Blitter = 0 ;1: Blitter erkennen, 0: Blitter nicht benutzen (Default) .HasTTMfp = 0 ;1: Dieser ST hat einen nachgersteten TT-Mfp, ;0: Kein TT-Mfp vorhanden. .MSTE = 0 ;1: MSTE/TT-HD-Umschaltung nicht eleminieren (fr MSTEs). ;0: MSTE/TT-HD-Umschaltung fr normale STs wegpatchen. .Alt_Sync = 1 ;1: Alternative Bildschirmsynchronisierung benutzen ; (fr NEWVIDEO-Patch erforderlich!). ;0: Normale Synchronisierung benutzen. _IF .PAK +PAK3_TP.FIL _ENDIF ;******************************************************************************* ;* MH: ;* NEWVIDEO-Patch. ;* Dient zum Aktivieren eines EPROM-Sequencers schon w„hrend der Bootphase. ;* [FRG] ;* ;* >>> Nur fr STs mit EPROM-Sequencer Videoerweiterung .NEWVIDEO = 0 ;1: Patch einbinden, 0: Patch nicht einbinden .SWITCH = 0 ;0: Nicht umschalten, 6,7: Umschalten mit PSG Bit 6,7 .X_ST_LOW = .320 ;ST-Low : Default 320 * 200 .Y_ST_LOW = .200 .X_ST_MED = .640 ;ST-Med : Default 640 * 200 .Y_ST_MED = .200 .X_ST_HIGH = .640 ;ST-High: Default 640 * 400 .Y_ST_HIGH = .400 _IF .NEWVIDEO +NEWVIDEO.FIL _IF .PAK !A! !NOT! .Alt_Sync /"Unbedingt alternative Bildschirmsynchronisierung aktivieren!" _ENDIF _ENDIF ;******************************************************************************* ;* MH: ;* 60Hz beim Start in Farbe (Original: 2 w„re 50Hz). ;* [ALL] .COLOR_60HZ = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .COLOR_60HZ _IF .PAK 175F $00 _ELSE D5 $00 _ENDIF _ENDIF ;******************************************************************************* ;* MH: ;* MMU-Reset verhindern, damit das TOS auch im TT-RAM lauff„hig ist. ;* Fr ROMRAM n”tig! ;* [ALL] ;* ;* >>> Achtung: Nur fr RAM-TOS! ;* >>> Dieser Patch funktioniert nicht mit den PAK III-Patches. .NO_MMU_RESET = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .NO_MMU_RESET !A! (.PAK = 0) 68 $4E,71,4E,71,4E,71,4E,71 1702 $4E,71,4E,71,4E,71,4E,71,4E,71,4E,71,4E,71,4E,71 _ENDIF ;******************************************************************************* ;* MH: ;* Modifizierte Reset-Routine. H„lt RAM-TOS 3.06 auch bei Hardreset von ;* Tastatur und Resettaste (Resettaste nur bei _RAMR_S2.ABS) im RAM. ;* [FRG/USA] ;* ;* >>> Achtung: Nur fr RAM-TOS! ;* >>> Dieser Patch funktioniert nicht mit den PAK III-Patches. .RAMRESET = 0 ;1: RAMRESET einbinden, 0: RAMRESET nicht einbinden _SWITCH .NATION _CASE .FRG: .HARD_RESET = 376A _CASE .USA: .HARD_RESET = 3710 _DEFAULT: .RAMRESET = 0 _ENDSWITCH _IF .RAMRESET !A! (.PAK = 0) _IF .RELOCADR>=1000000 D8 RAMR_F2.ABS ;kein Konfigurationstest, TT-RAM-TOS nicht l”schen, ;Speicher ab $100 l”schen ;Tastatur-Soft-Reset: Reset ;Tastatur-Hard-Reset: CRC-Test/Speicher l”schen/Reset ;Resetknopf : Normaler Reset ;Falls beim CRC-Test ein Fehler auftritt, ;wird das TOS aus dem Ram entfernt. 119 $.WIDTH/8-1.B ;Parameter fr CRC Berechnung setzen 120 $(.LENGTH-.WIDTH/4)/(.WIDTH/8).L 128 $((.WIDTH/8)!A!7)*200!O!5088.W 142 $((.WIDTH/8)!A!7)*200!O!5088.W .HARD_RESET $150-~.W ;Key-Hardreset auf eigene Routine umbiegen _ENDIF _IF .RELOCADR>> Dieser Patch funktioniert nicht mit dem RAMRESET-Patch. .MEM_INIT = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .MEM_INIT !A! (.RAMRESET = 0) _IF .PAK 1AE $0100.W _ELSE 196 $0100.W _ENDIF _ENDIF ;******************************************************************************* ;* MRF: (angepasst von MH) ;* _shell_p wird beim RESET zurckgesetzt (wie es sich geh”rt). ;* [ALL] ;* ;* >>> Dieser Patch funktioniert nicht mit den PAK III-Patches. .SHELL_P = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .SHELL_P !A! (.PAK = 0) 234 $42,B8,04,F6,3E,7C,57,58,42,38,0A,12 _ENDIF ;******************************************************************************* ;* TFR: (angepasst von MH) ;* Setzt die Steprate der Laufwerke A: und B: ;* $00 = 6 ms, $01 = 12 ms, $02 = 2 ms, $03 = 3 ms. ;* Adresse dieses Patches durch TRK. ;* [ALL] .SET_STEP = 0 ;1: Patch einbinden, 0: Patch nicht einbinden .STEP_RATE = 03 ;Gewnschte Steprate hier eintragen. _IF .SET_STEP 34E $.STEP_RATE.W _ENDIF ;******************************************************************************* ;* Harun Scheutzow: (implementiert von MH) ;* HD-Cookie installieren. Nicht fr Mega STE/TT !!! ;* Format: 0xkkkkkk / normal (Mega STE/TT): $01415443 ;* kkkkkk: Kennung, wer den Cookie installiert hat. ;* x=0: normale Schreibdichte (DD 720kB/360kB) ;* x=1: Hohe Schreibdichte (HD 1.44MB) ;* x=2: Extrahohe Schreibdichte (ED 2,88MB) ;* x>2: reserviert ;* [ALL] ;* ;* >>> Achtung: Nicht fr Mega STE / TT ! .SET_COOKIE = 1 ;1: Patch einbinden, 0: Patch nicht einbinden .FDC_COOKIE = 01000000 ;FDC-Cookie-Wert, z.B. HD: 01000000 oder ED: 02000000. _IF .SET_COOKIE _FILL 426,434,$4E71.W 43C $.FDC_COOKIE.L _ENDIF ;******************************************************************************* ;* MH: ;* Fehler beim FPU-Test beheben. ;* [ALL] ;* ;* >>> Dieser Patch funktioniert nicht mit den PAK III-Patches, ;* ist dort aber bereits integriert. .FPU_TEST = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .FPU_TEST !A! (.PAK = 0) 462 $40,00 _ENDIF ;******************************************************************************* ;* MH: (19.02.1997) ;* Logoausgabe aufl”sungsunabh„ngig. ;* [ALL] .LOGO = 1 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .LOGO !O! .NEWVIDEO 750 ~ $22,78,04,4E ;MOVEA.L $44E.S,A1 ~ $45,F8,3A,1A ;LEA $3A1A.S,A2 ~ $38,12 ;MOVE.W (A2),D4 ~ $3A,2A,FF,FE ;MOVE.W -2(A2),D5 ~ $30,05 ;MOVE.W D5,D0 ~ $C0,FC,00,08 ;MULU #8,D0 ~ $D2,C0 ;ADDA.W D0,A1 ~ $70,55 ;MOVEQ #$55,D0 ~ $72,05 ;L0000:MOVEQ #5,D1 ~ $24,49 ;MOVEA.L A1,A2 ~ $24,04 ;L0001:MOVE.L D4,D2 ~ $36,18 ;MOVE.W (A0)+,D3 ~ $32,C3 ;L0002:MOVE.W D3,(A1)+ ~ $53,42 ;SUBQ.W #1,D2 ~ $66,FA ;BNE.S -6(PC) L0002 ~ $51,C9,FF,F4 ;DBF D1,-12(PC) L0001 ~ $43,F2,50,00 ;LEA 0(A2,D5.W),A1 ~ $51,C8,FF,E8 ;DBF D0,-24(PC) L0000 _FILL ~,79E,$4E71.W ;NOP _ENDIF ;******************************************************************************* ;* MH: ;* CRC-Routine des TOS evtl. anpassen (z.B. fr 1024kB TOS 3.06). ;* [ALL] 7D6 $(.LENGTH-.WIDTH/4)/(.WIDTH/8).L 7DC $.WIDTH/8-1.W 7E6 $.WIDTH/8.W 7F8 $.LENGTH-.WIDTH/4.L 802 $.WIDTH/8.W ;******************************************************************************* ;* MH: ;* Nur CRC-Check ausschalten. ;* [ALL] ;* ;* >>> Dieser Patch berschneidet sich mit einem PAK III-Patch, wenn ;* .StaticRAM = 1 ist. Das macht aber nichts, da der entsprechende Patch ;* (Abbruch bei CRC-Fehler im TOS) komplett berschrieben wird. .KILL_CRC = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .KILL_CRC _FILL 7D4,886,$4E71.W _ENDIF ;******************************************************************************* ;* MH: ;* Boot-Device-Fehler beheben (siehe ST-Computer 1/90). ;* [ALL] .BOOT_DEV = 1 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .BOOT_DEV 912 $30 _ENDIF ;******************************************************************************* ;* MH: ;* Verringern der Zeitspanne, ab der - nach Systemstart - noch ein ;* Prfsummentest (ROM-Test) und ein RAM-Test ausgefhrt wird [.BOOT_WAIT]. ;* Zus„tzlich kann der RAM-Test, falls er aktiviert ist, auf die Anzeige der ;* Speicherkonfiguration und den Wartebalken beschr„nkt werden [.SKIP_RAMTEST]. ;* Normalwert ist 80s! ;* [ALL, .SKIP_RAMTEST: FRG/USA] .SET_TIME = 0 ;1: Patch einbinden, 0: Patch nicht einbinden .BOOT_TIME = .0 ;Gewnschte Wartezeit (in s) hier eintragen. .SKIP_RAMTEST = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .SET_TIME 9A4 $.BOOT_TIME*.200.L !9A4,9A6 ;Damit die Zeit nicht reloziert wird. _ENDIF _SWITCH .NATION _CASE .FRG: 6336 _CASE .USA: 62DC _DEFAULT: .SKIP_RAMTEST = 0 _ENDSWITCH _IF .SKIP_RAMTEST ~ $60 ;RAM-Test auf Anzeige und Wartebalken beschr„nken. _ENDIF ;******************************************************************************* ;* SE: (24.01.94) ;* Plattenscanning auf IDE ausdehnen (Booten von IGITT, „h, IDE-Platten). ;* [ALL] .IDE_BOOT = 1 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .IDE_BOOT B12 $78,10 _ENDIF ;******************************************************************************* ;* GE-Soft: ;* Der Eagle-Patch. Monochrommonitorchange unterbinden. ;* [ALL] .EAGLE = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .EAGLE CEA $60 CFA $60 _ENDIF ;******************************************************************************* ;* MH: ;* Stackpointer bei Autoexec korrigieren (siehe ST-Computer 1/90). ;* [ALL] .STACK_POINTER = 1 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .STACK_POINTER 13D2 $DE,FC,00,0C,4A,40,66,68,3F,3C,00,07,2F,38,0A,20 _ENDIF ;******************************************************************************* ;* Gerd Trudow, Umsetzung & Adresse SV: ;* Ersetzt Die Atari-Bomben durch die ursprnglichen Atom-Pilze... ;* [ALL] .PILZE = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .PILZE 14F6 $07,C0,1F,F0,3B,F8,77,F4,B7,FA,BB,FA,DF,F6,66,FC ;Pilze ~ $32,88,02,80,04,40,04,40,05,40,05,20,09,20,09,20 _ELSE ;14F6 $06,00,29,00,00,80,48,40,11,F0,01,F0,07,FC,0F,FE ;Bomben ;~ $0D,FE,1F,FF,1F,EF,0F,EE,0F,DE,07,FC,03,F8,00,E0 _ENDIF ;******************************************************************************* ;* MRF: (angepasst von MH) ;* Die Megauhr kann NICHT mehr mit dem TOS verstellt werden. Dazu muž man nun ;* ein externes Stellprogramm aufrufen. Dies hat natrlich den Vorteil, daž ;* auch fremde Programme die Uhr nicht mehr verstellen k”nnen (wenn die ;* - wie blich - das TOS verwenden). ;* [ALL] .LOCK_CLOCK = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .LOCK_CLOCK 158E $00E01018.L ;Zeiger auf MOVEQ #$0,D0 / RTS setzen. _ENDIF ;******************************************************************************* ;* MH: ;* Der Blitter wird vom TOS verleugnet und nicht benutzt. ;* [ALL] ;* ;* >>> Dieser Patch ist identisch in den PAK III-Patches integriert. .IGNORE_BLITTER = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .IGNORE_BLITTER 15DC $70,00,4E,75 ;MOVEQ #$0,D0 / RTS _ENDIF ;******************************************************************************* ;* SE: ;* Initiatoridentification beim SCSI-Zugriff, TT meldet sich als ID 7 ;* Damit kann auch von Quantum Empire u.„. gebootet werden. ;* [ALL] .SCSI_ID = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .SCSI_ID 1C40 $70,80 _ENDIF ;******************************************************************************* ;* MH: ;* Schnelle Druckerroutinen fr den Parallelport (Fastprint). ;* Ausgabe-, Eingabe- und Warteroutine werden ersetzt. ;* Entspricht FASTPRN.PRG von Ecki aus der c't. ;* Zus„tzlich wird noch die Eingaberoutine ersetzt. ;* [ALL?] .FASTPRN = 1 ;1: FASTPRN einbinden, 0: FASTPRN nicht einbinden _IF .FASTPRN 310 $22F8+80+.BASE.L ;Warteroutine auf neue Routine 1044 $22F8+62+.BASE.L ;bconin-Vector auf neue Routine 1064 $22F8+80+.BASE.L ;Warteroutine auf neue Routine 22F8 FASTPRN.ABS 262E $61,00,22F8+92-~.W ;Routine zum Strobe setzen hat sich verschoben... _ENDIF ;******************************************************************************* ;* MRF: (angepasst von MH) ;* Druckertimeout setzen. Originalwert ist 30s. Minimalwert ist 5s! ;* Geht beim Atari-Laser in die Hose; da ich einen habe, hier Originalwert. ;* [ALL] .TIMEOUT = .30 ;Zeit kann hier ge„ndert werden (in Sekunden) _IF .FASTPRN 22F8+1E _ELSE 231C _ENDIF ! ~ , ~ + 2 ;Damit Zeit nicht reloziert wird ~ $.TIMEOUT * .200.L ;******************************************************************************* ;* TRK: ;* conterm setzen: Bit 2 gesetzt: Glocke bei CNTRL-G. ;* Bit 1 '' : Tastenwiederholung ein. ;* Bit 0 '' : Tastenklick ein. ;* [ALL?] .SET_CONTERM = 0 ;1: Patch einbinden, 0: Patch nicht einbinden .CONTERM = %110 ;Wert fr conterm, z.B. %110 fr Tastenklick aus. _IF .SET_CONTERM 25FB $.CONTERM _ENDIF ;******************************************************************************* ;* MH: ;* Verdoppelt die Z„hlgeschwindigkeit des 200 Hz-Timers. Damit STonX korrekte ;* Zeiten mit dem 100 Hz-Timer simulieren kann. ;* [FRG] ;* ;* >>> Bis jetzt ungetestet! .SIM_100HZ = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: 3A9E _DEFAULT: .SIM_100HZ = 0 _ENDSWITCH _IF .SIM_100HZ ~ $54,B9,00,00,04,BA ;ADDQ.L #2,$4BA _ENDIF ;******************************************************************************* ;* TRK: (angepasst von MH) ;* Setzt den hdmode auf Null. Aus SEEKUP von Martin Osieka entnommen. ;* Adresse dieses Patches durch TRK. ;* Der Patch „ndert nur die Initialisierung mit drei. ;* Das brige Verhalten bleibt. ;* ;* Kurzbeschreibung: ;* SEEKUP schaltet auf STs unter TOS 3.06 die Verdoppelung der ;* Seekrate aus (erkennbar am Seek-Ger„usch der Laufwerke). ;* ;* typedef struct { ;* char cmdbit3; /* $00 oder $08, wird zum Positionierkommando geodert ;* Kann mit Flopsrate() ver„ndert/abgefragt werden */ ;* char dummy; /* nicht benutzt */ ;* short track; /* Aktuelle Spur */ ;* short hdmode; /* 0 oder 3, wird in Register $FF860E geschrieben ;* Dieses Register existiert auf STs nicht */ ;* short seekrate; /* hdmode=0: 0: 6ms, 1: 12ms, 2: 2ms, 3: 3ms ;* hdmode=3: 0,1: 12ms, 2,3: 6ms ;* Kann mit Flopsrate() ver„ndert/abgefragt werden */ ;* } dsb3S; ;* ;* Das TOS verwaltet die Informationen zu den Floppylaufwerken in DSBs. ;* Initialisiert werden die DSBs mit { 0, 0, 0xFF00, 3, _seekrate}, damit ;* ist auf STs defaultmaessig 6ms eingestellt. Die Trackpositionierroutine ;* schaltet im Fehlerfall um und macht daraufhin einen weiteren ;* Versuch. Die Formatierfunktion setzt abhaengig von der Anzahl ;* der Sektoren pro Spur. Besser waere es wohl, wenn das TOS bei jedem ;* erkannten Diskettenwechsel zunaechst auf 0 setzen wuerde. ;* [FRG/USA] ;* ;* >>> Achtung: Direktbernahme aus TOS 2.06. Also: Erst testen! ;* >>> Nicht fr MSTE / TT! .SEEK_UP = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: 3BCA _CASE .USA: 3B70 _DEFAULT: .SEEK_UP = 0 _ENDSWITCH _IF .SEEK_UP ~ $0000.W _ENDIF ;******************************************************************************* ;* (DK): (10.11.93) ;* Im Floppy-Test Track 10 ansteuern auf Track 1 ansteuern ge„ndert. ;* [FRG/USA] .FLOP_TEST = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: 4200 _CASE .USA: 41A6 _DEFAULT: .FLOP_TEST = 0 _ENDSWITCH _IF .FLOP_TEST ~ $7E,01 _ENDIF ;******************************************************************************* ;* MH: ;* Fast-Load-Bit fr schnelleres Laden (siehe ST-Computer 1/90). ;* Produziert Fehler bei einigen Laufwerken. ;* [FRG/USA] .FASTLOAD = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: 42F3 _CASE .USA: 4298 _DEFAULT: .FASTLOAD = 0 _ENDSWITCH _IF .FASTLOAD ~ $10 _ENDIF ;******************************************************************************* ;* ;* Warte-Pause fr Floppyzugriffe etwas erh”hen, damit die Probleme mit 50 MHz ;* behoben werden. Originalwert $119. ;* [FRG/USA] .FLOPPY = 1 ;1: Patch einbinden, 0: Patch nicht einbinden .DELAY = 200 ;Hier das gewnschte Delay eintragen. _SWITCH .NATION _CASE .FRG: 4448 _CASE .USA: 43EE _DEFAULT: .FLOPPY = 0 _ENDSWITCH _IF .FLOPPY ! ~ + 2 ;Damit .DELAY nicht reloziert wird ~ $30,3C,.DELAY.W ;Verz”gerung einpatchen _ENDIF ;******************************************************************************* ;* RB: ;* Suche nach Laufwerk 'B' unterbinden -> schnelleres Booten. ;* [FRG/USA] ;* ;* >>> Achtung: Funktioniert nicht mit 2 Laufwerken! .SKIP_B = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: 5648 _CASE .USA: 55EE _DEFAULT: .SKIP_B = 0 _ENDSWITCH _IF .SKIP_B ~ $0001.W _ENDIF ;******************************************************************************* ;* Harun Scheutzow: (implementiert von MH) ;* Neue Bios-Routinen Getbpb und Rwabs mit ED-Untersttzung: ;* - Es werden keine nicht erfolgten Diskettenwechsel mehr erkannt. ;* - Rwabs-Schreibroutinen zerst”ren keine VDI-Zeichensatzinformationen mehr. ;* - Es k”nnen auch Disketten mit nur einer FAT genutzt werden. ;* [FRG/USA] .ED_BIOS = 1 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: .BIOS1 = 565C ;565C - 58AE .BIOS2 = 5B1E ;5B1E - 5D38 .ADR1 = 3C10 .ADR2 = 3D12 .ADR3 = 3FFE .ADR4 = 5918 _CASE .USA: .BIOS1 = 5602 ;5602 - 5854 .BIOS2 = 5AC4 ;5AC4 - 5CDE .ADR1 = 3BB6 .ADR2 = 3CB8 .ADR3 = 3FA4 .ADR4 = 58BE _DEFAULT: .ED_BIOS = 0 _ENDSWITCH _IF .ED_BIOS .BIOS1 BIOS1.ABS ;(.594) .BIOS1+34 $.ADR1+.BASE.L .BIOS2 BIOS2.ABS ;(.538) .BIOS2+118 $.ADR2+.BASE.L .BIOS2+144 $.ADR3+.BASE.L .BIOS2+174 $.ADR1+.BASE.L .BIOS2+1C0 $.ADR4+.BASE.L _ENDIF ;******************************************************************************* ;* RB: ;* Ausfhren des Bootsektors der Diskette verhindern ;* (Ist ja nicht ganz so radikal schon im bootdevice-Patch enthalten). ;* [FRG/USA] .KILL_BOOT = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: 5D9C _CASE .USA: 5D42 _DEFAULT: .KILL_BOOT = 0 _ENDSWITCH _IF .KILL_BOOT ~ $60 _ENDIF ;******************************************************************************* ;* MRF: (angepasst von MH) ;* Wenn _bootdev >= 2 (also Laufwerk C) ist, wird der Bootsektor der Diskette ;* nach einem Warmstart nicht mehr ausgefhrt. Bis zu TOS 1.4 war dies auch ;* so, aber seit TOS 1.4 wird der Bootsektor stets ausgefhrt. Dies kostet ;* bei einem RESET nicht nur Zeit, sondern hilft auch zur Verbreitung von ;* Bootsektor-Viren. ;* [FRG/USA] .NORM_BOOT = 1 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: 5DA0 _CASE .USA: 5D46 _DEFAULT: .NORM_BOOT = 0 _ENDSWITCH _IF .NORM_BOOT ~ $BE,78,04,46,6F,2E,70,01,3E,80,42,A7,3F,00,42,67 ~ $42,A7,2F,38,04,C6,61,00,DE,58 _ENDIF ;* In diesem Patch befindet sich ein Fehler. Es wird mit CMP.W $0446.W,D7 ;* verglichen und dann mit BCC xxx verzweigt. Dies funktioniert aber nur ;* dann, wenn _bootdev auch = 2 ist. Hat man aber CBHD und bootet z.B. ;* von E: (also _bootdev = 4), dann wird trotzdem der Bootsektor von A: ;* ausgefuehrt. Was noch schlimmer ist, dass bei diesem Patch ueberhaupt ;* kein Booten mehr von A: oder B: moeglich ist, was bei manchen Spielen, ;* die durch einen Boot geladen werden, zu Probleme fuehren kann. Um ;* dies zu beheben, ist der fuenfte Wert in der ersten Reihe ($64 bzw. ;* 64) durch $6F bzw. 6F zu ersetzen. ;* Es wird dann mit BLE xxx verzweigt, wobei dann die Abfrage ;* auch das erfuellt, was man gerne moechte. ;* ;* 07.09.1990 The Frontier ;******************************************************************************* ;* MRF: (angepasst von MH) ;* VDI-Patch (neue v_opnvwk()-Routine, ersetzt VDIFIX). ;* [FRG] ;* ;* >>> Achtung: Direktbernahme aus TOS 1.04. Also: Erst testen! .VDIFIX = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: A886 _CASE .USA: A82C _DEFAULT: .VDIFIX = 0 _ENDSWITCH _IF .VDIFIX ~ VDI.ABS ;(.122) _ENDIF ;******************************************************************************* ;* Karsten Isakovic (implementiert durch MRF): (angepasst von MH) ;* Beseitigt den Fehler, der beim einen Mshrink(0)-Aufruf die Memory-Listen ;* zerst”rte. ;* [FRG] ;* ;* >>> Achtung: Direktbernahme aus TOS 1.04. Also: Erst testen! .M_SHRINK = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: .ADR = E183FE 1826C _DEFAULT: .M_SHRINK = 0 _ENDSWITCH _IF .M_SHRINK ~ $2F,2E,00,0A,4E,B9,.ADR.L,58,8F,4E,71 _ENDIF ;******************************************************************************* ;* RB: (angepasst von MH) ;* Grow- und shrinkboxen ausschalten. ;* [FRG/USA] .DRAW_BOXES = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: .GROW_ADR = 24B92 .SHRINK_ADR = 24BD6 _CASE .USA: .GROW_ADR = 24B38 .SHRINK_ADR = 24B7C _DEFAULT: .DRAW_BOXES = 0 _ENDSWITCH _IF .DRAW_BOXES .GROW_ADR $4E,75 ;RTS .SHRINK_ADR $4E,75 ;RTS _ENDIF ;******************************************************************************* ;* MRF: (angepasst von MH) ;* Korrektes MSDOS-Format (Statt $EB nun $EB34904E als 1. Bytes im Bootsektor). ;* [FRG/USA] .MS_DOS = 1 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: 2A3C2 _CASE .USA: 2A368 _DEFAULT: .MS_DOS = 0 _ENDSWITCH _IF .MS_DOS ~ $DE,FC,00,0C,2A,BC,EB,34,90,4E _ENDIF ;******************************************************************************* ;* MH: ;* Atari-Anfangsfuji ersetzen. Originalfuji ist ATARI.ABS. ;* [FRG/USA] .FUJI = 1 ;0: Kein neues Fuji einbinden. ;1: modifiziertes Atarifuji mit PAK/3-Schriftzug von SE. ;2: 'Gib Dos keine Chance' von Reiner Rosin/TRK. ;3: 'GeTuned' von Sven Spitzmacher. _SWITCH .NATION _CASE .FRG: 36018 _CASE .USA: 35FE8 _DEFAULT: .FUJI = 0 _ENDSWITCH _SWITCH .FUJI _CASE 1: ~ FUJI\PAK3.ABS _CASE 2: ~ FUJI\GIB_DOS.ABS _CASE 3: ~ FUJI\GT_TOS.ABS _ENDSWITCH ;******************************************************************************* ;* MRF: (angepasst von MH) ;* Die Default-Keyboardtabelle (3 mal 128 Bytes fr die Scancodetabellen) ;* wurden von dem Multi-Acc JAMES entliehen (von: Pascal Fellerich, ;* 45 rue des Genˆts, L-3482 Dudelange, Luxembourg). ;* [FRG/USA] ;* ;* Folgende Keyboardtabellen sind vorhanden: ;* Fr deutsche Tastaturen im Ordner FRG (Original: GERMAN.KBD): ;* AMERICAN.KBD, FRENCH.KBD, GERFRENC.KBD, GERMAN.KBD, HEXA.KBD, SWISSFR.KBD. ;* Fr amerikanische Tastaturen im Ordner USA (Original: USA.KBD): ;* USA.KBD .NEW_KBD = 0 ;1: Neue Keyboardtabelle einbinden, 0: Nichts einbinden _SWITCH .NATION _CASE .FRG: .KBD_TAB = 3676C _CASE .USA: .KBD_TAB = 3673C _DEFAULT: .NEW_KBD = 0 _ENDSWITCH _IF .NEW_KBD -KEYBOARD\ ;Dsetpath("KEYBOARD\") .KBD_TAB FRG\GERMAN.KBD ;Hier gewnschte Keyboardtabelle eintragen -.. ;Dsetpath("..") (Ein Verzeichnis zurck) _ENDIF ;******************************************************************************* ;* MRF: (angepasst von MH) ;* ž in ein IBM-á wandeln. Damit wird kein Pesata, sondern ein Beta-"á" ;* ausgegeben. Dies sieht nun mal auf den meisten Nadeldruckern besser aus. ;* Dies wirkt natrlich nur bei Texten, welche mit dem gepachten TOS eingegeben ;* werden. In den alten steht ja noch das ž drin. ;* [FRG/USA] ;* ;* >>> HUCKY: Macht Probleme bei Script... Deswegen als Kommentar. .NEW_SZ = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: .KBD_TAB = 3676C _CASE .USA: .KBD_TAB = 3673C _DEFAULT: .NEW_SZ = 0 _ENDSWITCH _IF .NEW_SZ .KBD_TAB+00C $E1 .KBD_TAB+10C $E1 _ENDIF ;******************************************************************************* ;* MH: ;* Žndert den Papiervorschub bei der Hardcopy ab. Somit kann sowohl auf einem ;* NEC P6, wie auch weiterhin auf einem EPSON eine Hardcopy gemacht werden ;* (siehe ST-Computer 10/90). ;* [FRG/USA] .NEC_P6 = 1 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: 3695B _CASE .USA: 3692B _DEFAULT: .NEC_P6 = 0 _ENDSWITCH _IF .NEC_P6 ~ $1B,41,07,FF _ENDIF ;******************************************************************************* ;* HUCKY: (angepasst von MH) ;* Fontimages „ndern (nur die Bit-Images!!!) ;* Tempus oder Stad-Fonts einbinden. Diese mssen jedoch zuerst ;* konvertiert werden. ;* [FRG/USA] .FONTS = 0 ;1: Fonts einbinden, 0: Keine Fonts einbinden _SWITCH .NATION _CASE .FRG: .FONT_6X6 = 36CCE .FONT_8X8 = 373AA .FONT_8X16 = 37BAA .FONT_16X32 = 38E60 _CASE .USA: .FONT_6X6 = 36C9E .FONT_8X8 = 3737A .FONT_8X16 = 37B7A .FONT_16X32 = 38E30 _DEFAULT: .FONTS = 0 _ENDSWITCH _IF .FONTS -FONTS\ ;Dsetpath("FONTS\") .FONT_6X6 6X6_FONT.ABS ;<<< 6x6 Font hier eintragen (1152 Bytes) .FONT_8X8 8X8_FONT.ABS ;<<< 8x8 Font hier eintragen (2048 Bytes) .FONT_8X16 NEU.ABS ;<<< 8x16 Font hier eintragen (4096 Bytes) .FONT_16X32 ;<<< 16x32 Font hier eintragen (16384 Bytes) -.. ;Dsetpath("..") (Ein Verzeichnis zurck) _ENDIF ;* Der Zeichensatz NEU.ABS, der diesem Archiv beiliegt, wurde von ;* SkyVox erstellt. Danke ;******************************************************************************* ;* TRK: (angepasst von MH) ;* Standardtastaturbelegung fr die Desktopfunktionen „ndern. ;* ASCII-Werte der Standardtastenbelegung (aus dem NEWDESK.INF bernommen). ;* Nicht belegte Tasten erhalten den Wert 00. ;* Diese Tastenbelegung wurde von SkyVox 'entworfen'. Danke. ;* [FRG/USA] .DESK_TAST = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: 3E514 _CASE .USA: 3E4E4 _DEFAULT: .DESK_TAST = 0 _ENDSWITCH _IF .DESK_TAST ~ 'OISLVCWNAXFBT12340EH5678MRKDP.' _ENDIF ;******************************************************************************* ;* HUCKY: (angepasst von MH) ;* Nun noch was, wenn man das Aussehen vom AES ver„ndern will... ;* [FRG] ;* ;* >>> BESSER: Gleich neue RSC-Files schaffen und einbinden (s.u.)! ;* >>> Dieser Patch funktioniert nicht mit dem RSC/NEWDESK-Patch. .ICONS = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: .IMAGES1 = 3F4E6 .IMAGES2 = 420D8 _DEFAULT: .ICONS = 0 _ENDSWITCH _IF .ICONS -ICONS\ ;Dsetpath("ICONS\") ;* die Images sind jeweils 128 Bytes (4 Byte / Zeile => 32 Zeilen) lang. .IMAGES1 TOSFACES.IMG ;Ausrufezeichen .IMAGES1+ 80 ;Fragezeichen in form_alert() .IMAGES1+100 ;Stopschild .IMAGES2 ;i-Image in der Infobox des Desktops ;* die folgenden Icons bestehen jeweils auf 256 Bytes. 128 Bytes Maske, ;* 128 Byte Image fr das Icon .IMAGES2+ 80 TOSICONS.IMG ;Diskettenlaufwerk .IMAGES2+180 ORDNER.IMG ;Ordner .IMAGES2+280 ;Papierkorb .IMAGES2+380 PROGRAMM.IMG ;Programm .IMAGES2+480 DATEI.IMG ;Datei -.. ;Dsetpath("..") (Ein Verzeichnis zurck) _ENDIF ;******************************************************************************* ;* SV: ;* Eingabe eines individuellen Textes ins Info-Men. ;* Hierzu kann der Text mittels ASCII-Code eingeben werden, darf dabei ;* jedoch nicht l„nger als 29 Zeichen sein. ;* [FRG] ;* ;* >>> BESSER: Gleich neue RSC-Files schaffen und einbinden (s.u.)! ;* >>> Dieser Patch funktioniert nicht mit dem RSC/NEWDESK-Patch. .INFO_TXT = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: 40778 _DEFAULT: .INFO_TXT = 0 _ENDSWITCH _IF .INFO_TXT ~ $'-----------------------------' _ENDIF ;******************************************************************************* ;* MRF: (angepasst von MH) ;* Die Mausformen (Aufbau der Struktur gem„ž der AES-Funktion "graf_handle"). ;* [FRG] ;* ;* >>> BESSER: Gleich neue RSC-Files schaffen und einbinden (s.u.)! ;* >>> Dieser Patch funktioniert nicht mit dem RSC/NEWDESK-Patch. .MOUSE = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _SWITCH .NATION _CASE .FRG: .IMAGES = 3F666 _DEFAULT: .MOUSE = 0 _ENDSWITCH _IF .MOUSE -MFORM\ ;Dsetpath("MFORM\") .IMAGES MFORM0.ABS ;ARROW .IMAGES+ 4A MFORM1.ABS ;TEXT_CRSR .IMAGES+ 94 MFORM2.ABS ;BUSY_BEE .IMAGES+ DE MFORM3.ABS ;POINT_HAND .IMAGES+128 MFORM4.ABS ;FLAT_HAND .IMAGES+172 MFORM5.ABS ;THIN_CROSS .IMAGES+1BC MFORM6.ABS ;THICK_CROSS .IMAGES+206 MFORM7.ABS ;OUTL_CROSS -.. ;Dsetpath("..") (Ein Verzeichnis zurck) _ENDIF ;******************************************************************************* ;* MH: ;* Das Default-NEWDESK.INF und die Resourcen zum Includen!!! ;* Hier nun die ultimative M”glichkeit, sich das TOS nach seinen Wnschen ;* zu gestalten. Originalfiles: RSC_1.RSC,RSC_2.RSC,NEWDESK.INF. ;* ;* Vorsicht: Alle 3 Files drfen jeweils max. 64kB lang sein, da die ;* Pointer auf dieselbigen Words sind. ;* ;* Diese Dateien von TOS 2.06 und TOS 3.06 sind identisch(!), d.h. sie ;* k”nnen fr beide TOS-Versionen zum Patchen genutzt werden. ;* ;* Wenn man mehr Icons gleichzeitig auf dem Desktop haben m”chte, muž man ;* in der 2.RSC-Datei (RSC_2.RSC) im 13. Formular (ICONS) einfach mehr Boxen ;* reinsetzen. Ich habe in der Datei RSC_2X.RSC die Anzahl der Icons ;* schon von 48 auf 160 vergr”žert. ;* ;* Man kann nun auch neue und mehr Icons in sein TOS einbinden (anstatt ;* DESKICON.RSC zu verwenden). Die Icons findet man in der 2. RSC-Datei ;* (RSC_2.RSC) im 11. Formular (DESKICON). Hier einfach neue oder andere ;* Icons eintragen. ;* ;* Wenn man den PAK III-Patch zum automatischen Booten mit den auf der ;* PAK befindlichen Eprom-TOS benutzt, sollte man diesen Patch einschalten, ;* wenn Probleme mit den Alerts auftauchen, da die 1. RSC Datei besch„digt ;* wird! ;* [FRG/USA] .RSC = 0 ;1: RSC-Patch einbinden, 0: RSC-Patch nicht einbinden _SWITCH .NATION _CASE .FRG: .INSTALL_RSC = 20336 .RSC_TAB = 3ED2E .RSC_END = 46232 .GEMDOS = 19916 ;Fr NEWRSC.ABS .MALLOC = 25B62 .BIOS = 26310 .UNABLE_TXT = 3E11E _CASE .USA: .INSTALL_RSC = 202DC .RSC_TAB = 3ECA2 .RSC_END = 46134 .GEMDOS = 198BC ;Fr NEWRSC.ABS .MALLOC = 25B08 .BIOS = 262B6 .UNABLE_TXT = 3E0EE _DEFAULT: .RSC = 0 _ENDSWITCH _IF .RSC _IF .ICONS !O! .INFO_TXT !O! .MOUSE _ERROR "Entweder RSC/NEWDESK-Patch oder nur die anderen RSC-Patches benutzen" _ENDIF _SWITCH .NATION _CASE .FRG: -RSC\FRG\ ;Ins deutsche Subdirectory wechseln _CASE .USA: -RSC\USA\ ;Ins amerikanische Subdirectory wechseln _ENDSWITCH _IF .PAK !AND! .BootJMP _FILL .RSC_TAB,40030,$FF ;Leerbereich l”schen .RSC_TAB = 40036 ;RSC-Tabelle verlegen _ENDIF .RSC_TAB+A RSC_1.RSC ;<<< Resource-Datei 1 hier eintragen .RSC1_END: ~ RSC_2.RSC ;<<< Resource-Datei 2 hier eintragen .RSC2_END: ~ NEWDESK.INF ;<<< NEWDESK.INF hier eintragen .INF_END: _EVEN $FF ;Damit nachfolgender Code ausfhrbar bleibt .RSC_END: ;RSC/NEWDESK-Ende sichern -..\.. ;Zurck ins normale Patchfield wechseln. _IF .INF_END-.RSC_TAB < 8000 .INSTALL_RSC+ A $.RSC_TAB+.BASE.L .INSTALL_RSC+5A $.RSC_TAB+.BASE.L .RSC_TAB $.RSC1_END-.RSC_TAB.W .RSC_TAB+2 $.RSC2_END-.RSC_TAB.W .RSC_TAB+4 $.INF_END-.RSC_TAB.W .RSC_TAB+6 $00,00,00,00 ;Unbenutzte Eintr„ge l”schen _ELSE /'Resourcen sind l„nger als 32kB... (',.INF_END-.RSC_TAB,')' .INSTALL_RSC NEWRSC.ABS ;(.220) .INSTALL_RSC+A $.RSC_TAB+.BASE.L .INSTALL_RSC+18 $.MALLOC+.BASE.L .INSTALL_RSC+28 $.UNABLE_TXT+.BASE.L .INSTALL_RSC+32 $.GEMDOS+.BASE.L .INSTALL_RSC+42 $.BIOS+.BASE.L .INSTALL_RSC+52 $.RSC_TAB+.BASE.L .RSC_TAB $.RSC1_END-(.RSC_TAB+A).W .RSC_TAB+2 $.RSC2_END-.RSC1_END.W .RSC_TAB+4 $.INF_END-.RSC2_END.W .RSC_TAB+6 $00,00,00,00 ;Unbenutzte Eintr„ge l”schen _ENDIF _ENDIF !.RSC_TAB .. .RSC_END ;Im RSC/NEWDESK.INF nicht relozieren. .RSC_END ;Ab Ende RSC/NEWDESK.INF geht es weiter. ;*************************************************************************** ;* EWK: ;* HD-Floppy-Steuerung mit Sound-Chip-Bit 6 oder 7. ;* Erwartet die HD-Steuerung Low-Pegel bei HD-Betrieb, .HD_INVERT ;* auf 1 setzen, sonst kommt Hight-Pegel fr HD. ;* [FRG/USA] .HD_BIT = 0 ;0: nicht einbinden, 6: Bit 6 verwenden, 7: Bit 7 verwenden .HD_INVERT = 0 ;0: HD aktiv bei High-Pegel, 1: HD aktiv bei Low-Pegel _SWITCH .NATION _CASE .FRG: .CALL1 = 3E54 .CALL2 = 430C .CALL3 = 4360 _CASE .USA: .CALL1 = 3DFA .CALL2 = 42B2 .CALL3 = 4306 _DEFAULT: .HD_BIT = 0 _ENDSWITCH _IF .HD_BIT <> 0 .HD_PORT: ~ HD_BIT7.ABS ;L„nge 68 Bytes _IF .HD_BIT = 6 .HD_PORT+25 |$BF .HD_PORT+2E |$ED _ENDIF _IF .HD_INVERT .HD_PORT+2D |$01 ;fr HD aktiv bei Low-Pegel _ENDIF .CALL1 |$4E,B9,.HD_PORT+0A+.BASE.L,4E,71 ;Call an .HD_PORT+$0A .CALL2 |$4E,B9,.HD_PORT+0A+.BASE.L,4E,71 .CALL3 |$4E,B9,.HD_PORT+.BASE.L ;Call an .HD_PORT !.HD_PORT.. ~ ;In diesem Patch nicht relozieren _ENDIF ;******************************************************************************* ;* MRF: (angepasst von MH) ;* Harddisk-Waiter (zum gleichzeitigen Anschalten von Rechner und Platte). ;* Leider ist mir unbekannt, von wem diese Routine stammt, ich habe sie in ;* einem Bootsektor gefunden. Zudem kann man das Warten mit [ALTERNATE] ;* abbrechen (wenn z.B. keine Platte vorhanden ist). ;* [ALL] ;* ;* >>> Achtung: Der Harddisk-Waiter funktioniert nur mit einer Platte. Zudem ;* bin ich nur sicher, daž er mit meiner Megafile 60 funktioniert. .HD_WAIT0 = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .HD_WAIT0 .HD_WAIT: ~ _HDWAIT0.ABS ;L„nge 224 Bytes !.HD_WAIT+A .. ~ ;in diesem Patch nicht relozieren 70C |$4E,B9,.HD_WAIT+.BASE.L ;JSR zum Harddisk-Waiter 712 |$4E,71,4E,71 ;NOP's _ENDIF ;******************************************************************************* ;* MRF: (angepasst von MH) ;* Alternativer Hardisk-Waiter. Wartet .TIME Sekunden bei einem ;* Kaltstart auf die Platte. Dies funktioniert mit allen Platten! ;* Mit Tastendruck kann das Warten abgebrochen werden. ;* Fast gleichwertig zu diesem Patch ist, wenn man in den Patch, der die ;* Zeitspanne festlegt, ab der Systemstart noch die Tests ausgefhrt ;* werden, die entsprechende Zeit eintr„gt. ;* [ALL] .HD_WAIT1 = 0 ;1: Patch einbinden, 0: Patch nicht einbinden .TIME = .12 ;Wartezeit in s _IF .HD_WAIT1 .HD_WAIT: ~ HDWAIT1.ABS ;L„nge 58 Bytes !.HD_WAIT+A .. ~ ;in diesem Patch nicht relozieren .HD_WAIT+C |$.TIME*.200.L ;Wartezeit eintragen 70C |$4E,B9,.HD_WAIT+.BASE.L ;JSR zum Harddisk-Waiter 712 |$4E,71,4E,71 ;NOP's _ENDIF ;******************************************************************************* ;* MH: ;* Hardisk-Waiter von EWK. ;* [ALL] .HD_WAIT2 = 0 ;1: Patch einbinden, 0: Patch nicht einbinden .TIME = .30 ;max. Wartezeit in s (max. 99s !!!) .DEVICE = 0 ;DMA-Device, auf das gewartet werden soll (0-7) _IF .HD_WAIT2 .HD_WAIT: ~ HDWAIT2.ABS ;L„nge 334 Bytes !.HD_WAIT+A .. ~ ;in diesem Patch nicht relozieren ;.HD_WAIT+10 |$4E,71 ;Nur fr RAM-TOS und >=2 Harddisks .HD_WAIT+21 |$.TIME.B ;Wartezeit eintragen .HD_WAIT+88 |$.DEVICE*20.W ;Device eintragen .HD_WAIT+94 |$.DEVICE*20.W .HD_WAIT+10C |$.DEVICE+30.B 70C |$4E,B9,.HD_WAIT+.BASE.L ;Jsr zum Harddisk-Waiter 712 |$4E,71,4E,71 ;Rest mit NOP's auffllen _ENDIF ;******************************************************************************* ;* SE: (28.01.94) ;* Plattenwarter, nach RAM-Test, statt Wartebalken. ;* [ALL] .HD_WAIT3 = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .HD_WAIT3 .HD_WAIT: ~ HDWAIT3.ABS ;L„nge 174 Bytes !.HD_WAIT .. ~ ;In diesem Patch nicht relozieren 9C8 |$4E,B9,.HD_WAIT+.BASE.L ;JSR zum Harddisk-Waiter 9CE |$4E,F9,00,E0,0B,0C ;Wartebalkenroutine berspringen _ENDIF ;******************************************************************************* ;* Gerhard Huber: (implementiert von MH) ;* NovaPatch. Ansteurung der Novakarten schon beim Booten. ;* Fr alle Nova ausser Typ 2 und 6. ;* [ALL] .NOVA = 0 ;1: Patch einbinden, 0: Patch nicht einbinden _IF .NOVA .NOVA: ~ NOVA.ABS ;NovaPatch einbinden !.NOVA+8 .. ~ ;Im Patch nicht relozieren 750 |$4E,F9,.NOVA+8+.BASE.L ;Einsprung zum NovaPatch _ENDIF ;******************************************************************************* ;* MH: ;* Testen, ob fr Mag!C noch genug Platz frei ist. _IF ~ > 50000 /"Nicht mehr genug Platz im TOS, um Mag!C einbinden zu k”nnen!" _ENDIF ;******************************************************************************* ;* MH: ;* Abbruch bei šberschreiten der TOS-L„nge. _IF ~ > .LENGTH-.WIDTH/4 _ERROR 'Patches l„nger als das TOS' _ENDIF ;******************************************************************************* ;* Martin Osieka: (implementiert durch MH) ;* Puffer fr NEWDESK.INF vergr”žern. Originalroutinen aus SHBUF 1.3! ;* Zu n„heren Informationen siehe SHBUF. ;* [FRG] .SHBUF = 0 ;1: Patch einbinden, 0: Patch nicht einbinden .BUFFER = 7FFE ;In diese Zeile kann die gewnschte Puffergr”že ;eingetragen werden. Maximum ist $7FFE => 32kB pro Puffer. ;Da es 2 Puffer gibt => max. 64kB Speicherverbrauch ;'Originalwert' ist $1000. _IF .SHBUF +SHBUF.FIL ;SHBUF-Patch einbinden _ENDIF ;******************************************************************************* ;* Martin Osieka: (implementiert durch MH) ;* Neue Fenterverwaltung. Originalroutinen aus WINX 2.2! ;* Enth„lt aužerdem den Arrowfix-Patch (s.u.). ;* Zu n„heren Informationen siehe WINX. ;* ;* Defaultwerte sind: ;* .GLOBAL = %1111111111111, .LOCAL = %111111111111, .DESKTOP = %111111111111, ;* .INIT_SCROLL = .460, .CONT_SCROLL = .40, CONT_CLOSE = .1000, ;* .CONT_FULL = .2000 ;* [FRG] ;* ;* >>> Funktioniert nicht zusammen mit dem Arrowfix-Patch! .WINX = 0 ;1: Patch einbinden, 0: Patch nicht einbinden .GLOBAL = %1111111111111 ;Globale Schalter (rechts: Schalter 1) .LOCAL = %111111111111 ;Lokale Schalter (rechts: Schalter 1) .DESKTOP = %111111111111 ;Desktop Schalter (rechts: Schalter 1) .INIT_SCROLL = .460 ;Initial scroll delay in ms .CONT_SCROLL = .40 ;Continous scroll delay in ms .CONT_CLOSE = .1000 ;Continous close delay in ms .CONT_FULL = .2000 ;Continous full delay in ms _IF .WINX +WINX.FIL ;WINX-Patch einbinden _ENDIF ;******************************************************************************* ;* Martin Osieka: (implementiert von MH) ;* Neue Scrollroutinen fr GEM. Originalroutinen aus ARROWFIX 1.5! ;* Zu n„heren Informationen siehe ARROWFIX. ;* ;* In .TIME steht die Default-Ansprechzeit bis zur ersten Wiederholung einer ;* Scrollnachricht in 0,125s. Diese Ansprechzeit l„žt sich auch mit dem ;* ARROWFIX.CPX einstellen. Werte von 0 bis 9 fr .TIME sind zul„ssig. ;* Original-Default ist .TIME = 3. ;* [FRG] ;* ;* >>> Funktioniert nicht zusammen mit dem Winx-Patch! .ARROWFIX = 0 ;1: Patch einbinden, 0: Patch nicht einbinden .TIME = .3 ;Ansprechzeit in 0,125s. _IF .ARROWFIX !A! (.WINX = 0) +ARROW.FIL ;ARROWFIX-Patch einbinden _ENDIF ;******************************************************************************* ;* Ende der Datei... -.. ;Dsetpath("..") (Ein Verzeichnis zurck)