]> git.sur5r.net Git - cc65/blobdiff - asminc/atari.inc
Fixed _textcolor definition.
[cc65] / asminc / atari.inc
index 615765132827978f6ce2938040fbed9e453d7cef..7c46b3252d26e6bed798a2347b7ca51300ef4ead 100644 (file)
@@ -7,6 +7,7 @@
 ; - Atari OS manual - XL addendum
 ; - Atari XL/XE rev.2 source code, Atari 1984
 ; - Mapping the Atari - revised edition, Ian Chadwick 1985
+; - SpartaDOS-X User Guide  (Aug-8-2016)
 ;
 ; ##old##       old OS rev.B label - moved or deleted
 ; ##1200xl##    new label introduced in 1200XL OS (rev.10/11)
@@ -101,11 +102,28 @@ SIO_FORMAT   = $21      ;format disk (default density)
 SIO_FORMATS  = $22      ;1050: format medium density
 SIO_CONFIG   = $44      ;configure drive
 SIO_CONFIGSF = $4B      ;slow/fast configure drive??
+SIO_RDPERCOM = $4E      ;read PERCOM block (XF551)
+SIO_WRPERCOM = $4F      ;write PERCOM block (XF551)
 SIO_WRITE    = $50      ;write sector
 SIO_READ     = $52      ;read sector
 SIO_STAT     = $53      ;get status information
-SIO_VERIFY   = $56      ;verify sector 
+SIO_VERIFY   = $56      ;verify sector
 SIO_WRITEV   = $57      ;write sector with verify
