tanamの日記

2018-04-01

2Mビットフラッシュメモリカートリッジその6

07:53

MSXに2Mビットフラッシュメモリ(00000-3FFFF)をつないで74161で256KBメガロムカートリッジをつくりたい。

http://www7b.biglobe.ne.jp/~leftyserve/delusion/del_sulr.htm

ROMの32KB(4000-7FFF/8000-BFFF)をバンク切り替え(8000-BFFF)できるようにします。

Address  A15 A14 A13 |/CE A17 A16 A15 A14 ROM
>0000    0   0   0   |1   -   -   -   -   -
>2000    0   0   1   |1   -   -   -   -   -
>4000    0   1   0   |0   0   0   0   1   >04000
>6000    0   1   1   |0   0   0   0   1   >06000
>8000    1   0   0   |0   *   *   *   0   >00000..>1D000
>A000    1   0   1   |0   *   *   *   0   >02000..>1E000
>C000    1   1   0   |1   -   -   -   -   -
>E000    1   1   1   |1   -   -   -   -   -
;
; EN29F002T.EQN - EN29F002T MSX MULTI CARTRIDGE
;

TITLE EN29F002T MSX MULTI CARTRIDGE
PATTERN A
REVISION 1.0
AUTHOR TANAM1972
COMPANY PARALLEL COMPUTER INC
DATE 4/1/18

CHIP EN29F002T GAL22V10D

NC A15 A14 SLTSL_n MERQ_n A17O A16O A15O A14O A13 A12 GND
A11 CE_n A14_n CE2_n A17_n A16_n A15_n NC NC NC NC VCC

EQUATIONS

CE_n = A15 * A14 + /A15 * /A14 + SLTSL_n + MERQ_n

CE2_n = /A15 + A14 + A13 + A12 + A11 + MERQ_n

A17_n = A17O * A15

A16_n = A16O * A15

A15_n = A15O * A15

A14_n = A14O + A14

回路図

       MSX  GAL22V10 27C020 74161
       A15    A15
PIN 1  A14    A14
PIN 2 A12    A12      A12
PIN 3 A7              A7
PIN 4 A6              A6
PIN 5 A5              A5
PIN 6  A4              A4
PIN 7  A3              A3
PIN 8  A2              A2
PIN 9  A1              A1
PIN10  A0              A0
PIN11  D0              D0      A
PIN12  D1              D1      B
PIN13  D2              D2      C
PIN14  GND    GND      GND     EP|ET
PIN15  D3              D3      D
PIN16  D4              D4
PIN17 D5              D5
PIN18 D6              D6
PIN19 D7              D7
PIN20 /SLTSL SLTSL_n  /CE
PIN21 A10             A10
PIN22  /MERQ  MERQ_n   /OE
PIN23  A11    A11      A11
PIN24  A9              A9
PIN25  A8              A8
PIN26  A13    A13      A13
PIN27  /WR                     CK
PIN28  VCC    VCC      VCC     /RES
              CE2_n            /LD
              A14O             QA
              A15O             QB
              A16O             QC
              A17O             QD
              A14_n    A14
              A15_n    A15
              A16_n    A16
              A17_n    A17

2018-03-25

2Mビットフラッシュメモリカートリッジその5

19:25

ぴゅう太に2Mビットフラッシュメモリ(00000-3FFFF)をつないで74161でRAM & MEGAROMカートリッジをつくりたい。

http://www7b.biglobe.ne.jp/~leftyserve/delusion/del_sulr.htm

ROMの24KB(4000-5FFF/8000-BFFF)をバンク切り替え(8000-BFFF)できるようにし、ワークエリアにRAMの16KB(6000-7FFF/C000-DFFF)を使えるようにします。

Address  A0 A1 A2 SELEXM| /CE2  RAM  /CE A17 A16 A15 A14 A13 ROM
>0000    0  0  0  0     |  1         1   -   -   -   -   -
>2000    0  0  1  0     |  1         1   -   -   -   -   -
>4000    0  1  0  1     |  1         0   0   0   0   1   0  >04000
>6000    0  1  1  1     |  0 >6000   1   -   -   -   -   -
>8000    1  0  0  1     |  1         0   0   *   *   *   0  >00000...>1D000
>A000    1  0  1  1     |  1         0   0   *   *   *   1  >02000...>1E000
>C000    1  1  0  1     |  0 >4000   1   -   -   -   -   -
>E000    1  1  1  0     |  1         1   -   -   -   -   -
;
; MEGAROM.EQN - EN29F002T PYUTA MEGAROM
;

