nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 19 Mar 2024 02:20



Reply to topic  [ 211 posts ]  Go to page Previous  1 ... 11, 12, 13, 14, 15  Next
IBM PCjr 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Shaos wrote:
Поднимаю обратно тему Ethernet для IBM PCjr:

https://hackaday.io/project/163856-pcjrnet

Ой, а они меня в FEATURED PROJECTS записали на http://hackaday.com :o


Attachments:
hackaday.png
hackaday.png [ 684.08 KiB | Viewed 26657 times ]

_________________
:dj: https://mastodon.social/@Shaos
13 Feb 2019 17:16
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
А то я думаю откуда там за один день 273 просмотра :roll:

_________________
:dj: https://mastodon.social/@Shaos


13 Feb 2019 20:26
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Shaos wrote:
А то я думаю откуда там за один день 273 просмотра :roll:

После второго дня аж 714 просмотров натикало :o

_________________
:dj: https://mastodon.social/@Shaos


14 Feb 2019 02:05
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Вот собственно тот самый 300-бодовый модем, вместо которого я хочу втыкать самодельный Ethernet:

Attachment:
PCjr-modem.jpg
PCjr-modem.jpg [ 135.62 KiB | Viewed 26619 times ]


P.S. На третий день у прожэкта на хакадее уже 1.1К просмотров :o

_________________
:dj: https://mastodon.social/@Shaos


14 Feb 2019 22:04
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Всё - убрали из FEATURED - успело 1.3К накапать...

_________________
:dj: https://mastodon.social/@Shaos


16 Feb 2019 03:38
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Вот примерно как я это себе вижу - WizNET втыкается вверх-ногами в какую-то горизонтальную платку, которая в свою очередь втыкается в основную вертикальную:

Attachment:
PCjrNet-proto1s.jpg
PCjrNet-proto1s.jpg [ 85.53 KiB | Viewed 26528 times ]


А разъём почти такого же размера - т.е. дырка сзади как раз:


Attachments:
PCjrNet.jpg
PCjrNet.jpg [ 74.9 KiB | Viewed 26528 times ]

_________________
:dj: https://mastodon.social/@Shaos
17 Feb 2019 13:36
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
С визнета надо вывести на основную плату вот что:

  • GND
  • +3.3V
  • /RESET (if we will need to have an ability to reset module programmatically)
  • /INT (interrupt to signal back to PC that buffers are full or empty)
  • /CS (to programmatically chip enable WizNET module)
  • /RD (read control signal)
  • /WR (write control signal)
  • A0
  • A1
  • D0
  • D1
  • D2
  • D3
  • D4
  • D5
  • D6
  • D7
  • /SCS (optional SPI - if this line goes down then module will switch to SPI mode)
  • SCLK (optional SPI)
  • MOSI (optional SPI)
  • MISO (optional SPI)

Только 2 адресные линии берём - A0 и A1 т.к. модуль будет юзаться в "Indirect-mode" когда доступ к внутренней памяти через 4 регистра (с инкрементом адреса):
Code:
3F8h - register MR of W5100 (indirect mode flag and auto-increment flag)
3F9h - register IDM_AR0 of W5100 (most significant byte of the address)
3FAh - register IDM_AR1 of W5100 (least significant byte of the address)
3FBh - register IDM_DR of W5100 (data register to read/write in indirect mode)
3FCh - reserved for future
3FDh - reserved for future
3FEh - reserved for future
3FFh - reserved for future
Третий адрес от PCjr можно потом под память для MAC-адреса заюзать (WizNET не имеет своего собственного MAC-адреса - его надо после сброса программно вводить).

Светодиоды /LNKLED, TX_LED и RX_LED можно оставить на промежуточной горизонтальной платке - будут светить вверх и должны быть видны сквозь решётку корпуса...


Attachments:
WIZ812MJ.png
WIZ812MJ.png [ 114.57 KiB | Viewed 26525 times ]

