home *** CD-ROM | disk | FTP | other *** search
- ; **************************************************************************
- ; * Source-Code *
- ; * *
- ; * Program-Name : SetPrefs V1.0 *
- ; * *
- ; * Author : Michael Wilkes *
- ; * *
- ; * Use : Preference-Management *
- ; * *
- ; * Date : 01.03.1992 *
- ; * *
- ; * Improvements : Technical support by André Willms *
- ; * *
- ; * *
- ; * *
- ; * *
- ; **************************************************************************
-
- execbase = 4
- allocmem = -198
- freemem = -210
- openlibrary = -408
- closelibrary = -414
- setprefs = -324
- open = -30
- close = -36
- read = -42
- write = -48
- output = -60
-
- preferencelaenge = 232
-
- start:
-
- movem.l d0/a0,-(a7) ; Register retten
-
- jsr openlib ; Dos- und Intuitionlibrary öffnen
- jsr getoutput ; Aktuelles Ausgabefenster holen
- jsr writeinfo ; Infotext schreiben
-
- movem.l (a7)+,d0/a0 ; Register wiederholen
-
- subq.l #1,d0 ; CR-Zeichen abziehen
- beq libend ; Wenn kein Text, dann Ende
- move.l d0,d3
- lea.l prefname,a1
- .l1 move.b (a0)+,(a1)+ ; Zeichen lesen und in Puffer schreiben
- subq.l #1,d0
- bne .l1
-
- jsr allocprefmem ; Speicher anfordern
- move.l dosbase,a6
- move.l #prefname,d1
- move.l #1005,d2
- jsr open(a6) ; Preference öffnen
- move.l d0,filehd
- bne .w1
-
- jsr writenotfound ; Preference nicht gefunden
- bra memend ; Ende
-
- .w1 move.l filehd,d1
- move.l prefmemhd,d2
- move.l #preferencelaenge,d3
- jsr read(a6) ; Preference lesen
-
- move.l filehd,d1
- jsr close(a6) ; Preference schliessen
-
- jsr setpref ; Preference aktivieren
-
- memend:
- jsr freeprefmem ; Speicher freigeben
-
- libend:
- jsr closelib ; Dos- und Intuitionlibrary schliessen
- clr.l d0 ; Fehlerflag löschen
- rts ; Programmende
-
- getoutput:
- move.l dosbase,a6
- jsr output(a6)
- move.l d0,outputhd
- rts
-
- openlib:
- move.l execbase,a6
- lea.l dosname,a1
- jsr openlibrary(a6)
- move.l d0,dosbase
- lea.l intname,a1
- jsr openlibrary(a6)
- move.l d0,intbase
- rts
-
- closelib:
- move.l execbase,a6
- move.l dosbase,a1
- jsr closelibrary(a6)
- move.l intbase,a1
- jsr closelibrary(a6)
- rts
-
- allocprefmem:
- move.l execbase,a6
- move.l #preferencelaenge,d0
- move.l #2+65536,d1
- jsr allocmem(a6)
- move.l d0,prefmemhd
- rts
-
- freeprefmem:
- move.l execbase,a6
- move.l prefmemhd,a1
- move.l #preferencelaenge,d0
- jsr freemem(a6)
- rts
-
- writeinfo:
- move.l dosbase,a6
- move.l outputhd,d1
- move.l #tx1,d2
- move.l #tx1l,d3
- jsr write(a6)
- rts
-
- writenotfound:
- move.l dosbase,a6
- move.l outputhd,d1
- move.l #tx2,d2
- move.l #tx2l,d3
- jsr write(a6)
- rts
-
- setpref:
- move.l prefmemhd,a0
- move.l intbase,a6
- move.l #preferencelaenge,d0
- move.l #1,d1
- jsr setprefs(a6)
- rts
-
- intbase: dc.l 0
-
- dosbase: dc.l 0
-
- prefmemhd: dc.l 0
-
- outputhd: dc.l 0
-
- filehd: dc.l 0
-
- intname: dc.b "intuition.library",0
-
- dosname: dc.b "dos.library",0
-
- prefname: dcb.b 80,0
-
- tx1: dc.b $a,$9b,"0;33;40",$6d
- dc.b "SetPrefs V1.0",$9b,"0;31;40",$6d
- dc.b " (C)01.03.1992 by Michael Wilkes",$a
- dc.b "Thanx to André Willms for technical support",$a
- dc.b "USAGE: SetPrefs <prefname>",$a,$a
-
- tx2: dc.b "Preference not found !",$a,$a
-
- tx3:
-
- tx1l = tx2-tx1
-
- tx2l = tx3-tx2
-
-