+SIO_WRITETRK = $60      ;write track (Speedy)
+SIO_READTRK  = $62      ;read track (Speedy)
+
+; SIO Status Code (DSTATS)
+; Input: data direction
+;     Bit #7 - W (write operation)
+;         #6 - R (read operation)
+; Output: status code
+;     $01 (001) -- OPERATION COMPLETE (NO ERRORS)
+;     $8A (138) -- DEVICE TIMEOUT (DOESN'T RESPOND)
+;     $8B (139) -- DEVICE NAK
+;     $8C (140) -- SERIAL BUS INPUT FRAMING ERROR
+;     $8E (142) -- SERIAL BUS DATA FRAME OVERRUN ERROR
+;     $8F (143) -- SERIAL BUS DATA FRAME CHECKSUM ERROR
+;     $90 (144) -- DEVICE DONE ERROR
 
 ; Character and Key Code Equates
 
@@ -166,6 +184,7 @@ FNTFND  = 170           ;($AA) file not found
 PNTINV  = 171           ;($AB) point invalid
 BADDSK  = 173           ;($AD) bad disk
 INCFMT  = 176           ;($B0) DOS 3: incompatible file system
+XNTBIN  = 180           ;($B4) XDOS: file not binary
 
 ; DCB Device Bus Equates
 
@@ -301,7 +320,7 @@ APPMHI  = $0E           ;APPLICATIONS MEMORY HI LIMIT
 
 INTZBS  = $10           ;INTERRUPT HANDLER
 
-POKMSK  = $10           ;SYSTEM MASK FOR POKEY IRG ENABLE
+POKMSK  = $10           ;SYSTEM MASK FOR POKEY IRQ ENABLE (shadow of IRQEN)
 BRKKEY  = $11           ;BREAK KEY FLAG
 RTCLOK  = $12           ;REAL TIME CLOCK (IN 16 MSEC UNITS>
 BUFADR  = $15           ;INDIRECT BUFFER ADDRESS REGISTER
@@ -468,10 +487,10 @@ VKEYBD  = $0208         ;POKEY KEYBOARD IRQ VECTOR
 VSERIN  = $020A         ;POKEY SERIAL INPUT READY IRQ
 VSEROR  = $020C         ;POKEY SERIAL OUTPUT READY IRQ
 VSEROC  = $020E         ;POKEY SERIAL OUTPUT COMPLETE IRQ
-VTIMR1  = $0210         ;POKEY TIMER 1 IRG
-VTIMR2  = $0212         ;POKEY TIMER 2 IRG
-VTIMR4  = $0214         ;POKEY TIMER 4 IRG
-VIMIRQ  = $0216         ;IMMEDIATE IRG VECTOR
+VTIMR1  = $0210         ;POKEY TIMER 1 IRQ
+VTIMR2  = $0212         ;POKEY TIMER 2 IRQ
+VTIMR4  = $0214         ;POKEY TIMER 4 IRQ
+VIMIRQ  = $0216         ;IMMEDIATE IRQ VECTOR
 CDTMV1  = $0218         ;COUNT DOWN TIMER 1
 CDTMV2  = $021A         ;COUNT DOWN TIMER 2
 CDTMV3  = $021C         ;COUNT DOWN TIMER 3
@@ -672,7 +691,7 @@ CASFLG  = $030F         ;CASSETTE MODE WHEN SET
 TIMER2  = $0310         ;2-byte final baud rate timer value
 TEMP1   = $0312         ;TEMPORARY STORAGE REGISTER
 ;TEMP2  = $0314         ;##old## TEMPORARY STORAGE REGISTER
-TEMP2   = $0313         ;##1200xl## 1-byte temporary 
+TEMP2   = $0313         ;##1200xl## 1-byte temporary
 PTIMOT  = $0314         ;##1200xl## 1-byte printer timeout
 TEMP3   = $0315         ;TEMPORARY STORAGE REGISTER
 SAVIO   = $0316         ;SAVE SERIAL IN DATA PORT
@@ -739,13 +758,49 @@ FPSCR1  = $05EC         ;6-byte floating point temporary
 
 DOS     = $0700
 
+;-------------------------------------------------------------------------
+; SpartaDOS-X Definitions
+;-------------------------------------------------------------------------
+
+SDX_FLAG     = DOS              ; 'S' for SpartaDOS
+SDX_VERSION  = $0701            ; SD version (e.g. $32 = 3.2, $40 = 4.0)
+                                ; address $0702 contains sub-version, e.g.
+                                ; 8 in case of SDX 4.48
+SDX_KERNEL   = $0703            ; SDX kernel entry point
+SDX_BLOCK_IO = $0706            ; block I/O entry point
+SDX_MISC     = $0709            ; "misc" entry point
+SDX_DEVICE   = $0761
+SDX_DATE     = $077B            ; day, month, year (3 bytes)
+SDX_TIME     = $077E            ; hour, min, sec (3 bytes)
+SDX_DATESET  = $0781
+SDX_PATH     = $07A0            ; 64 bytes
+SDX_IFSYMBOL = $07EB            ; only valid on SDX 4.40 or newer
+SDX_S_LOOKUP = SDX_IFSYMBOL     ; alternative name for SDX_IFSYMBOL
+
+; values for SDX_DEVICE
+
+SDX_CLK_DEV  = $10              ; clock device
+
+; clock device functions
+
+SDX_KD_GETTD = 100              ; get time and date
+SDX_KD_SETTD = 101              ; set time and date
+
 ;-------------------------------------------------------------------------
 ; Cartridge Address Equates
 ;-------------------------------------------------------------------------
 
 CARTCS  = $BFFA         ;##rev2## 2-byte cartridge coldstart address
 CART    = $BFFC         ;##rev2## 1-byte cartridge present indicator
+                        ;0=Cart Exists
 CARTFG  = $BFFD         ;##rev2## 1-byte cartridge flags
+                        ;D7  0=Not a Diagnostic Cart
+                        ;    1=Is a Diagnostic cart and control is
+                        ;      given to cart before any OS is init.
+                        ;D2  0=Init but Do not Start Cart
+                        ;    1=Init and Start Cart
+                        ;D0  0=Do not boot disk
+                        ;    1=Boot Disk
 CARTAD  = $BFFE         ;##rev2## 2-byte cartridge start vector
 
 ;-------------------------------------------------------------------------
@@ -753,83 +808,7 @@ CARTAD  = $BFFE         ;##rev2## 2-byte cartridge start vector
 ;-------------------------------------------------------------------------
 
 GTIA    = $D000         ;CTIA/GTIA area
-
-; Read/Write Addresses
-
-CONSOL  = $D01F         ;console switches and speaker control
-
-; Read Addresses
-
-M0PF    = $D000         ;missile 0 and playfield collision
-M1PF    = $D001         ;missile 1 and playfield collision
-M2PF    = $D002         ;missile 2 and playfield collision
-M3PF    = $D003         ;missile 3 and playfield collision
-
-P0PF    = $D004         ;player 0 and playfield collision
-P1PF    = $D005         ;player 1 and playfield collision
-P2PF    = $D006         ;player 2 and playfield collision
-P3PF    = $D007         ;player 3 and playfield collision
-
-M0PL    = $D008         ;missile 0 and player collision
-M1PL    = $D009         ;missile 1 and player collision
-M2PL    = $D00A         ;missile 2 and player collision
-M3PL    = $D00B         ;missile 3 and player collision
-
-P0PL    = $D00C         ;player 0 and player collision
-P1PL    = $D00D         ;player 1 and player collision
-P2PL    = $D00E         ;player 2 and player collision
-P3PL    = $D00F         ;player 3 and player collision
-
-TRIG0   = $D010         ;joystick trigger 0
-TRIG1   = $D011         ;joystick trigger 1
-
-TRIG2   = $D012         ;cartridge interlock
-TRIG3   = $D013         ;ACMI module interlock
-
-PAL     = $D014         ;##rev2## PAL/NTSC indicator
-
-; Write Addresses
-
-HPOSP0  = $D000         ;player 0 horizontal position
-HPOSP1  = $D001         ;player 1 horizontal position
-HPOSP2  = $D002         ;player 2 horizontal position
-HPOSP3  = $D003         ;player 3 horizontal position
-
-HPOSM0  = $D004         ;missile 0 horizontal position
-HPOSM1  = $D005         ;missile 1 horizontal position
-HPOSM2  = $D006         ;missile 2 horizontal position
-HPOSM3  = $D007         ;missile 3 horizontal position
-
-SIZEP0  = $D008         ;player 0 size
-SIZEP1  = $D009         ;player 1 size
-SIZEP2  = $D00A         ;player 2 size
-SIZEP3  = $D00B         ;player 3 size
-
-SIZEM   = $D00C         ;missile sizes
-
-GRAFP0  = $D00D         ;player 0 graphics
-GRAFP1  = $D00E         ;player 1 graphics
-GRAFP2  = $D00F         ;player 2 graphics
-GRAFP3  = $D010         ;player 3 graphics
-
-GRAFM   = $D011         ;missile graphics
-
-COLPM0  = $D012         ;player-missile 0 color/luminance
-COLPM1  = $D013         ;player-missile 1 color/luminance
-COLPM2  = $D014         ;player-missile 2 color/luminance
-COLPM3  = $D015         ;player-missile 3 color/luminance
-
-COLPF0  = $D016         ;playfield 0 color/luminance
-COLPF1  = $D017         ;playfield 1 color/luminance
-COLPF2  = $D018         ;playfield 2 color/luminance
-COLPF3  = $D019         ;playfield 3 color/luminance
-
-COLBK   = $D01A         ;background color/luminance
-
-PRIOR   = $D01B         ;priority select
-VDELAY  = $D01C         ;vertical delay
-GRACTL  = $D01D         ;graphic control
-HITCLR  = $D01E         ;collision clear
+.include "atari_gtia.inc"
 
 ;-------------------------------------------------------------------------
 ; PBI Address Equates
@@ -845,6 +824,118 @@ PDVI    = $D1FF         ;##rev2## parallel device IRQ status
 
 PDVS    = $D1FF         ;##rev2## parallel device select
 
+;-------------------------------------------------------------------------
+; POKEY Address Equates
+;-------------------------------------------------------------------------
+
+POKEY     = $D200         ;POKEY area
+.include  "atari_pokey.inc"
+
+; POKEY KBCODE Values
+
+KEY_NONE    = $FF
+
+KEY_0       = $32
+KEY_1       = $1F
+KEY_2       = $1E
+KEY_3       = $1A
+KEY_4       = $18
+KEY_5       = $1D
+KEY_6       = $1B
+KEY_7       = $33
+KEY_8       = $35
+KEY_9       = $30
+
+KEY_A       = $3F
+KEY_B       = $15
+KEY_C       = $12
+KEY_D       = $3A
+KEY_E       = $2A
+KEY_F       = $38
+KEY_G       = $3D
+KEY_H       = $39
+KEY_I       = $0D
+KEY_J       = $01
+KEY_K       = $05
+KEY_L       = $00
+KEY_M       = $25
+KEY_N       = $23
+KEY_O       = $08
+KEY_P       = $0A
+KEY_Q       = $2F
+KEY_R       = $28
+KEY_S       = $3E
+KEY_T       = $2D
+KEY_U       = $0B
+KEY_V       = $10
+KEY_W       = $2E
+KEY_X       = $16
+KEY_Y       = $2B
+KEY_Z       = $17
+
+KEY_COMMA       = $20
+KEY_PERIOD      = $22
+KEY_SLASH       = $26
+KEY_SEMICOLON   = $02
+KEY_PLUS        = $06
+KEY_ASTERISK    = $07
+KEY_DASH        = $0E
+KEY_EQUALS      = $0F
+KEY_LESSTHAN    = $36
+KEY_GREATERTHAN = $37
+
+KEY_ESC     = $1C
+KEY_TAB     = $2C
+KEY_SPACE   = $21
+KEY_RETURN  = $0C
+KEY_DELETE  = $34
+KEY_CAPS    = $3C
+KEY_INVERSE = $27
+KEY_HELP    = $11
+
+KEY_F1      = $03
+KEY_F2      = $04
+KEY_F3      = $13
+KEY_F4      = $14
+
+KEY_SHIFT   = $40
+KEY_CTRL    = $80
+
+; Composed keys
+
+KEY_EXCLAMATIONMARK = KEY_1 | KEY_SHIFT
+KEY_QUOTE           = KEY_2 | KEY_SHIFT
+KEY_HASH            = KEY_3 | KEY_SHIFT
+KEY_DOLLAR          = KEY_4 | KEY_SHIFT
+KEY_PERCENT         = KEY_5 | KEY_SHIFT
+KEY_AMPERSAND       = KEY_6 | KEY_SHIFT
+KEY_APOSTROPHE      = KEY_7 | KEY_SHIFT
+KEY_AT              = KEY_8 | KEY_SHIFT
+KEY_OPENINGPARAN    = KEY_9 | KEY_SHIFT
+KEY_CLOSINGPARAN    = KEY_0 | KEY_SHIFT
+KEY_UNDERLINE       = KEY_DASH | KEY_SHIFT
+KEY_BAR             = KEY_EQUALS | KEY_SHIFT
+KEY_COLON           = KEY_SEMICOLON | KEY_SHIFT
+KEY_BACKSLASH       = KEY_PLUS | KEY_SHIFT
+KEY_CIRCUMFLEX      = KEY_ASTERISK | KEY_SHIFT
+KEY_OPENINGBRACKET  = KEY_COMMA | KEY_SHIFT
+KEY_CLOSINGBRACKET  = KEY_PERIOD | KEY_SHIFT
+KEY_QUESTIONMARK    = KEY_SLASH | KEY_SHIFT
+KEY_CLEAR           = KEY_LESSTHAN | KEY_SHIFT
+KEY_INSERT          = KEY_GREATERTHAN | KEY_SHIFT
+
+KEY_UP              = KEY_UNDERLINE | KEY_CTRL
+KEY_DOWN            = KEY_EQUALS | KEY_CTRL
+KEY_LEFT            = KEY_PLUS | KEY_CTRL
+KEY_RIGHT           = KEY_ASTERISK | KEY_CTRL
+
+;-------------------------------------------------------------------------
+; ANTIC Address Equates
+;-------------------------------------------------------------------------
+
+ANTIC     = $D400         ;ANTIC area
+.include  "atari_antic.inc"
+
 ; PBI RAM Address Equates
 
 PBIRAM  = $D600         ;##rev2## parallel bus interface RAM area
@@ -857,52 +948,6 @@ PDIRQV  = $D808         ;##rev2## parallel device IRQ vector
 PDID2   = $D80B         ;##rev2## parallel device ID 2
 PDVV    = $D80D         ;##rev2## parallel device vector table
 
-;-------------------------------------------------------------------------
-; POKEY Address Equates
-;-------------------------------------------------------------------------
-
-POKEY   = $D200         ;POKEY area
-
-; Read Addresses
-
-POT0    = $D200         ;potentiometer 0
-POT1    = $D201         ;potentiometer 1
-POT2    = $D202         ;potentiometer 2
-POT3    = $D203         ;potentiometer 3
-POT4    = $D204         ;potentiometer 4
-POT5    = $D205         ;potentiometer 5
-POT6    = $D206         ;potentiometer 6
-POT7    = $D207         ;potentiometer 7
-
-ALLPOT  = $D208         ;potentiometer port status
-KBCODE  = $D209         ;keyboard code
-RANDOM  = $D20A         ;random number generator
-SERIN   = $D20D         ;serial port input
-IRQST   = $D20E         ;IRQ interrupt status
-SKSTAT  = $D20F         ;serial port and keyboard status
-
-; Write Addresses
-
-AUDF1   = $D200         ;channel 1 audio frequency
-AUDC1   = $D201         ;channel 1 audio control
-
-AUDF2   = $D202         ;channel 2 audio frequency
-AUDC2   = $D203         ;channel 2 audio control
-
-AUDF3   = $D204         ;channel 3 audio frequency
-AUDC3   = $D205         ;channel 3 audio control
-
-AUDF4   = $D206         ;channel 4 audio frequency
-AUDC4   = $D207         ;channel 4 audio control
-
-AUDCTL  = $D208         ;audio control
-STIMER  = $D209         ;start timers
-SKRES   = $D20A         ;reset SKSTAT status
-POTGO   = $D20B         ;start potentiometer scan sequence
-SEROUT  = $D20D         ;serial port output
-IRQEN   = $D20E         ;IRQ interrupt enable
-SKCTL   = $D20F         ;serial port and keyboard control
-
 ;-------------------------------------------------------------------------
 ; PIA Address Equates
 ;-------------------------------------------------------------------------
@@ -915,33 +960,6 @@ PORTB   = $D301         ;port B direction register or memory management
 PACTL   = $D302         ;port A control
 PBCTL   = $D303         ;port B control
 
-;-------------------------------------------------------------------------
-; ANTIC Address Equates
-;-------------------------------------------------------------------------
-
-ANTIC   = $D400         ;ANTIC area
-
-; Read Addresses
-
-VCOUNT  = $D40B         ;vertical line counter
-PENH    = $D40C         ;light pen horizontal position
-PENV    = $D40D         ;light pen vertical position
-NMIST   = $D40F         ;NMI interrupt status
-
-; Write Addresses
-
-DMACTL  = $D400         ;DMA control
-CHACTL  = $D401         ;character control
-DLISTL  = $D402         ;low display list address
-DLISTH  = $D403         ;high display list address
-HSCROL  = $D404         ;horizontal scroll
-VSCROL  = $D405         ;vertical scroll
-PMBASE  = $D407         ;player-missile base address
-CHBASE  = $D409         ;character base address
-WSYNC   = $D40A         ;wait for HBLANK synchronization
-NMIEN   = $D40E         ;NMI enable
-NMIRES  = $D40F         ;NMI interrupt reset
-
 ;-------------------------------------------------------------------------
 ; Floating Point Package Address Equates
 ;-------------------------------------------------------------------------
@@ -985,16 +1003,25 @@ CASETV  = $E440         ;cassette handler vector table
 
 DISKIV  = $E450         ;vector to initialize DIO
 DSKINV  = $E453         ;vector to DIO
-.if .defined(__ATARIXL__)
-CIOV   = $C0
-SIOV   = $C3
-CIOV_org    = $E456         ;vector to CIO
-SIOV_org    = $E459         ;vector to SIO
+.ifdef __ATARIXL__
+.ifndef SHRAM_HANDLERS
+.import CIO_handler, SIO_handler, SETVBV_handler
+.endif
+.define CIOV    CIO_handler
+.define SIOV    SIO_handler
+.define SETVBV  SETVBV_handler
+CIOV_org    = $E456     ;vector to CIO
+SIOV_org    = $E459     ;vector to SIO
+SETVBV_org  = $E45C     ;vector to set VBLANK parameters
 .else
 CIOV    = $E456         ;vector to CIO
 SIOV    = $E459         ;vector to SIO
-.endif
 SETVBV  = $E45C         ;vector to set VBLANK parameters
+; aliases in order not to have to sprinkle common code with .ifdefs
+CIOV_org    = CIOV
+SIOV_org    = SIOV
+SETVBV_org  = SETVBV
+.endif
 SYSVBV  = $E45F         ;vector to process immediate VBLANK
 XITVBV  = $E462         ;vector to process deferred VBLANK
 SIOINV  = $E465         ;vector to initialize SIO
@@ -1030,7 +1057,7 @@ RADON   = 0             ;INDICATES RADIANS
 DEGON   = 6             ;INDICATES DEGREES
 
 ASCZER  = '0'           ;ASCII ZERO
-COLON   = $3A           ;ASCII COLON 
+COLON   = $3A           ;ASCII COLON
 CR      = $9B           ;SYSTEM EOL (CARRIAGE RETURN)
 
 ;-------------------------------------------------------------------------
@@ -1102,80 +1129,40 @@ diopp_size   = 5        ; size of structure
 ; VALUES for dos_type
 ;-------------------------------------------------------------------------
 
-ATARIDOS     = 0
-SPARTADOS    = 1
-OSADOS       = 2        ; OS/A+
-MYDOS        = 3
+SPARTADOS    = 0
+REALDOS      = 1
+BWDOS        = 2
+OSADOS       = 3        ; OS/A+
 XDOS         = 4
+ATARIDOS     = 5
+MYDOS        = 6
 NODOS        = 255
+; The DOSes with dos_type below or equal MAX_DOS_WITH_CMDLINE do support
+; command line arguments.
+MAX_DOS_WITH_CMDLINE = XDOS
 
 ;-------------------------------------------------------------------------
-; Antic opcodes
+; XDOS defines (version 2.4, taken from xdos24.pdf)
 ;-------------------------------------------------------------------------
 
-; usage example:
-;
-; ScreenDL:
-; .byte DL_BLK8
-; .byte DL_BLK8
-; .byte DL_CHR40x8x1 + DL_LMS + DL_DLI
-; .word ScreenAlignment
-; .byte DL_BLK1 + DL_DLI
-; .byte DL_MAP320x1x1 + DL_LMS
-; .word Screen
-;
-; .repeat 99
-; .byte DL_MAP320x1x1
-; .endrepeat
-; .byte DL_MAP320x1x1 + DL_LMS
-; .word Screen + 40 * 100       ; 100 lines a 40 byte, 'Screen' has to be aligned correctly!
-; .repeat 92
-; .byte DL_MAP320x1x1
-; .endrepeat
-;
-; .byte DL_JVB
-
-; absolute instructions (non mode lines)
-
-DL_JMP  = 1
-DL_JVB  = 65
-
-DL_BLK1  = 0
-DL_BLK2  = 16
-DL_BLK3  = 32
-DL_BLK4  = 48
-DL_BLK5  = 64
-DL_BLK6  = 80
-DL_BLK7  = 96
-DL_BLK8  = 112
-
-; absolute instructions (mode lines)
-
-DL_CHR40x8x1  = 2               ; monochrome, 40 character & 8 scanlines per mode line (GR. 0)
-DL_CHR40x10x1 = 3               ; monochrome, 40 character & 10 scanlines per mode line
-DL_CHR40x8x4  = 4               ; colour, 40 character & 8 scanlines per mode line (GR. 12)
-DL_CHR40x16x4 = 5               ; colour, 40 character & 16 scanlines per mode line (GR. 13)
-DL_CHR20x8x2  = 6               ; colour (duochrome per character), 20 character & 8 scanlines per mode line (GR. 1)
-DL_CHR20x16x2 = 7               ; colour (duochrome per character), 20 character & 16 scanlines per mode line (GR. 2)
-
-DL_MAP40x8x4  = 8               ; colour, 40 pixel & 8 scanlines per mode line (GR. 3)
-DL_MAP80x4x2  = 9               ; 'duochrome', 80 pixel & 4 scanlines per mode line (GR.4) 
-DL_MAP80x4x4  = 10              ; colour, 80 pixel & 4 scanlines per mode line (GR.5) 
-DL_MAP160x2x2 = 11              ; 'duochrome', 160 pixel & 2 scanlines per mode line (GR.6) 
-DL_MAP160x1x2 = 12              ; 'duochrome', 160 pixel & 1 scanline per mode line (GR.14) 
-DL_MAP160x2x4 = 13              ; 4 colours, 160 pixel & 2 scanlines per mode line (GR.7) 
-DL_MAP160x1x4 = 14              ; 4 colours, 160 pixel & 1 scanline per mode line (GR.15) 
-DL_MAP320x1x1 = 15              ; monochrome, 320 pixel & 1 scanline per mode line (GR.8) 
-
-; modifiers on mode lines...
-
-DL_HSCROL = 16
-DL_VSCROL = 32
-DL_LMS    = 64
-
-; general modifier...
-
-DL_DLI    = 128
+XOPT         = $070B    ; XDOS options
+XCAR         = $070C    ; XDOS cartridge address (+ $70D)
+XPAT         = $086F    ; XDOS bugfix and patch number
+XVER         = $0870    ; XDOS version number
+XFILE        = $087D    ; XDOS filename buffer
+XLINE        = $0880    ; XDOS DUP input line
+XGLIN        = $0871    ; get line
+XSKIP        = $0874    ; skip parameter
+.ifdef __ATARIXL__
+.ifndef SHRAM_HANDLERS
+.import XMOVE_handler
+.endif
+.define XMOVE XMOVE_handler
+XMOVE_org    = $0877    ; move filename
+.else
+XMOVE        = $0877    ; move filename
+.endif
+XGNUM        = $087A    ; get number
 
 ;-------------------------------------------------------------------------
 ; End of atari.inc