

* Usage: 33mWbc0m [0] [1] [2] [B] [F] [G] [M] [R] [V]

* Wbc V0.09 installiert neue Farbwerte für die Workbench !

* 32m 0  0mScreen wird ausgeschaltet !
* 32m 1  0mOS1.3
* 32m 2  0mOS2.0
* 32m B  0mBlauton
* 32m F  0mFRANZ PD
* 32m G  0mGetiT Magazin
* 32m M  0mMonochrom
* 32m R  0mRotton
* 32m V  0mVioletton

* 33mWbc 0m(r) 10. Dezember, 1993 von * Volker Stepprath
                                 * Tegeler Str. 7
                                 * 40789 Monheim
                                 * Deutschland



* Varablen definieren
* -------------------
_LVOExecBase        equ     4
_LVOOldOpenLibrary  equ     -408
_LVOCloseLibrary    equ     -414

_LVOOutput          equ      -60
_LVOWrite           equ      -48

_LVOGetPrefs        equ     -132
_LVOSetPrefs        equ     -324



* Kurzer Parametertest
* --------------------
        cmp.l   #2,d0                       * wurde Parse übergeben
        bne     _USAGE                      * Nein
        move.b  (a0),d2                     * Parse retten



* intuition.library öffnen
* ------------------------
        move.l  _LVOExecBase,a6             * Systembasis nach a6
        lea     Intname(pc),a1              * intuition.library
        jsr     _LVOOldOpenLibrary(a6)      * öffnen
        move.l  d0,IntBase                  * Zeiger retten



* Wbc Einstellungen ermitteln
* ---------------------------
        move.l  IntBase,a6                  * Intuitonbasis nach a6
        lea     Buffer(pc),a0               * Wbc-Puffer angeben
        move.b  #232,d0                     * in Bytes
        jsr     _LVOGetPrefs(a6)            * Wbc ermitteln



* Parameter auswerten
* -------------------
        cmp.b   #'0',d2                     * Screen total
        beq     setSOFF                     * abschalten

        cmp.b   #'1',d2                     * Wbc von OS1.3
        beq     setSYS1                     * ist erwünscht

        cmp.b   #'2',d2                     * Wbc von OS2.0
        beq     setSYS2                     * möschtigern`

        bclr    #5,d2                       * in großbuchstaben wandeln

        cmp.b   #'B',d2                     *Blau
        beq     setBLU2

        cmp.b   #'F',d2                     * Wbc von FRANZ PD
        beq     setFRNZ                     * ismilieba

        cmp.b   #"G",d2                     * Wbc von GetiT
        beq     setGTIT                     * najuht

        cmp.b   #'R',d2                     * Rot
        beq     setRED2

        cmp.b   #"M",d2                     * Wbc auf Monochrom
        beq     setMONO                     * Warum näht

        cmp.b   #'V',d2                     * Violett
        beq     setVIOT

        bsr     _USAGE                      * Ungültiger Parse
        bra     _CINT                       * wurde übergeben



* Systemfarben angeben
* --------------------
setSOFF lea     BLACK(pc),a0                * Bildschirm aus
        bra     _Wbc

setSYS1 lea     SYS13(pc),a0                * Farbwerte von OS1.3
        bra     _Wbc

setSYS2 lea     SYS20(pc),a0                * Farbwerte von OS2.0
        bra     _Wbc

setBLU2 lea     BLU20(pc),a0                * Blauton
        bra     _Wbc

setFRNZ lea     FRANZ(pc),a0                * FRANZ PD Farbwerte
        bra     _Wbc

setGTIT lea     GETIT(pc),a0                * GetiT Farbwerte
        bra     _Wbc

setRED2 lea     RED20(pc),a0                * Rotton
        bra     _Wbc

setMONO lea     MONOM(pc),a0                * Monochrom-Modus
        bra     _Wbc

setVIOT lea     VIOLT(pc),a0                * Violetton
        bra     _Wbc

* Farbdaten installieren
* ----------------------
_Wbc    lea     Buffer(pc),a1               * Preferences angeben
        adda.l  #110,a1                     * Farben der WB ab #110
        move.w  (a0)+,(a1)+                 * Colour 0 installieren
        move.w  (a0)+,(a1)+                 * Colour 1 installieren
        move.w  (a0)+,(a1)+                 * Colour 2 installieren
        move.w  (a0),(a1)                   * Colour 3 installieren

        lea     Buffer(pc),a0               * Prefrences angeben
        move.l  #232,d0                     * Länge in Bytes
        move.l  #-1,d1                      * NewPrefs -> TRUE
        jsr     _LVOSetPrefs(a6)            * Farben setzen

_CINT   move.l  _LVOExecBase,a6             * Systembasis nach a6
        move.l  IntBase,a1                  * Intuitionbasis angeben
        jsr     _LVOCloseLibrary(a6)        * int.lib. schließen

        RTS                                 * Wbc verlassen



* Keine gültigen Parameter
* ------------------------
_USAGE  move.l  _LVOExecBase,a6             * Systembasis nach a6
        lea     Dosname(pc),a1              * Name dos.library
        jsr     _LVOOldOpenLibrary(a6)      * dos.library öffnen
        move.l  d0,DosBase                  * Zeiger retten

        move.l  DosBase,a6                  * DOS zeiger nach a6
        jsr     _LVOOutput(a6)              * Ausgabekanal ermitteln
        move.l  d0,Handle                   * und retten

        move.l  Handle,d1                   * Wohin
        move.l  #Usage,d2                   * Was
        moveq   #57,d3                      * Wieviel
        jsr     _LVOWrite(a6)               * Ausgeben

_CDOS   move.l  _LVOExecBase,a6             * s. 14 Zeilen vorher
        move.l  DosBase,a1                  * DOS Zeiger angeben
        jsr     _LVOCloseLibrary(a6)        * dos.library schließen

        rts                                 * Hässchen... hüpf



* Speicherreservierung
* --------------------
DosBase dc.l 0
IntBase dc.l 0
Handle  dc.l 0
Buffer  ds.b 232
Dosname dc.b 'dos.library',0
Intname dc.b 'intuition.library',0

Usage   dc.b 'Usage: ',$9b,'33;40mWbc',$9b,'0m [0] [1] [2] [B] [F] [G] [M] [R] [V]',10

BLACK   dc.w $0,$0,$0,$0
SYS13   dc.w $5A,$FFF,$2,$F80
SYS20   dc.w $AAA,$0,$FFF,$68B
FRANZ   dc.w $23,$FFF,$AAA,$F40
GETIT   dc.w $BDC,$0,$FFF,$494
MONOM   dc.w $0,$0F0,$0F0,$0F0
RED20   dc.w $DBC,$0,$FFF,$944
BLU20   dc.w $CBD,$0,$FFF,$449
VIOLT   dc.w $DBD,$0,$FDF,$949
