]> git.sur5r.net Git - cc65/commitdiff
Moved common symbol names out of sources, and into a global include file.
authorGreg King <gregdk@users.sf.net>
Tue, 16 Jul 2013 04:30:56 +0000 (00:30 -0400)
committerGreg King <gregdk@users.sf.net>
Tue, 16 Jul 2013 04:30:56 +0000 (00:30 -0400)
asminc/atmos.inc
libsrc/atmos/joy/atmos-pase.s
libsrc/atmos/mainargs.s
libsrc/atmos/ser/atmos-acia.s
libsrc/atmos/tgi/atmos-228-200-3.s
libsrc/atmos/tgi/atmos-240-200-2.s

index 446f2e11c7c360b377365d5465ad0f6c0db2f873..9ab50931d4df87c91a0e164f395d103a8cf5d65e 100644 (file)
@@ -1,32 +1,81 @@
 ;
-; Oric atmos zeropage and ROM definitions
+; Oric Atmos definitions
+; BASIC 1.1 addresses
 ;
 
 
+; ---------------------------------------------------------------------------
+; Constants
+
+FNAME_LEN       = 16            ; maximum length of file-name
+
+
 ; ---------------------------------------------------------------------------
 ; Zero page
 
+BASIC_BUF       := $35
 
 
 ; ---------------------------------------------------------------------------
 ; Low memory
 
 CAPSLOCK        := $20C
+PATTERN         := $213
 IRQVec          := $245
 CURS_Y          := $268
 CURS_X          := $269
 STATUS          := $26A
 TIMER3          := $276
+CFOUND_NAME     := $293
 KEYBUF          := $2DF
+PARAM1          := $2E1        ; & $2E2
+PARAM2          := $2E3        ; & $2E4
+PARAM3          := $2E5        ; & $2E6
 
 
 ; ---------------------------------------------------------------------------
-; ROM entries
+; I/O locations
 
-PRINT           := $F77C
+; 6522
+.struct VIA                     ; Versatile Interface Adapter
+        .res    $0300
+PRB     .byte                   ; Port Register B
+PRA     .byte                   ; Port Register A
+DDRB    .byte                   ; Data Direction Register B
+DDRA    .byte                   ; Data Direction Register A
+T1      .word                   ; Timer 1
+T1L     .word                   ; Timer 1 Latch
+T2      .word                   ; Timer 2
+SR      .byte                   ; Shift Register
+ACR     .byte                   ; Auxiliary Control Register
+PCR     .byte                   ; Peripheral Control Register
+IFR     .byte                   ; Interrupt Flags Register
+IER     .byte                   ; Interrupt Enable Register
+PRA2    .byte                   ; Port Register A without handshaking
+.endstruct
+
+; 6551
+.struct ACIA                    ; Asynchronous Communications Interface Adapter
+        .res    $031C
+DATA    .byte
+STATUS  .byte
+CMD     .byte                   ; Command register
+CTRL    .byte                   ; Control register
+.endstruct
+
+SCREEN          := $BB80
 
 
 ; ---------------------------------------------------------------------------
-; I/O
+; ROM entries
 
-SCREEN          := $BB80
+TEXT            := $EC21
+HIRES           := $EC33
+CURSET          := $F0C8
+CURMOV          := $F0FD
+DRAW            := $F110
+CHAR            := $F12D
+POINT           := $F1C8
+PAPER           := $F204
+INK             := $F210
+PRINT           := $F77C
index c505a1b0fee0190c142bc3e29035cf1fcf4420cd..0c657584b7709f9055be758adddd98e1e21dca57 100644 (file)
@@ -1,14 +1,15 @@
 ;
 ; P.A.S.E. joystick driver for the Atmos
-; May be used multiple times when linked to the statically application.
+; Can be used multiple times when statically linked to the application.
 ;