TITLE EN29F002T PYUTA MEGAROM
PATTERN A
REVISION 1.0
AUTHOR TANAM1972
COMPANY PARALLEL COMPUTER INC
DATE 4/4/18

CHIP EN29F002T GAL22V10D

NC A0 A1 A2 A17O A16O A15O A14O A3 A4 A5 GND
A6 CE_n A14 SELEXM A17 A16 A15 CE2_n LD_n NC NC VCC

EQUATIONS

LD_n = /A0 + A1 + A2 + A3 + A4 + A5 + A6

CE2_n = A0 * /A1 + A0 * A2 + /A0 * /A1 + /A0 * /A2 + /A1 + /A1 * A2 + /A1*/A2

CE_n =/A0 * /A1 + /A0 * A2 + A1 * A0 + A1 * A2

SELEXM = /A0 * A1 + /A1 * A0 + /A2 * A0 + /A2 * A1

A17 = A170 * A0

A16 = A16O * A0

A15 = A15O * A0

A14 = A14O + A1

回路図

       CXK58257P PYUTA  GAL22V10D 27C020 74161
                 A0     A0
PIN 1  A14       A1     A1
PIN 2 A12       A3              A12
PIN 3 A7        A8              A7
PIN 4 A6        A9              A6
PIN 5 A5        A10             A5
PIN 6  A4        A11             A4
PIN 7  A3        A12             A3
PIN 8  A2        A13             A2
PIN 9  A1        A14             A1
PIN10  A0        A15             A0
PIN11  D0        D7              D0      A
PIN12  D1        D6              D1      B
PIN13  D2        D5              D2      C
PIN14  GND       GND    GND      GND     EP|ET
PIN15  D3        D4              D3      D
PIN16  D4        D3              D4
PIN17 D5        D2              D5
PIN18 D6        D1              D6
PIN19 D7        D0              D7
PIN20 /CE          CE2_n  CE_n  /CE
PIN21 A10       A5              A10
PIN22  /OE       /DBIN           /OE
PIN23  A11       A4              A11
PIN24  A9        A6              A9
PIN25  A8        A7              A8
PIN26  A13       A2     A2       A13
PIN27  /WE       /WE                     CK
PIN28  VCC       VCC    VCC      VCC     /RES
                        LD_n             /LD
                 J1-6p  SELEXM
                        A14O             QA
                        A15O             QB
                        A16O             QC
                        A17O             QD
                        A14      A14
                        A15      A15
                        A16      A16
                        A17      A17

2018-03-24

ぴゅう太の拡張スロットにRAM&ROMカートリッジをつないでみる その9

23:46

ぴゅう太mk2バージョンアップアダプタを使用して、BIOSの置き換えが可能となりました。

http://www.geocities.jp/parallel_computer_inc/cart.html

RAM&ROMカートリッジ2のGALを書き換えて、システムROM(0000-4FFF)、ROMカートリッジ(5000-7FFF)、RAMカートリッジ(8000-BFFF)としてつないでみました。

f:id:tanam:20180325164407g:image:w360

ROMカートリッジ(5000-7FFF)にマシン語モニタと8KBのゲームを格納して改造したシステムROM(0000-4FFF)からRAMカートリッジ(8000-9FFF)にマシン語モニタをコピーしています。

Address  A0 A1 A2 SELEXM| /CE  RAM  /CE2 A14 A13 ROM
>0000    0  0  0  1     |  1         0   0   0  >0000
>2000    0  0  1  1     |  1         0   0   1  >2000
>4000    0  1  0  1     |  1         0   1   0  >4000
>6000    0  1  1  1     |  1         0   1   1  >6000
>8000    1  0  0  1     |  0 >0000   1   -   -
>A000    1  0  1  1     |  0 >2000   1   -   -
>C000    1  1  0  0     |  1         1   -   -
>E000    1  1  1  0     |  1         1   -   -

PYUTAMINI.EQN

;
; PYUTAMINI.EQN - PYUTA DEVELOPMENT CARTRIDGE2
;

TITLE PYUTA DEVELOPMENT CARTRIDGE2
PATTERN A
REVISION 1.0
AUTHOR TANAM1972
COMPANY PARALLEL COMPUTER INC
DATE 3/24/18

CHIP PYUTA2 GAL22V10

NC NC A1 A0 NC NC NC NC NC NC NC GND
NC CE_n CE2_n SELEXM A14 NC NC NC NC NC NC VCC

EQUATIONS

CE_n = /A0 + A1

CE2_n = A0

SELEXM = /A0 + /A1

A14 = A1

2018-03-12

ぴゅう太のBIOSをダンプしてみる その3

21:55

