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<*qF14ljA5Dx&#RtrP` 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<*qF14ljA5Dx&#RtrP`