> 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 listReceived on 2013-01-17 09:00:03
Archive generated by hypermail 2.2.0.