home *** CD-ROM | disk | FTP | other *** search
- section framework,code_c
-
- *-------------- Colour Copperbar test...
-
- barlen equ 9
-
- Kill_OS: move.l (AbsExecBase).w,a6 ; get execbase
- lea Gfxlib(pc),a1 ; point to graphics.library
- jsr OldOpenLibrary(a6) ; open graphics library
- move.l d0,Gfxbase ; save gfxbase address
- jsr Forbid(a6) ; () turn off multitasking
- lea (_Custom).l,a5 ; custom base address in a5
- move.w dmaconr(a5),dmasav ; save dma
- move.w intenar(a5),intsav ; save intena
- move.w adkconr(a5),adksav ; save adkcon
- move.w #$7fff,intena(a5) ; turn off intena
- move.l #Copperlist,cop1lch(a5) ; install custom copperlist
- clr.w copjmp1(a5) ; clear second copperlist
- move.w #$c020,intena(a5) ; return INTENA:
- move.w #$87c0,dmacon(a5) ; return DMA:Cop/Blit/Sprite
- move.l #screen+0,d0 ; get screen ptr in d0
- move.w d0,pl1l ; find bpl1ptl (low word)
- swap d0 ; swap to get high word
- move.w d0,pl1h ; find bpl1pth (high word)
-
- wait: cmpi.b #255,$dff006
- bne.s wait
- bsr changecop
- btst #left,(_ciaa).l ; left mouse wait
- bne.s wait ; loop until pressed
-
- Help_OS: lea (_Custom).l,a5 ; custom base address in a5
- move.l GFXbase(pc),a1 ; get gfxbase in a1
- move.l SysCop1(a1),cop1lch(a5) ; restore old system copper
- move.w dmasav,d0 ; get saved dma value
- or.w #$8000,d0
- move.w d0,dmacon(a5) ; restore old dma
- move.w adksav,d0 ; get saved adkcon value
- or.w #$8000,d0
- move.w d0,adkcon(a5) ; restore old adkcon
- move.w intsav,d0 ; get saved intena value
- or.w #$8000,d0
- move.w d0,intena(a5) ; restore old interna
- move.l (AbsExecBase).w,a6 ; get execbase
- jsr Permit(a6) ; permit multitasking
- move.l GFXbase(pc),a1 ; get gfxbase in a1
- jsr CloseLibrary(a6) ; close gfx library
- moveq.l #0,d0 ; no cli return code
- rts
-
- changecop: not.b flag
- bne.s ccrts
- lea copcols(pc),a0
- moveq #33-2,d0 ; 100 lines
- move.l barptr,a1 ; start of list
- move.l a1,temptr ; updates temporary pointer
- moveq #0,d1
- ccloop move.b (a1)+,7(a0) ; update colour
- lea 8(a0),a0
- addq.b #1,d1
- cmp.b #barlen,d1 ; end of sub-bar?
- bne.s ccdbra
- move.l temptr,a1
- addq.l #1,a1
- cmp.l #barend,temptr
- bne.s ccd2
-
- lea bardata(pc),a1
- ccd2 move.l a1,temptr
- moveq #0,d1
- ccdbra dbra d0,ccloop
- addq.l #1,barptr
- move.l barptr,d0
- cmp.l #barend,d0 ; have we got to the bottom
- bne.s ccrts ; of the bar list. if so,
- move.l #bardata,barptr ; reset to start of list
- ccrts rts ; return to interrupt
-
-
- bardata: dc.b $00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,$0B,$0C,$0D,$0D,$0E,$0E,$0F
- dc.b $0F,$0F,$0E,$0E,$0E,$0D,$0C,$0B,$0A,$09,$08,$07,$06,$05,$04,$03,$02,$01
- ds.b 20
- even
- barend DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,13,14,14,15,15,15
- DC.B 14,14,13,13,12,11,10,9,8,7,6,5,4,3,2,1
- dc.b 255
- even
- flag dc.w 0
-
- CopperList: dc.w diwstrt,$2C81
- dc.w diwstop,$2CC1
- dc.w ddfstrt,$0038
- dc.w ddfstop,$00D0
- dc.w bplcon0,$1200 ; (1 bitplane Lo-Res)
- dc.w bpl1mod,0 ; (no moduo)
- dc.w bpl2mod,0 ; (no moduo)
- dc.w color00,0 ; colour 0 (black)
- dc.w color01,$fff ; colour 1 (white)
- dc.w spr0pth,0,spr0ptl,0,spr1pth,0,spr1ptl,0
- dc.w spr2pth,0,spr2ptl,0,spr3pth,0,spr3ptl,0
- dc.w spr4pth,0,spr4ptl,0,spr5pth,0,spr5ptl,0
- dc.w spr6pth,0,spr6ptl,0,spr7pth,0,spr7ptl,0
- dc.w bpl1pth
- pl1h: dc.w 0
- dc.w bpl1ptl
- pl1l: dc.w 0
-
-
- copcols dc.w $2C09,$FFFE,$0180,$0000
- dc.w $2D09,$FFFE,$0180,$0000
- dc.w $2E09,$FFFE,$0180,$0000
- dc.w $2F09,$FFFE,$0180,$0000
- dc.w $3009,$FFFE,$0180,$0000
- dc.w $3109,$FFFE,$0180,$0000
- dc.w $3209,$FFFE,$0180,$0000
- dc.w $3309,$FFFE,$0180,$0000
- dc.w $3409,$FFFE,$0180,$0000
- dc.w $3509,$FFFE,$0180,$0000
-
- dc.w $3609,$FFFE,$0180,$0000
- dc.w $3709,$FFFE,$0180,$0000
- dc.w $3809,$FFFE,$0180,$0000
- dc.w $3909,$FFFE,$0180,$0000
- dc.w $3A09,$FFFE,$0180,$0000
- dc.w $3B09,$FFFE,$0180,$0000
- dc.w $3C09,$FFFE,$0180,$0000
- dc.w $3D09,$FFFE,$0180,$0000
- dc.w $3E09,$FFFE,$0180,$0000
- dc.w $3F09,$FFFE,$0180,$0000
-
- dc.w $4009,$FFFE,$0180,$0000
- dc.w $4109,$FFFE,$0180,$0000
- dc.w $4209,$FFFE,$0180,$0000
- dc.w $4309,$FFFE,$0180,$0000
- dc.w $4409,$FFFE,$0180,$0000
- dc.w $4509,$FFFE,$0180,$0000
- dc.w $4609,$FFFE,$0180,$0000
- dc.w $4709,$FFFE,$0180,$0000
- dc.w $4809,$FFFE,$0180,$0000
- dc.w $4909,$FFFE,$0180,$0000
-
- dc.w $4a09,$FFFE,$0180,$0000
- dc.w $4b09,$FFFE,$0180,$0000
- dc.w $4c09,$FFFE,$0180,$0000
-
-
-
- dc.w $FFFF,$FFFE ;end copper (impossible pos)
-
- dmasav: dc.w 0
- adksav: dc.w 0
- intsav: dc.w 0
- GFXlib: dc.b "graphics.library"
- even
- GFXBase: ds.l 2
- even
- temptr: dc.l bardata
- even
- barptr: dc.l bardata
- even
- Screen: dcb.b 20480,0 ;reserve some memory for screen area
-
- Level3Vector equ $6c
- SysCop1 equ $26
- _ciaa: equ $bfe001
- _ciab: equ $bfd000
- left equ 6
-
- _custom: equ $dff000
- bltddat: equ $000
- dmaconr: equ $002
- vposr: equ $004
- vhposr: equ $006
- dskdatr: equ $008
- joy0dat: equ $00a
- joy1dat: equ $00c
- clxdat: equ $00e
- adkconr: equ $010
- pot0dat: equ $012
- pot1dat: equ $014
- potgor: equ $016
- serdatr: equ $018
- dskbytr: equ $01a
- intenar: equ $01c
- intreqr: equ $01e
- dskpth: equ $020
- dskptl: equ $022
- dsklen: equ $024
- dskdat: equ $026
- refptr: equ $028
- vposw: equ $02a
- vhposw: equ $02c
- copcon: equ $02e
- serdat: equ $030
- serper: equ $032
- potgo: equ $034
- joytest: equ $036
- strequ: equ $038
- strvbl: equ $03a
- strhor: equ $03c
- strlong: equ $03e
- bltcon0: equ $040
- bltcon1: equ $042
- bltafwm: equ $044
- bltalwm: equ $046
- bltcpth: equ $048
- bltcptl: equ $04a
- bltbpth: equ $04c
- bltbptl: equ $04e
- bltapth: equ $050
- bltaptl: equ $052
- bltdpth: equ $054
- bltdptl: equ $056
- bltsize: equ $058
- bltcmod: equ $060
- bltbmod: equ $062
- bltamod: equ $064
- bltdmod: equ $066
- bltcdat: equ $070
- bltbdat: equ $072
- bltadat: equ $074
- dsksync: equ $07e
- cop1lch: equ $080
- cop1lcl: equ $082
- cop2lch: equ $084
- cop2lcl: equ $086
- copjmp1: equ $088
- copjmp2: equ $08a
- copins: equ $08c
- diwstrt: equ $08e
- diwstop: equ $090
- ddfstrt: equ $092
- ddfstop: equ $094
- dmacon: equ $096
- clxcon: equ $098
- intena: equ $09a
- intreq: equ $09c
- adkcon: equ $09e
- aud0pth: equ $0a0
- aud0ptl: equ $0a2
- aud0len: equ $0a4
- aud0per: equ $0a6
- aud0vol: equ $0a8
- aud0dat: equ $0aa
- aud1pth: equ $0b0
- aud1ptl: equ $0b2
- aud1len: equ $0b4
- aud1per: equ $0b6
- aud1vol: equ $0b8
- aud1dat: equ $0ba
- aud2pth: equ $0c0
- aud2ptl: equ $0c2
- aud2len: equ $0c4
- aud2per: equ $0c6
- aud2vol: equ $0c8
- aud2dat: equ $0ca
- aud3pth: equ $0d0
- aud3ptl: equ $0d2
- aud3len: equ $0d4
- aud3per: equ $0d6
- aud3vol: equ $0d8
- aud3dat: equ $0da
- bpl1pth: equ $0e0
- bpl1ptl: equ $0e2
- bpl2pth: equ $0e4
- bpl2ptl: equ $0e6
- bpl3pth: equ $0e8
- bpl3ptl: equ $0ea
- bpl4pth: equ $0ec
- bpl4ptl: equ $0ee
- bpl5pth: equ $0f0
- bpl5ptl: equ $0f2
- bpl6pth: equ $0f4
- bpl6ptl: equ $0f6
- bplcon0: equ $100
- bplcon1: equ $102
- bplcon2: equ $104
- bpl1mod: equ $108
- bpl2mod: equ $10a
- bpl1dat: equ $110
- bpl2dat: equ $112
- bpl3dat: equ $114
- bpl4dat: equ $116
- bpl5dat: equ $118
- bpl6dat: equ $11a
- spr0pth: equ $120
- spr0ptl: equ $122
- spr1pth: equ $124
- spr1ptl: equ $126
- spr2pth: equ $128
- spr2ptl: equ $12a
- spr3pth: equ $12c
- spr3ptl: equ $12e
- spr4pth: equ $130
- spr4ptl: equ $132
- spr5pth: equ $134
- spr5ptl: equ $136
- spr6pth: equ $138
- spr6ptl: equ $13a
- spr7pth: equ $13c
- spr7ptl: equ $13e
- spr0pos: equ $140
- spr0ctl: equ $142
- spr0data: equ $144
- spr0datb: equ $146
- spr1pos: equ $148
- spr1ctl: equ $14a
- spr1data: equ $14c
- spr1datb: equ $14e
- spr2pos: equ $150
- spr2ctl: equ $152
- spr2data: equ $154
- spr2datb: equ $156
- spr3pos: equ $158
- spr3ctl: equ $15a
- spr3data: equ $15c
- spr3datb: equ $15e
- spr4pos: equ $160
- spr4ctl: equ $162
- spr4data: equ $164
- spr4datb: equ $166
- spr5pos: equ $168
- spr5ctl: equ $16a
- spr5data: equ $16c
- spr5datb: equ $16e
- spr6pos: equ $170
- spr6ctl: equ $172
- spr6data: equ $174
- spr6datb: equ $176
- spr7pos: equ $178
- spr7ctl: equ $17a
- spr7data: equ $17c
- spr7datb: equ $17e
- color00: equ $180
- color01: equ $182
- color02: equ $184
- color03: equ $186
- color04: equ $188
- color05: equ $18a
- color06: equ $18c
- color07: equ $18e
- color08: equ $190
- color09: equ $192
- color10: equ $194
- color11: equ $196
- color12: equ $198
- color13: equ $19a
- color14: equ $19c
- color15: equ $19e
- color16: equ $1a0
- color17: equ $1a2
- color18: equ $1a4
- color19: equ $1a6
- color20: equ $1a8
- color21: equ $1aa
- color22: equ $1ac
- color23: equ $1ae
- color24: equ $1b0
- color25: equ $1b2
- color26: equ $1b4
- color27: equ $1b6
- color28: equ $1b8
- color29: equ $1ba
- color30: equ $1bc
- color31: equ $1be
- open: equ -30
- close: equ -36
- read: equ -42
- write: equ -48
- input: equ -54
- output: equ -60
- seek: equ -66
- deletefile: equ -72
- rename: equ -78
- lock: equ -84
- unlock: equ -90
- duplock: equ -96
- examine: equ -102
- exnext: equ -108
- info: equ -114
- createdir: equ -120
- currentdir: equ -126
- ioErr: equ -132
- CreateProc: equ -138
- exit: equ -144
- loadseg: equ -150
- unloadseg: equ -156
- getpacket: equ -162
- queupacket: equ -168
- deviceproc: equ -174
- setcomment: equ -180
- setprotection: equ -186
- datestamp: equ -192
- delay: equ -198
- waitforchar: equ -204
- parentdir: equ -210
- IsInteractive: equ -216
- Execute: equ -222
-
- AbsExecBase: equ 4
- forbid equ -132
- permit equ -138
- allocmem: equ -198
- freemem: equ -210
- getmsg: equ -372
- replymsg: equ -378
- waitport: equ -384
- closelibrary: equ -414
- opendevice: equ -444
- closedevice: equ -450
- doio: equ -456
- oldopenlibrary equ -408
- openlibrary: equ -552
-
-