RE: Equates

From: Baltissen, GJPAA (Ruud) <ruud.baltissen_at_apg.nl>
Date: Thu, 17 Jan 2013 09:16:24 +0100
Message-ID: <219DEB1536CDE04E98DDD8620CA8CD686A1650@winsv293.office01.internalcorp.net>
> A set of assembler instructions (usually EQU) giving verbal
> names or labels to memory locations, and address entry points.


.eq JOBSzp	= $00
.eq JOBS	= $0000
.eq TRASECzp	= $06			; track/sector for job
.eq TRASECab	= $0006
.eq DISKIDzp	= $12			; ID of disk in drive 0
.eq DISKIDab	= $0012
.eq IMDIIDzp	= $13			; image of most recent header
read
.eq IMDIIDab	= $0013
.eq HDR1IDzp	= $16			; first ID character
.eq HDR1IDab	= $0016
.eq HDR2ID	= $17			; second ID character
.eq HDRTRK	= $18			; track number
.eq HDRSEC	= $19			; sector number
.eq HDRCHK	= $1A			; header checksum

; Free 1B

.eq WPSW0	= $1C			; write protect drive 0
.eq WPSW1	= $1D			; write protect drive 1
.eq LWPT0	= $1E			; last state wr protec switch dr
0
.eq LWPT1	= $1F			; last state wr protec switch dr
1
.eq DRVST	= $20			; disk drive status (drive 0)
1/0
					; bit 4 = shut down drive motor
y/n
					; bit 5 = drive motor
on/off
					; bit 6 = head stepping
on/off
					; bit 7 = drive ready
no/yes
.eq DRVST1	= $21			; disk drive status (drive 1)
.eq DRVTRK	= $22			; current track under head
(drive 0)
.eq VIC20mode	= $23			; VIC-20 / C64 mode
.eq STAB0zp	= $24			; work area
.eq STAB0ab	= $0024
.eq STAB1	= $25
.eq SAVPNT	= $2E			; temporary savepoint
.eq BUFPNT	= $30			; pointer to currently active
buffer
.eq J_BUFPNT	= $0030
.eq HDRPNT	= $32			; pointer to active values in
hdr table
.eq GCRPNT	= $34			; pointer to last converted
character

; Free 35

.eq BYTCNT	= $36			; byte counter for GCR/binary
convers.

; Free 37

.eq BID		= $38			; data block ID character ($07)
.eq HBID	= $39			; header block ID character
($08)
.eq CHKSUM	= $3A			; data or header checksum

; Free 3B 3C

.eq DRIVE	= $3D			; drive
.eq CURDRV	= $3E			; current drive ($FF is none)
.eq JOBN	= $3F			; position of last job in queue
(0-5)
.eq TRACC	= $40			; byte counter for GCR/binary
convers.
.eq NXTJOB	= $41			; position of next job in queue
(0-5)
.eq NXTTRK	= $42			; next track to move head to
.eq SECCNT	= $43			; sector counter for format
routine
.eq WORK	= $44			; temporary workspace
.eq JOB		= $45			; temporary storage of job code

; Free 46

.eq DBID	= $47			; data block ID code, normal $07
.eq ACLTIM	= $48			; timer for acceleration of head
.eq SAVSP	= $49			; temporary save of stackpointer
.eq STEPS	= $4A			; number of steps to move head
to
					;   desired track
.eq TMP		= $4B			; temporary storage
.eq CSECT	= $4C			; last sector read
.eq NEXTS	= $4D			; next sector to service
.eq NXTBF	= $4E			; HB of pointer to next buffer
of GCR-
					;   bytes to be changed to
binary
.eq NXTPNT	= $4F			; LB of above
.eq GCRFLG	= $50			; indicator that data in buffer
is
					;   binary (0) or GCR (1)
.eq FTNUM	= $51			; current track to be formatted

.eq BTAB0	= $52			; temp. area for the four bytes
to be
.eq BTAB1	= $53			;   converted from or to GCR
.eq BTAB2	= $54
.eq BTAB3	= $55

.eq GTAB0	= $56			; temp. area for the five gcr
bytes
.eq GTAB1	= $57			;   to be converted from or to
binary
.eq GTAB2	= $58
.eq GTAB3	= $59
.eq GTAB4	= $5A
.eq GTAB5	= $5B
.eq GTAB6	= $5C
.eq GTAB7	= $5D

.eq AS		= $5E			; number of steps to
ac/decelerate when
					;   stepping the head ($04)
