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.
This commit is contained in:
Oliver Schmidt 2019-05-08 16:46:47 +02:00
parent 309e2fcd79
commit c2a71ee62b
27 changed files with 564 additions and 230 deletions

View File

@ -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

View File

@ -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 $<

View File

@ -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):

View File

@ -1,3 +1,4 @@
#include <cc65.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -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, &param, sizeof(param));
cfs_write(f, drivers[d].driver, strlen(drivers[d].driver));
cfs_close(f);

View File

@ -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);

View File

@ -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 */

View File

@ -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:<MAC_HI>:<MAC_LO>."
; 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
;---------------------------------------------------------------------

View File

@ -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();
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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/.

View File

@ -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

View File

@ -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').

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.