Subversion Repositories MB01 Project

Rev

Blame | Last modification | View Log | Download | RSS feed

;----------------------------------------------------------
; SEGM.INC
; PROGETTO: B1601
;
; Definizione segmenti
;----------------------------------------------------------

; il file puo' essere incluso solo all'interno di GLOBAL.INC
.IFNDEF         _GLOBAL_INC_
.EXIT           "ERROR: This file cannot be included."
.ENDIF

; test definizione banco corrente
.IFDEF                  _BANKF8_
_CURBANK_       .SET    $F8
.ELSE
        .IFDEF          _BANKF9_
_CURBANK_       .SET    $F9
        .ELSE
                .IFDEF  _BANKFA_
_CURBANK_       .SET    $FA
                .ELSE
                        .IFDEF  _BANKFB_
_CURBANK_       .SET    $FB
                        .ELSE
                                .IFDEF  _BANKFC_
_CURBANK_       .SET    $FC
                                .ELSE
                                        .IFDEF  _BANKFD_
_CURBANK_       .SET    $FD
                                        .ELSE
                                                .IFDEF  _BANKFE_
_CURBANK_       .SET    $FE
                                                .ELSE
                                                        .IFDEF  _BANKFF_
_CURBANK_       .SET    $FF
                                                        .ELSE

.EXIT           "ERROR: missing _BANKXX_ defs."

                                                        .ENDIF
                                                .ENDIF
                                        .ENDIF
                                .ENDIF
                        .ENDIF
                                                
                .ENDIF
        .ENDIF
.ENDIF


; definizione segmenti utilizzati
; nel file di start si forza il linking dei segmenti anche se vuoti
; tolti riferimenti a page0 segment altrimenti il linker non funziona
.IFDEF _START_INC_

;LIBCODE:       .SECTION range $F8FC00 $F8FDFF          ;Library Jump Table
;LIBCODE:       .SECTION                                ;Library Jump Table
LIBCODE:        .SECTION range $F80000 $F801FF          ;Library Jump Table
LIBCODE_ADDR    .EQU    $
                .ENDS

;CODEF8:                .SECTION range $F80000 $F8EFFF          ;Segment F8
CODEF8:         .SECTION range $F80200 $F8EFFF          ;Segment F8
CODEF8_ADDR     .EQU    $
                .ENDS

SYSCODE:        .SECTION range $F8F000 $F8F9FF          ;System
SYSCODE_ADDR    .EQU    $
                .ENDS

SYSTBLE:        .SECTION range $F8FA00 $F8FDFF          ;Sys Funcs Table
SYSTBLE_ADDR    .EQU    $
                .GLOBAL SYSTBLE_ADDR
                .ENDS

CODE:           .SECTION range $F8FE00 $F8FFDF          ;Start Segment
CODE_ADDR       .EQU    $
                .ENDS

; vettori locati a F8FFE0 - F8FFFF
SYSVECTRS:      .SECTION range $F8FFE0 $F8FFFF          ;Vectors
SYSVECTRS_ADDR  .EQU    $
                .ENDS

STARTF9:        .SECTION range $F90000 $F9FFFF          ;Start F9
STARTF9_ADDR    .EQU    $
                .ENDS
                
CODEF9:         .SECTION range $F90000 $F9FFFF          ;Segment F9
CODEF9_ADDR     .EQU    $
                .ENDS

SLIBFA:         .SECTION range $FA0000 $FAFFFF          ;Segment FA
SLIBFA_ADDR     .EQU    $
                .ENDS

CODEFA:         .SECTION range $FA0000 $FAFFFF          ;Segment FA
CODEFA_ADDR     .EQU    $
                .ENDS
                
CODEFB:         .SECTION range $FB0000 $FBFFFF          ;Segment FB
CODEFB_ADDR     .EQU    $
                .ENDS

CODEFC:         .SECTION range $FC0000 $FCFFFF          ;Segment FC
CODEFC_ADDR     .EQU    $
                .ENDS

CODEFD:         .SECTION range $FD0000 $FDFFFF          ;Segment FD
CODEFD_ADDR     .EQU    $
                .ENDS

CODEFE:         .SECTION range $FE0000 $FEFFFF          ;Segment FE
CODEFE_ADDR     .EQU    $
                .ENDS

MONSEG:         .SECTION range $FF0000 $FF000F          ;Start Monitor
MONSEG_ADDR     .EQU    $
                .ENDS

CODEFF:         .SECTION range $FF0010 $FFF7FF          ;Segment FF
CODEFF_ADDR     .EQU    $
                .ENDS

VDCFONT:        .SECTION range $FFF800 $FFFFFF          ;VDC Font
VDCFONT_ADDR    .EQU    $
                .ENDS

_DPDSK:         .SECTION page0, ref_only        ;DISK ID D.P.
_DPDSK_ADDR     .EQU    $
                .ENDS

;DIRP00:                .SECTION page0, ref_only, common        ;Direct-Page 00
;DIRP00_ADDR    .EQU    $
;               .ENDS

;DIRP01:                .SECTION page0, ref_only, common        ;Direct-Page 01
;DIRP01_ADDR    .EQU    $
;               .ENDS

;DIRP02:                .SECTION page0, ref_only, common        ;Direct-Page 02
;DIRP02_ADDR    .EQU    $
;               .ENDS

