home *** CD-ROM | disk | FTP | other *** search
- ***********************************************************
- * This demo was originally an absolute-address, stomp-on-system,
- * go-out-of-our-way-to-break-the-rules, sort of demo. I went through
- * it and took out all of the clears to custom chip regs, optimized it a
- * bit, and fixed his startup code.
- *
- * This uses my TakeSystem and ResotreSystem routines that I now use
- * in all my demos. I am spreading them in hopes to get rid of the
- * crapy coding pracitces that people have had since the C64 days.
- * I'd like to thank Comrade J for his excelent "howtocode" files.
- * A lot of the stuff here is based on his words of wisdom. :^). Anyway,
- * these routines, as of version 3.0, handle the following:
- * Getting the VBR.
- * Saving DMACON.
- * Saving and reseting WB view modes.
- * Owning/Disowning the blitter.
- * Pal/Ntsc/AGA modes.
- * Killing multitasking.
- * Killing interrupts.
- *
- * If you have any questions/comments/suggestions, PLEASE contact me at
- * either:
- * idr@rigel.cs.pdx.edu (internet)
- * - or -
- * Epsilon
- * P.O.B. 1914
- * Beaverton, OR 97075-1914
- * U.S.A.
- *
- * Many of you may not like the fact that I use includes and system calls,
- * I know I don't :), but it is the ONLY SAFE WAY TO TAKE THE SYSTEM! To
- * insure that your demo will work on any system, it's what you have to do.
- *
- ***********************************************************
- * Includes
- ***********************************************************
- incdir 'df1:StartupCode/'
- include 'custom.i'
-
- incdir "DevpacAm:include/"
- include "exec/exec_lib.i"
- include "exec/execbase.i"
- include "graphics/gfxbase.i"
- include "graphics/graphics_lib.i"
-
- ***********************************************************
- * Other Macros
- ***********************************************************
-
- CALL MACRO
- jsr _LVO\1(a6)
- ENDM
-
- WaitVblank MACRO
- .\@: move.l $4-2(a5),d0
- andi.l #$3ff00,d0
- cmpi.l #$0f400,d0
- bne.b .\@
- ENDM
-
- ***********************************************************
- * Other Equates
- ***********************************************************
-
- IFND gb_ActiView
- gb_ActiView EQU 32
- ENDIF
-
- IFND gb_CopInit
- gb_CopInit EQU 36
- ENDIF
-
- ***********************************************************
-
- BEGINish: movem.l d0-d7/a0-a6,-(a7)
- bsr.b TakeSystem
- bsr.w FixSineList
- bsr.w Copperinit
-
- lea screen,a0
- move.w #$d00,d0
- bsr blitclear
-
- move.l #copper,$80-2(a5)
-
- TestButton: WaitBlit
-
- bsr.w copperfuck
- bsr.w Texta
- bsr.w Bitch
-
- btst.b #6,$bfe001
- bne.b TestButton
-
- bsr.w RestoreSystem
- movem.l (a7)+,d0-d7/a0-a6
- rts
-
- ***********************************************************
-
- TakeSystem: movea.l 4.w,a6 ; exec base
- lea $dff002,a5 ; custom chip base + 2
-
- lea GraphicsName,a1 ; "graphics.library"
- moveq #0,d0 ; any version
- CALL OpenLibrary ; open it.
- move.l d0,gfx_base ; save pointer to gfx base
- beq.b .exit ; if we got a NULL, then exit
- move.l d0,a6 ; for later callls...
-
- move.l gb_ActiView(a6),OldView ; save old view
-
- move.w #0,a1 ; clears full long-word
- CALL LoadView ; Open a NULL view (resets display
- ; on any Amiga)
-
- CALL WaitTOF ; Wait twice so that an interlace
- CALL WaitTOF ; display can reset.
-
- CALL OwnBlitter ; take over the blitter and...
- CALL WaitBlit ; wait for it to finish so we
- ; safely use it as we please.
-
- movea.l 4.w,a6 ; exec base
- CALL Forbid ; kill multitasking
- CALL Disable ; kill interrupts so that we can
- ; safely install our own.
-
- cmpi.b #50,VblankFrequency(a6) ; is vblank rate pal?
- beq.b .pal ; yup.
- st ntsc ; set NTSC flag.
-
- .pal: move.w $7c-2(a5),d0 ; AGA register...
- cmpi.b #$f8,d0 ; are we AGA?
- bne.b .not_aga ; nope.
- st AGA ; set the AGA flag.
-
- .not_aga: bsr.b GetVBR ; get the vector base pointer
- move.l d0,VectorBase ; save it for later.
-
- move.w dmaconr-2(a5),d0 ; old DMACON bits
- ori.w #$8000,d0 ; or it set bit for restore
- move.w d0,OldDMACon ; save it
- .exit: rts
-
- ***********************************************************
-
- RestoreSystem: lea $dff002,a5 ; custom chip base + 2
- move.w OldDMACon,dmacon-2(a5) ; restore old dma bits
-
- move.l OldView,a1 ; old Work Bench view
- move.l gfx_base,a6 ; gfx base
- CALL LoadView ; Restore the view
- CALL DisOwnBlitter ; give blitter back to the system.
-
- move.l gb_CopInit(a6),$80-2(a5) ; restore system clist
- move.l a6,a1
- movea.l 4.w,a6 ; exec base
- CALL CloseLibrary
-
- movea.l 4.w,a6 ; exec base
- CALL Enable ; restore ints.
- CALL Permit ; restart multitasking
- rts
-
- ***********************************************************
- * This function provides a method of obtaining a pointer to the base of the
- * interrupt vector table on all Amigas. After getting this pointer, use
- * the vector address as an offset. For example, to install a level three
- * interrupt you would do the following:
- *
- * bsr _GetVBR
- * move.l d0,a0
- * move.l $6c(a0),OldIntSave
- * move.l #MyIntCode,$6c(a0)
- *
- ***********************************************************
- * Inputs: none
- * Output: d0 contains vbr.
-
- GetVBR: move.l a5,-(sp) ; save it.
- moveq #0,d0 ; clear
- movea.l 4.w,a6 ; exec base
- btst.b #AFB_68010,AttnFlags+1(a6); are we at least a 68010?
- beq.b .1 ; nope.
- lea.l vbr_exception(pc),a5 ; addr of function to get VBR
- jsr _LVOSuperVisor(a6) ; supervisor state
- .1: move.l (sp)+,a5 ; restore it.
- rts ; return
-
- vbr_exception:
- ; movec vbr,Xn is a priv. instr. You must be supervisor to execute!
- ; movec vbr,d0
- ; many assemblers don't know the VBR, if yours doesn't, then use this
- ; line instead.
- dc.w $4e7a,$0801
- rte ; back to user state code
-
- ***********************************************************
-
- Bitch: lea Screen+[141*40]+34,a0
- lea intVector,a1
- move.l (a1)+,(a0)
- move.l (a1)+,40(a0)
- move.l (a1)+,80(a0)
- move.l (a1)+,120(a0)
- move.l (a1)+,160(a0)
- rts
-
- ;---------------------------------------------------------------
- clear: clr.b (a0)+
- cmp.l a0,a1
- bne.s clear
- rts
- ;---------------------------------------------------------------
-
- blitclear: WaitBlit
- move.l a0,$54-2(a5)
- move.w #$100,$40-2(a5)
- move.w #0,$42-2(a5)
- move.l #0,$44-2(a5)
- move.l #-1,$64-2(a5)
- move.w d0,$58-2(a5)
- rts
-
- ;---------------------------------------------------------------
-
- TEXTA: cmp.w #1,Wait
- bne.s Noclear
- lea screen,a0
- move.w #$b00,d0
- bsr blitclear
-
- Noclear: tst.w Wait
- beq.s NoHalt
- subq.w #1,Wait
- rts
-
- NoHalt: move.l TextP,a0
- tst.b (a0)
- bne.s NoEndLine
- move.w #0,Xpos
- addq.w #1,Ypos
- addq.l #1,TextP
- rts
-
- NoEndLine: cmp.b #$1,(a0)
- bne.s NoEnd
- move.w #0,Xpos
- move.w #0,Ypos
- move.w #400,Wait
-
- addq.l #1,Textp
- move.l textp,a0
- cmp.b #2,(a0)
- bne.s MorePages
- move.l #text,TextP
- MorePages: rts
-
- NoEnd: moveq #0,d0
- moveq #0,d1
- move.b (a0),d0
- sub.b #32,d0
- lsl.w #1,d0
- move.w d0,d1
- divu #40,d0
- mulu #11*40,d0
- add.l d0,d1
- lea font,a0
- lea (a0,d1.w),a0
-
- lea Screen,a1
- move.w Xpos,d0
- lea (a1,d0.w),a1
- move.w Ypos,d0
- mulu #12*40,d0
- lea (a1,d0.w),a1
-
- moveq #11,d7
- CopyChar: move.w (a0),(a1)
- lea 40(a0),a0
- lea 40(a1),a1
- dbf d7,Copychar
-
- addq.l #1,TextP
- add.w #2,Xpos
- rts
-
- ;---------------------------------------------------------------
- CopLines=126
- CopInst=48
-
- copperfuck: cmp.l #sineEnd,SinePos
- blt.s MoreList
- sub.l #sinesize/2,sinepos
- MoreList: cmp.l #colsEnd,ColsPos
- blt.s Morecollist
- sub.l #collistsize,colspos
- MoreColList: lea CopperBlock+6,a0
- move.l ColsPos,a1
- move.l SinePos,a2
- move.w #copLines-1,d7
- DoDisplay: move.w (a2)+,d1
- lea (a1,d1.w),a3
-
- WaitCrap: WaitBlit
-
- move.l a3,$50-2(a5)
- move.l a0,$54-2(a5)
- move.l #$09f00000,$40-2(a5)
- move.l #$00000002,$64-2(a5)
- move.l #-1,$44-2(a5)
- move.w #(copinst-2)*64+1,$58-2(a5)
-
- add.l #(copinst-2)*2,a3
- ; addq.l #2,a1
- lea CopInst*4(a0),a0
- dbf d7,DoDisplay
-
- tst.w ChangeWait
- beq.s NextPattern
- move.l sineadd,d0
- move.l colsadd,d1
- add.l d0,SinePos
- add.l d1,ColsPos
- subq.w #1,changewait
- rts
-
- NextPattern: move.l ChangeAdr,a0
- cmp.b #-1,(a0)
- bne.L Morechg
-
- tst.w Op1
- beq.s NoAdd
- addq.l #2,a1
- Noadd: move.l #changelist,Changeadr
- bra.s NextPattern
- Morechg: moveq #0,d0
- moveq #0,d1
- moveq #0,d2
- move.b (a0)+,d0
- move.b (a0)+,d1
- move.b (a0)+,d2
- move.w d2,Op1
- move.l d0,sineadd
- move.l d1,colsadd
- move.w #300,Changewait
- addq.l #3,changeadr
- rts
-
- ;---------------------------------------------------------------
-
- copperinit: lea CopperBlock,a0
- move.w #copLines-1,d7
- move.w #$772f,d0
- DoDisplay2: move.w d0,(a0)+
- move.w #$fffe,(a0)+
-
- moveq #Copinst-3,d6
- DoLine2: move.l #$01800000,(a0)+
- dbf d6,DoLine2
- add.w #$0100,d0
-
- move.l #$01800000,(a0)+
- dbf d7,DoDisplay2
-
- lea bmapptrs+2,a0
- move.l #Logo,d0
- move.w d0,4(a0)
- swap d0
- move.w d0,(a0)
-
- move.l #Logo+$be0,d0
- move.w d0,12(a0)
- swap d0
- move.w d0,8(a0)
-
- move.l #Logo+(2*$be0),d0
- move.w d0,20(a0)
- swap d0
- move.w d0,16(a0)
-
- move.l #Logo+(3*$be0),d0
- move.w d0,28(a0)
- swap d0
- move.w d0,24(a0)
-
- move.l #Logo+(4*$be0),d0
- move.w d0,36(a0)
- swap d0
- move.w d0,32(a0)
-
- lea textptrs+2,a0
- move.l #screen+$190,d0
- move.w d0,4(a0)
- swap d0
- move.w d0,(a0)
-
- move.l #screen+$190+$28,d0
- move.w d0,12(a0)
- swap d0
- move.w d0,8(a0)
- rts
-
- ;----------------------------------------------------------------
-
- FixSineList: lea SineList,a0
- move.w #sineSize/2-1,d7
- FixPos: moveq #0,d0
- move.w (a0),d0
- sub.b #$69,d0
- lsl.w #1,d0
- move.w d0,(a0)+
- dbf d7,FixPos
- rts
-
- ***********************************************************
-
- section spam,data
-
- GraphicsName: dc.b "graphics.library",0
- even
-
- Wait: dc.w 1
-
- ChangeAdr: dc.l Changelist
-
- ChangeList: dc.b 2,2,0,4,2,0,6,2,0,8,2,0
- dc.b 2,4,0,4,4,0,6,4,0,8,4,0
- dc.b 2,2,1,4,2,1,6,2,1,8,2,1
- dc.b 2,4,1,4,4,1,6,4,1,8,4,1
- dc.b -1
- even
-
- SinePos: dc.l SineList
-
- SineList:
- dc.w $69,$69,$69,$69,$69,$69,$69,$69,$6a,$6a,$6a,$6b,$6b,$6b,$6c,$6c
- dc.w $6d,$6d,$6e,$6e,$6f,$70,$70,$71,$71,$72,$73,$74,$74,$75,$76,$77
- dc.w $77,$78,$79,$7a,$7b,$7c,$7c,$7d,$7e,$7f,$80,$81,$82,$82,$83,$84
- dc.w $85,$86,$86,$87,$88,$89,$8a,$8b,$8b,$8c,$8d,$8e,$8f,$8f,$90,$91
- dc.w $92,$92,$93,$94,$94,$95,$96,$96,$97,$97,$98,$98,$99,$99,$9a,$9a
- dc.w $9a,$9b,$9b,$9b,$9b,$9b,$9c,$9c,$9c,$9c,$9c,$9c,$9c,$9c,$9c,$9b
- dc.w $9b,$9b,$9b,$9b,$9a,$9a,$9a,$99,$99,$98,$98,$97,$97,$96,$96,$95
- dc.w $94,$94,$93,$92,$92,$91,$90,$8f,$8f,$8e,$8d,$8c,$8b,$8b,$8a,$89
- dc.w $88,$87,$86,$86,$85,$84,$83,$82,$82,$81,$80,$7f,$7e,$7d,$7c,$7c
- dc.w $7b,$7a,$79,$78,$77,$77,$76,$75,$74,$74,$73,$72,$71,$71,$70,$70
- dc.w $6f,$6e,$6e,$6d,$6d,$6c,$6c,$6b,$6b,$6b,$6a,$6a,$6a,$69,$69,$69
- dc.w $69,$69,$69,$69,$69
- SineEnd:
- dc.w $69,$69,$69,$69,$69,$69,$69,$69,$6a,$6a,$6a,$6b,$6b,$6b,$6c,$6c
- dc.w $6d,$6d,$6e,$6e,$6f,$70,$70,$71,$71,$72,$73,$74,$74,$75,$76,$77
- dc.w $77,$78,$79,$7a,$7b,$7c,$7c,$7d,$7e,$7f,$80,$81,$82,$82,$83,$84
- dc.w $85,$86,$86,$87,$88,$89,$8a,$8b,$8b,$8c,$8d,$8e,$8f,$8f,$90,$91
- dc.w $92,$92,$93,$94,$94,$95,$96,$96,$97,$97,$98,$98,$99,$99,$9a,$9a
- dc.w $9a,$9b,$9b,$9b,$9b,$9b,$9c,$9c,$9c,$9c,$9c,$9c,$9c,$9c,$9c,$9b
- dc.w $9b,$9b,$9b,$9b,$9a,$9a,$9a,$99,$99,$98,$98,$97,$97,$96,$96,$95
- dc.w $94,$94,$93,$92,$92,$91,$90,$8f,$8f,$8e,$8d,$8c,$8b,$8b,$8a,$89
- dc.w $88,$87,$86,$86,$85,$84,$83,$82,$82,$81,$80,$7f,$7e,$7d,$7c,$7c
- dc.w $7b,$7a,$79,$78,$77,$77,$76,$75,$74,$74,$73,$72,$71,$71,$70,$70
- dc.w $6f,$6e,$6e,$6d,$6d,$6c,$6c,$6b,$6b,$6b,$6a,$6a,$6a,$69,$69,$69
- dc.w $69,$69,$69,$69,$69
- xxx:
- SineSize=xxx-SineList
-
- textp: dc.l text
- IntVector: dc.l $0739e791,$08451451,$087d144a
- dc.l $08451444,$0745e784
-
- ;---------------------------------------------------------------
- ;- EACH LINE MUST END WITH A ZERO, PAGE ENDS WITH 1,0
- ;- END OF TEXT ENDS WITH 1,2 - EACH LINE CAN BE ANYLENGTH...
- ;- PAGES ARE 10 LINES LONG
- Text:
- dc.b 0
- dc.b "** M A S T E R S **",0
- dc.b 0
- dc.b 0
- dc.b " ARE HERE WITH",0
- dc.b 0
- dc.b " ANOTHER RELEASE",0
- dc.b 0
- dc.b 0
- dc.b 0
- dc.b "FIRST WITH THE BEST",1,0
-
- dc.b " CALL THESE BOARDS ",0
- dc.b " ----------------- ",0
- dc.b "MASTER'S WHQ ",0
- dc.b " XXXXXXXX",0,0
- dc.b "CRYPTIC DEAD ",0
- dc.b " BLA BLA",0,0
- dc.b "TEMPEST BBS: ",0
- dc.b " -----------",1,0
-
- dc.b "OPTICAL ILLUSION",0
- dc.b " DEPARTED ",0,0
- dc.b "PRIME TIME",0
- dc.b " ----------",0,0
- dc.b "CHERNOBYL BBS",0
- dc.b " +++++++++++++",0
- dc.b " ",0
- dc.b " ALL BOARDS R 9600+ ",1,0
-
- dc.b " MINI CREDITS: ",0
- dc.b " ------------- ",0
- dc.b " CODING- CADDY ",0
- dc.b " ",0
- dc.b " LOGO- METALLIKAT ",0
- dc.b " ",0
- dc.b " FONT- DIGIT/PNS ",0
- dc.b " ",0
- dc.b " MUSIC- DIGIT/PNS ",0
- dc.b " SAY GOODNIGHT BILL",1,2
- even
-
- ***********************************************************
-
- section gfx,data_c
-
- ;----------------------------------------------------------------
- ; dc.w 000,010,020,030,040,050,060,070,080,090,0a0,0b0,0c0,0d0,0e0,0f0
- ; dc.w 0f0,1f0,2f0,3f0,4f0,5f0,6f0,7f0,8f0,9f0,af0,bf0,cf0,df0,ef0,ff0
- ; dc.w ff0,fe1,fd2,fc3,fb4,fa5,f96,f87,f78,f69,f5a,f4b,f3c,f2d,f1e,f0f
- ; dc.w f0f,e0e,d0d,c0c,b0b,a0a,909,808,707,606,505,404,303,202,101,000
- ;----------------------------------------------------------------
- ColsPos: dc.l CopperCols
- CopperCols:
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
-
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- xxxx:
- CollistSize=xxxx-coppercols
-
- ColsEnd:
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
-
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
- dc.w $ff0,$fe1,$fd2,$fc3,$fb4,$fa5,$f96,$f87,$f78,$f69,$f5a,$f4b,$f3c,$f2d,$f1e,$f0f
- dc.w $f0f,$f1e,$f2d,$f3c,$f4b,$f5a,$f69,$f78,$f87,$f96,$fa5,$fb4,$fc3,$fd2,$fe1,$ff0
-
- copper: dc.l $00960020 ; kill sprites
- dc.l $01440000,$01460000,$014c0000,$014e0000,$01540000
- dc.l $01560000,$015c0000,$015e0000,$01640000,$01660000
- dc.l $016c0000,$016e0000,$01740000,$01760000,$017c0000
- dc.l $017e0000
- dc.l $008e2071,$009030c8
- dc.l $00920038,$009400d0
- dc.l $01020000,$01800000,$01040003
- dc.l $01080000,$010a0000,$01000000
- bmapptrs: dc.l $00e00000,$00e20000
- dc.l $00e40000,$00e60000
- dc.l $00e80000,$00ea0000
- dc.l $00ec0000,$00ee0000
- dc.l $00f00000,$00f20000
-
- dc.w $0180,$0000,$0182,$0fff,$0184,$0fc6,$0186,$0e94
- dc.w $0188,$0d96,$018a,$0fca,$018c,$0fea,$018e,$0731
- dc.w $0190,$0a36,$0192,$0814,$0194,$0c05,$0196,$0c26
- dc.w $0198,$0d48,$019a,$0d79,$019c,$0e9b,$019e,$0a15
- dc.w $01a0,$0620,$01a2,$0e52,$01a4,$0a52,$01a6,$0a53
- dc.w $01a8,$000d,$01aa,$011d,$01ac,$023d,$01ae,$044d
- dc.w $01b0,$0226,$01b2,$066e,$01b4,$088e,$01b6,$099e
- dc.w $01b8,$0aae,$01ba,$0ccf,$01bc,$0ddf,$01be,$044b
-
- dc.l $260ffffe,$01005000,$720ffffe,$01000000
- textptrs: dc.l $00e00000,$00e20000,$00e40000,$00e60000
- dc.l $01820000,$01840fff,$01860fff
-
- dc.l $730ffffe,$01800000,$740ffffe,$01800099
- dc.l $750ffffe,$018000cc,$760ffffe,$018000ff
- dc.l $770ffffe,$01002000,$01020089,$01800000
-
- CopperBlock: blk.l Coplines*copInst,-1
- endblock: dc.l $f50ffffe,$018000ff,$f60ffffe,$018000cc
- dc.l $f70ffffe,$01800099,$f80ffffe,$01800000,$01001000
- dc.l $fa0ffffe,$01820fff,$fb0ffffe,$01820eee
- dc.l $fc0ffffe,$01820ddd,$fd0ffffe,$01820ccc
- dc.l $fe0ffffe,$01820bbb,$ff0ffffe,$01000000
- dc.l $fffffffe,$fffffffe ; some revs of the copper
- ; skip the first end.
-
- incdir ''
- Logo: incbin "df1:masters/katlogo.b"
- Font: incbin "df1:masters/digfont.b"
-
- ***********************************************************
-
- section textscreen,bss_c
-
- screen: ds.b $5000
-
- ***********************************************************
-
- section OldPointers_and_such,bss
-
- gfx_base ds.l 1 ; pointer to graphics base
- OldView ds.l 1 ; old Work Bench view addr.
- VectorBase: ds.l 1 ; pointer to the Vector Base
-
- OldDMACon: ds.w 1 ; old dmacon bits
-
- ntsc: ds.b 1 ; 0 = pal, 1 = ntsc
- AGA: ds.b 1 ; 0 = ESC/standard, 1 = AGA
-
- SineAdd: ds.l 1
- Colsadd: ds.l 1
- Op1: ds.w 1
- Xpos: ds.w 1
- Ypos: ds.w 1
- ChangeWait: ds.w 1
-
-