.eq AF		= $5F			; ac/deceleration factor ($04)
.eq ACLSTP	= $60			; number of steps left to
ac/decelerate
					;   when stepping the head
.eq RSTEPS	= $61			; number of steps left to step
the head
					;   when in fast stepping (run)
mode
.eq NXTSTzp	= $62			; pointer to head stepping
routine
					;   ($FA05)
.eq NXTSTab	= $0062
.eq MINSTP	= $64			; minimum of steps to go for run
mode
.eq VNMI	= $65			; pointer to NMI routine
.eq J_VNMI	= $0065
.eq NMIFLG	= $67			; indicator if NMI in progress
.eq AUTOFG	= $68			; flag to en/disable (0/1) the
auto
					;   initialization of a disk
(read BAM)
.eq SECINC	= $69                   ; interleave
.eq REVCNT	= $6A			; number of retries in case of
error
.eq USRJMP	= $6B			; LB user jump
.eq BMPNT	= $6D			; pointer to start of bitmap
($0400)
.eq TEMP0	= $6F
.eq J_TEMP0	= $006F
.eq TEMP1	= $70
.eq TEMP2	= $71
.eq TEMP3	= $72
.eq TEMP4	= $73
.eq TEMP5	= $74
.eq IP		= $75			; indirect pointer variable
.eq J_IP	= $0075
.eq LSNADR	= $77
.eq TLKADR	= $78
.eq LSNACT	= $79			; active listener flag
.eq TLKACT	= $7A			; active talker flag
.eq ATNPND	= $7C			; ATN pending
.eq ATNMOD	= $7D			; 6502 in attention mode
.eq LastTrack	= $7E			; last used track
.eq DRVNMB	= $7F			; drive number
.eq TRACK	= $80			; current track number
.eq SECTOR	= $81			; current sector number
.eq CURCHN	= $82			; current channel
.eq SA		= $83			; secundair address
.eq ORGSA	= $84			; original secundair address
.eq DATA	= $85			; temporary databyte
.eq R0		= $86			; temporary result
.eq R1		= $87
.eq R2		= $88
.eq R3		= $89
.eq R4		= $8A
.eq RESULT0	= $8B			; result area
.eq RESULT1	= $8C
.eq RESULT2	= $8D
.eq RESULT3	= $8E
.eq ACCUM0	= $8F			; accumulator
.eq ACCUM1	= $90
.eq ACCUM2	= $91
.eq ACCUM3	= $92
.eq ACCUM4	= $93
.eq DIRBUF	= $94			; directory buffer ($0205)
.eq CONT	= $98			; bit counter for serial
.eq BUFTABzp	= $99			; $99..A2 pointer to buffer0..4
					;   normally: $0300..$0700

.eq BUFTABab	= $0099
.eq INPPTR	= $A3			; pointer to inputbuffer $0200
.eq ERRPTR	= $A5			; pointer to errorbuffer $02D5

.eq BUF0CH1zp	= $A7
.eq BUF0CH1ab	= $00A7
.eq BUF0CH5	= $AB
.eq BUF0CH6	= $AC
.eq BUF0CH7	= $AD
.eq BUF1CH1zp	= $AE
.eq BUF1CH1ab	= $00AE
.eq BUF1CH7	= $B4
.eq RECL	= $B5
.eq RECH	= $BB
.eq WRIPNTab	= $00C1			; Write pointer
.eq WRIPNT	= $C1			; Write pointer
.eq RecLength	= $C7			; $C7..CC Rec length for every
buffer
.eq SIDSECzp	= $CD
.eq SIDSECab	= $00CD
.eq CHNNUM	= $D3
.eq RecordPos	= $D4
.eq NumSidSec	= $D5
.eq PtrSideSec	= $D6
.eq RelPointer	= $D7
.eq DIRSECP	= $D8			; $D8..C pointer directory
sectors
.eq BUFPTR	= $DD			; $DD..E1 bufferpointers
.eq DRVNUM	= $E2			; $E2..6 drive numbers
.eq COMFLG	= $E7			; $E7..A used for marking
comma's

.eq DIACFLab	= $00EC			; Flag for direct access
.eq DIACFLzp	= $EC

.eq REWRFLab	= $00F2			; read/write flag
.eq REWRFLzp	= $F2

.eq WRFLAG	= $F6			; Write-flag
.eq RDFLAG	= $F7			; Read-flag
.eq EOIFLG	= $F8
.eq ActBufNum= $F9			; job number
.eq LRUTBLzp	= $FA			; least recently used table
.eq LRUTBLab	= $00FA


