Atari: add support for BW-DOS. Initially contributed by Daniel Serpell.
This commit is contained in:
parent
fe7845b5f0
commit
6dc7309e50
6 changed files with 38 additions and 12 deletions
|
@ -1033,10 +1033,11 @@ diopp_size = 5 ; size of structure
|
|||
|
||||
SPARTADOS = 0
|
||||
REALDOS = 1
|
||||
OSADOS = 2 ; OS/A+
|
||||
XDOS = 3
|
||||
ATARIDOS = 4
|
||||
MYDOS = 5
|
||||
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.
|
||||
|
|
|
@ -261,11 +261,12 @@ extern void atrx15p2_tgi[];
|
|||
|
||||
/* valid _dos_type values */
|
||||
#define SPARTADOS 0
|
||||
#define OSADOS 1
|
||||
#define XDOS 2
|
||||
#define REALDOS 3
|
||||
#define ATARIDOS 4
|
||||
#define MYDOS 5
|
||||
#define REALDOS 1
|
||||
#define BWDOS 2
|
||||
#define OSADOS 3
|
||||
#define XDOS 4
|
||||
#define ATARIDOS 5
|
||||
#define MYDOS 6
|
||||
#define NODOS 255
|
||||
|
||||
/* Define hardware */
|
||||
|
|
|
@ -35,9 +35,20 @@ detect: lda DOS
|
|||
cmp (DOSVEC),y
|
||||
beq done
|
||||
lda #OSADOS
|
||||
bne set
|
||||
|
||||
spdos: lda DOS+3 ; 'B' in BW-DOS
|
||||
cmp #'B'
|
||||
bne spdos_real
|
||||
lda DOS+4 ; 'W' in BW-DOS
|
||||
cmp #'W'
|
||||
bne spdos_real
|
||||
|
||||
lda #BWDOS
|
||||
.byte $2C ; BIT <abs>
|
||||
|
||||
spdos: lda #SPARTADOS
|
||||
spdos_real:
|
||||
lda #SPARTADOS
|
||||
.byte $2C ; BIT <abs>
|
||||
|
||||
mydos: lda #MYDOS
|
||||
|
@ -47,7 +58,7 @@ rdos: lda #REALDOS
|
|||
.byte $2C ; BIT <abs>
|
||||
|
||||
xdos: lda #XDOS
|
||||
sta __dos_type
|
||||
set: sta __dos_type
|
||||
done: rts
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
|
|
|
@ -195,6 +195,8 @@ chk_supp:
|
|||
lda __dos_type
|
||||
cmp #SPARTADOS
|
||||
beq :+
|
||||
cmp #BWDOS
|
||||
beq :+
|
||||
cmp #REALDOS
|
||||
bne ns1
|
||||
: txa
|
||||
|
|
|
@ -67,6 +67,8 @@ ucok1:
|
|||
beq :+
|
||||
cmp #REALDOS
|
||||
beq :+
|
||||
cmp #BWDOS
|
||||
beq :+
|
||||
lda #CHDIR_MYDOS
|
||||
.byte $2C ; BIT <abs>
|
||||
: lda #CHDIR_SPDOS
|
||||
|
|
|
@ -77,7 +77,16 @@ cont: ldx #0 ; channel 0
|
|||
sdcheck:lda DOS
|
||||
cmp #'S'
|
||||
bne sdcrts0 ; not SpartaDOS, assume RAM is not used
|
||||
lda DOS+1 ; SD version
|
||||
|
||||
; check for BW-DOS, which always reports itself as SpartaDOS, but doesn't use memory under the ROM
|
||||
lda DOS+3 ; 'B' in BW-DOS
|
||||
cmp #'B'
|
||||
bne sdnobw
|
||||
lda DOS+4 ; 'W' in BW-DOS
|
||||
cmp #'W'
|
||||
beq sdcrts0 ; BW-DOS does not use RAM below ROM
|
||||
|
||||
sdnobw: lda DOS+1 ; SD version
|
||||
cmp #$40 ; SD-X has $40 or higher
|
||||
bcc sdcrts1 ; older versions (except maybe 1.x) always use the RAM under the ROM
|
||||
ldy #31 ; offset for OSRMFLG
|
||||
|
|
Loading…
Add table
Reference in a new issue