ぴゅう太mk2の16KBカートリッジ(8000-BFFF)から見ると256KBフラッシュメモリ(00000-3FFFF)は16KB(00000-03FFF)なので、32KB(0000-7FFF)のBIOSをDUMPするには前(0000-1FFF)、中(2000-4FFF)、後(5000-7FFF)で3回実行する必要があります。

f:id:tanam:20180312220651j:image:w360

画面が化けますが起動したらRTキーを押してください。

http://www.geocities.jp/parallel_computer_inc/pyuta2bios.zip

;
; EN29F002T.EQN - EN29F002T PYUTA BIOS DUMPER
;

TITLE EN29F002T PYUTA BIOS DUMPER
PATTERN A
REVISION 1.0
AUTHOR TANAM1972
COMPANY PARALLEL COMPUTER INC
DATE 7/12/17

CHIP EN29F002T GAL22V10D

NC A15 A14 NC NC NC NC NC NC NC NC GND
NC CE_n A14_n CE NC NC NC NC NC NC NC VCC

EQUATIONS

CE_n = /A15 + A14

A14_n = A14

CE = A15 * /A14
***************************************************************
*
* FLASH MEMORY WRITER for PYUTA mk2
*
* 2018/03/12  written by TANAM
*
********@*****@*********************@**************************
        AORG >8000
***************************************************************
* HEADER
***************************************************************
        DATA >5555             * GAME CARTRIDGE HEADER
        b    @START            * GOTO MAIN
***************************************************************
* SUB
***************************************************************
FLASH_WRITE
        limi 0
        li   R4,>9000
        li   R9,>0000
*        li   R9,>2000
*        li   R9,>5000
        li   R15,>2000
*        li   R15,>3000
*        li   R15,>3000
WR_LOOP
        li   R5,>8555
        li   R6,>AA00
        movb R6,*R5
        li   R5,>8AAA
        li   R6,>5500
        movb R6,*R5
        li   R5,>8555
        li   R6,>A000
        movb R6,*R5
        movb *R9,*R4
        inc  R9
        inc  R4
        dec  R15
        ci   R15,>0000
        jne  WR_LOOP
        limi 3
        b    *R11
ALPHA   ci   R4,>0023
        jgt  SPACE
        ci   R4,>000A
        jlt  SPACE
NUMBER  li   R7,CHAR           * VDP CHAR ADDRESS TABLE
        a    R4,R4             * R4 = R4 + R4
        a    R7,R4             * SET CHAR "0" + R4
        mov  *R4,R7            * SET CHAR ADDRESS TO R7
        b    @>0194            * PRINT NUMBER
SPACE   li   R7,>1922          * SET CHAR " " ADDR TO R7
        b    @>0194            * PRINT SPACE
***************************************************************
***************************************************************
CHAR    DATA >19A2,>19AA,>19B2,>19BA,>19C2,>19CA,>19D2,>19DA
        DATA >19E2,>19EA
        DATA >1A2A,>1A32,>1A3A,>1A42,>1A4A,>1A52
        DATA >1A5A,>1A62,>1A6A,>1A72,>1A7A,>1A82,>1A8A,>1A92
        DATA >1A9A,>1AA2,>1AAA,>1AB2,>1ABA,>1AC2,>1ACA,>1AD2
        DATA >1ADA,>1AE2,>1AEA,>1AF2
***************************************************************
* MAIN
***************************************************************
START   li   R12,>0060         * INITIAL CELL FUNCTION
        bl   @>019c            *
        li   R7,>1800          * VRAM FILL FUNCTION
        li   R8,>f200          *
        li   R9,>2000          *
        bl   @>002c            *
        li   R7,>1800          * SCROLL AREA FUNCTION
        li   R8,>02e0          *
        li   R9,>06e0          *
        bl   @>0180            *
        li   R9,>0000
        li   R15,BOOTMSG
LOOP1   li   R4,>0000
        movb *R15+,R4
        swpb R4
        ci   R4,>0000
        jeq  CMD1
        ai   R4,-55
        bl   @ALPHA
        b    @LOOP1
CMD1    li   R9,>0200
        li   R15,PUSHMSG
LOOP2   li   R4,>0000
        movb *R15+,R4
        swpb R4
        ci   R4,>0000
        jeq  CMD2
        ai   R4,-55
        bl   @ALPHA
        b    @LOOP2
CMD2    bl   @>023c            * LINE INPUT FUNCTION
        nop                    *
        nop                    *
        li   R7,>3f9c          * INITIAL VRAM ADDRESS
        li   R8,>0000          * INITIAL BUFFER
        li   R9,>0300
        li   R15,STARTMSG
