amos-professional/+WEqu.s

384 lines
8.0 KiB
ArmAsm

*********************************************************************
*
* Published under the MIT Licence
*
* Copyright (c) 1992 Europress Software
* Copyright (c) 2020 Francois Lionet
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*********************************************************************
* EQUATES GRAPHIC FUNCTIONS AMOS
*********************************************************************
RwReset MACRO
Count SET 0
ENDM
Rl MACRO
Count SET Count-4*(\2)
T_\1 equ Count
ENDM
Rw MACRO
Count SET Count-2*(\2)
T_\1 equ Count
ENDM
Rb MACRO
Count SET Count-(\2)
T_\1 equ Count
ENDM
GfxA5 MACRO
movem.l d0-d1/a0-a1/a6,-(sp)
move.l T_GfxBase(a5),a6
jsr \1(a6)
movem.l (sp)+,d0-d1/a0-a1/a6
ENDM
***************************************************************
RwReset
***************************************************************
* VECTEURS
***************************************************************
Rl SyVect,1
Rl EcVect,1
Rl WiVect,1
***************************************************************
* ADRESSES AMOS / COMPILER
***************************************************************
Rl JError,1
Rl CompJmp,1
Rw AMOState,1
Rb WFlags,1
Rb Future,1
***************************************************************
* Gestions AMOS Multiples
***************************************************************
Rl MyTask,1
Rw Inhibit,1
Rw OldDma,1
***************************************************************
* FENETRES
***************************************************************
* Jeu de caracteres par defaut
Rl JeuDefo,1
* Fonction REPETER
WiRepL equ 80
Rw WiRep,1
Rl WiRepAd,2
Rb WiRepBuf,WiRepL
* Fonction ENCADRER
Rw WiEncDX,1
Rw WiEncDY,1
***************************************************************
* INTER VBL
***************************************************************
Rl VblCount,1
Rl VblTimer,1
Rw EveCpt,1
***************************************************************
* FLAG AMOS/WORKBENCH
***************************************************************
Rw AMOSHere,1
Rw NoFlip,1
Rw DevHere,1
Rw DiscIn,1
***************************************************************
* GESTION ECRANS
***************************************************************
*************** Variables gestion
EcMax: equ 12
Rw DefWX,1
Rw DefWY,1
Rw DefWX2,1
Rw DefWY2,1
Rl EcCourant,1
Rw EcFond,1
Rw EcYAct,1
Rw EcYMax,1
Rw Actualise,1
Rl ChipBuf,1
*************** Buffer de calculs des ecrans
Rw EcBuf,128
*************** Table des NUMEROS ---> ADRESSES
Rl EcAdr,EcMax
*************** Table de priorite
Rl EcPri,EcMax+1
*************** FLASHEUR
FlMax: equ 16
LFlash: equ 2+2+4+2+16*4+2
Rw NbFlash,1
Rb TFlash,LFlash*FlMax
*************** SHIFTER
LShift: equ 2+2+4+2+2+2
Rb TShift,LShift
*************** FADER
Rw FadeFlag,1
Rw FadeNb,1
Rw FadeCpt,1
Rw FadeVit,1
Rl FadePal,1
Rl FadeCop,1
Rb FadeCol,8*32
***************************************************************
* GESTION COPPER
***************************************************************
EcTCop equ 1024
Rl EcCop,1
Rw Cop255,1
Rl CopLogic,1
Rl CopPhysic,1
Rw CopON,1
Rl CopPos,1
Rl CopLong,1
* Rainbows
NbRain equ 4
RsReset
RnDY rs.w 1
RnFY rs.w 1
RnTY rs.w 1
RnBase rs.w 1
RnColor rs.w 1
RnLong rs.w 1
RnBuf rs.l 1
RnAct rs.w 1
RnX rs.w 1
RnY rs.w 1
RnI rs.w 1
RainLong rs.w 1
Rb RainTable,RainLong*NbRain
Rw RainBow,1
Rw OldRain,1
* Marques copper liste
CopL1: equ 16*4*2
CopL2: equ 16*4
CopML: equ (EcMax*CopL1)+10*CopL2
Rb CopMark,CopML+4
* Liste screen swaps
SwapL: equ 32
Rl SwapList,SwapL*8+4
* Interlaced!
Rw InterInter,1
Rw InterBit,1
Rl InterList,EcMax*2
***************************************************************
* SPRITES HARD
***************************************************************
HsNb equ 64
* Limites souris
Rw MouYMax,1
Rw MouXMax,1
Rw MouYMin,1
Rw MouXMin,1
* Gestion souris
Rw MouYOld,1
Rw MouXOld,1
Rw MouHotY,1
Rw MouHotX,1
Rw MouseY,1
Rw MouseX,1
Rw MouseDY,1
Rw MouseDX,1
Rw YMouse,1
Rw XMouse,1
Rw OldMk,1
Rw MouShow,1
Rw MouSpr,1
Rw OMouShow,1
Rw OMouSpr,1
Rl MouBank,1
Rl MouDes,1
Rw MouTy,1
Rl SprBank,1
Rl HsTBuf,1
Rl HsBuffer,1
Rl HsLogic,1
Rl HsPhysic,1
Rl HsInter,1
Rl HsChange,1
Rl HsTable,1
Rw HsPMax,1
Rw HsTCol,1
Rw HsNLine,1
Rl HsPosition,2*8+1
* Actualisation sprites
HsYAct: equ 4
HsPAct: equ 6
Rw HsTAct,4*HsNb
* Structure SPrites
HsPrev: equ 0
HsNext: equ 2
HsX: equ 4
HsY: equ 6
HsYr: equ 8
HsLien: equ 10
HsImage: equ 12
HsControl: equ 16
HsLong: equ 20
Rb SpBase,HsLong+4
***************************************************************
* BOBS
***************************************************************
Rw BbMax,1
Rl BbDeb,1
Rl BbPrio,1
Rl BbPrio2,1
Rl Priorite,1
Rw PriRev,1
* Rb TRetour,256
***************************************************************
* AMAL!
***************************************************************
Rl AmDeb,1
Rl AmFreeze,1
Rl AmChaine,1
Rl AmBank,1
Rw AmRegs,26
Rw SyncOff,1
Rl AMALSp,1
Rw AmSeed,1
***************************************************************
* COLLISIONS
***************************************************************
Rl TColl,8
***************************************************************
* BLOCS
***************************************************************
Rl AdCBlocs,1
Rl AdBlocs,1
***************************************************************
* SYSTEME
***************************************************************
Rl GPile,1
Rl IntBase,1
Rl IntScreen,1
Rl GfxBase,1
Rl LayBase,1
Rl FntBase,1
Rl DefaultFont,1
Rl Stopped,1
Rl OldName,1
Rl WVersion,1
Rl RastPort,1
Rl Libre3,1 Libre!
Rl FontInfos,1
Rw FontILong,1
Rw PaPeek,1
Rl SaveZo,1
Rw SaveNZo,1
* Sauvegarde du BitMap
Rb Libre4,40 Libre!
* Sauvegarde de la fonte systeme
Rb Libre5,14+4 Libre!
* Interrupt VBL
Lis equ $16
Lio equ $30
Lmsg equ $20
Rb VBL_Is,Lis
* Interrupt clavier
Rb IoDevice,Lio+Lmsg+8
Rb Interrupt,Lis
* Buffer clavier
ClLong equ 32*3
FFkLong equ 24
Rl ClAsc,1
Rw ClFlag,1
Rw ClQueue,1
Rw ClTete,1
Rb ClShift,4
Rb ClTable,12
Rb ClBuffer,ClLong
Rl ClLast,1
Rb TFF2,10*FFkLong
Rb TFF1,10*FFkLong
*************** Memory check
Rl MemList,1
Rl MemFlush,1
*************** Custom AMIGA-A
Rb AmigA_Rien,1
Rb AmigA_Shifts,1
Rb AmigA_Ascii2,1
Rb AmigA_Ascii1,1
*************** Compteur FakeEvent
Rw FakeEventCpt,1
*************** Sauvegarde de l'ecran
Rb EcSave,64
*************** REQUESTER
Rl ScAdr,1
Rl Datas,1
Rl PrevAuto,1
Rl PrevEasy,1
Rw Req_Sx,1
Rw Req_Sy,1
Rl Req_Pos,1
Rl Req_Neg,1
Rl Req_IDCMP,1
Rw ReqFlag,1
Rw ReqOld,1
Rw DOld,1
Rw TxtCx,1
Rw TxtMaxCx,1
Rw TxtCy,1
Rw ReqOldScreen,1
Rw Req_On,1
*************** Longueur de la structure W.S
Rb L_Trp,4
L_Trappe equ -Count
***********************************************************