From c2a71ee62b3349141a94e72da685d6b839574259 Mon Sep 17 00:00:00 2001
From: Oliver Schmidt
Date: Wed, 8 May 2019 16:46:47 +0200
Subject: [PATCH] Updated several aspects regarding Ethernet drivers.
I. Build Ethernet drivers individually for each target.
After all the Ethernet cards/carts are different enough to ask for customized drivers. Building the drivers individually opens the option to use .ifdef's to customize them.
II. Removed Ethernet driver I/O base.
So far the base address of the Ethernet chip was a general property of all Ethernet drivers. It served two purposes:
1. Allowing to use a single Ethernet driver for a certain Ethernet chip, no matter what machine was connected to the chip.
2. Allowing use an Ethernet card in all Apple II slots.
However, we now use customized Ethernet drivers for the individual machines so 1.) isn't relevant anymore. In fact one wants to omit the overhead of a runtime-adjustable base address where it isn't needed.
So only the Apple II slots are left. But this should rather be a driver-internal approach then. We should just hand the driver the slot number the user wants to use and have the driver do its thing.
III. With per-target Ethernet drivers we can have per-target MAC addresses.
IV. Added support for RR-Net MK3 unique MAC addresses.
The RR-Net MK3 can be operated in two modes:
- In cartrigde mode it has a startup-ROM that sets the CS8900A MAC address to the unique MAC address.
- In clockport mode the driver has to read the two lowest MAC address bytes from the EEPROM and combine them with 28:CD:4C:FF.
See http://wiki.icomp.de/wiki/RR-Net#Detecting_MK3 for details.
The driver first checks if the current CS8900A MAC address starts with 28:CD:4C:FF. If it does, it overwrites its built in default MAC address with the CS8900A MAC address.
If the CS8900A MAC address didn't start with 28:CD:4C:FF, it checks if there are two valid MAC address bytes in the EEPROM. If they are there, it overwrites its built in default MAC address with a combination of 28:CD:4C:FF and those two bytes.
V. Added support for the upcoming 'Dracarys' Ethernet PBI for the ATARI.
See http://atariage.com/forums/topic/287376-preannouncement-dragon-cart-ii/ for details on Dracarys.
So far there was only one Ethernet solution for the ATARI. Therefore the relevant driver was loaded statically. With now having two solutions we have to load the corresponding driver dynamically (like on the other machines). Fortunately this doesn't mean significant additional overhead as there are several mouse drivers for the ATARI asking for dynamic mouse driver loading. Therefore the dynamic driver loading infrastructure was linked already.
Another aspect of more than one Ethernet solution is that the Ethernet config program becomes necessary on the ATARI to select the correct driver. Although that program is pretty simple and therefore rather small it means that now only one "major" program fits on a 130kB disk. So we need now 5(!) 130kB disk images instead 3 so far.
---
cpu/6502/Makefile.6502 | 4 +-
cpu/6502/Makefile.customrules-6502 | 2 +-
cpu/6502/README.md | 2 +-
cpu/6502/ethconfig/ethconfig.c | 41 ++--
cpu/6502/lib/config.c | 5 +-
cpu/6502/lib/config.h | 2 +-
cpu/6502/net/cs8900a.S | 262 ++++++++++++++++++++------
cpu/6502/net/ethernet.c | 4 +-
cpu/6502/net/lan91c96.S | 137 ++++++++++----
cpu/6502/net/w5100.S | 102 ++++++++--
platform/apple2enh/Makefile.apple2enh | 6 +-
platform/apple2enh/README.md | 10 +-
platform/atarixl/Makefile.atarixl | 5 +-
platform/atarixl/README.md | 5 +-
platform/c128/Makefile.c128 | 5 +-
platform/c128/README.md | 11 +-
platform/c64/Makefile.c64 | 5 +-
platform/c64/README.md | 10 +-
tools/6502/Makefile | 176 ++++++++++-------
tools/apple2enh/default.cfg | Bin 29 -> 29 bytes
tools/apple2enh/sample.cfg | Bin 29 -> 29 bytes
tools/atarixl/default.cfg | Bin 29 -> 29 bytes
tools/atarixl/sample.cfg | Bin 29 -> 29 bytes
tools/c128/default.cfg | Bin 29 -> 29 bytes
tools/c128/sample.cfg | Bin 29 -> 29 bytes
tools/c64/default.cfg | Bin 29 -> 29 bytes
tools/c64/sample.cfg | Bin 29 -> 29 bytes
27 files changed, 564 insertions(+), 230 deletions(-)
diff --git a/cpu/6502/Makefile.6502 b/cpu/6502/Makefile.6502
index 8721c6f73..931c18a1c 100644
--- a/cpu/6502/Makefile.6502
+++ b/cpu/6502/Makefile.6502
@@ -45,8 +45,6 @@ CONTIKI_CPU_SOURCEFILES += log.c error.c unload.c config.c ctk-mouse.c \
clock.c mtarch.c mtarch-asm.S lc-asm.S \
uip_arch.c slip_arch.c ethernet-drv.c ethernet.c
-ETHERNET_SOURCEFILES = cs8900a.S lan91c96.S w5100.S
-
CONTIKI_SOURCEFILES += $(CTK) ctk-conio.c petsciiconv.c cfs-posix-dir.c \
$(CONTIKI_TARGET_SOURCEFILES) $(CONTIKI_CPU_SOURCEFILES) \
$(ETHERNET_SOURCEFILES)
@@ -56,7 +54,7 @@ MODULES += core/ctk
# Set target-specific variable values
${addprefix $(OBJECTDIR)/,${call oname, $(ETHERNET_SOURCEFILES)}}: ASFLAGS += -D DYN_DRV=0
-all: $(ETHERNET_SOURCEFILES:.S=.eth)
+all: $(ETHERNET_SOURCEFILES:.S=.$(TARGET))
AS = ca65
CC = cl65
diff --git a/cpu/6502/Makefile.customrules-6502 b/cpu/6502/Makefile.customrules-6502
index e0953362d..cdd5480cd 100644
--- a/cpu/6502/Makefile.customrules-6502
+++ b/cpu/6502/Makefile.customrules-6502
@@ -17,6 +17,6 @@ CUSTOM_RULE_LINK = 1
$(TRACE_AS)
$(Q)$(AS) $(ASFLAGS) -o $@ $<
-%.eth: %.o
+%.$(TARGET): %.o
$(TRACE_LD)
$(Q)$(LD) -o $@ -t module -m $@.map $<
diff --git a/cpu/6502/README.md b/cpu/6502/README.md
index 13c7b7019..9931aa808 100644
--- a/cpu/6502/README.md
+++ b/cpu/6502/README.md
@@ -12,7 +12,7 @@ format for Ethernet:
- Bytes 5 - 8: Subnet Mask (HiByte first)
- Bytes 9 - 12: Default Router (HiByte first)
- Bytes 13 - 16: DNS Server (HiByte first)
-- Bytes 17 - 18: Ethernet card I/O address (LoByte first !)
+- Bytes 17 - 18: Ethernet card driver param (LoByte first !)
- Bytes 19 - xx: Ethernet card driver name (ASCII / PETSCII)
It has the following format for SLIP (based on RS232 driver coming with cc65):
diff --git a/cpu/6502/ethconfig/ethconfig.c b/cpu/6502/ethconfig/ethconfig.c
index 058f56a86..664e1520e 100644
--- a/cpu/6502/ethconfig/ethconfig.c
+++ b/cpu/6502/ethconfig/ethconfig.c
@@ -1,3 +1,4 @@
+#include
#include
#include
#include
@@ -5,25 +6,26 @@
#include "cfs/cfs.h"
static struct {
- char *screen;
- uint16_t address;
- char *driver;
+ char *screen;
+ char *driver;
} drivers[] = {
#ifdef __APPLE2__
- {"Uthernet", 0xC080, "cs8900a.eth" },
- {"Uthernet II", 0xC084, "w5100.eth" },
- {"LANceGS", 0xC080, "lan91c96.eth"}
+ {"Uthernet", "cs8900a.eth" },
+ {"Uthernet II", "w5100.eth" },
+ {"LANceGS", "lan91c96.eth"}
#endif
#ifdef __ATARI__
- {"Dragon Cart", 0xD500, "cs8900a.eth" }
+ {"Dragon Cart", "cs8900a.eth" },
+ {"Dracarys", "w5100.eth" }
#endif
#ifdef __CBM__
- {"RR-Net", 0xDE08, "cs8900a.eth" },
- {"TFE", 0xDE00, "cs8900a.eth" },
- {"ETH64", 0xDE00, "lan91c96.eth"}
+ {"RR-Net", "cs8900a.eth" },
+ {"ETH64", "lan91c96.eth"}
#endif
};
+uint16_t param;
+
uint8_t ipcfg[16];
/*-----------------------------------------------------------------------------------*/
@@ -34,7 +36,8 @@ choose(uint8_t max)
do {
printf("\n?");
- val = getchar();
+ val = cgetc();
+ putchar(val);
} while(val < '0' || val > max + '0');
putchar('\n');
@@ -52,6 +55,10 @@ main(void)
int f;
uint8_t d;
+ if (doesclrscrafterexit()) {
+ atexit((void (*))cgetc);
+ }
+
f = cfs_open("contiki.cfg", CFS_READ);
if(f == -1) {
printf("Loading Config - Error\n");
@@ -60,6 +67,7 @@ main(void)
cfs_read(f, ipcfg, sizeof(ipcfg));
cfs_close(f);
+ putchar('\n');
for(d = 0; d < sizeof(drivers) / sizeof(drivers[0]); ++d) {
printf("%d: %s\n", d + 1, drivers[d].screen);
}
@@ -67,7 +75,14 @@ main(void)
#ifdef __APPLE2__
printf("Slot (1-7)\n");
- drivers[d].address += choose(7) * 0x10;
+ param = choose(7);
+#endif
+
+#ifdef __ATARI__
+ if(d == 1) {
+ printf("PBI device ID (1-8)\n");
+ param = choose(8);
+ }
#endif
f = cfs_open("contiki.cfg", CFS_WRITE);
@@ -76,7 +91,7 @@ main(void)
return;
}
cfs_write(f, ipcfg, sizeof(ipcfg));
- cfs_write(f, &drivers[d].address, sizeof(drivers[d].address));
+ cfs_write(f, ¶m, sizeof(param));
cfs_write(f, drivers[d].driver, strlen(drivers[d].driver));
cfs_close(f);
diff --git a/cpu/6502/lib/config.c b/cpu/6502/lib/config.c
index b296f89df..2da05eb04 100644
--- a/cpu/6502/lib/config.c
+++ b/cpu/6502/lib/config.c
@@ -49,7 +49,7 @@ struct {
uip_ipaddr_t resolvaddr;
union {
struct {
- uint16_t addr;
+ uint16_t param;
#ifndef STATIC_DRIVER
char name[12+1];
#endif /* !STATIC_DRIVER */
@@ -113,9 +113,6 @@ config_read(char *filename)
#else /* STATIC_DRIVER */
log_message("Eth. Driver: ", config.ethernet.name);
#endif /* STATIC_DRIVER */
-#if !WITH_SLIP
- log_message("Driver Port: $", utoa(config.ethernet.addr, uip_buf, 16));
-#endif /* !WITH_SLIP */
uip_sethostaddr(&config.hostaddr);
uip_setnetmask(&config.netmask);
diff --git a/cpu/6502/lib/config.h b/cpu/6502/lib/config.h
index af660f128..85d944f3e 100644
--- a/cpu/6502/lib/config.h
+++ b/cpu/6502/lib/config.h
@@ -42,7 +42,7 @@ extern struct {
uip_ipaddr_t resolvaddr;
union {
struct {
- uint16_t addr;
+ uint16_t param;
#ifndef STATIC_DRIVER
char name[12+1];
#endif /* !STATIC_DRIVER */
diff --git a/cpu/6502/net/cs8900a.S b/cpu/6502/net/cs8900a.S
index e650f28c2..00335a481 100644
--- a/cpu/6502/net/cs8900a.S
+++ b/cpu/6502/net/cs8900a.S
@@ -41,7 +41,21 @@
; Ethernet address
mac: .byte $00, $0E, $3A ; OUI of Cirrus Logic
- .byte $11, $11, $11
+ .ifdef __C64__
+ .byte $64, $64, $64
+ .endif
+ .ifdef __C128__
+ .byte $28, $28, $28
+ .endif
+ .ifdef __APPLE2__
+ .byte $A2, $A2, $A2
+ .endif
+ .ifdef __ATARI__
+ .byte $A8, $A8, $A8
+ .endif
+ .ifdef __VIC20__
+ .byte $20, $20, $20
+ .endif
; Buffer attributes
bufaddr:.res 2 ; Address
@@ -74,8 +88,125 @@ cnt := ptr4 ; Frame length counter
.endif
+;=====================================================================
+
+ .ifdef __CBM__
+
+ .rodata
+
+ ; Ethernet address
+rrnet: .byte $28, $CD, $4C ; OUI of Individual Computers
+ .byte $FF ; Reserved for RR-Net
+
;---------------------------------------------------------------------
+ .if .defined (__C64__) .or .defined (__C128__)
+rxtxreg := $DE08
+txcmd := $DE0C
+txlen := $DE0E
+isq := $DE00
+packetpp := $DE02
+ppdata := $DE04
+ .endif
+
+ .ifdef __VIC20__
+rxtxreg := $9808
+txcmd := $980C
+txlen := $980E
+isq := $9800
+packetpp := $9802
+ppdata := $9804
+ .endif
+
+;---------------------------------------------------------------------
+
+ .code
+
+init:
+ ; Activate C64 RR clockport in order to operate RR-Net
+ ; (RR config register overlays unused CS8900A ISQ register)
+ lda isq+1
+ ora #$01 ; Set clockport bit
+ sta isq+1
+
+ ; Check EISA registration number of Crystal Semiconductor
+ ; PACKETPP = $0000, PPDATA == $630E ?
+ lda #$00
+ tax
+ jsr packetpp_ax
+ lda #$63^$0E
+ eor ppdata
+ eor ppdata+1
+ beq :+
+ sec
+ rts
+
+ ; "When the RR-Net MK3 is used in cartridge mode, the EEPROM will serve as a
+ ; regular 8k ROM cartridge. It is used as a startup-ROM if the unit is plugged
+ ; directly to a C64. The startup code will initialize the MAC address."
+ ; PACKETPP = $0158, PPDATA == RR-Net[0], RR-Net[1] ?
+ ; PACKETPP = $015A, PPDATA == RR-Net[2], RR-Net[3] ?
+ ; PACKETPP = $015C, AX = PPDATA
+: ldy #$58
+: tya
+ jsr packetpp_a1
+ lda ppdata
+ ldx ppdata+1
+ cpy #$58+4
+ bcs copy
+ cmp rrnet-$58,y
+ bne :+
+ txa
+ cmp rrnet-$58+1,y
+ bne :+
+ iny
+ iny
+ bne :- ; Always
+
+ ; "If the RR-Net MK3 is connected to a clockport, then the last 4 bytes of the
+ ; EEPROM are visible by reading the last 4, normally write-only, registers."
+ ; MAC_LO ^ MAC_HI ^ $55 == CHKSUM0 ?
+: lda txcmd ; MAC_LO
+ eor txcmd+1 ; MAC_HI
+ eor #$55
+ cmp txlen ; CHKSUM0
+ bne reset
+
+ ; (CHKSUM0 + MAC_LO + MAC_HI) ^ $AA == CHKSUM1 ?
+ clc
+ adc txcmd ; MAC_LO
+ clc
+ adc txcmd+1 ; MAC_HI
+ eor #$AA
+ cmp txlen+1 ; CHKSUM1
+ bne reset
+
+ ; "When both checksums match, the CS8900A should be initialized
+ ; to use the MAC Address 28:CD:4C:FF::."
+ ; AX = MAC_LO, MAC_HI
+ lda txcmd ; MAC_LO
+ ldx txcmd+1 ; MAC_HI
+
+ ; MAC[4], MAC[5] = AX
+ ; MAC[2], MAC[3] = RR-Net[2], RR-Net[3]
+ ; MAC[0], MAC[1] = RR-Net[0], RR-Net[1]
+copy: ldy #$04
+ bne :++ ; Always
+: lda rrnet,y
+ ldx rrnet+1,y
+: sta mac,y
+ txa
+ sta mac+1,y
+ dey
+ dey
+ bpl :--
+
+ .endif
+
+;=====================================================================
+
+ .ifdef __APPLE2__
+
.rodata
fixup: .byte fixup02-fixup01, fixup03-fixup02, fixup04-fixup03
@@ -85,29 +216,31 @@ fixup: .byte fixup02-fixup01, fixup03-fixup02, fixup04-fixup03
.byte fixup14-fixup13, fixup15-fixup14, fixup16-fixup15
.byte fixup17-fixup16, fixup18-fixup17, fixup19-fixup18
.byte fixup20-fixup19, fixup21-fixup20, fixup22-fixup21
- .byte fixup23-fixup22, fixup24-fixup23, fixup25-fixup24
- .byte fixup26-fixup25
+ .byte fixup23-fixup22, fixup24-fixup23
fixups = * - fixup
;---------------------------------------------------------------------
-; 3 most significant nibbles are fixed up at runtime
-rxtxreg := $FFF0
-txcmd := $FFF4
-txlen := $FFF6
-isq := $FFF8
-packetpp := $FFFA
-ppdata := $FFFC
-
- .data
+; The addresses are fixed up at runtime
+rxtxreg := $C080
+txcmd := $C084
+txlen := $C086
+isq := $C088
+packetpp := $C08A
+ppdata := $C08C
;---------------------------------------------------------------------
+ .data
+
init:
- ; Save address of rxtxreg
+ ; Convert slot number to slot I/O offset
+ asl
+ asl
+ asl
+ asl
sta reg
- stx reg+1
; Start with first fixup location
lda #<(fixup01+1)
@@ -119,13 +252,9 @@ init:
; Fixup address at location
: lda (ptr),y
- and #$0F
- eor reg ; Use XOR to support C64 RR-Net
+ and #%10001111 ; Allow for re-init
+ ora reg
sta (ptr),y
- iny
- lda reg+1
- sta (ptr),y
- dey
; Advance to next fixup location
inx
@@ -139,34 +268,61 @@ init:
inc ptr+1
bcs :- ; Always
- ; Activate C64 RR clockport in order to operate RR-Net
- ; - RR config register overlays CS8900A ISQ register
- ; - No need to distinguish as ISQ access doesn't hurt
-:
-fixup01:lda isq+1
- ora #$01 ; Set clockport bit
-fixup02:sta isq+1
+ ; Check EISA registration number of Crystal Semiconductor
+ ; PACKETPP = $0000, PPDATA == $630E ?
+: lda #$00
+ tax
+ jsr packetpp_ax
+ lda #$63^$0E
+fixup01:eor ppdata
+fixup02:eor ppdata+1
+ beq reset
+ sec
+ rts
+ .endif
+
+;=====================================================================
+
+ .ifdef __ATARI__
+
+rxtxreg := $D500
+txcmd := $D504
+txlen := $D506
+isq := $D508
+packetpp := $D50A
+ppdata := $D50C
+
+;---------------------------------------------------------------------
+
+ .code
+
+init:
; Check EISA registration number of Crystal Semiconductor
; PACKETPP = $0000, PPDATA == $630E ?
lda #$00
tax
jsr packetpp_ax
lda #$63^$0E
-fixup03:eor ppdata
-fixup04:eor ppdata+1
- beq :+
+ eor ppdata
+ eor ppdata+1
+ beq reset
sec
rts
+ .endif
+
+;=====================================================================
+
+reset:
; Initiate a chip-wide reset
; PACKETPP = $0114, PPDATA = $0040
-: lda #$14
+ lda #$14
jsr packetpp_a1
ldy #$40
-fixup05:sty ppdata
+fixup03:sty ppdata
: jsr packetpp_a1
-fixup06:ldy ppdata
+fixup04:ldy ppdata
and #$40
bne :-
@@ -212,7 +368,7 @@ poll:
; PACKETPP = $0124, PPDATA & $0D00 ?
lda #$24
jsr packetpp_a1
-fixup07:lda ppdata+1
+fixup05:lda ppdata+1
and #$0D
beq :+
@@ -221,13 +377,13 @@ fixup07:lda ppdata+1
; Read receiver event and discard it
; RXTXREG
-fixup08:ldx rxtxreg+1
-fixup09:lda rxtxreg
+fixup06:ldx rxtxreg+1
+fixup07:lda rxtxreg
; Read frame length
; cnt = len = RXTXREG
-fixup10:ldx rxtxreg+1
-fixup11:lda rxtxreg
+fixup08:ldx rxtxreg+1
+fixup09:lda rxtxreg
sta len
stx len+1
sta cnt
@@ -255,10 +411,10 @@ fixup11:lda rxtxreg
; Read bytes into buffer
: jsr adjustptr
:
-fixup12:lda rxtxreg
+fixup10:lda rxtxreg
sta (ptr),y
iny
-fixup13:lda rxtxreg+1
+fixup11:lda rxtxreg+1
sta (ptr),y
iny
bne :-
@@ -282,12 +438,12 @@ send:
; Transmit command
lda #$C9
ldx #$00
-fixup14:sta txcmd
-fixup15:stx txcmd+1
+fixup12:sta txcmd
+fixup13:stx txcmd+1
lda cnt
ldx cnt+1
-fixup16:sta txlen
-fixup17:stx txlen+1
+fixup14:sta txlen
+fixup15:stx txlen+1
; Adjust odd frame length
jsr adjustcnt
@@ -299,7 +455,7 @@ fixup17:stx txlen+1
; PACKETPP = $0138, PPDATA & $0100 ?
: lda #$38
jsr packetpp_a1
-fixup18:lda ppdata+1
+fixup16:lda ppdata+1
and #$01
bne :+
@@ -318,10 +474,10 @@ fixup18:lda ppdata+1
; Write bytes from buffer
: jsr adjustptr
: lda (ptr),y
-fixup19:sta rxtxreg
+fixup17:sta rxtxreg
iny
lda (ptr),y
-fixup20:sta rxtxreg+1
+fixup18:sta rxtxreg+1
iny
bne :-
inc ptr+1
@@ -340,15 +496,15 @@ exit:
packetpp_a1:
ldx #$01
packetpp_ax:
-fixup21:sta packetpp
-fixup22:stx packetpp+1
+fixup19:sta packetpp
+fixup20:stx packetpp+1
rts
;---------------------------------------------------------------------
ppdata_ax:
-fixup23:sta ppdata
-fixup24:stx ppdata+1
+fixup21:sta ppdata
+fixup22:stx ppdata+1
rts
;---------------------------------------------------------------------
@@ -357,9 +513,9 @@ skipframe:
; PACKETPP = $0102, PPDATA = PPDATA | $0040
lda #$02
jsr packetpp_a1
-fixup25:lda ppdata
+fixup23:lda ppdata
ora #$40
-fixup26:sta ppdata
+fixup24:sta ppdata
rts
;---------------------------------------------------------------------
diff --git a/cpu/6502/net/ethernet.c b/cpu/6502/net/ethernet.c
index 3db36a500..4e478d8da 100644
--- a/cpu/6502/net/ethernet.c
+++ b/cpu/6502/net/ethernet.c
@@ -71,7 +71,7 @@ ethernet_init(void)
module->buffer = uip_buf;
module->buffer_size = UIP_BUFSIZE;
- if(module->init(config.ethernet.addr)) {
+ if(module->init(config.ethernet.param)) {
#define _stringize(arg) #arg
#define stringize(arg) _stringize(arg)
log_message(stringize(STATIC_DRIVER), ": No hardware");
@@ -110,7 +110,7 @@ ethernet_init(void)
module->buffer = uip_buf;
module->buffer_size = UIP_BUFSIZE;
- if(module->init(config.ethernet.addr)) {
+ if(module->init(config.ethernet.param)) {
log_message(config.ethernet.name, ": No hardware");
error_exit();
}
diff --git a/cpu/6502/net/lan91c96.S b/cpu/6502/net/lan91c96.S
index ea0c80098..d5b44dca1 100644
--- a/cpu/6502/net/lan91c96.S
+++ b/cpu/6502/net/lan91c96.S
@@ -42,7 +42,15 @@
; Ethernet address
mac: .byte $00, $80, $0F ; OUI of Standard Microsystems
- .byte $11, $11, $11
+ .ifdef __C64__
+ .byte $64, $64, $64
+ .endif
+ .ifdef __C128__
+ .byte $28, $28, $28
+ .endif
+ .ifdef __APPLE2__
+ .byte $A2, $A2, $A2
+ .endif
; Buffer attributes
bufaddr:.res 2 ; Address
@@ -73,8 +81,57 @@ len := ptr3 ; Frame length
.endif
+;=====================================================================
+
+ .if .defined (__C64__) .or .defined (__C128__)
+
+ethbsr := $DE0E ; Bank select register R/W (2B)
+
+; Register bank 0
+ethtcr := $DE00 ; Transmition control register R/W (2B)
+ethephsr := $DE02 ; EPH status register R/O (2B)
+ethrcr := $DE04 ; Receive control register R/W (2B)
+ethecr := $DE06 ; Counter register R/O (2B)
+ethmir := $DE08 ; Memory information register R/O (2B)
+ethmcr := $DE0A ; Memory Config. reg. +0 R/W +1 R/O (2B)
+
+; Register bank 1
+ethcr := $DE00 ; Configuration register R/W (2B)
+ethbar := $DE02 ; Base address register R/W (2B)
+ethiar := $DE04 ; Individual address register R/W (6B)
+ethgpr := $DE0A ; General address register R/W (2B)
+ethctr := $DE0C ; Control register R/W (2B)
+
+; Register bank 2
+ethmmucr := $DE00 ; MMU command register W/O (1B)
+ethautotx := $DE01 ; AUTO TX start register R/W (1B)
+ethpnr := $DE02 ; Packet number register R/W (1B)
+etharr := $DE03 ; Allocation result register R/O (1B)
+ethfifo := $DE04 ; FIFO ports register R/O (2B)
+ethptr := $DE06 ; Pointer register R/W (2B)
+ethdata := $DE08 ; Data register R/W (4B)
+ethist := $DE0C ; Interrupt status register R/O (1B)
+ethack := $DE0C ; Interrupt acknowledge register W/O (1B)
+ethmsk := $DE0D ; Interrupt mask register R/W (1B)
+
+; Register bank 3
+ethmt := $DE00 ; Multicast table R/W (8B)
+ethmgmt := $DE08 ; Management interface R/W (2B)
+ethrev := $DE0A ; Revision register R/W (2B)
+ethercv := $DE0C ; Early RCV register R/W (2B)
+
;---------------------------------------------------------------------
+ .code
+
+init:
+
+ .endif
+
+;=====================================================================
+
+ .ifdef __APPLE2__
+
.rodata
fixup: .byte fixup02-fixup01, fixup03-fixup02, fixup04-fixup03
@@ -95,50 +152,53 @@ fixups = * - fixup
;---------------------------------------------------------------------
-; 3 most significant nibbles are fixed up at runtime
-ethbsr := $FFFE ; Bank select register R/W (2B)
+; The addresses are fixed up at runtime
+ethbsr := $C08E ; Bank select register R/W (2B)
; Register bank 0
-ethtcr := $FFF0 ; Transmition control register R/W (2B)
-ethephsr := $FFF2 ; EPH status register R/O (2B)
-ethrcr := $FFF4 ; Receive control register R/W (2B)
-ethecr := $FFF6 ; Counter register R/O (2B)
-ethmir := $FFF8 ; Memory information register R/O (2B)
-ethmcr := $FFFA ; Memory Config. reg. +0 R/W +1 R/O (2B)
+ethtcr := $C080 ; Transmition control register R/W (2B)
+ethephsr := $C082 ; EPH status register R/O (2B)
+ethrcr := $C084 ; Receive control register R/W (2B)
+ethecr := $C086 ; Counter register R/O (2B)
+ethmir := $C088 ; Memory information register R/O (2B)
+ethmcr := $C08A ; Memory Config. reg. +0 R/W +1 R/O (2B)
; Register bank 1
-ethcr := $FFF0 ; Configuration register R/W (2B)
-ethbar := $FFF2 ; Base address register R/W (2B)
-ethiar := $FFF4 ; Individual address register R/W (6B)
-ethgpr := $FFFA ; General address register R/W (2B)
-ethctr := $FFFC ; Control register R/W (2B)
+ethcr := $C080 ; Configuration register R/W (2B)
+ethbar := $C082 ; Base address register R/W (2B)
+ethiar := $C084 ; Individual address register R/W (6B)
+ethgpr := $C08A ; General address register R/W (2B)
+ethctr := $C08C ; Control register R/W (2B)
; Register bank 2
-ethmmucr := $FFF0 ; MMU command register W/O (1B)
-ethautotx := $FFF1 ; AUTO TX start register R/W (1B)
-ethpnr := $FFF2 ; Packet number register R/W (1B)
-etharr := $FFF3 ; Allocation result register R/O (1B)
-ethfifo := $FFF4 ; FIFO ports register R/O (2B)
-ethptr := $FFF6 ; Pointer register R/W (2B)
-ethdata := $FFF8 ; Data register R/W (4B)
-ethist := $FFFC ; Interrupt status register R/O (1B)
-ethack := $FFFC ; Interrupt acknowledge register W/O (1B)
-ethmsk := $FFFD ; Interrupt mask register R/W (1B)
+ethmmucr := $C080 ; MMU command register W/O (1B)
+ethautotx := $C081 ; AUTO TX start register R/W (1B)
+ethpnr := $C082 ; Packet number register R/W (1B)
+etharr := $C083 ; Allocation result register R/O (1B)
+ethfifo := $C084 ; FIFO ports register R/O (2B)
+ethptr := $C086 ; Pointer register R/W (2B)
+ethdata := $C088 ; Data register R/W (4B)
+ethist := $C08C ; Interrupt status register R/O (1B)
+ethack := $C08C ; Interrupt acknowledge register W/O (1B)
+ethmsk := $C08D ; Interrupt mask register R/W (1B)
; Register bank 3
-ethmt := $FFF0 ; Multicast table R/W (8B)
-ethmgmt := $FFF8 ; Management interface R/W (2B)
-ethrev := $FFFA ; Revision register R/W (2B)
-ethercv := $FFFC ; Early RCV register R/W (2B)
-
- .data
+ethmt := $C080 ; Multicast table R/W (8B)
+ethmgmt := $C088 ; Management interface R/W (2B)
+ethrev := $C08A ; Revision register R/W (2B)
+ethercv := $C08C ; Early RCV register R/W (2B)
;---------------------------------------------------------------------
+ .data
+
init:
- ; Save address of register base
+ ; Convert slot number to slot I/O offset
+ asl
+ asl
+ asl
+ asl
sta reg
- stx reg+1
; Start with first fixup location
lda #<(fixup01+1)
@@ -150,13 +210,9 @@ init:
; Fixup address at location
: lda (ptr),y
- and #$0F
+ and #%10001111 ; Allow for re-init
ora reg
sta (ptr),y
- iny
- lda reg+1
- sta (ptr),y
- dey
; Advance to next fixup location
inx
@@ -169,9 +225,14 @@ init:
bcc :-
inc ptr+1
bcs :- ; Always
+:
+
+ .endif
+
+;=====================================================================
; Check bank select register upper byte to always read as $33
-: ldy #$00
+ ldy #$00
fixup01:sty ethbsr+1
fixup02:lda ethbsr+1
cmp #$33
diff --git a/cpu/6502/net/w5100.S b/cpu/6502/net/w5100.S
index 3d8160170..796f3c63d 100644
--- a/cpu/6502/net/w5100.S
+++ b/cpu/6502/net/w5100.S
@@ -41,7 +41,12 @@
; Ethernet address
mac: .byte $00, $08, $DC ; OUI of WIZnet
- .byte $11, $11, $11
+ .ifdef __APPLE2__
+ .byte $A2, $A2, $A2
+ .endif
+ .ifdef __ATARI__
+ .byte $A8, $A8, $A8
+ .endif
; Buffer attributes
bufaddr:.res 2 ; Address
@@ -84,7 +89,9 @@ tmp := tmp4 ; Temporary value
.endif
-;---------------------------------------------------------------------
+;=====================================================================
+
+ .ifdef __APPLE2__
.rodata
@@ -104,19 +111,22 @@ fixups = * - fixup
;---------------------------------------------------------------------
-; 14 most significant bits are fixed up at runtime
-mode := $FFFC|0
-addr := $FFFC|1
-data := $FFFC|3
-
- .data
+; The addresses are fixed up at runtime
+mode := $C084
+addr := $C085
+data := $C087
;---------------------------------------------------------------------
+ .data
+
init:
- ; Save address of register base
+ ; Convert slot number to slot I/O offset
+ asl
+ asl
+ asl
+ asl
sta reg
- stx reg+1
; Start with first fixup location
lda #<(fixup01+1)
@@ -128,13 +138,9 @@ init:
; Fixup address at location
: lda (ptr),y
- and #$03
+ and #%10001111 ; Allow for re-init
ora reg
sta (ptr),y
- iny
- lda reg+1
- sta (ptr),y
- dey
; Advance to next fixup location
inx
@@ -147,9 +153,59 @@ init:
bcc :-
inc ptr+1
bcs :- ; Always
+:
+
+ .endif
+
+;=====================================================================
+
+ .ifdef __ATARI__
+
+ .rodata
+
+pdtab: .byte %00000001
+ .byte %00000010
+ .byte %00000100
+ .byte %00001000
+ .byte %00010000
+ .byte %00100000
+ .byte %01000000
+ .byte %10000000
+
+;---------------------------------------------------------------------
+
+ .bss
+
+pdbit: .res 1
+
+;---------------------------------------------------------------------
+
+mode := $D1F0
+addr := $D1F1
+data := $D1F3
+
+pdvs := $D1FF ; parallel device select
+shpdvs := $0248 ; shadow parallel device select
+
+;---------------------------------------------------------------------
+
+ .code
+
+init:
+ ; Convert parallel device ID (1-8) to parallel device bit
+ tay
+ lda pdtab-1,y
+ sta pdbit
+
+ ; Select parallel device
+ sta shpdvs
+ sta pdvs
+
+ .endif
+
+;=====================================================================
; Indirect Bus I/F mode, Address Auto-Increment
-:
fixup01:lda mode
ora #$03
fixup02:sta mode
@@ -231,6 +287,13 @@ fixup14:sta data
;---------------------------------------------------------------------
poll:
+ .ifdef __ATARI__
+ ; Select parallel device
+ lda pdbit
+ sta shpdvs
+ sta pdvs
+ .endif
+
; Check for completion of previous command
; Socket 0 Command Register: = 0 ?
jsr set_addrcmdreg0
@@ -338,6 +401,13 @@ send:
sta adv
stx adv+1
+ .ifdef __ATARI__
+ ; Select parallel device
+ lda pdbit
+ sta shpdvs
+ sta pdvs
+ .endif
+
; Set parameters for transmitting data
lda #>$4000 ; Socket 0 TX Base Address
ldx #$01 ; Write
diff --git a/platform/apple2enh/Makefile.apple2enh b/platform/apple2enh/Makefile.apple2enh
index aab8756b5..577bd7d9e 100644
--- a/platform/apple2enh/Makefile.apple2enh
+++ b/platform/apple2enh/Makefile.apple2enh
@@ -37,6 +37,8 @@ ifdef SLIP
DEFINES += STATIC_DRIVER=a2e_ssc_ser
endif
+ETHERNET_SOURCEFILES = cs8900a.S lan91c96.S w5100.S
+
CONTIKI_TARGET_SOURCEFILES += pfs.S
CONTIKI_CPU = $(CONTIKI)/cpu/6502
@@ -67,9 +69,7 @@ ifdef SLIP
java -jar $(AC) -p contiki.dsk contiki.cfg bin 0 < $(CONTIKI)/tools/6502/sample.cfg
else
java -jar $(AC) -p contiki.dsk contiki.cfg bin 0 < $(CONTIKI)/tools/$(TARGET)/sample.cfg
- java -jar $(AC) -p contiki.dsk cs8900a.eth rel 0 < cs8900a.eth
- java -jar $(AC) -p contiki.dsk lan91c96.eth rel 0 < lan91c96.eth
- java -jar $(AC) -p contiki.dsk w5100.eth rel 0 < w5100.eth
+ java -jar $(AC) -p contiki.dsk cs8900a.eth rel 0 < cs8900a.$(TARGET)
endif
ifeq ($(HTTPD-CFS),1)
java -jar $(AC) -p contiki.dsk index.htm bin 0 < httpd-cfs/index.htm
diff --git a/platform/apple2enh/README.md b/platform/apple2enh/README.md
index 0683c1940..7041c4310 100644
--- a/platform/apple2enh/README.md
+++ b/platform/apple2enh/README.md
@@ -7,13 +7,9 @@ so please consult cpu/6502/README.md for further details.
The following Apple II Ethernet cards are supported:
-- Uthernet: Use driver cs8900a.eth with address $C0x0 (x = 8 + slot number).
-- Uthernet II: Use driver w5100.eth with address $C0x4 (x = 8 + slot number).
-- LANceGS: Use driver lan91c96.eth with address $C0x0 (x = 8 + slot number).
-
-In most cases it is desirable to use an emulator for the development and testing
-of a Contiki application. AppleWin is especially well suited as it emulates the
-Uthernet card in slot 3. It is available at http://applewin.berlios.de/.
+- Uthernet: cs8900a.eth
+- Uthernet II: w5100.eth
+- LANceGS: lan91c96.eth
The 'disk' make goal requires AppleCommander 1.3.5 or later. It is available at
http://applecommander.sourceforge.net/.
diff --git a/platform/atarixl/Makefile.atarixl b/platform/atarixl/Makefile.atarixl
index c32a558ed..6e8271900 100644
--- a/platform/atarixl/Makefile.atarixl
+++ b/platform/atarixl/Makefile.atarixl
@@ -33,10 +33,10 @@
ifdef SLIP
DEFINES += STATIC_DRIVER=atrxrdev_ser
-else
- DEFINES += STATIC_DRIVER=cs8900a
endif
+ETHERNET_SOURCEFILES = cs8900a.S w5100.S
+
CONTIKI_CPU = $(CONTIKI)/cpu/6502
include $(CONTIKI_CPU)/Makefile.6502
@@ -62,6 +62,7 @@ ifdef SLIP
cp $(CONTIKI)/tools/6502/sample.cfg atr/contiki.cfg
else
cp $(CONTIKI)/tools/$(TARGET)/sample.cfg atr/contiki.cfg
+ cp cs8900a.$(TARGET) atr/cs8900a.eth
endif
ifeq ($(findstring WITH_MOUSE,$(DEFINES)),WITH_MOUSE)
cp $(CC65_TARGET_DIR)/drv/mou/atrxst.mou atr/contiki.mou
diff --git a/platform/atarixl/README.md b/platform/atarixl/README.md
index 5fea68585..272eaf1d1 100644
--- a/platform/atarixl/README.md
+++ b/platform/atarixl/README.md
@@ -7,9 +7,10 @@ cpu/6502/README.md for further details.
The following Atari XL Ethernet card is supported:
-- Dragon Cart: Use driver cs8900a.eth with address $D500.
+- Dragon Cart: cs8900a.eth
+- Dracarys: w5100.eth
The 'disk' make goal requires HiassofT's dir2atr program. It is available at
-http://www.horus.com/~hias/atari/ - either as source code (being part of the
+https://www.horus.com/~hias/atari/ - either as source code (being part of the
'AtariSIO driver and utilities for Linux') or as Win32 binary program (being
part of the 'Atari Tools for Win32').
diff --git a/platform/c128/Makefile.c128 b/platform/c128/Makefile.c128
index bd1122c33..3cdffa5ed 100644
--- a/platform/c128/Makefile.c128
+++ b/platform/c128/Makefile.c128
@@ -35,6 +35,8 @@ ifdef SLIP
DEFINES += STATIC_DRIVER=c128_swlink_ser
endif
+ETHERNET_SOURCEFILES = cs8900a.S lan91c96.S
+
CONTIKI_TARGET_SOURCEFILES += exec.c logscr.S lseek.c \
pfs.S pfs-dir.c pfs-dir-asm.S pfs_remove.S pfs_seek.S pfs_write.S
@@ -56,8 +58,7 @@ ifdef SLIP
$(C1541) -attach contiki.d71 -write $(CONTIKI)/tools/6502/sample.cfg contiki.cfg,s
else
$(C1541) -attach contiki.d71 -write $(CONTIKI)/tools/$(TARGET)/sample.cfg contiki.cfg,s
- $(C1541) -attach contiki.d71 -write cs8900a.eth cs8900a.eth,s
- $(C1541) -attach contiki.d71 -write lan91c96.eth lan91c96.eth,s
+ $(C1541) -attach contiki.d71 -write cs8900a.$(TARGET) cs8900a.eth,s
endif
ifeq ($(findstring WITH_MOUSE,$(DEFINES)),WITH_MOUSE)
$(C1541) -attach contiki.d71 -write $(CC65_TARGET_DIR)/drv/mou/c128-1351.mou contiki.mou,s
diff --git a/platform/c128/README.md b/platform/c128/README.md
index ef799a989..56696ecbc 100644
--- a/platform/c128/README.md
+++ b/platform/c128/README.md
@@ -7,14 +7,11 @@ cpu/6502/README.md for further details.
The following C128 Ethernet cards are supported:
-- RR+RR-Net: Use driver cs8900a.eth with address $DE08.
-- TFE: Use driver cs8900a.eth with address $DE00.
-- ETH64: Use driver lan91c96.eth with address $DE00.
+- RR+RR-Net: cs8900a.eth
+- ETH64: lan91c96.eth
-In most cases it is desirable to use an emulator for the development and
-testing of a Contiki application. VICE is especially well suited as it emulates
-both the RR-Net and TFE Ethernet cards. It is available at
-[http://www.viceteam.org](http://www.viceteam.org).
+The 'disk' make goal requires the c1541 tool from VICE. It is available at
+http://vice-emu.sourceforge.net/.
The c128 target supports a PFS that requires less RAM than the POSIX file
system and converts UNIX path names to CMD syntax for CMD drives.
diff --git a/platform/c64/Makefile.c64 b/platform/c64/Makefile.c64
index f1b8b09b8..6c28b07c0 100644
--- a/platform/c64/Makefile.c64
+++ b/platform/c64/Makefile.c64
@@ -35,6 +35,8 @@ ifdef SLIP
DEFINES += STATIC_DRIVER=c64_swlink_ser
endif
+ETHERNET_SOURCEFILES = cs8900a.S lan91c96.S
+
CONTIKI_TARGET_SOURCEFILES += exec.c logscr.S lseek.c \
pfs.S pfs-dir.c pfs-dir-asm.S pfs_remove.S pfs_seek.S pfs_write.S
@@ -60,8 +62,7 @@ ifdef SLIP
$(C1541) -attach contiki.d64 -write $(CONTIKI)/tools/6502/sample.cfg contiki.cfg,s
else
$(C1541) -attach contiki.d64 -write $(CONTIKI)/tools/$(TARGET)/sample.cfg contiki.cfg,s
- $(C1541) -attach contiki.d64 -write cs8900a.eth cs8900a.eth,s
- $(C1541) -attach contiki.d64 -write lan91c96.eth lan91c96.eth,s
+ $(C1541) -attach contiki.d64 -write cs8900a.$(TARGET) cs8900a.eth,s
endif
ifeq ($(findstring WITH_MOUSE,$(DEFINES)),WITH_MOUSE)
$(C1541) -attach contiki.d64 -write $(CC65_TARGET_DIR)/drv/mou/c64-1351.mou contiki.mou,s
diff --git a/platform/c64/README.md b/platform/c64/README.md
index dd299a897..b15e1e761 100644
--- a/platform/c64/README.md
+++ b/platform/c64/README.md
@@ -7,13 +7,11 @@ cpu/6502/README.md for further details.
The following C64 Ethernet cards are supported:
-- RR+RR-Net: Use driver cs8900a.eth with address $DE08.
-- TFE: Use driver cs8900a.eth with address $DE00.
-- ETH64: Use driver lan91c96.eth with address $DE00.
+- RR+RR-Net: cs8900a.eth
+- ETH64: lan91c96.eth
-In most cases it is desirable to use an emulator for the development and testing
-of a Contiki application. VICE is especially well suited as it emulates both the
-RR-Net and TFE Ethernet cards. It is available at http://www.viceteam.org/.
+The 'disk' make goal requires the c1541 tool from VICE. It is available at
+http://vice-emu.sourceforge.net/.
The c64 target supports a PFS that requires less RAM than the POSIX file system
and converts UNIX path names to CMD syntax for CMD drives and IDEDOS 0.90+. Its
diff --git a/tools/6502/Makefile b/tools/6502/Makefile
index e27c13265..06bee3277 100644
--- a/tools/6502/Makefile
+++ b/tools/6502/Makefile
@@ -112,9 +112,9 @@ ifdef SLIP
java -jar $(AC) -p $@ contiki.cfg bin 0 < default.cfg
else
java -jar $(AC) -p $@ contiki.cfg bin 0 < ../apple2enh/default.cfg
- java -jar $(AC) -p $@ cs8900a.eth rel 0 < ../../cpu/6502/ethconfig/cs8900a.eth
- java -jar $(AC) -p $@ lan91c96.eth rel 0 < ../../cpu/6502/ethconfig/lan91c96.eth
- java -jar $(AC) -p $@ w5100.eth rel 0 < ../../cpu/6502/ethconfig/w5100.eth
+ java -jar $(AC) -p $@ cs8900a.eth rel 0 < ../../cpu/6502/ethconfig/cs8900a.apple2enh
+ java -jar $(AC) -p $@ lan91c96.eth rel 0 < ../../cpu/6502/ethconfig/lan91c96.apple2enh
+ java -jar $(AC) -p $@ w5100.eth rel 0 < ../../cpu/6502/ethconfig/w5100.apple2enh
endif
contiki-apple2-2.dsk: apple2enh-makes
@@ -130,9 +130,9 @@ ifdef SLIP
java -jar $(AC) -p $@ contiki.cfg bin 0 < default.cfg
else
java -jar $(AC) -p $@ contiki.cfg bin 0 < ../apple2enh/default.cfg
- java -jar $(AC) -p $@ cs8900a.eth rel 0 < ../../cpu/6502/ethconfig/cs8900a.eth
- java -jar $(AC) -p $@ lan91c96.eth rel 0 < ../../cpu/6502/ethconfig/lan91c96.eth
- java -jar $(AC) -p $@ w5100.eth rel 0 < ../../cpu/6502/ethconfig/w5100.eth
+ java -jar $(AC) -p $@ cs8900a.eth rel 0 < ../../cpu/6502/ethconfig/cs8900a.apple2enh
+ java -jar $(AC) -p $@ lan91c96.eth rel 0 < ../../cpu/6502/ethconfig/lan91c96.apple2enh
+ java -jar $(AC) -p $@ w5100.eth rel 0 < ../../cpu/6502/ethconfig/w5100.apple2enh
endif
contiki-apple2-3.dsk: apple2enh-makes
@@ -150,9 +150,9 @@ ifdef SLIP
java -jar $(AC) -p $@ contiki.cfg bin 0 < default.cfg
else
java -jar $(AC) -p $@ contiki.cfg bin 0 < ../apple2enh/default.cfg
- java -jar $(AC) -p $@ cs8900a.eth rel 0 < ../../cpu/6502/ethconfig/cs8900a.eth
- java -jar $(AC) -p $@ lan91c96.eth rel 0 < ../../cpu/6502/ethconfig/lan91c96.eth
- java -jar $(AC) -p $@ w5100.eth rel 0 < ../../cpu/6502/ethconfig/w5100.eth
+ java -jar $(AC) -p $@ cs8900a.eth rel 0 < ../../cpu/6502/ethconfig/cs8900a.apple2enh
+ java -jar $(AC) -p $@ lan91c96.eth rel 0 < ../../cpu/6502/ethconfig/lan91c96.apple2enh
+ java -jar $(AC) -p $@ w5100.eth rel 0 < ../../cpu/6502/ethconfig/w5100.apple2enh
endif
java -jar $(AC) -p $@ index.htm bin 0 < ../../examples/webserver/httpd-cfs/index.htm
java -jar $(AC) -p $@ backgrnd.gif bin 0 < ../../examples/webserver/httpd-cfs/backgrnd.gif
@@ -180,9 +180,9 @@ ifdef SLIP
java -jar $(AC) -p $@ contiki.cfg bin 0 < default.cfg
else
java -jar $(AC) -p $@ contiki.cfg bin 0 < ../apple2enh/default.cfg
- java -jar $(AC) -p $@ cs8900a.eth rel 0 < ../../cpu/6502/ethconfig/cs8900a.eth
- java -jar $(AC) -p $@ lan91c96.eth rel 0 < ../../cpu/6502/ethconfig/lan91c96.eth
- java -jar $(AC) -p $@ w5100.eth rel 0 < ../../cpu/6502/ethconfig/w5100.eth
+ java -jar $(AC) -p $@ cs8900a.eth rel 0 < ../../cpu/6502/ethconfig/cs8900a.apple2enh
+ java -jar $(AC) -p $@ lan91c96.eth rel 0 < ../../cpu/6502/ethconfig/lan91c96.apple2enh
+ java -jar $(AC) -p $@ w5100.eth rel 0 < ../../cpu/6502/ethconfig/w5100.apple2enh
endif
java -jar $(AC) -p $@ index.htm bin 0 < ../../examples/webserver/httpd-cfs/index.htm
java -jar $(AC) -p $@ backgrnd.gif bin 0 < ../../examples/webserver/httpd-cfs/backgrnd.gif
@@ -197,67 +197,87 @@ atari: contiki-atari.zip
atari-clean: atarixl-cleanmakes
rm -f contiki-atari.zip contiki-atari-1.atr contiki-atari-2.atr contiki-atari-3.atr contiki-atari.atr
-contiki-atari.zip: contiki-atari-1.atr contiki-atari-2.atr contiki-atari-3.atr contiki-atari.atr
+contiki-atari.zip: contiki-atari-1.atr contiki-atari-2.atr contiki-atari-3.atr contiki-atari-4.atr contiki-atari-5.atr contiki-atari.atr
contiki-atari-1.atr: atarixl-makes
mkdir atr
- cp ../atarixl/dos25/dos.sys atr/dos.sys
- cp ../atarixl/dos25/dup.sys atr/dup.sys
+ cp ../atarixl/dos25/dos.sys atr/dos.sys
+ cp ../atarixl/dos25/dup.sys atr/dup.sys
+ cp ../../cpu/6502/$(DEV)config/$(DEV)config.atarixl atr/$(DEV)confi.com
+ cp ../../cpu/6502/ipconfig/ipconfig.atarixl atr/ipconfig.com
+ cp ../../examples/webbrowser/webbrowser.atarixl atr/webbrows.com
ifdef SLIP
- cp ../../cpu/6502/serconfig/serconfig.atarixl atr/serconfi.com
-endif
- cp ../../cpu/6502/ipconfig/ipconfig.atarixl atr/ipconfig.com
- cp ../../examples/webbrowser/webbrowser.atarixl atr/webbrows.com
- cp ../../examples/wget/wget.atarixl atr/wget.com
-ifdef SLIP
- cp default.cfg atr/contiki.cfg
+ cp default.cfg atr/contiki.cfg
else
- cp ../atarixl/default.cfg atr/contiki.cfg
+ cp ../atarixl/default.cfg atr/contiki.cfg
+ cp ../../cpu/6502/ethconfig/cs8900a.atarixl atr/cs8900a.eth
+ cp ../../cpu/6502/ethconfig/w5100.atarixl atr/w5100.eth
endif
- cp $(CC65)/atarixl/drv/mou/atrxst.mou atr/contiki.mou
- cp $(CC65)/atarixl/drv/mou/atrxami.mou atr/ami.mou
- cp $(CC65)/atarixl/drv/mou/atrxjoy.mou atr/joy.mou
- cp $(CC65)/atarixl/drv/mou/atrxtrk.mou atr/trk.mou
- cp $(CC65)/atarixl/drv/mou/atrxtt.mou atr/tt.mou
+ cp $(CC65)/atarixl/drv/mou/atrxst.mou atr/contiki.mou
+ cp $(CC65)/atarixl/drv/mou/atrxami.mou atr/ami.mou
+ cp $(CC65)/atarixl/drv/mou/atrxjoy.mou atr/joy.mou
+ cp $(CC65)/atarixl/drv/mou/atrxtrk.mou atr/trk.mou
+ cp $(CC65)/atarixl/drv/mou/atrxtt.mou atr/tt.mou
$(DIR2ATR) -b Dos25 1040 $@ atr
rm -r atr
contiki-atari-2.atr: atarixl-makes
mkdir atr
- cp ../atarixl/dos25/dos.sys atr/dos.sys
- cp ../atarixl/dos25/dup.sys atr/dup.sys
+ cp ../atarixl/dos25/dos.sys atr/dos.sys
+ cp ../atarixl/dos25/dup.sys atr/dup.sys
+ cp ../../cpu/6502/$(DEV)config/$(DEV)config.atarixl atr/$(DEV)confi.com
+ cp ../../cpu/6502/ipconfig/ipconfig.atarixl atr/ipconfig.com
+ cp ../../examples/wget/wget.atarixl atr/wget.com
ifdef SLIP
- cp ../../cpu/6502/serconfig/serconfig.atarixl atr/serconfi.com
-endif
- cp ../../cpu/6502/ipconfig/ipconfig.atarixl atr/ipconfig.com
- cp ../../examples/irc/irc-client.atarixl atr/irc.com
-ifdef SLIP
- cp default.cfg atr/contiki.cfg
+ cp default.cfg atr/contiki.cfg
else
- cp ../atarixl/default.cfg atr/contiki.cfg
+ cp ../atarixl/default.cfg atr/contiki.cfg
+ cp ../../cpu/6502/ethconfig/cs8900a.atarixl atr/cs8900a.eth
+ cp ../../cpu/6502/ethconfig/w5100.atarixl atr/w5100.eth
endif
- cp $(CC65)/atarixl/drv/mou/atrxst.mou atr/contiki.mou
- cp $(CC65)/atarixl/drv/mou/atrxami.mou atr/ami.mou
- cp $(CC65)/atarixl/drv/mou/atrxjoy.mou atr/joy.mou
- cp $(CC65)/atarixl/drv/mou/atrxtrk.mou atr/trk.mou
- cp $(CC65)/atarixl/drv/mou/atrxtt.mou atr/tt.mou
+ cp $(CC65)/atarixl/drv/mou/atrxst.mou atr/contiki.mou
+ cp $(CC65)/atarixl/drv/mou/atrxami.mou atr/ami.mou
+ cp $(CC65)/atarixl/drv/mou/atrxjoy.mou atr/joy.mou
+ cp $(CC65)/atarixl/drv/mou/atrxtrk.mou atr/trk.mou
+ cp $(CC65)/atarixl/drv/mou/atrxtt.mou atr/tt.mou
$(DIR2ATR) -b Dos25 1040 $@ atr
rm -r atr
contiki-atari-3.atr: atarixl-makes
+ mkdir atr
+ cp ../atarixl/dos25/dos.sys atr/dos.sys
+ cp ../atarixl/dos25/dup.sys atr/dup.sys
+ cp ../../cpu/6502/$(DEV)config/$(DEV)config.atarixl atr/$(DEV)confi.com
+ cp ../../cpu/6502/ipconfig/ipconfig.atarixl atr/ipconfig.com
+ cp ../../examples/irc/irc-client.atarixl atr/irc.com
+ifdef SLIP
+ cp default.cfg atr/contiki.cfg
+else
+ cp ../atarixl/default.cfg atr/contiki.cfg
+ cp ../../cpu/6502/ethconfig/cs8900a.atarixl atr/cs8900a.eth
+ cp ../../cpu/6502/ethconfig/w5100.atarixl atr/w5100.eth
+endif
+ cp $(CC65)/atarixl/drv/mou/atrxst.mou atr/contiki.mou
+ cp $(CC65)/atarixl/drv/mou/atrxami.mou atr/ami.mou
+ cp $(CC65)/atarixl/drv/mou/atrxjoy.mou atr/joy.mou
+ cp $(CC65)/atarixl/drv/mou/atrxtrk.mou atr/trk.mou
+ cp $(CC65)/atarixl/drv/mou/atrxtt.mou atr/tt.mou
+ $(DIR2ATR) -b Dos25 1040 $@ atr
+ rm -r atr
+
+contiki-atari-4.atr: atarixl-makes
mkdir atr
cp ../atarixl/dos25/dos.sys atr/dos.sys
cp ../atarixl/dos25/dup.sys atr/dup.sys
-ifdef SLIP
- cp ../../cpu/6502/serconfig/serconfig.atarixl atr/serconfi.com
-endif
+ cp ../../cpu/6502/$(DEV)config/$(DEV)config.atarixl atr/$(DEV)confi.com
cp ../../cpu/6502/ipconfig/ipconfig.atarixl atr/ipconfig.com
cp ../../examples/webserver/webserver-example.atarixl atr/webserv.com
- cp ../../examples/telnet-server/telnet-server.atarixl atr/telnetd.com
ifdef SLIP
cp default.cfg atr/contiki.cfg
else
cp ../atarixl/default.cfg atr/contiki.cfg
+ cp ../../cpu/6502/ethconfig/cs8900a.atarixl atr/cs8900a.eth
+ cp ../../cpu/6502/ethconfig/w5100.atarixl atr/w5100.eth
endif
cp $(CC65)/atarixl/drv/mou/atrxst.mou atr/contiki.mou
cp $(CC65)/atarixl/drv/mou/atrxami.mou atr/ami.mou
@@ -271,13 +291,33 @@ endif
$(DIR2ATR) -b Dos25 1040 $@ atr
rm -r atr
+contiki-atari-5.atr: atarixl-makes
+ mkdir atr
+ cp ../atarixl/dos25/dos.sys atr/dos.sys
+ cp ../atarixl/dos25/dup.sys atr/dup.sys
+ cp ../../cpu/6502/$(DEV)config/$(DEV)config.atarixl atr/$(DEV)confi.com
+ cp ../../cpu/6502/ipconfig/ipconfig.atarixl atr/ipconfig.com
+ cp ../../examples/telnet-server/telnet-server.atarixl atr/telnetd.com
+ifdef SLIP
+ cp default.cfg atr/contiki.cfg
+else
+ cp ../atarixl/default.cfg atr/contiki.cfg
+ cp ../../cpu/6502/ethconfig/cs8900a.atarixl atr/cs8900a.eth
+ cp ../../cpu/6502/ethconfig/w5100.atarixl atr/w5100.eth
+endif
+ cp $(CC65)/atarixl/drv/mou/atrxst.mou atr/contiki.mou
+ cp $(CC65)/atarixl/drv/mou/atrxami.mou atr/ami.mou
+ cp $(CC65)/atarixl/drv/mou/atrxjoy.mou atr/joy.mou
+ cp $(CC65)/atarixl/drv/mou/atrxtrk.mou atr/trk.mou
+ cp $(CC65)/atarixl/drv/mou/atrxtt.mou atr/tt.mou
+ $(DIR2ATR) -b Dos25 1040 $@ atr
+ rm -r atr
+
contiki-atari.atr: atarixl-makes
mkdir atr
cp ../atarixl/mydos4534/dos.sys atr/dos.sys
cp ../atarixl/mydos4534/dup.sys atr/dup.sys
-ifdef SLIP
- cp ../../cpu/6502/serconfig/serconfig.atarixl atr/serconfi.com
-endif
+ cp ../../cpu/6502/$(DEV)config/$(DEV)config.atarixl atr/$(DEV)confi.com
cp ../../cpu/6502/ipconfig/ipconfig.atarixl atr/ipconfig.com
cp ../../examples/webbrowser/webbrowser.atarixl atr/webbrows.com
cp ../../examples/wget/wget.atarixl atr/wget.com
@@ -288,6 +328,8 @@ ifdef SLIP
cp default.cfg atr/contiki.cfg
else
cp ../atarixl/default.cfg atr/contiki.cfg
+ cp ../../cpu/6502/ethconfig/cs8900a.atarixl atr/cs8900a.eth
+ cp ../../cpu/6502/ethconfig/w5100.atarixl atr/w5100.eth
endif
cp $(CC65)/atarixl/drv/mou/atrxst.mou atr/contiki.mou
cp $(CC65)/atarixl/drv/mou/atrxami.mou atr/ami.mou
@@ -322,8 +364,8 @@ ifdef SLIP
$(C1541) -attach $@ -write default.cfg contiki.cfg,s >$(NULLDEV)
else
$(C1541) -attach $@ -write ../c64/default.cfg contiki.cfg,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.eth cs8900a.eth,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.eth lan91c96.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.c64 cs8900a.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.c64 lan91c96.eth,s >$(NULLDEV)
endif
$(C1541) -attach $@ -write $(CC65)/c64/drv/mou/c64-1351.mou contiki.mou,s >$(NULLDEV)
$(C1541) -attach $@ -write $(CC65)/c64/drv/mou/c64-inkwell.mou inkwell.mou,s >$(NULLDEV)
@@ -340,8 +382,8 @@ ifdef SLIP
$(C1541) -attach $@ -write default.cfg contiki.cfg,s >$(NULLDEV)
else
$(C1541) -attach $@ -write ../c64/default.cfg contiki.cfg,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.eth cs8900a.eth,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.eth lan91c96.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.c64 cs8900a.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.c64 lan91c96.eth,s >$(NULLDEV)
endif
$(C1541) -attach $@ -write $(CC65)/c64/drv/mou/c64-1351.mou contiki.mou,s >$(NULLDEV)
$(C1541) -attach $@ -write $(CC65)/c64/drv/mou/c64-inkwell.mou inkwell.mou,s >$(NULLDEV)
@@ -358,8 +400,8 @@ ifdef SLIP
$(C1541) -attach $@ -write default.cfg contiki.cfg,s >$(NULLDEV)
else
$(C1541) -attach $@ -write ../c64/default.cfg contiki.cfg,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.eth cs8900a.eth,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.eth lan91c96.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.c64 cs8900a.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.c64 lan91c96.eth,s >$(NULLDEV)
endif
$(C1541) -attach $@ -write $(CC65)/c64/drv/mou/c64-1351.mou contiki.mou,s >$(NULLDEV)
$(C1541) -attach $@ -write $(CC65)/c64/drv/mou/c64-inkwell.mou inkwell.mou,s >$(NULLDEV)
@@ -385,8 +427,8 @@ ifdef SLIP
$(C1541) -attach $@ -write default.cfg contiki.cfg,s >$(NULLDEV)
else
$(C1541) -attach $@ -write ../c64/default.cfg contiki.cfg,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.eth cs8900a.eth,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.eth lan91c96.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.c64 cs8900a.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.c64 lan91c96.eth,s >$(NULLDEV)
endif
$(C1541) -attach $@ -write $(CC65)/c64/drv/mou/c64-1351.mou contiki.mou,s >$(NULLDEV)
$(C1541) -attach $@ -write $(CC65)/c64/drv/mou/c64-inkwell.mou inkwell.mou,s >$(NULLDEV)
@@ -412,8 +454,8 @@ ifdef SLIP
$(C1541) -attach $@ -write default.cfg contiki.cfg,s >$(NULLDEV)
else
$(C1541) -attach $@ -write ../c64/default.cfg contiki.cfg,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.eth cs8900a.eth,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.eth lan91c96.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.c64 cs8900a.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.c64 lan91c96.eth,s >$(NULLDEV)
endif
$(C1541) -attach $@ -write $(CC65)/c64/drv/mou/c64-1351.mou contiki.mou,s >$(NULLDEV)
$(C1541) -attach $@ -write $(CC65)/c64/drv/mou/c64-inkwell.mou inkwell.mou,s >$(NULLDEV)
@@ -445,8 +487,8 @@ ifdef SLIP
$(C1541) -attach $@ -write default.cfg contiki.cfg,s >$(NULLDEV)
else
$(C1541) -attach $@ -write ../c128/default.cfg contiki.cfg,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.eth cs8900a.eth,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.eth lan91c96.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.c128 cs8900a.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.c128 lan91c96.eth,s >$(NULLDEV)
endif
contiki-c128-2.d64: c128-makes
@@ -459,8 +501,8 @@ ifdef SLIP
$(C1541) -attach $@ -write default.cfg contiki.cfg,s >$(NULLDEV)
else
$(C1541) -attach $@ -write ../c128/default.cfg contiki.cfg,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.eth cs8900a.eth,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.eth lan91c96.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.c128 cs8900a.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.c128 lan91c96.eth,s >$(NULLDEV)
endif
$(C1541) -attach $@ -write ../../examples/webserver/httpd-cfs/index.htm index.htm,s >$(NULLDEV)
$(C1541) -attach $@ -write ../../examples/webserver/httpd-cfs/backgrnd.gif backgrnd.gif,s >$(NULLDEV)
@@ -480,8 +522,8 @@ ifdef SLIP
$(C1541) -attach $@ -write default.cfg contiki.cfg,s >$(NULLDEV)
else
$(C1541) -attach $@ -write ../c128/default.cfg contiki.cfg,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.eth cs8900a.eth,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.eth lan91c96.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.c128 cs8900a.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.c128 lan91c96.eth,s >$(NULLDEV)
endif
$(C1541) -attach $@ -write ../../examples/webserver/httpd-cfs/index.htm index.htm,s >$(NULLDEV)
$(C1541) -attach $@ -write ../../examples/webserver/httpd-cfs/backgrnd.gif backgrnd.gif,s >$(NULLDEV)
@@ -501,8 +543,8 @@ ifdef SLIP
$(C1541) -attach $@ -write default.cfg contiki.cfg,s >$(NULLDEV)
else
$(C1541) -attach $@ -write ../c128/default.cfg contiki.cfg,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.eth cs8900a.eth,s >$(NULLDEV)
- $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.eth lan91c96.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/cs8900a.c128 cs8900a.eth,s >$(NULLDEV)
+ $(C1541) -attach $@ -write ../../cpu/6502/ethconfig/lan91c96.c128 lan91c96.eth,s >$(NULLDEV)
endif
$(C1541) -attach $@ -write ../../examples/webserver/httpd-cfs/index.htm index.htm,s >$(NULLDEV)
$(C1541) -attach $@ -write ../../examples/webserver/httpd-cfs/backgrnd.gif backgrnd.gif,s >$(NULLDEV)
diff --git a/tools/apple2enh/default.cfg b/tools/apple2enh/default.cfg
index e9bc3f02ad0797f8e84f1feb6789f44a3be55ef0..49578fc9c3f02dbe9faf642e3726832fe0b03e43 100644
GIT binary patch
literal 29
XcmZQzKn2VU$;B3y1_p_GsU;Zz6i)+t
literal 29
YcmZQzKm{8PBo|v)8W<$%rIus>045j&=l}o!
diff --git a/tools/apple2enh/sample.cfg b/tools/apple2enh/sample.cfg
index 43ca5486ffd6f65513847c19df0f6d44a9c225d1..e8ec8046d5b48f7812dc0e09875b6d70f68496b0 100644
GIT binary patch
literal 29
icmX@Gf+7F^|NjgJRxmJvFf&7Pv4y39L84x2Nd^GJtqUOl
literal 29
icmX@Gf+7F^|NjgJRxmJv@P-4)#TJ$Z28nv9B^dzKb_|XH
diff --git a/tools/atarixl/default.cfg b/tools/atarixl/default.cfg
index f2cf1eb3118ada532ceee72ba83a3b043146d73e..645e53207b991e480d908677fc6c88c413c765c1 100644
GIT binary patch
literal 29
VcmZQzKnKai7M2DEiF&Ce82}V019$)c
literal 29
WcmZQzKm%8ki!Ce-3=;KHOELf+Bm_+W
diff --git a/tools/atarixl/sample.cfg b/tools/atarixl/sample.cfg
index f6e72b1c670e4d6ca1f56e88115313f9fb5db43d..3134f8ad276cfc6e87eec090915cbfa66a3d2b59 100644
GIT binary patch
literal 29
icmX@Gf+7F^|NjgJRxmJvFatw!v4y39fumk(Nd^GI<_i7*
literal 29
icmX@Gf+7F^|NjgJRxmJvFvHd4Vhc+H14q5ok_-UM;tSIN
diff --git a/tools/c128/default.cfg b/tools/c128/default.cfg
index 0958a903d33157c397e007df59e9478436f05a8b..86bf1dee228fa1a399138bdc8f113950b13bd4d3 100644
GIT binary patch
literal 29
VcmZQzKnKpj7M2DEj(V;k9sm$10=NJG
literal 29
XcmZQzKm{E4oP#Ya4GbLhTthqn8u$aA
diff --git a/tools/c128/sample.cfg b/tools/c128/sample.cfg
index ebb58ba85f9ad9f1a960620ef2925e8ab190bebc..4de36a7a52ce2ff10893f454e2a151eb18eeda9c 100644
GIT binary patch
literal 29
icmX@Gf+7F^|NjgJRxmJvFav{gu!W_8fuo*lhz9__h6-K)
literal 29
icmX@Gf+7F^|NjgJRxmJvFvmUTU<*qF14ljA5DxRtrP`
diff --git a/tools/c64/default.cfg b/tools/c64/default.cfg
index 0958a903d33157c397e007df59e9478436f05a8b..86bf1dee228fa1a399138bdc8f113950b13bd4d3 100644
GIT binary patch
literal 29
VcmZQzKnKpj7M2DEj(V;k9sm$10=NJG
literal 29
XcmZQzKm{E4oP#Ya4GbLhTthqn8u$aA
diff --git a/tools/c64/sample.cfg b/tools/c64/sample.cfg
index ebb58ba85f9ad9f1a960620ef2925e8ab190bebc..4de36a7a52ce2ff10893f454e2a151eb18eeda9c 100644
GIT binary patch
literal 29
icmX@Gf+7F^|NjgJRxmJvFav{gu!W_8fuo*lhz9__h6-K)
literal 29
icmX@Gf+7F^|NjgJRxmJvFvmUTU<*qF14ljA5DxRtrP`