-; Stefan Haubenthal, 2009-12-21
-; Based on Ullrich von Bassewitz, 2002-12-20
+; 2002-12-20, Based on Ullrich von Bassewitz's code.
+; 2009-12-21, Stefan Haubenthal
+; 2013-07-15, Greg King
 ;
 
         .include        "joy-kernel.inc"
         .include        "joy-error.inc"
-;       .include        "atmos.inc"
+        .include        "atmos.inc"
 
 
 ; ------------------------------------------------------------------------
 
 JOY_COUNT       = 2             ; Number of joysticks we support
 
-PRA             = $0301
-DDRA            = $0303
-PRA2            = $030F
-
 ; ------------------------------------------------------------------------
 ; Data.
 
@@ -99,24 +96,24 @@ COUNT:
 READ:
         tay
 
-        lda     PRA
+        lda     VIA::PRA
         pha
-        lda     DDRA
+        lda     VIA::DDRA
         pha
         lda     #%11000000
-        sta     DDRA
+        sta     VIA::DDRA
         lda     #%10000000
-        sta     PRA2
-        lda     PRA2
+        sta     VIA::PRA2
+        lda     VIA::PRA2
         sta     temp1
         lda     #%01000000
-        sta     PRA2
-        lda     PRA
+        sta     VIA::PRA2
+        lda     VIA::PRA
         sta     temp2
         pla
-        sta     DDRA
+        sta     VIA::DDRA
         pla
-        sta     PRA2
+        sta     VIA::PRA2
 
         ldx     #0
         tya
index 3e1f6467b4ae32c96474a1b96c87028d27b2c0fc..42a94da512fa205474d39731f09bab76c20c5671 100644 (file)
@@ -1,19 +1,19 @@
 ;
-; Ullrich von Bassewitz, 2003-03-07
-; Stefan Haubenthal, 2011-01-28
+; 2003-03-07, Ullrich von Bassewitz
+; 2011-01-28, Stefan Haubenthal
+; 2013-07-15, Greg King
 ;
 ; Setup arguments for main
 ;
 
         .constructor    initmainargs, 24
         .import         __argc, __argv
+
+        .include        "atmos.inc"
         .macpack        generic
 
 MAXARGS  = 10                   ; Maximum number of arguments allowed
 REM      = $9d                  ; BASIC token-code
-NAME_LEN = 16                   ; maximum length of command-name
-BASIC_BUF = $35
-FNAM     = $293
 
 
 ;---------------------------------------------------------------------------
@@ -29,8 +29,8 @@ FNAM     = $293
 ; Because the buffer, that we're copying into, was zeroed out,
 ; we don't need to add a NUL character.
 ;
-        ldy     #NAME_LEN - 1   ; limit the length
-L0:     lda     FNAM,y
+        ldy     #FNAME_LEN - 1  ; limit the length
+L0:     lda     CFOUND_NAME,y
         sta     name,y
         dey
         bpl     L0
@@ -114,7 +114,7 @@ done:   lda     #<argv
 ;
 .bss
 term:   .res    1
-name:   .res    NAME_LEN + 1
+name:   .res    FNAME_LEN + 1
 
 .data
 argv:   .addr   name
index 9d742bf66e324fda0d749acd3734dcc549b2cf5d..c3d465d120a8823d4eb30731d28d0365c9fb2a4a 100644 (file)
@@ -2,7 +2,8 @@
 ; Serial driver for the Telestrat integrated serial controller and the
 ; Atmos with a serial add-on.
 ;
-; Stefan Haubenthal, 2012-03-05
+; 2012-03-05, Stefan Haubenthal
+; 2013-07-15, Greg King
 ;
 ; The driver is based on the cc65 rs232 module, which in turn is based on
 ; Craig Bruce device driver for the Switftlink/Turbo-232.
@@ -25,6 +26,7 @@
         .include        "zeropage.inc"
         .include        "ser-kernel.inc"
         .include        "ser-error.inc"