;DIRP03:                .SECTION page0, ref_only, common        ;Direct-Page 03
;DIRP03_ADDR    .EQU    $
;               .ENDS

;DIRP04:                .SECTION page0, ref_only, common        ;Direct-Page 04
;DIRP04_ADDR    .EQU    $
;               .ENDS

;DPFSW:         .SECTION page0, ref_only, common        ;Direct Page f.s. working area
;DPFSW_ADDR     .EQU    $
;               .ENDS

;DPCBM:         .SECTION page0, ref_only, common        ;CBM Direct-Page 
;DPCBM_ADDR     .EQU    $
;               .ENDS

;DPCBMFS:       .SECTION page0, ref_only, common        ;CBM FS Direct-Page 
;DPCBMFS_ADDR   .EQU    $
;               .ENDS

; segmenti per definire le jmp table
;JMPTF8:                .SECTION common         ;Jmp-Table $F8
;JMPTF8_ADDR    .EQU    $
;               .ENDS

;JMPTF9:                .SECTION common         ;Jmp-Table $F9
;JMPTF9_ADDR    .EQU    $
;               .ENDS

CBMJMP:         .SECTION range $FEFF00 $FEFFFF  ;CBM Jmp-Table $FE
CBMJMP_ADDR     .EQU    $
                .ENDS

CBMHIM:         .SECTION ref_only, common       ; CBM text work area
CBMHIM_ADDR     .EQU    $
                .ENDS
                
CBMHIV:         .SECTION ref_only, common       ; CBM var/p-code area
CBMHIV_ADDR     .EQU    $
                .ENDS

;CBMHXM:                .SECTION ref_only, common       ; CBM exchange area
;CBMHXM_ADDR    .EQU    $
;               .ENDS

CBMFSW:         .SECTION common, ref_only       ; CBM FS work area
CBMFSW_ADDR     .EQU    $
                .ENDS

CBMVIEC:        .SECTION common, ref_only       ; CBM Virtual IEC
CBMVIEC_ADDR    .EQU    $
                .ENDS
                
; definizione segmenti negli altri moduli
.ELSE


.IFDEF  _BANKF8_
CODEF8:         .SECTION
                .ENDS

.IFDEF _SYSTBLE_
SYSTBLE:        .SECTION
                .ENDS
.ENDIF

;LIBCODE:       .SECTION range $F8FC00 $F8FDFF, common
LIBCODE:        .SECTION common, ref_only
;JMPTOFS                .EQU    $FC00 
JMPTOFS         .EQU    $0000 
                .ENDS

;JMPTF8:                .SECTION common
;JMPTOFS                .EQU    $0000 
;               .ENDS
.ENDIF

.IFDEF  _BANKF9_
STARTF9:        .SECTION
                .ENDS

CODEF9:         .SECTION
                .ENDS

;JMPTF9:                .SECTION common
;JMPTOFS                .EQU    $0000
;               .ENDS
.ENDIF

.IFDEF  _BANKFA_
SLIBFA:         .SECTION
                .ENDS

CODEFA:         .SECTION
                .ENDS
.ENDIF

.IFDEF  _BANKFB_
CODEFB:         .SECTION
                .ENDS
.ENDIF

.IFDEF  _BANKFC_
CODEFC:         .SECTION
                .ENDS
.ENDIF

.IFDEF  _BANKFD_
CODEFD:         .SECTION
                .ENDS

CBMFSW:         .SECTION ref_only
                .ENDS
        
CBMVIEC:        .SECTION ref_only
                .ENDS
.ENDIF

.IFDEF  _BANKFE_
CODEFE:         .SECTION
                .ENDS

CBMJMP:         .SECTION
                .ENDS

CBMHIM:         .SECTION ref_only, common
                .ENDS

CBMHIV:         .SECTION ref_only, common
                .ENDS

;CBMHXM:                .SECTION ref_only, common
;               .ENDS

.ENDIF

.IFDEF  _BANKFF_
CODEFF:         .SECTION
                .ENDS

MONSEG:         .SECTION
                .ENDS
.ENDIF

DIRP00:         .SECTION page0, ref_only, common
                .ENDS

DIRP01:         .SECTION page0, ref_only, common
                .ENDS

DIRP02:         .SECTION page0, ref_only, common
                .ENDS

DIRP03:         .SECTION page0, ref_only, common
                .ENDS

DIRP04:         .SECTION page0, ref_only, common
                .ENDS

DPFSW:          .SECTION page0, ref_only, common
                .ENDS

DPCBM:          .SECTION page0, ref_only, common 
                .ENDS

DPCBMFS:        .SECTION page0, ref_only, common 
                .ENDS

.ENDIF          ;; _START_INC_

;----------------------------------------------------------------------

; segmenti per definire le jmp table

;JMPTF8:                .SECTION common

; indirizzo DP 01 - $0100
DP01ADDR        .EQU    $0100
; indirizzo DP 02 - $0200
DP02ADDR        .EQU    $0200
; indirizzo DP 03 - $0300
DP03ADDR        .EQU    $0300
; indirizzo DP 04 - $0400
DP04ADDR        .EQU    $0400
; indirizzo DP 05 - $0500
DP05ADDR        .EQU    $0500