.eq A_0100	= $0100
.eq TypeChk	= $0101			; contains code for type of disk
;  ... 0102

.eq BufGCR	= $01BB			; buffer for GCR de/encoding
.eq CMDBUF	= $0200
.eq INSTRU	= $022A			; instruction number
.eq LINTAB	= $022B

.eq CH4WFL	= $023A			; Write-flag channel 4
.eq CH5WFL	= $023B			; Write-flag channel 5

.eq OUTREG	= $023E			; output registers
.eq ENDPNT	= $0244
.eq TYPE	= $024A			; active file type
.eq STRSIZ	= $024B			; length of string
.eq TEMPSA	= $024C			; temporary secondary address
.eq CMD		= $024D			; temporary job command
.eq BSTSEC	= $024E			; best sector to do
.eq BUFUSEL	= $024F
.eq BUFUSEH	= $0250
.eq MDIRTY	= $0251			; <> 0  means: BAM changed flag
(dr 0)
					; $0252 = same for drive 1
.eq ENTFND	= $0253			; directory entry found flag
.eq DIRLST	= $0254			; directory listing flag, 0 = no
.eq CMDWAT	= $0255			; command waiting flag
.eq LINUSE	= $0256			; LINDX use word
.eq LstUsedBuf	= $0257			; last used buffer
.eq RecordSize	= $0258			; record size (directory
routine)
.eq TRKSS	= $0259			; side sector track
.eq SECSS	= $025A			; side sector sector
.eq LSTJOB	= $025B			; last job / drive number
.eq DSEC	= $0260			; sector of directory entry by
buffer
.eq DIND	= $0266			; index of directory entry by
buffer
.eq ERWORD	= $026C			; error word
.eq ERLED	= $026D			; which LED must blink during
error
.eq PRGDRV	= $026E			; last program drive
.eq PRGSEC	= $026F			; last program sector
.eq WLINDX	= $0270			; write LINDX
.eq NBTEMP0	= $0272
.eq NBTEMP1	= $0273
.eq CMDSIZ	= $0274			; size of command string
.eq CHAR	= $0275			; character under parser
.eq LIMIT	= $0276			; PTR limit in comparison
.eq F1CNT	= $0277			; file stream 1 count
.eq F2CNT	= $0278			; file stream 2 count / number
of drives
.eq F2PTR	= $0279			; file stream 2 pointer
.eq FILTBL	= $027A			; table of filename pointers
.eq FILTRK	= $0280			; first file link (track)
.eq FILSEC	= $0285			; first file link (sector)
.eq PATFLG	= $028A			; pattern present flag
.eq IMAGE	= $028B			; file stream image / flag
syntax check
.eq DRVCNT	= $028C			; number of drive searches
.eq DRVFLG	= $028D			; drive search flag
.eq LSTDRV	= $028E			; last drive w/o error
.eq FOUND	= $028F			; found flag in directory
searches
.eq DIRSEC	= $0290			; directory sector
.eq DELSEC	= $0291			; sector of first available
entry
.eq DELIND	= $0292			; index of first available entry
.eq LSTBUF	= $0293			; O if last block
.eq INDEX	= $0294			; current index in buffer
.eq FILCNT	= $0295			; counter of file entries
.eq TYPFLG	= $0296			; match by type of flag
.eq MODE	= $0297			; active file mode (R,W)
.eq JOBRTN	= $0298			; job return flag
.eq EPTR	= $0299			; pointer for recovery
.eq TOFF	= $029A			; total track offset
.eq UBAM	= $029B			; last BAM update pointer
.eq TBAM	= $029D			; track # of BAM image

.eq BAMima	= $02A1			; BAM images

.eq NameBuffer	= $02B1			; directory output buffer
.eq A_02C3	= $02C3
.eq A_02C4	= $02C4
.eq ERRBUF	= $02D5			; error message output buffer
.eq WBAM	= $02F9			; 'don't write BAM'-flag. set at
start
.eq NDBL	= $02FA			; # of disk blocks free (lo byte
0/1)
.eq A_02FB	= $02FB
.eq NDBH	= $02FC			; # of disk blocks free (hi byte
0/1)
.eq A_02FD	= $02FD
.eq PHASE	= $02FE			; current phase of head stepper
motor
.eq BUF0	= $0300
.eq A_0345	= $0345
.eq BUF2	= $0500
.eq BUF3	= $0600
.eq A_0620	= $0620
.eq A_0621	= $0621
.eq A_0622	= $0622
.eq A_0623	= $0623
.eq A_0624	= $0624
.eq A_0625	= $0625
.eq A_0626	= $0626
.eq A_0627	= $0627
.eq A_0628	= $0628