+        .include        "atmos.inc"
 
 ; ------------------------------------------------------------------------
 ; Header. Includes jump table
         .addr   CLOSE
         .addr   GET
         .addr   PUT
-        .addr   STATUS
+        .addr   SER_STATUS
         .addr   IOCTL
         .addr   IRQ
 
-;----------------------------------------------------------------------------
-; I/O definitions
-
-ACIA            = $031C
-ACIA_DATA       = ACIA+0        ; Data register
-ACIA_STATUS     = ACIA+1        ; Status register
-ACIA_CMD        = ACIA+2        ; Command register
-ACIA_CTRL       = ACIA+3        ; Control register
-
 ;----------------------------------------------------------------------------
 ; Global variables
 
@@ -142,7 +135,7 @@ CLOSE:
 
         ; Deactivate DTR and disable 6551 interrupts
         lda     #%00001010
-        sta     ACIA_CMD,x
+        sta     ACIA::CMD,x
 
         ; Done, return an error code
 :       lda     #<SER_ERR_OK
@@ -194,10 +187,10 @@ OPEN:
         lda     StopTable,y
         ora     tmp1
         ora     #%00010000              ; Receiver clock source = baudrate
-        sta     ACIA_CTRL
+        sta     ACIA::CTRL
 
         ; Set the value for the command register. We remember the base value
-        ; in RtsOff, since we will have to manipulate ACIA_CMD often.
+        ; in RtsOff, since we will have to manipulate ACIA::CMD often.
         ldy     #SER_PARAMS::PARITY     ; Parity
         lda     (ptr1),y
         tay
@@ -205,7 +198,7 @@ OPEN:
         ora     #%00000001              ; DTR active
         sta     RtsOff
         ora     #%00001000              ; Enable receive interrupts
-        sta     ACIA_CMD
+        sta     ACIA::CMD
 
         ; Done
         stx     Index                   ; Mark port as open
@@ -252,7 +245,7 @@ GET:
         sta     Stopped
         lda     RtsOff
         ora     #%00001000
-        sta     ACIA_CMD
+        sta     ACIA::CMD
 
         ; Get byte from buffer
 :       ldy     RecvHead        ; (41)
@@ -296,11 +289,11 @@ PUT:
         rts
 
 ;----------------------------------------------------------------------------
-; STATUS: Return the status in the variable pointed to by ptr1.
+; SER_STATUS: Return the status in the variable pointed to by ptr1.
 ; Must return an SER_ERR_xx code in a/x.
 
-STATUS:
-        lda     ACIA_STATUS
+SER_STATUS:
+        lda     ACIA::STATUS
         ldx     #$00
         sta     (ptr1,x)
         txa                     ; SER_ERR_OK
@@ -325,10 +318,10 @@ IOCTL:
 IRQ:
         ldx     Index           ; Check for open port
         beq     Done
-        lda     ACIA_STATUS,x   ; Check ACIA status for receive interrupt
+        lda     ACIA::STATUS,x  ; Check ACIA status for receive interrupt
         and     #$08
         beq     Done            ; Jump if no ACIA interrupt
-        lda     ACIA_DATA,x     ; Get byte from ACIA
+        lda     ACIA::DATA,x    ; Get byte from ACIA
         ldy     RecvFreeCnt     ; Check if we have free space left
         beq     Flow            ; Jump if no space in receive buffer
         ldy     RecvTail        ; Load buffer pointer
@@ -342,7 +335,7 @@ IRQ:
 
         ; Assert flow control if buffer space too low
 Flow:   lda     RtsOff
-        sta     ACIA_CMD,x
+        sta     ACIA::CMD,x
         sta     Stopped
         sec                     ; Interrupt handled
 Done:   rts
@@ -361,7 +354,7 @@ Again:  lda     SendFreeCnt
         bne     Quit            ; Bail out
 
         ; Check that ACIA is ready to send
