opt o+ * -------------------------------------------------------------------------- * * Usage: WBc [0|1|2|A|B|F|G|M|R|V] [D|S] [P] * * WBc V1.00 installiert ausschließlich neue Farbwerte für die Workbench; * Einstellungen wie der Druckertreiber, Mauszeiger usw. werden nicht * verändert ! * *  0 Screen wird ausgeschaltet ! *  1 OS1.3 *  2 OS2.0 *  A AMOSPro Interface *  B Blauverlauf *  F FRANZ PD *  G GetiT Magazin *  M Monochrom *  R Rotverlauf *  V Violetverlauf *  D Default-Palette von DEVS:System-Configuration *  S Speichern der Palette in DEVS:System-Configuration *  P Palette-Request (LIBS:reqtools.library) * * WBc V1.00 ® 14-01-1997 von Volker Stepprath, http://www.testaware.de.tp * * -------------------------------------------------------------------------- * Varablen definieren _LVOOldOpenLibrary equ -408 _LVOCloseLibrary equ -414 _LVOOpen equ -30 _LVOClose equ -36 _LVORead equ -42 _LVOOutput equ -60 _LVOWrite equ -48 _LVOGetPrefs equ -132 _LVOSetPrefs equ -324 _LVOrtAllocRequestA equ -30 _LVOrtFreeRequest equ -36 _LVOrtPaletteRequestA equ -102 * Macros definieren EXECALL MACRO move.l $4.w,a6 jsr _LVO\1(a6) ENDM DOSCALL MACRO move.l DosBase(pc),a6 jsr _LVO\1(a6) ENDM INTCALL MACRO move.l IntBase(pc),a6 jsr _LVO\1(a6) ENDM RTCALL MACRO move.l RtBase(pc),a6 jsr _LVO\1(a6) ENDM * Kurzer Parametertest cmp.l #2,d0 ;wurde Parse übergeben bne _usage ;Nein move.b (a0),d0 ;Parse retten * Parameter auswerten cmp.b #'0',d0 ;Screen total abschalten beq.s l0 cmp.b #'1',d0 ;OS1.3 beq.s l1 cmp.b #'2',d0 ;OS2.0 beq.s l2 bclr #5,d0 ;in GROßBUCHSTABEN wandeln cmp.b #'A',d0 ;AMOSPro Interface beq.s lA cmp.b #'B',d0 ;Blau beq.s lB cmp.b #'F',d0 ;FRANZ PD beq.s lF cmp.b #"G",d0 ;GetiT beq.s lG cmp.b #'R',d0 ;Rot beq.s lR cmp.b #"M",d0 ;Monochrom beq.s lM cmp.b #'V',d0 ;Violett beq.s lV cmp.b #'D',d0 ;Default beq.s lD cmp.b #'S',d0 ;Speichern beq lS cmp.b #'P',d0 ;ReqToolsPaletteRequest beq lP bra _usage ;Ungültiger Parse * Systemfarben angeben l0 lea p0(pc),a0 ;Bildschirm aus bra _wbc l1 lea p1(pc),a0 ;Farbwerte von OS1.3 bra _wbc l2 lea p2(pc),a0 ;Farbwerte von OS2.0 bra _wbc lA lea pA(pc),a0 ;F. v. AMOSPro Interface bra _wbc lB lea pB(pc),a0 ;Blauton bra _wbc lF lea pF(pc),a0 ;FRANZ PD Farbwerte bra _wbc lG lea pG(pc),a0 ;GetiT Farbwerte bra _wbc lR lea pR(pc),a0 ;Rotton bra _wbc lM lea pM(pc),a0 ;Monochrom-Modus bra _wbc lV lea pV(pc),a0 ;Violetton bra _wbc lD bsr _odos ;Default-Farben move.l #Configname,d1 move.l #1005,d2 DOSCALL Open move.l d0,d7 ;Handle => D7 beq _ioerr move.l d7,d1 move.l #Buffer,d2 move.l #232,d3 DOSCALL Read move.l d7,d1 DOSCALL Close bsr _cdos lea p0(pc),a0 lea Buffer(pc),a1 adda.l #110,a1 move.l (a1)+,(a0) move.l (a1)+,4(a0) bra _wbc lS bsr _odos ;Speichern in System-Configuration move.l #Configname,d1 move.l #1006,d2 DOSCALL Open move.l d0,d7 beq _ioerr bsr _oint lea Buffer(pc),a0 move.b #232,d0 INTCALL GetPrefs bsr _cint move.l d7,d1 move.l #Buffer,d2 move.l #232,d3 DOSCALL Write move.l d7,d1 DOSCALL Close bsr _cdos bra _exit lP lea RtName(pc),a1 ;Palette-Rquest-Modus EXECALL OldOpenLibrary ;reqtools.library ! move.l d0,RtBase beq _rqterr move.l #0,a0 moveq.l #0,d0 RTCALL rtAllocRequestA move.l d0,RtStruc move.l RtStruc(pc),a3 move.l #1,(a3) move.w #0,4(a3) move.w #-25,6(a3) move.l #0,20(a3) move.l #0,a0 lea RtTitel(pc),a2 RTCALL rtPaletteRequestA move.l RtStruc(pc),a1 RTCALL rtFreeRequest move.l RtBase(pc),a1 EXECALL CloseLibrary bra _exit * Farbdaten installieren _wbc movem.l a0,-(sp) bsr _oint lea Buffer(pc),a0 ;WBc-Puffer angeben move.b #232,d0 ;in Bytes INTCALL GetPrefs ;WBc ermitteln movem.l (sp)+,a0 lea Buffer(pc),a1 ;Preferences angeben adda.l #110,a1 ;Farben der WB ab #110 move.l (a0)+,(a1)+ ;Colour 0/1 installieren move.l (a0)+,(a1)+ ;Colour 2/3 installieren lea Buffer(pc),a0 ;Prefrences angeben move.l #232,d0 ;Länge in Bytes moveq #-1,d1 ;NewPrefs -> TRUE INTCALL SetPrefs ;Farben setzen bsr.s _cint bra.s _exit * Keine gültigen Parameter _usage move.l #Usage,d2 moveq #52,d3 bra.s _print * Fehler beim öffnen der System-Configuration _ioerr bsr.s _cdos move.l #IOerr,d2 moveq #42,d3 bra.s _print * ReqTools.Library Fehler ! _rqterr move.l #RtError,d2 moveq #32,d3 * Text ausgeben _print movem.l d2/d3,-(sp) bsr.s _odos movem.l (sp)+,d2/d3 DOSCALL Output move.l d0,d1 DOSCALL Write bsr.s _cdos _exit RTS * Libraries evtl. öffnen bzw. schließen _odos lea DosName(pc),a1 EXECALL OldOpenLibrary move.l d0,DosBase rts _cdos move.l DosBase(pc),a1 EXECALL CloseLibrary rts _oint lea IntName(pc),a1 EXECALL OldOpenLibrary move.l d0,IntBase rts _cint move.l IntBase(pc),a1 EXECALL CloseLibrary rts * Speicherreservierung DosBase dc.l 0 IntBase dc.l 0 RtBase dc.l 0 RtStruc dc.l 0 Buffer ds.b 232 DosName dc.b 'dos.library',0 IntName dc.b 'intuition.library',0 RtError dc.b 'Need » LIBS:' RtName dc.b 'reqtools.library',0 dc.b ' !',10 RtTitel dc.b 'WBc © Testaware',0 IOerr dc.b 'Can`t open » ' Configname dc.b 'DEVS:System-Configuration',0 dc.b ' !',10 Usage dc.b 'Usage: ',27,'[33mWBc',27,'[0m [0|1|2|A|B|F|G|M|R|V] [D|S] [P]',10 p0 dc.w $000,$000,$000,$000 p1 dc.w $05A,$FFF,$002,$F80 p2 dc.w $AAA,$000,$FFF,$68B pA dc.w $055,$FFF,$000,$FF0 pB dc.w $CBD,$000,$FFF,$449 pF dc.w $023,$FFF,$AAA,$F40 pG dc.w $BDC,$000,$FFF,$494 pM dc.w $000,$0F0,$0F0,$0F0 pR dc.w $DBC,$000,$FFF,$944 pV dc.w $DBD,$000,$FDF,$949 END