LOOP3   li   R4,>0000
        movb *R15+,R4
        swpb R4
        ci   R4,>0000
        jeq  FLASH
        ai   R4,-55
        bl   @ALPHA
        b    @LOOP3
FLASH   li   R4,>F000
        li   R9,FLASH_WRITE
        li   R15,>00a0
LDIR    movb *R9+,*R4+
        dec  R15
        ci   R15,>0000
        jne  LDIR
        bl   @>F000
        li   R9,>0400
        li   R15,COMPMSG
        b    @LOOP4
ERROR   li   R9,>0400
        li   R15,ERRORMSG
LOOP4   li   R4,>0000
        movb *R15+,R4
        swpb R4
        ci   R4,>0000
        jeq  LOOP5
        ai   R4,-55
        bl   @ALPHA
        b    @LOOP4
LOOP5   b    @LOOP5

***************************************************************
* DATA
***************************************************************
BOOTMSG TEXT "PYUTA FLASH MEMORY WRITER"
        BYTE >00

PUSHMSG TEXT "PUSH RT KEY TO START"
        BYTE >00

STARTMSG TEXT "START"
        BYTE >00

ERRORMSG TEXT "ERROR"
        BYTE >00

COMPMSG TEXT "COMPLETE"
        BYTE >00

        END

2018-03-05

ぴゅう太の拡張スロットにRAM&ROMカートリッジをつないでみる その8

16:17

拡張スロットの/KILL SROMを0にすることで、本体内のシステムROMを使用禁止して、mk2のBIOSで起動させてみました。

http://www43.tok2.com/home/cmpslv/Pyuuta/EnrPt.htm

f:id:tanam:20180305163049j:image:w360

以前にぴゅう太の拡張スロットに、RAM&ROMカートリッジGALを書き換えて、32KB ROM(4000-BFFF)としてつないでみました。

http://d.hatena.ne.jp/tanam/20170304/1488595954

今度はGALを書き換えて、システムROM(0000-7FFF)としてつないでみました。

Address  A0 A1 A2 SELEXM| /CE  RAM  /CE2 A14 A13 ROM
>0000    0  0  0  1     |  1         0   0   0  >0000
>2000    0  0  1  1     |  1         0   0   1  >2000
>4000    0  1  0  1     |  1         0   1   0  >4000
>6000    0  1  1  1     |  1         0   1   1  >6000
>8000    1  0  0  0     |  1         1   -   -
>A000    1  0  1  0     |  1         1   -   -
>C000    1  1  0  0     |  1         1   -   -
>E000    1  1  1  0     |  1         1   -   -

PYUTABIOS.EQN

;
; PYUTABIOS.EQN - PYUTA DEVELOPMENT CARTRIDGE2
;

TITLE PYUTA DEVELOPMENT CARTRIDGE2
PATTERN A
REVISION 1.0
AUTHOR TANAM1972
COMPANY PARALLEL COMPUTER INC
DATE 3/5/18

CHIP PYUTA2 GAL22V10

NC NC A1 A0 NC NC NC NC NC NC NC GND
NC NC CE2_n SELEXM A14 NC NC NC NC NC NC VCC

EQUATIONS

CE2_n = A0

SELEXM = /A0

A14 = A1

フラッシュメモリカートリッジでもGALを書き換えて、システムROM(0000-7FFF)としてつないでみました。

EN29F002T.EQN

;
; EN29F002T.EQN - EN29F002T PYUTA MULTI CARTRIDGE
;

TITLE EN29F002T PYUTA MULTI CARTRIDGE
PATTERN A
REVISION 1.0
AUTHOR TANAM1972
COMPANY PARALLEL COMPUTER INC
DATE 6/30/17

CHIP EN29F002T GAL22V10D

NC A15 A14 NC NC NC NC NC NC NC NC GND
NC CE_n A14_n CE NC NC NC NC NC NC NC VCC

EQUATIONS

CE_n = A15

A14_n = A14

CE = /A15

ゲームアダプタでもGALを書き換えて、27C256をシステムROM(0000-3FFF)としてつないでみました。

GAMEADAPTER.EQN

;
; GAMEADAPTER2.EQN - PYUTA ESE GAME ADAPTER2
;

TITLE PYUTA ESE GAME ADAPTER2
PATTERN A
REVISION 1.0
AUTHOR TANAM1972
COMPANY PARALLEL COMPUTER INC
DATE 3/5/18

CHIP GAMEADAPTER2 GAL22V10

NC NC A1 A0 NC NC NC NC NC NC NC GND
NC CROM0_n CE_n NC NC NC NC NC NC NC NC VCC

EQUATIONS

CROM0_n = /A0 + A1

CE_n = A0 + A1