-        lda     ACIA_STATUS
+        lda     ACIA::STATUS
         and     #$10
         bne     Send
         bit     tmp1            ; Keep trying if must try hard
@@ -371,7 +364,7 @@ Quit:   rts
         ; Send byte and try again
 Send:   ldy     SendHead
         lda     SendBuf,y
-        sta     ACIA_DATA
+        sta     ACIA::DATA
         inc     SendHead
         inc     SendFreeCnt
         jmp     Again
index e03376015cf046beebfafa3f4ce492c9e36c4f96..ea7dc7ff300799c434c1e8cb3cdb9d94019476ef 100644 (file)
@@ -2,7 +2,7 @@
 ; Graphics driver for the 228x200x3 palette mode on the Atmos
 ;
 ; Stefan Haubenthal <polluks@sdf.lonestar.org>
-; 2012-08-11, Greg King <greg.king5@verizon.net>
+; 2013-07-15, Greg King <gregdk@users.sf.net>
 ;
 
         .include        "zeropage.inc"
@@ -79,21 +79,7 @@ ERROR:          .res    1       ; Error code
 MODE:           .res    1       ; Graphics mode
 PALETTE:        .res    2
 
-; Constants and table
-; BASIC 1.1 addresses
-PATTERN :=      $213
-PARAM1  :=      $2E1            ; & $2E2
-PARAM2  :=      $2E3            ; & $2E4
-PARAM3  :=      $2E5            ; & $2E6
-TEXT    :=      $EC21
-HIRES   :=      $EC33
-CURSET  :=      $F0C8
-CURMOV  :=      $F0FD
-DRAW    :=      $F110
-CHAR    :=      $F12D
-POINT   :=      $F1C8
-PAPER   :=      $F204
-INK     :=      $F210
+; Constant table
 
 .rodata
 
index e58ac36d2ee998ae67d60dbc50c11c69c92cb5ae..b5e0463d7478b62539db2d7fa9f7a3268552c679 100644 (file)
@@ -2,7 +2,7 @@
 ; Graphics driver for the 240x200x2 monochrome mode on the Atmos
 ;
 ; Stefan Haubenthal <polluks@sdf.lonestar.org>
-; 2012-08-11, Greg King <greg.king5@verizon.net>
+; 2013-07-15, Greg King <gregdk@users.sf.net>
 ;
 
         .include        "zeropage.inc"
@@ -66,10 +66,10 @@ YSIZE   =       8                       ; System font height
 ; Variables mapped to the zero page segment variables. Some of these are
 ; used for passing parameters to the driver.
 
-X1              = ptr1
-Y1              = ptr2
-X2              = ptr3
-Y2              = ptr4
+X1              := ptr1
+Y1              := ptr2
+X2              := ptr3
+Y2              := ptr4
 
 ; Absolute variables used in the code
 
@@ -78,19 +78,7 @@ Y2              = ptr4
 ERROR:          .res    1       ; Error code
 MODE:           .res    1       ; Graphics mode
 
-; Constants and tables
-PARAM1          = $2E1
-PARAM2          = $2E3
-PARAM3          = $2E5
-TEXT            = $EC21
-HIRES           = $EC33
-CURSET          = $F0C8
-CURMOV          = $F0FD
-DRAW            = $F110
-CHAR            = $F12D
-POINT           = $F1C8
-PAPER           = $F204
-INK             = $F210
+; Constant table
 
 .rodata
 
@@ -152,7 +140,7 @@ INIT:
 ; Must set an error code: NO
 ;
 
-DONE            = TEXT
+DONE            := TEXT
 
 ; ------------------------------------------------------------------------
 ; GETERROR: Return the error code in A and clear it.
@@ -181,7 +169,7 @@ CONTROL:
 ; Must set an error code: NO
 ;
 
-CLEAR           = HIRES
+CLEAR           := HIRES
 
 ; ------------------------------------------------------------------------
 ; SETVIEWPAGE: Set the visible page. Called with the new page in A (0..n).