_________________
:dj: https://mastodon.social/@Shaos
17 Feb 2019 14:03
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Если делать полноценную breakout-платку (назвать её скажем BB-Wizard), то надо бы вывести всё - тогда лучше сделать так:
Code:
 1) GND
 2) +3.3V
 3) /RESET (if we will need to have an ability to reset module programmatically)
 4) /INT (interrupt to signal back to PC that buffers are full or empty)
 5) /CS (to programmatically chip enable WizNET module)
 6) /SCS (optional SPI - if this line goes down then module will switch to SPI mode)
 7) SCLK (optional SPI)
 8) MOSI (optional SPI)
 9) MISO (optional SPI)
10) D0
11) D1
12) D2
13) D3
14) D4
15) D5
16) D6
17) D7
18) /RD (read control signal)
19) /WR (write control signal)
20) A0 (indirect mode A0)
21) A1 (indirect mode A1)
22) A2
23) A3
24) A4
25) A5
26) A6
27) A7
28) A8
29) A9
30) A10
31) A11
32) A12
33) A13
34) A14

На платке может быть регулятор питания 3.3В, транзистор для разворачивания /INT в диапазон 0..5В и схема сброса при включении питания (сам модуль таковой не имеет)...

_________________
:dj: https://mastodon.social/@Shaos


17 Feb 2019 14:43
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Тут получается, что я могу универсальную плату сделать, которая сможет рабтоать как с IBM PCjr, так и с RC2014 :)

Attachment:
PCjrNet-RC2014s.jpg
PCjrNet-RC2014s.jpg [ 164 KiB | Viewed 26493 times ]


Для RC2014 придётся позаковыристей сделать дешифрацию адреса портов (с переключателем по видимому) и прерывание там активный 0 тогда как в PCjr - активная 1...

_________________
:dj: https://mastodon.social/@Shaos


18 Feb 2019 01:26
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Нашёл свежую дему для IBM PCjr :)


https://youtu.be/IWOE4FNZuqE

Quote:
PC Jr. Demo presented at Flashparty 2018 demoparty in Buenos Aires, Argentina. Awarded 1st. place at the demo compo.
Code by Riq, Gfx by Arlequin and Alakran, Music by Uctumi
Download executable release at: http://pungas.space/pvm-64ko.zip


P.S. О - даже сырцы открыты :o
https://gitlab.com/ricardoquesada/pcjr-flashparty-2018

_________________
:dj: https://mastodon.social/@Shaos


18 Feb 2019 01:51
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Всё моё добро на тему PCjr отныне будет жить тут:

https://gitlab.com/shaos/pcjr

Это бывший репозиторий PCjrCart, переехавший летом 2018 с гитхаба...

_________________
:dj: https://mastodon.social/@Shaos


18 Feb 2019 19:30
Profile WWW
Maniac

Joined: 18 Nov 2013 15:15
Posts: 209
Location: все оттуда ;)
Reply with quote
Shaos, смотри ещё одна полезная вещь для JR:
https://www.retrotronics.org/home-page/jride/


19 Feb 2019 18:31
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
VGrad wrote:
Shaos, смотри ещё одна полезная вещь для JR:
https://www.retrotronics.org/home-page/jride/

Угу ;)

_________________
:dj: https://mastodon.social/@Shaos


19 Feb 2019 18:56
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Основная плата сетевой карты будет очень хитрой формы:


Attachments:
PCjrNet-proto2.jpg
PCjrNet-proto2.jpg [ 164.02 KiB | Viewed 22509 times ]

_________________
:dj: https://mastodon.social/@Shaos
19 Feb 2019 20:49
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Shaos wrote:
На фотке картридж вставлен в левую дырку, но в правой он тоже работает - значит все CS-ы разведены в обе дырки, что есть хорошо. Получается так - разрабатываем программулину в DOSBox как COM-файл (нестандартный, т.к. данные что вместе с кодом лежат будут только для чтения - изменяемые данные надо будет держать где-то в ОЗУ) работающую только с BIOS (т.к. ДОСа нету), далее с помощью моей волшебной программы (исходники которой я скоро выложу на гитхаб) создаём образ для прошивки и вперёд :kruto:

P.S. Выложил: https://gitlab.com/shaos/pcjr
Волшебная программка лежит в каталоге software и называется PCJRCART.C :)
Волшебного в ней собственно подсчёт CRC16, который толком нигде не описан применительно к PCjr-картриджам:
 PCJRCART.C
