home *** CD-ROM | disk | FTP | other *** search
- * AMOS Professional Misc Extension
- * This file is fully public domain.
-
- * Feel free to make a new version!
- * Read the manual for more infos.
-
- * Written with DevPac 2 by
-
- * Frank Otto
- * Grelckstr. 27
- * 22529 Hamburg
- * Germany
-
- * E-Mail: FRANK@ZINOCAVE.wind.dbn.sub.org
-
-
-
-
- ; half english, half german, that's europe!
-
- ExecBase=4
- supervisor = -30
- Version MACRO
- dc.b "1.0"
- ENDM
- ExtNb equ 23-1
- Include "|AMOS_Includes.s"
- DLea MACRO
- Move.l Extadr+Extnb*16(a5),\2
- add.w #\1-MB,\2
- ENDM
- DLoad MACRO
- move.l Extadr+Extnb*16(a5),\1
- ENDM
- Start dc.l C_Tk-C_Off
- dc.l C_Lib-C_Tk
- dc.l C_Title-C_Lib
- dc.l C_End-C_Title
- dc.w 0
- * Offsets der Befehle
- C_Off dc.w (L1-L0)/2,(L2-L1)/2,(L3-L2)/2,(L4-L3)/2
- dc.w (L5-L4)/2,(L6-L5)/2,(L7-L6)/2,(L8-L7)/2
- dc.w (L9-L8)/2,(L10-L9)/2,(L11-L10)/2,(L12-L11)/2
- dc.w (L13-L12)/2,(L14-L13)/2,(L15-L14)/2
- * Befehlsnamen
- C_Tk dc.w 1,0
- dc.b $80,-1
-
- dc.w L_DLedOn,-1
- dc.b "dled o",$80+"n","I",-1 ;Fertig
-
- dc.w L_DLedOff,-1
- dc.b "dled of",$80+"f","I",-1 ;Fertig
-
- dc.w L_DisplayOn,-1
- dc.b "display o",$80+"n","I",-1 ;Fertig
-
- dc.w L_DisplayOff,-1
- dc.b "display of",$80+"f","I",-1 ;Fertig
-
- dc.w L_MultiOff,-1
- dc.b "multi of",$80+"f","I",-1 ;Fertig
-
- dc.w L_MultiOn,-1
- dc.b "multi o",$80+"n","I",-1 ;Fertig
-
- dc.w L_MouseOff,-1
- dc.b "mouse of",$80+"f","I",-1 ;Fertig
-
- dc.w L_Reset,-1
- dc.b "rese",$80+"t","I",-1 ;Fertig
-
- dc.w L_ClearRam,-1
- dc.b "clear ra",$80+"m","I",-1 ;Fertig
-
- dc.w L_DiskWait,-1
- dc.b "disk wai",$80+"t","I",-1 ;Fertig
-
- dc.w L_PalOn,-1
- dc.b "pal o",$80+"n","I",-1
-
- dc.w L_Fire,-1
- dc.b "firewai",$80+"t","I",-1
-
- dc.w 0
-
- ******************************************************************
- * Start of library
- C_Lib
-
- ******************************************************************
- * COLD START
- L0 moveq #ExtNb,d0
- rts
-
- ******************************************************************
- *
- L1
-
- ******************************************************************
- *
- L2
-
- ******************************************************************
- L_DisplayOff equ 3
- L3 move.w #$01a0,$dff096 * Monitor aus
- move.w #0,$dff180
- rts
- ******************************************************************
- L_DisplayOn equ 4
- L4 move.w #$81a0,$dff096 * Monitor an
- rts
- ******************************************************************
- L_MultiOff equ 5
- L5 movem.l a3-a6,-(sp) * Multitasking aus
- move.l 4,a6
- jsr -132(a6)
- movem.l (sp)+,a3-a6
- rts
- ******************************************************************
- L_MultiOn equ 6
- L6 movem.l a3-a6,-(sp) * Multitasking an
- move.l 4,a6
- jsr -138(a6)
- movem.l (sp)+,a3-a6
- rts
- ******************************************************************
- L_DLedOn equ 7
- L7 move.b #127,$bfd100 ; Laufwerk-LED an
- move.b #119,$bfd100
- move.b #0,$bfd100+512
- rts
- ******************************************************************
- L_DLedOff equ 8
- L8 move.b #127,$bfd100 ; Laufwerk-LED aus
- move.b #119,$bfd100
- move.b #255,$bfd100+512
- rts
- ******************************************************************
- L_MouseOff equ 9
- L9 move.w #$20,$dff096 ; Mouse aus
- rts
- ******************************************************************
- CuCuOff dc.b 27,"C0",0
- even
- ******************************************************************
- L_Reset equ 10
- L10 MOVEA.L 4.W,A6
- JSR -$0096(A6)
- JSR -$0078(A6) ; Reset
- CLR.L 4.W
- LEA $00FC0000.L,A0
- RESET
- JMP (A0)
- DC.B 'Nq'
- rts
- ******************************************************************
- L_ClearRam equ 11
- L11 movem.l a6,-(sp) ; No Drivers
- move.l 4,a6
- moveq #0,d1
- move.l #99999999,d0
- jsr -198(a6)
- move.l d0,a0
- beq.s glbl
- jsr -210(a6)
- glbl movem.l (sp)+,a6
- rts
- ******************************************************************
- L_Fire equ 12
- L12 btst #07,$bfe001
- bne L12
- rts
- *****************************************************************
- L_DiskWait equ 13
- L13
- dc: move.b $bfe001,d0 ; Diskchange
- and.b #16,d0
- bne dc
- movem.l a6,-(sp)
- movea.l 4,a6
- Wait move.l #500,d1
- Wait2 bsr tests
- sub.l #1,d1
- bne Wait2
- jsr -120(a6)
- lea $196(a6),a0
- lea Validate,a1
- jsr -276(a6)
- move.l d0,d2
- bne Check
- lea $1a4(a6),a0
- lea Validate,a1
- jsr -276(a6)
- move.l d0,d2
- Check jsr -126(a6)
- tst.l d2
- bne Wait
- movem.l (sp)+,a6
- rts
- tests movem.l a0-a6/d0-d7,-(sp)
- movem.l (sp)+,a0-a6/d0-d7
- rts
- Validate:
- dc.b 'Validator',0
- even
- **********************************************************************
- L_PalOn equ 14
- L14
-
- Flag_60Hz RS.B 1
- Flag_Color RS.B 1
- Flag_OverScan RS.B 1
- Flag_Enable RS.B 1
- Flag_FatAgnus RS.B 1
- Flag_Resident RS.B 1
- gb_DisplayFlags EQU 206 ;graphics
- gb_DisplayRows EQU 212
- gb_NormalDisplayRows EQU 216
- VBlankFrequency EQU 530
- _LVOCloseLibraryP EQU -414
- _LVOSumLibraryP EQU -426
- _LVOOpenLibraryP EQU -552
- Exebas EQU $4
- LIBF_CHANGED EQU 2
- LIB_FLAGS EQU 14
- BEAMCON0 EQU $1DC
- CUSTOM EQU $DFF000
- CALL MACRO
- IFC 'EXEC','\1'
- MOVEA.L (Exebas).W,A6
- ENDC
- IFNC 'EXEC','\1'
- MOVEA.L \1Base,A6
- ENDC
- JSR _LVO\2(A6)
- ENDM
-
- OPENLIB MACRO
- LEA \1Name(PC),A1
- CLR.L D0
- CALL EXEC,OpenLibraryP
- MOVE.L D0,\1Base
- BEQ \2
- ENDM
- CLOSELIB MACRO
- MOVEA.L \1Base,A1
- CALL EXEC,CloseLibraryP
- ENDM
- Go60 tst.b Flag_FatAgnus(a0) ;put system in NTSC mode
- beq.s .NoFatty
- move.w #$0000,BEAMCON0!CUSTOM ;to NTSC please
- bra.s .Go60
- .NoFatty move.w #$0000,BEAMCON0!CUSTOM
- bne.s .Error ;not available
- .Go60 lea GFXName(PC),a1 ;modify graphics.library
- clr.l d0
- CALL EXEC,OpenLibraryP
- move.l d0,a1
- move.w gb_DisplayFlags(a1),d0
- and.b #%11111011,d0
- or.b #%00000001,d0
- move.w d0,gb_DisplayFlags(a1)
- move.w #200,gb_NormalDisplayRows(a1)
- move.w #262,gb_DisplayRows(a1)
- or.b #LIBF_CHANGED,LIB_FLAGS(a1)
- movea.l a1,a2
- CALL EXEC,SumLibraryP
- movea.l a2,a1
- CALL EXEC,CloseLibraryP
- move.b #60,VBlankFrequency(a6)
- or.b #LIBF_CHANGED,LIB_FLAGS(a6)
- CALL EXEC,SumLibraryP
- lea Flags(pc),a0
- st Flag_Enable(a0) ;start it
- moveq #0,d0
- rts
- .Error lea Flags(pc),a0
- st Flag_60Hz(a0)
- sf Flag_Enable(a0) ;stop it
- moveq #-1,d0
- rts
- GFXName DC.B "graphics.library",$0
- EVEN
- Flags DCB.B 8
- rts
- ************************************************
- L15
-
-
- * Welcome message ;"
- C_Title:
- dc.b "AMOSPro Misc Extension V"
- Version
- dc.b " by Frank Otto (1995)"
- dc.b 0,"$VER: "
- Version
- dc.b 0
- Even
-
- ***********************************************************
- C_End: dc.w 0
- even
-