; Register        Designation     Function

;   0             ORA or IRB      Output or input register B
;   1             ORA or IRA      Output or input register A
;   2             DDRB            Data direction register B
;   3             DDRA            Data direction register A
;   4             T1C-L           T1 low-byte latch or T1 low-byte
counter
;   5             T1C-H           T1 high-byte counter
;   6             T1L-L           T1 low-byte latch
;   7             T1L-H           T1 high-byte latch
;   8             T2C-L           T2 low-byte latch or T2 low-byte
counter
;   9             T2C-H           T2 high-byte counter
;  10             SR              Shift Register
;  11             ACR             Auxiliary Control Register
;  12             PCR             Peripheral Control Register
;  13             IFR             Interrupt Flag Register
;  14             IER             Interrupt Enable Register
;  15             ORA or IRA      Identical to offset 1 but no handshake

.eq PortB1	= $1800
					; bit 0 = DATA in
					; bit 1 = DATA out
					; bit 2 = CLOCK in
					; bit 3 = CLOCK out
					; bit 4 = ATN out
					; bit 5 = device number bit 0
					; bit 6 = device number bit 1
					; bit 7 = ATN in

.eq PortA1	= $1801			; not used
.eq DDRB1	= $1802
.eq DDRA1	= $1803
.eq T1CL1	= $1804
.eq T1CH1	= $1805
.eq T1LL1	= $1806
.eq T1LH1	= $1807
.eq T2CL1	= $1808
.eq T2CH1	= $1809
.eq SR1		= $180A
.eq ACR1	= $180B
.eq PCR1	= $180C
.eq IFR1	= $180D
.eq IER1	= $180E
.eq IRA1	= $180F

.eq PortB2	= $1C00
					; bit 0 = stepping motor bit 0
					; bit 1 = stepping motor bit 1
					; bit 2 = motor ON/OFF
					; bit 3 = drive 0 LED
					; bit 4 = write protect sense
					; bit 5 = density select 0
					; bit 6 = density select 1
					; bit 7 = SYNC detect line

.eq PortA2	= $1C01			; GCR data I/O to diskette
.eq DDRB2	= $1C02
.eq DDRA2	= $1C03
.eq T1CL2	= $1C04
.eq T1CH2	= $1C05
.eq T1LL2	= $1C06
.eq T1LH2	= $1C07
.eq T2CL2	= $1C08
.eq T2CH2	= $1C09
.eq SR2		= $1C0A
.eq ACR2	= $1C0B
.eq PCR2	= $1C0C
.eq IFR2	= $1C0D
.eq IER2	= $1C0E
.eq IRA2	= $1C0F

--
     ___
    / __|__
   / /  |_/     Groetjes, Ruud
   \ \__|_\
    \___|       URL: Ruud.C64.org


 
De informatie in dit e-mailbericht is vertrouwelijk en uitsluitend bestemd voor de 
geadresseerde. Wanneer u dit bericht per abuis ontvangt, verzoeken wij u contact op te 
nemen met de afzender per kerende e-mail. Verder verzoeken wij u in dat geval dit 
e-mailbericht te vernietigen en de inhoud ervan aan niemand openbaar te maken. 
Wij aanvaarden geen aansprakelijkheid voor onjuiste, onvolledige dan wel ontijdige 
overbrenging van de inhoud van een verzonden e-mailbericht, noch voor daarbij 
overgebrachte virussen.

APG Algemene Pensioen Groep NV is gevestigd te Heerlen en is ingeschreven in het 
handelsregister van de Kamer van Koophandel Limburg onder nummer 14099617


The information contained in this e-mail is confidential and may be privileged. 
It may be read, copied and used only by the intended recipient. 
If you have received it in error, please contact the sender immediately by 
return e-mail; please delete in this case the e-mail and do not disclose its 
contents to any person. We don't accept liability for any errors, omissions, 
delays of receipt or viruses in the contents of this message which arise as a 
result of e-mail transmission.

APG Algemene Pensioen Groep NV is registered in the trade register of the Chamber 
of Commerce Limburg, The Netherlands, registration number: 14099617


       Message was sent through the cbm-hackers mailing list
Received on 2013-01-17 09:00:03

Archive generated by hypermail 2.2.0.