Code:
/* PCJRCART.C by Shaos (Dec 2016) */

/* Create ROM image from COM file for PCjr cartrige */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "crc16.h"

#define MAXSIZE 65535

int main(int argc, char **argv)
{
    FILE *f;
    int i;
    char fname[100],*po;
    unsigned long sz;
    unsigned char extra = 0;
    unsigned short crc = 0;
    unsigned char *bytes = (unsigned char*)malloc(MAXSIZE);
    if(bytes==NULL)
    {
       printf("\nCan't allocate memory!\n\n");
       return -1;
    }
    if(argc<2)
    {
       printf("\nFilename was not specified!\n\n");
       return -2;
    }
    memset(bytes,0,MAXSIZE);
    bytes[0] = 0x55;
    bytes[1] = 0xAA;

    CalculateTable_CRC16();

    strcpy(fname,argv[1]);
    f = fopen(fname,"rb");
    if(f==NULL)
    {
       printf("\nCan't open file '%s'!\n\n",fname);
       free(bytes);
       return -3;
    }
    fseek(f,0,SEEK_END);
    sz = ftell(f);
    printf("%s %lu\n",fname,sz);
    if(sz>=65280)
    {
       printf("\nFile is too large!\n\n");
       fclose(f);
       free(bytes);
       return -4;
    }
    fseek(f,0,SEEK_SET);
    fread(&bytes[256],1,sz,f);
    fclose(f);

    sz += 258;
    if(sz&511)
    {
       sz &= 0xFE00;
       sz += 512;
    }
    bytes[2] = sz>>9;
    printf("ROM size is %lu bytes (%i)\n",sz,bytes[2]);
    bytes[3] = 0xE9;
    bytes[4] = 0x01;
    bytes[5] = 0x00;
    bytes[6] = 0x00;
    bytes[7] = 0xB8;
    bytes[8] = 0x00;
    bytes[9] = 0x01;
    bytes[10] = 0xFF;
    bytes[11] = 0xE0;

    crc = Compute_CRC16(bytes,sz-2);
    printf("Calculated CRC is 0x%4.4X\n",crc);

    if(sz==65536) extra = crc&0x00FF;
    else bytes[sz-1] = crc&0x00FF;
    bytes[sz-2] =  (crc&0xFF00)>>8;

    crc = Compute_CRC16(bytes,sz);
    printf("Corrected CRC is 0x%4.4X\n",crc);

    po = strrchr(fname,'.');
    if(po!=NULL) *po=0;
    strcat(fname,".bin");
    f = fopen(fname,"wb");
    if(f==NULL)
    {
       printf("\nCan't open file '%s'!\n\n",fname);
       free(bytes);
       return -5;
    }
    if(sz<=32768) fwrite(bytes,1,sz,f);
    else fwrite(bytes,1,32768,f);
    fclose(f);
    if(sz>32768)
    {
       fname[strlen(fname)-1] = '2';
       f = fopen(fname,"wb");
       if(f==NULL)
       {
          printf("\nCan't open file '%s'!\n\n",fname);
          free(bytes);
          return -6;
       }
       if(sz==65536)
       {
          fwrite(&bytes[32768],1,32767,f);
          fputc(extra,f);
       }
       else fwrite(&bytes[32768],1,sz-32768,f);
       fclose(f);
    }
    free(bytes);
    return 0;
}

Обратился тут ко мне человек - спрашивает а чего это у тебя в этой программке байтики какие-то заполняются - 0xE9 там, 0x01 и т.д., а я уже и не помню чего они там заполняются :o

Затолкал это в дизассемблер и получил нижеследующее:
Code:
00000000  E90100            jmp word 0x4
00000003  00B80001          add [bx+si+0x100],bh
00000007  FFE0              jmp ax

_________________
:dj: https://mastodon.social/@Shaos


11 Jul 2019 18:46
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 211 posts ]  Go to page Previous  1 ... 11, 12, 13, 14, 15  Next

Who is online

Users browsing this forum: No registered users and 11 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.