home *** CD-ROM | disk | FTP | other *** search
/ ST-Computer Leser 1998 October / STC_CD_10_1998.iso / UTILITY / GUCK / SETUP.S < prev   
Text File  |  1998-09-26  |  4KB  |  120 lines

  1. ;
  2. ; SETUP - (c) 1987, 1988, 1989, 1990 by Marcel Waldvogel
  3. ;
  4.  
  5.             OUTPUT 'C:\AUTO\SETUP.PRG'  ;Optionen für den Turboass
  6.             DEFAULT 5
  7.             OPT F+                      ;Fastloadbit setzen
  8.  
  9. sync        EQU $FFFF820A               ;Das Synchronisationsregister
  10.  
  11. psgsel      EQU $FFFF8800               ;Die Register des Soundchip
  12. psgrd       EQU $FFFF8800
  13. psgwd       EQU $FFFF8802
  14.  
  15. conterm     EQU $0484                   ;einige Systemvariablen
  16. _shell_p    EQU $04F6
  17.  
  18.  
  19. start:      movea.l 4(A7),A5            ;Hole Basepage
  20.             lea     stack(PC),A7        ;Setze eigenen Stack
  21.             movea.l 12(A5),A0           ;Berechne Programmlänge
  22.             adda.l  20(A5),A0
  23.             adda.l  28(A5),A0
  24.             lea     256(A0),A0          ;A0 := A0 + 256 (Länge der Basepage)
  25.             move.l  A0,-(A7)
  26.             move.l  A5,-(A7)
  27.             clr.w   -(A7)               ;Speicher verkleinern (wegen Pexec())
  28.             move.w  #$4A,-(A7)          ;Mshrink()
  29.             trap    #1                  ;GEMDOS
  30.             lea     12(A7),A7
  31.  
  32.             pea     msg(PC)             ;Mitteilung ausgeben
  33.             move.w  #9,-(A7)            ;Cconws()
  34.             trap    #1                  ;GEMDOS
  35.             addq.l  #6,A7
  36.  
  37.             move.w  #37,-(A7)           ;Vsync(), auf VSYNC warten
  38.             trap    #14                 ;XBIOS
  39.             addq.l  #2,A7
  40.  
  41.             pea     super(PC)           ;Einige Einstellungen vornehmen
  42.             move.w  #38,-(A7)           ;Supexec()
  43.             trap    #14                 ;XBIOS
  44.             addq.l  #6,A7
  45.  
  46.             move.w  #4,-(A7)            ;Drucker auf EPSON (960 Punkte) stellen
  47.             move.w  #33,-(A7)           ;Setprt()
  48.             trap    #14                 ;XBIOS
  49.             addq.l  #4,A7
  50.  
  51.             move.w  #1,-(A7)            ;Tastaturrepeat beschleunigen
  52.             move.w  #$0D,-(A7)
  53.             move.w  #35,-(A7)           ;Kbrate()
  54.             trap    #14                 ;XBIOS
  55.             addq.l  #6,A7
  56.  
  57.             move.w  #$FFFF,-(A7)        ;Ist CONTROL gedrückt?
  58.             move.w  #$0B,-(A7)          ;Kbshift()
  59.             trap    #13                 ;BIOS
  60.             addq.l  #4,A7
  61.  
  62.             btst    #2,D0               ;Control?
  63.             beq.s   term                ;Nein -> Ende
  64.  
  65.             clr.l   -(A7)               ;Dasselbe Environment
  66.             pea     null(PC)            ;Keine Kommandozeile
  67.             pea     prgname(PC)         ;Der Programmname
  68.             clr.w   -(A7)               ;Laden & starten
  69.             move.w  #$4B,-(A7)          ;Pexec(), Programm ausführen
  70.             trap    #1                  ;GEMDOS
  71.             lea     14(A7),A7
  72.  
  73.             tst.l   D0                  ;War alles ok?
  74.             bpl.s   term                ;Ja -> Ende
  75.  
  76.             move.w  #7,-(A7)            ;Sonst die Klingel betätigen
  77.             move.w  #2,-(A7)            ;CON:
  78.             move.w  #3,-(A7)            ;Bconout()
  79.             trap    #13
  80.             addq.l  #6,A7
  81.  
  82. term:       clr.w   -(A7)               ;Pterm0(), Programm beenden
  83.             trap    #1                  ;GEMDOS
  84.  
  85.  
  86.  
  87. super:      bchg    #1,sync.w           ;50/60 Hz wechseln
  88.             move.b  #6,conterm.w        ;Tastenklick ausschalten
  89.             clr.l   _shell_p.w          ;_shell_p löschen (bleibt bei RESET)
  90.             move    SR,D1               ;Interrupts ausschalten
  91.             move    #$2700,SR
  92.             move.b  #14,psgsel.w        ;Wähle PSG-Register 14 (Port A)
  93.             move.b  psgrd.w,D0          ;Lies die Daten
  94.             or.b    #%110,D0            ;Deselektiere die Laufwerke
  95.             move.b  D0,psgwd.w          ;Schreibe Daten zurück
  96.             move    D1,SR               ;Interrupts wieder einschalten
  97.             rts
  98.  
  99.             DATA
  100.  
  101. msg:        DC.B 13,10                  ;Die Mitteilung
  102.             DC.B ' Setup - <Ctrl> startet \COMMAND.TOS'
  103.             DC.B 13,10,0
  104.  
  105. prgname:    DC.B '\COMMAND.TOS'         ;Das Programm
  106. null:       DC.B 0                      ;Die Kommandozeile
  107.  
  108. copr:       DC.B '(c) 1987-90 Marcel Waldvogel (Release 17)',0
  109.  
  110.  
  111.             EVEN
  112.             BSS
  113.             EVEN
  114.  
  115.             DS.L $80                    ;512 Bytes
  116. stack:      DS.L 1                      ;Der Stack
  117.  
  118.             EVEN
  119.             END
  120.