Enterprise Forever

:UK => Hardware => Interface => Topic started by: Tutus on 2018.December.12. 10:00:42

Title: Enterprise MIDI hardware
Post by: Tutus on 2018.December.12. 10:00:42
An idea came (The idea of ​​Szipucsu and Tutus). Somehow, you should have Midi hardware on your Enterprise computer.
We currently see that Zozo has an old "A" studio copy (see the picture - does not work...).
Pear would take the project in his hands :)

(http://www.enterpriseklub.hu/images/P1040897.jpg)
Title: Re: Enterprise MIDI hardware
Post by: szipucsu on 2018.December.12. 10:19:02
Yes, but Pear would need some help, as I know.
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2018.December.12. 10:50:47
see the picture - does not work...
This is at Werner's, this works.
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2018.December.12. 11:55:35
There is an old thread about the Scoretrack program (https://enterpriseforever.com/programming/scoretrack-vilmos-kopacsy-midi-atempt/).

I would love to have one of these MIDI interfaces, but the cartridge bay is better populated with a good SD-reader. Maybe it would be more realistic to build an external board, for example cloning the Philips NMS-1205 MSX cartridge (https://enterpriseforever.com/hardware/philips-music-module-msx-cartridge-test/msg72213/#msg72213) MIDI side. This is the actual link to the Service Manua (http://msx.hansotten.com/uploads/fyfiles/philipsnms12051160sm.pdf)l

[attach=1]

Once the interface working, any of our resident genius coders can take the Scoretrack incomplete Rom and make it work.

Edit: I have somehow made the NMS-1205 cartridge work on the Enterprise with the M-Slot adapter.
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2018.December.12. 12:11:41
I would love to have one of these MIDI interfaces, but the cartridge bay is better populated with a good SD-reader.
Easy to adapt to bus side, just need to add 64K memory address decoder (two 74LS138 can do the task).
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2018.December.12. 12:34:14
You mean an external MIDI interface+ROM?
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2018.December.12. 12:49:19
You mean an external MIDI interface+ROM?
Yes, the original 'a' Studio interface can be built to expansion port, just need to make a CART signal (address decoding for a 64K).

(Also possible to build cartridge to bus adapter board, for connect any cartridge to expansion bus.)
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2018.December.12. 14:36:51
Interesting....
Title: Re: Enterprise MIDI hardware
Post by: Tutus on 2018.December.12. 16:26:27
Be sure to plan for input. (of course midiplay is compatible).
For external midi keyboard.
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2018.December.12. 16:31:56
I'm interested about the output :-) Want to hear in a real life the musics what we found in one Paradise Software tape (http://ep128.hu/Album/Ep_Kazetta/Paradise_Soft_1.jpg).
Title: Re: Enterprise MIDI hardware
Post by: pear on 2018.December.12. 18:36:28
I have at least a controller (http://www.volkerschatz.com/hardware/vhdocl-example/sources/ACIA_6850.html) for a good start :) I wonder if it works ?
Code: VHDL
  1. --===========================================================================--
  2. --
  3. --  S Y N T H E Z I A B L E    ACIA 6850   C O R E
  4. --
  5. --  www.OpenCores.Org - January 2007
  6. --  This core adheres to the GNU public license
  7. --
  8. -- Design units   : 6850 ACIA core
  9. --
  10. -- File name      : ACIA6850.vhd
  11. --
  12. -- Purpose        : Implements an RS232 Asynchronous serial communications device
  13. --
  14. -- Dependencies   : ieee.std_logic_1164
  15. --                  ieee.numeric_std
  16. --                  unisim.vcomponents
  17. --
  18. --===========================================================================--
  19. -------------------------------------------------------------------------------
  20. -- Revision list
  21. -- Version   Author                 Date           Changes
  22. --
  23. -- 0.1      Ovidiu Lupas     15 January 2000       New model
  24. -- 1.0      Ovidiu Lupas     January  2000         Synthesis optimizations
  25. -- 2.0      Ovidiu Lupas     April    2000         Bugs removed - RSBusCtrl
  26. --          the RSBusCtrl did not process all possible situations
  27. --
  28. --        olupas at the domain opencores.org
  29. --
  30. -- 3.0      John Kent        October  2002         Changed Status bits to match mc6805
  31. --                                                 Added CTS, RTS, Baud rate control
  32. --                                                 & Software Reset
  33. -- 3.1      John Kent        5 January 2003        Added Word Format control a'la mc6850
  34. -- 3.2      John Kent        19 July 2003          Latched Data input to UART
  35. -- 3.3      John Kent        16 January 2004       Integrated clkunit in rxunit & txunit
  36. --                                                 Now has external TX 7 RX Baud Clock
  37. --                                                 inputs like the MC6850...
  38. --                                                 also supports x1 clock and DCD.
  39. -- 3.4          John Kent                       13 September 2005               Removed LoadCS signal.
  40. --                                                                                                                                      Fixed ReadCS and Read in "if" in
  41. --                                                                                                                                      miniuart_DCD_Init process
  42. -- 3.5      John Kent         28 November 2006     Cleaned up code.
  43. --
  44. -- 4.0      John Kent         3 February 2007      renamed ACIA6850
  45. -- 4.1      John Kent         6 February 2007      Made software reset synchronous
  46. --      4.2      John Kent         25 February 2007     Changed sensitivity lists
  47. --                                                 Rearranged Reset process.
  48. --        dilbert57 at the domain opencores.org
  49. --
  50. library ieee;
  51.    use ieee.std_logic_1164.all;
  52.    use ieee.numeric_std.all;
  53. --library unisim;
  54. --      use unisim.vcomponents.all;
  55.  
  56. -----------------------------------------------------------------------
  57. -- Entity for ACIA_6850                                              --
  58. -----------------------------------------------------------------------
  59.  
  60. --* @brief 6850 ACIA core
  61. --*
  62. --* Syntheziable    ACIA 6850   core.
  63. --*
  64. --* @author Ovidiu Lupas
  65. --* @author John Kent
  66. --* @version 4.2 from 25 February 2007
  67.  
  68. entity ACIA_6850 is
  69.   port (
  70.      --
  71.           -- CPU signals
  72.           --
  73.      clk      : in  Std_Logic;  -- System Clock
  74.      rst      : in  Std_Logic;  -- Reset input (active high)
  75.      cs       : in  Std_Logic;  -- miniUART Chip Select
  76.      rw       : in  Std_Logic;  -- Read / Not Write
  77.      irq      : out Std_Logic;  -- Interrupt
  78.      Addr     : in  Std_Logic;  -- Register Select
  79.      DataIn   : in  Std_Logic_Vector(7 downto 0); -- Data Bus In
  80.      DataOut  : out Std_Logic_Vector(7 downto 0); -- Data Bus Out
  81.      --
  82.           -- Uart Signals
  83.           --
  84.      RxC      : in  Std_Logic;  -- Receive Baud Clock
  85.      TxC      : in  Std_Logic;  -- Transmit Baud Clock
  86.      RxD      : in  Std_Logic;  -- Receive Data
  87.      TxD      : out Std_Logic;  -- Transmit Data
  88.           DCD_n    : in  Std_Logic;  -- Data Carrier Detect
  89.      CTS_n    : in  Std_Logic;  -- Clear To Send
  90.      RTS_n    : out Std_Logic );  -- Request To send
  91. end ACIA_6850; --================== End of entity ==============================--
  92.  
  93. --* @brief Architecture for ACIA_6850 Interface registers
  94. --*
  95. --* Implements an RS232 Asynchronous serial communications device
  96. --*
  97. --* @author Ovidiu Lupas
  98. --* @author John Kent
  99. --* @version 4.2 from 25 February 2007
  100.  
  101. architecture rtl of ACIA_6850 is
  102.  
  103.   type DCD_State_Type is ( DCD_State_Idle, DCD_State_Int, DCD_State_Reset );
  104.  
  105.   -----------------------------------------------------------------------------
  106.   -- Signals
  107.   -----------------------------------------------------------------------------
  108.  
  109.   ----------------------------------------------------------------------
  110.   --  Status Register: StatReg
  111.   ----------------------------------------------------------------------
  112.   --
  113.   -- IO address + 0 Read
  114.   --
  115.   -----------+--------+-------+--------+--------+--------+--------+--------+
  116.   --  Irq    | PErr   | OErr  | FErr   |  CTS   |  DCD   |  TxBE  |  RxDR  |
  117.   -----------+--------+-------+--------+--------+--------+--------+--------+
  118.   -- Irq  - Bit[7] - Interrupt request
  119.   -- PErr - Bit[6] - Receive Parity error (parity bit does not match)
  120.   -- OErr - Bit[5] - Receive Overrun error (new character received before last read)
  121.   -- FErr - Bit[4] - Receive Framing Error (bad stop bit)
  122.   -- CTS  - Bit[3] - Clear To Send level
  123.   -- DCD  - Bit[2] - Data Carrier Detect (lost modem carrier)
  124.   -- TxBE - Bit[1] - Transmit Buffer Empty (ready to accept next transmit character)
  125.   -- RxDR - Bit[0] - Receive Data Ready (character received)
  126.   --
  127.   signal StatReg : Std_Logic_Vector(7 downto 0) := (others => '0'); -- status register
  128.  
  129.   ----------------------------------------------------------------------
  130.   --  Control Register: CtrlReg
  131.   ----------------------------------------------------------------------
  132.   --
  133.   -- IO address + 0 Write
  134.   --
  135.   -----------+--------+--------+--------+--------+--------+--------+--------+
  136.   --  RxIEnb |TxCtl(1)|TxCtl(0)|WdFmt(2)|WdFmt(1)|WdFmt(0)|BdCtl(1)|BdCtl(0)|
  137.   -----------+--------+--------+--------+--------+--------+--------+--------+
  138.   -- RxIEnb - Bit[7]
  139.   -- 0       - Rx Interrupt disabled
  140.   -- 1       - Rx Interrupt enabled
  141.   -- TxCtl - Bits[6..5]
  142.   -- 0 1     - Tx Interrupt Enable
  143.   -- 1 0     - RTS high
  144.   -- WdFmt - Bits[4..2]
  145.   -- 0 0 0   - 7 data, even parity, 2 stop
  146.   -- 0 0 1   - 7 data, odd  parity, 2 stop
  147.   -- 0 1 0   - 7 data, even parity, 1 stop
  148.   -- 0 1 1   - 7 data, odd  parity, 1 stop
  149.   -- 1 0 0   - 8 data, no   parity, 2 stop
  150.   -- 1 0 1   - 8 data, no   parity, 1 stop
  151.   -- 1 1 0   - 8 data, even parity, 1 stop
  152.   -- 1 1 1   - 8 data, odd  parity, 1 stop
  153.   -- BdCtl - Bits[1..0]
  154.   -- 0 0     - Baud Clk divide by 1
  155.   -- 0 1     - Baud Clk divide by 16
  156.   -- 1 0     - Baud Clk divide by 64
  157.   -- 1 1     - reset
  158.   signal CtrlReg : Std_Logic_Vector(7 downto 0) := (others => '0'); -- control register
  159.  
  160.   ----------------------------------------------------------------------
  161.   -- Receive Register
  162.   ----------------------------------------------------------------------
  163.   --
  164.   -- IO address + 1     Read
  165.   --
  166.   signal RecvReg : Std_Logic_Vector(7 downto 0) := (others => '0');
  167.   ----------------------------------------------------------------------
  168.   -- Transmit Register
  169.   ----------------------------------------------------------------------
  170.   --
  171.   -- IO address + 1     Write
  172.   --
  173.   signal TranReg : Std_Logic_Vector(7 downto 0) := (others => '0');
  174.  
  175.   signal Reset    : Std_Logic;  -- Reset (Software & Hardware)
  176.   signal RxRst    : Std_Logic;  -- Receive Reset (Software & Hardware)
  177.   signal TxRst    : Std_Logic;  -- Transmit Reset (Software & Hardware)
  178.   signal TxDbit   : Std_Logic;  -- Transmit data bit
  179.   signal RxDR     : Std_Logic := '0';  -- Receive Data ready
  180.   signal TxBE     : Std_Logic := '0';  -- Transmit buffer empty
  181.  
  182.   signal FErr     : Std_Logic := '0';  -- Frame error
  183.   signal OErr     : Std_Logic := '0';  -- Output error
  184.   signal PErr     : Std_Logic := '0';  -- Parity Error
  185.  
  186.   signal TxIEnb   : Std_Logic := '0';  -- Transmit interrupt enable
  187.   signal RxIEnb   : Std_Logic := '0';  -- Receive interrupt enable
  188.  
  189.   signal ReadRR   : Std_Logic := '0';  -- Read receive buffer
  190.   signal WriteTR  : Std_Logic := '0';  -- Write transmit buffer
  191.   signal ReadSR   : Std_Logic := '0';  -- Read Status register
  192.  
  193.   signal DCDState : DCD_State_Type;    -- DCD Reset state sequencer
  194.   signal DCDDel   : Std_Logic := '0';  -- Delayed DCD_n
  195.   signal DCDEdge  : Std_Logic := '0';  -- Rising DCD_N Edge Pulse
  196.   signal DCDInt   : Std_Logic := '0';  -- DCD Interrupt
  197.  
  198.   --* ACIA Receiver
  199.   component ACIA_RX
  200.   port (
  201.      Clk     : in  Std_Logic;                    -- Bus Clock signal
  202.      RxRst   : in  Std_Logic;                    -- Reset input
  203.      RxRd    : in  Std_Logic;                    -- Read data strobe
  204.      WdFmt   : in  Std_Logic_Vector(2 downto 0); -- word format
  205.      BdFmt   : in  Std_Logic_Vector(1 downto 0); -- baud format
  206.      RxClk   : in  Std_Logic;                    -- Receive clock input
  207.      RxDat   : in  Std_Logic;                    -- Receive data bit input
  208.      RxFErr  : out Std_Logic;                    -- Framing Error Status signal
  209.      RxOErr  : out Std_Logic;                    -- Overrun Error Status signal
  210.           RxPErr  : out Std_logic;                    -- Parity Error Status signal
  211.      RxRdy   : out Std_Logic;                    -- Data Ready Status signal
  212.      RxDout  : out Std_Logic_Vector(7 downto 0));-- Receive data bus output
  213.   end component;
  214.  
  215.   --* ACIA Transmitter
  216.   component ACIA_TX
  217.   port (
  218.      Clk    : in  Std_Logic;                    -- Bus Clock signal
  219.      TxRst  : in  Std_Logic;                    -- Reset input
  220.      TxWr   : in  Std_Logic;                    -- Load transmit data strobe
  221.      TxDin  : in  Std_Logic_Vector(7 downto 0); -- Transmit data bus input
  222.      WdFmt  : in  Std_Logic_Vector(2 downto 0); -- Word format Control signal
  223.      BdFmt  : in  Std_Logic_Vector(1 downto 0); -- Baud format Control signal
  224.      TxClk  : in  Std_Logic;                    -- Transmit clock input
  225.      TxDat  : out Std_Logic;                    -- Transmit data bit output
  226.      TxEmp  : out Std_Logic );                  -- Tx buffer empty status signal
  227.   end component;
  228.  
  229. begin
  230.   --* Instantiation of internal components
  231.   --*
  232.   RxDev   : ACIA_RX  port map (
  233.                 Clk      => clk,
  234.                                          RxRst    => RxRst,
  235.                                          RxRd     => ReadRR,
  236.                                          WdFmt    => CtrlReg(4 downto 2),
  237.                                          BdFmt    => CtrlReg(1 downto 0),
  238.                                          RxClk    => RxC,
  239.                                          RxDat    => RxD,
  240.                                          RxFErr   => FErr,
  241.                                          RxOErr   => OErr,
  242.                                          RxPErr   => PErr,
  243.                                          RxRdy    => RxDR,
  244.                                          RxDout   => RecvReg
  245.                                          );
  246.  
  247.  
  248.   TxDev   : ACIA_TX  port map (
  249.                 Clk      => clk,
  250.                                          TxRst    => TxRst,
  251.                                          TxWr     => WriteTR,
  252.                                          TxDin    => TranReg,
  253.                                          WdFmt    => CtrlReg(4 downto 2),
  254.                                          BdFmt    => CtrlReg(1 downto 0),
  255.                                          TxClk    => TxC,
  256.                                          TxDat    => TxDbit,
  257.                                          TxEmp    => TxBE
  258.                                          );
  259.  
  260. --* ACIA Reset may be hardware or software
  261. ACIA_Reset : process( clk, rst, Reset, DCD_n )
  262. begin
  263.     -- Asynchronous External reset
  264.     if rst = '1' then
  265.            Reset <= '1';
  266.     elsif clk'Event and clk = '0' then
  267.            -- Synchronous Software reset
  268.            Reset <= CtrlReg(1) and CtrlReg(0);
  269.          end if;
  270.          -- Transmitter reset
  271.          TxRst <= Reset;
  272.          -- Receiver reset
  273.          RxRst <= Reset or DCD_n;
  274.  
  275. end process;
  276.  
  277. --* ACIA Status Register
  278. --* ACIA_Status : process(clk,  Reset, TxIEnb, RxIEnb,
  279. --* RxDR, TxBE,  DCD_n, CTS_n, DCDInt,
  280. --* FErr, OErr,  PErr )
  281. ACIA_Status : process(Reset, clk )
  282.   begin
  283.     if Reset = '1' then
  284.        StatReg <= (others => '0');
  285.     elsif clk'event and clk='0' then
  286.                  StatReg(0) <= RxDR;   -- Receive Data Ready
  287.        StatReg(1) <= TxBE and (not CTS_n); -- Transmit Buffer Empty
  288.             StatReg(2) <= DCDInt; -- Data Carrier Detect
  289.                  StatReg(3) <= CTS_n;  -- Clear To Send
  290.        StatReg(4) <= FErr;   -- Framing error
  291.        StatReg(5) <= OErr;   -- Overrun error
  292.        StatReg(6) <= PErr;   -- Parity error
  293.                  StatReg(7) <= (RxIEnb and RxDR)   or
  294.                                (RxIEnb and DCDInt) or
  295.                                (TxIEnb and TxBE);
  296.     end if;
  297.   end process;
  298.  
  299.  
  300. --* ACIA Transmit Control
  301. --*
  302. ACIA_Control : process( CtrlReg, TxDbit )
  303. begin
  304.     case CtrlReg(6 downto 5) is
  305.          when "00" => -- Disable TX Interrupts, Assert RTS
  306.            RTS_n  <= '0';
  307.                 TxD    <= TxDbit;
  308.                 TxIEnb <= '0';
  309.     when "01" => -- Enable TX interrupts, Assert RTS
  310.            RTS_n  <= '0';
  311.                 TxD    <= TxDbit;
  312.                 TxIEnb <= '1';
  313.     when "10" => -- Disable Tx Interrupts, Clear RTS
  314.            RTS_n  <= '1';
  315.                 TxD    <= TxDbit;
  316.                 TxIEnb <= '0';
  317.     when "11" => -- Disable Tx interrupts, Assert RTS, send break
  318.            RTS_n  <= '0';
  319.                 TxD    <= '0';
  320.                 TxIEnb <= '0';
  321.     when others =>
  322.            null;
  323.          end case;
  324.  
  325.          RxIEnb <= CtrlReg(7);
  326.  
  327. end process;
  328.  
  329. --* Generate Read / Write strobes.
  330. --*
  331. --* ACIA_Read_Write:  process(clk, Reset, cs, rw, Addr, DataIn )
  332. ACIA_Read_Write:  process(clk, Reset )
  333. begin
  334.   if reset = '1' then
  335.             CtrlReg <= (others => '0');
  336.                  TranReg <= (others => '0');
  337.                  ReadRR  <= '0';
  338.                  WriteTR <= '0';
  339.                  ReadSR <= '0';
  340.         elsif clk'event and clk='0' then
  341.        ReadRR  <= '0';
  342.        WriteTR <= '0';
  343.        ReadSR  <= '0';
  344.             if cs = '1' then
  345.               if Addr = '0' then        -- Control / Status register
  346.                      if rw = '0' then   -- write control register
  347.                             CtrlReg <= DataIn;
  348.                           else               -- read status register
  349.                             ReadSR      <= '1';
  350.                           end if;
  351.               else                                         -- Data Register
  352.                      if rw = '0' then   -- write transmiter register
  353.              TranReg <= DataIn;
  354.                   WriteTR <= '1';
  355.                 else               -- read receiver register
  356.              ReadRR  <= '1';
  357.                           end if; -- rw
  358.                    end if; -- Addr
  359.             end if;  -- cs
  360.    end if; -- clk / reset
  361. end process;
  362.  
  363. --* Set Data Output Multiplexer
  364. --*
  365. ACIA_Data_Mux: process(Addr, StatReg, RecvReg)
  366. begin
  367.          if Addr = '1' then
  368.                  DataOut <= RecvReg;   -- read receiver register
  369.          else
  370.                  DataOut <= StatReg;   -- read status register
  371.          end if; -- Addr
  372.     irq <= StatReg(7);
  373. end process;
  374.  
  375.  
  376. --* Data Carrier Detect Edge rising edge detect
  377. --* ACIA_DCD_edge : process( reset, clk, DCD_n, DCDDel  )
  378. ACIA_DCD_edge : process( reset, clk     )
  379. begin
  380.    if reset = '1' then
  381.            DCDEdge <= '0';
  382.                 DCDDel  <= '0';
  383.    elsif clk'event and clk = '0' then
  384.            DCDDel <= DCD_n;
  385.                 DCDEdge <= DCD_n and (not DCDDel);
  386.    end if;
  387. end process;
  388.  
  389.  
  390. --* Data Carrier Detect Interrupt
  391. --* If Data Carrier is lost, an interrupt is generated
  392. --* To clear the interrupt, first read the status register
  393. --* then read the data receive register
  394. --* ACIA_DCD_Int : process( reset, clk, DCDState, DCDEdge, ReadRR, ReadSR )
  395. ACIA_DCD_Int : process( reset, clk )
  396. begin
  397.    if reset = '1' then
  398.            DCDInt   <= '0';
  399.                 DCDState <= DCD_State_Idle;
  400.    elsif clk'event and clk = '0' then
  401.            case DCDState is
  402.                 when DCD_State_Idle =>
  403.                    -- DCD Edge activates interrupt
  404.                    if DCDEdge = '1' then
  405.                       DCDInt     <= '1';
  406.                            DCDState   <= DCD_State_Int;
  407.                    end if;
  408.            when DCD_State_Int =>
  409.                    -- To reset DCD interrupt,
  410.                         -- First read status
  411.                    if ReadSR = '1' then
  412.                            DCDState <= DCD_State_Reset;
  413.                    end if;
  414.                 when DCD_State_Reset =>
  415.                    -- Then read receive register
  416.                    if ReadRR = '1' then
  417.                                 DCDInt   <= '0';
  418.                                 DCDState <= DCD_State_Idle;
  419.          end if;
  420.       when others =>
  421.          null;
  422.       end case;
  423.    end if; -- clk / reset
  424. end process;
  425.  
  426. end rtl; --===================== End of architecture =======================--
  427.  
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2018.December.12. 19:06:49
Both the Enterprise MIDI cartridge and the Philips NMS-1205 use the same chip, the Motorola MC68B50P (https://html.alldatasheet.com/html-pdf/4162/MOTOROLA/MC68B50/258/1/MC68B50.html).
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2018.December.12. 23:10:05
Both the Enterprise MIDI cartridge and the Philips NMS-1205 use the same chip, the Motorola MC68B50P (https://html.alldatasheet.com/html-pdf/4162/MOTOROLA/MC68B50/258/1/MC68B50.html).
Atari ST also uses it. (It is the origin of the Enterprise MIDI, because Kopácsy also worked on Atari.)
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2018.December.12. 23:36:01
What a good clue!

But, who is Jefrey?
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2018.December.13. 09:34:19
I'm interested about the output :-) Want to hear in a real life the musics what we found in one Paradise Software tape (http://ep128.hu/Album/Ep_Kazetta/Paradise_Soft_1.jpg).
I talking about these:
http://enterprise.iko.hu/EPV1.MP3
http://enterprise.iko.hu/EPV2.MP3
http://enterprise.iko.hu/EPV3.MP3
http://enterprise.iko.hu/EPV4.MP3
http://enterprise.iko.hu/EPV5.MP3
http://enterprise.iko.hu/EPV6.MP3

Werner wrote about it:
Quote
I can't believe it !!!! The first song is definitely played by the ENTERPRISE and I think it was on a Roland MT-32. I will never forget this song, because it was the first one that Vilmos presented me in Munich. It is very much like something from Jean Michel Jarre and that is the reason, why I am remembering it so well. The others I cannot remember, but Vilmos had a wide collection of them.
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2018.December.17. 14:37:01
István! You already looked inside the Scoretrack. Can you made a memory map of the 'a' Studio cartridge?
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2018.December.17. 15:01:05
Thanks! More easy to make schematic when know what do it is :-)
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2018.December.17. 19:21:04
Cartridges also have the disadvantage that they do not support I/O ports. Memory mapped I/O is more problematic to emulate (unless it is somehow hacked into the existing SD card interface), and it would be slower to read in a modified version of midiplay, because paging needs to be saved, changed and restored in a high frequency IRQ handler. Assuming it is based on the 6850, input could be implemented better if the interface supported generating interrupts, otherwise the 6850 needs to be polled at a fixed high frequency, which does work, but uses more CPU time. With a VHDL implementation of the 6850, a minor optimization would be possible by making the data register return FFh when no new data byte is available.

I think like you, better an external expansion card. We have all necessary signals there. And bus expanders are cheap to build.

On the MSX approach they seem to connect the MC6850 /IRQ pin 7 to Z80 /INT, but then, who knows the origin of the interrupt?. I think that what is needed is to implement another read-only port for the interrupt status.
Title: Re: Enterprise MIDI hardware
Post by: pear on 2018.December.23. 10:12:14
Does anyone have a photo of the bottom side of the interface PCB ?
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2018.December.23. 11:49:39
Does anyone have a photo of the bottom side of the interface PCB ?
[attach=1]
Title: Re: Enterprise MIDI hardware
Post by: pear on 2018.December.23. 12:07:30
Thanks :)
Do you have a photo of the top side with removed ROM ?
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2018.December.23. 13:57:48
Do you have a photo of the top side with removed ROM ?
Not yet :oops:
This is my interface. It is have a additional hack, for simulating ROM from SRAM. (But not work properly, ROM contents always damaged...) My plan is restoring it to original version. I hope after Christmas will have some free time :oops:
[attach=1]
Title: Re: Enterprise MIDI hardware
Post by: pear on 2018.December.23. 14:35:20
Would it be possible to borrow this interface ?
I'm trying to recreate the scheme.
There are terribly many vias :(
Title: Re: Enterprise MIDI hardware
Post by: pear on 2018.December.24. 06:57:26
I will not read more from photos :(
I can guess, but it's easy to make a mistake.
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2018.December.24. 13:01:49
Nice! This is in Eagle? Can you send the file? I will add the remaining wires.
Title: Re: Enterprise MIDI hardware
Post by: pear on 2018.December.24. 14:26:42
It's DipTrace, up to 300 pins is free. https://diptrace.com/
DB9 in original interface is probably MIDI thru.
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.February.06. 15:29:41
More photos:
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.February.06. 15:30:32
SRAM hack removed:
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.February.06. 17:00:14
Being a new project, changing the pagination(and the MIDI.Rom code) to segment 06, the two devices(Midi+SD reader) can live together on the same cartridge.
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.February.06. 18:44:42
Being a new project, changing the pagination(and the MIDI.Rom code) to segment 06, the two devices(Midi+SD reader) can live together on the same cartridge.
Better idea put to Bus side. (06h used by EXDOS in SD cartridge)
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.February.06. 20:01:52
More photos:
Thanks :)
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.February.06. 21:14:17
I am eager to see this project running.
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.February.06. 21:36:08
Thanks :)
It is enough help? Or remain some hidden tracks?
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.February.07. 06:03:58
I'll let you know at the weekend.
If I couldn't spot something, I will ask.
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.04. 15:19:52
Can I ask one photo taken in an axis perpendicular to the PCB ?
Scan would be even better.
I need to measure the sizes of the PCB.
The scale of the photo is not important, but it is necessary to keep the angles straight.
Preferably in the bottom view.
Thank You in advance.
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.March.07. 08:08:47
I will try it!

Schematic done?
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.07. 08:54:51
Almost.
I want to generate a PCB based on the scheme and check if the paths will come out in the same places.
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.March.07. 20:04:41
Can this be used?
The main size is about 12.2x5.3 cm, at connection about 4.1 cm.
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.07. 20:20:08
Yes :) Great. Thank You :)
The dimensions of integrated circuits are standard.
According to them, I'm scaling the rest.
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.08. 19:21:51
Digital crocheting ;)
Title: Re: Enterprise MIDI hardware
Post by: Tutus on 2019.March.09. 06:05:42
:smt038
Title: Re: Enterprise MIDI hardware
Post by: Povi on 2019.March.09. 22:59:41
What does this MIDI module do? Is it only a 31250 bit/s serial port, or anything else is added?
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.10. 08:04:19
There are only ROM, UART and matching circuit to the MIDI standard (current signals and galvanic separation).
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.10. 09:24:48
The most difficult part has left.
A few connections on the upper side of the board, hidden under integrated circuits.
I will have to guess ...
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.March.10. 11:09:09
A few connections on the upper side of the board, hidden under integrated circuits.
I will have to guess ...
Which ones need to be checked?
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.10. 11:40:38
U1=LS133
U2=LS02
U3=LS00 (horizontal)
U4=LS00 (vertical)

In general, it's about logic at the gates.

1. Is U4 gate not used (pins 4,5,6) ?
2. What is the output U1 (pin 9) connected to ?
3. What are the pins 5 and 6 of the optocoupler connected to ?
    From the photos I get that pin 5 is connected to RxDATA (pin 2 ACIA) and to the U3 C gate (pin 9 and 10).
    If this is the case, where is the output of U3 C (pin 8 ) connected ?
4. The U2 A output (pin 1) is connected to CS0 and CS1 ACIA.
    My guess is that the inputs of the U2 A gate (pin 2 and 13) are A14 and A15, but I can not see these connections (you will find A14 on pin 11 U1 and A15 on pin 4 U1).
5. Finally, the biggest puzzle - U3 A (in 1,2, out 3), U3 B (in 4,5, out 6) and U3 D (in 12,13, out 11).
   The U3 A output seems to be connected to the CE ROM input, but it's kind of weird.
    I do not know where the pins 14 (Enable), 13 (R/W) and 5 (RTS) of ACIA are connected.

It's possible that in the end I would have guessed the right combination of connections (it's a bit like Sudoku ;) ), but it's easy to make a mistake.

The attachment contains the current state of the schematic.
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.March.11. 23:19:52
1. Is U4 gate not used (pins 4,5,6) ?
Yes.

Quote
2. What is the output U1 (pin 9) connected to ?
U2 pin 3
U3 pin 1

Quote
3. What are the pins 5 and 6 of the optocoupler connected to ?
pin 6 NC
Quote
   From the photos I get that pin 5 is connected to RxDATA (pin 2 ACIA) and to the U3 C gate (pin 9 and 10).
Yes.

Quote
   If this is the case, where is the output of U3 C (pin 8 ) connected ?
U2 pin 5,6

Quote
4. The U2 A output (pin 1) is connected to CS0 and CS1 ACIA.
    My guess is that the inputs of the U2 A gate (pin 2 and 13) are A14 and A15, but I can not see these connections
Pin 2 /CART
Pin 3 U1-9

Quote
5. Finally, the biggest puzzle - U3 A (in 1,2, out 3)
Pin 1 U1-9
Pin 2 A15
Pin 3 EPROM Pin 20

Quote
U3 B (in 4,5, out 6)
It looks not used.

Quote
and U3 D (in 12,13, out 11)
Pin 13 /WR
Pin 12 /RD
Pin 11 ACIA 14

Quote
I do not know where the pins 14 (Enable)
U3 Pin11

Quote
13 (R/W)
/WR

Quote
and 5 (RTS) of ACIA are connected.
It is not connected.
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.12. 05:45:45
Thank You Very Much :bow: :bow: :bow:
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.12. 17:40:19
U2 pin 5,6
Are you sure the pins 5 and 6 are connected together ? Can not see such a connection in the pictures.

And the last question.
MIDI uses pins 4 and 5 in the DIN 5 connector.
Which colors in MIDI IN and MIDI OUT are connected to which pins ?
I specifically marked them separately because it seems to me that in each of the connectors the red and green wire leads to another pin.

In addition, the rest of the connections look promising.
I don't see any not covered paths in the pictures.
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.12. 19:19:40
However, I found one unconnected path.
Probably one end lead to a pull-up resistor.
Where's the other end ?
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.March.12. 22:17:21
Are you sure the pins 5 and 6 are connected together ? Can not see such a connection in the pictures.
Yes. There is it :-)
[attach=1]

Probably one end lead to a pull-up resistor.
Yes.


Quote
MIDI uses pins 4 and 5 in the DIN 5 connector.
Which colors in MIDI IN and MIDI OUT are connected to which pins ?
IN:
red 5
green 4

OUT:
red 4
green 5
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.13. 07:56:39
Thanks :)

Probably one end lead to a pull-up resistor.
Where's the other end ?
Yes.
OK, fine, but the second end ?
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.March.13. 09:03:46
OK, fine, but the second end ?
U2 pin 5,6 - U3 pin 8
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.13. 10:24:20
Hm, I wonder why ?
These are not open collector gates (U3).
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.13. 15:51:55
Final, reverse engineering schematic.
Can you check if it is correct ?
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.March.13. 16:21:50
Nice! :smt038
The J2 how numbered?
And also the resistors/capacitors?
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.13. 17:41:33
I think  that J2 must be numbered following the Enterprise EDGE numbering convention, B component/upper side, A solder/down side, and the numbering, looking in front of the connector, pins starting from left to right.
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.13. 17:46:55
Here you are.
Connector J2 looks like the contacts for the DB9 socket.
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.13. 18:10:35
Ah, to directly solder a DB9. A good solution, much better than the two hanging DINs.
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.13. 18:13:50
That was on the original PCB.
On the connector there are signals for the third MIDI THRU socket and an IRQ signal from the ACIA system.
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.13. 20:14:05
Now that we are near completion, I want to try the external cartridge bay that Zozo sugested. But I need some schematics.
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.14. 05:59:30
Exactly.
Should I make a copy of the interface in the cardridge version or it immediately change ?
If the second option, then what standard ?
Standalone (directly to the edge connector), under the BUS board (original or new), or COMBO with the option of choosing which connector to assembly and connect to what ?
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.15. 05:55:14
Can you check if it is correct ?
And how ?
Is fine ?
Or I need to correct something in the schematic ?
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.March.15. 15:11:28
I'll try to finish checking at the weekend.

Should I make a copy of the interface in the cardridge version or it immediately change ?
I think cartridge version isn't needed, most users use SD at the cartridge side.

Quote
or COMBO with the option of choosing which connector to assembly and connect to what ?
I think the COMBO version will be the best.
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.March.15. 16:27:12
Now that we are near completion, I want to try the external cartridge bay that Zozo sugested. But I need some schematics.
2x 74ALS138
1x 74LS32

First 74LAS138:
/E0 and /E1: /MREQ
E2: /RFSH
A0: A19
A1: A20
A2: A21
The 8 outputs are valid for 8x512K memory areas:
/Q0: 00H-1FH
/Q1: 20H-3FH
/Q2: 40H-5FH
/Q3: 60H-7FH
/Q4: 80H-1FH
/Q5: A0H-BFH
/Q6: C0H-DFH
/Q7: E0H-FFH

With the second 74ALS138 divide one 512K are for a 64K areas:
/E0 and /E1: /Qx from first 74ALS138
E2: +5V
A0: A16
A1: A17
A2: A18

If using /Q0: 00H-1FH from first 138, then the outputs of the second:
/Q0: 00H-03H
/Q1: 04H-07H
/Q2: 08H-0BH
/Q3: 0CH-0FH
/Q4: 10H-13H
/Q5: 14H-17H
/Q6: 18H-1BH
/Q7: 1CH-1FH

The selected output will be the new /CART signal. Using Q0 from the first, and Q2 from the second, then the new external cartridge will be at 08H-0BH, next to the original.
One gate from the 74LS32 make the /CART&RD signal.

Also need a 7805 (or compatible) or a +5V from bus card.
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.15. 16:33:44
Ok thanks. I will study it and more questions will follow, for sure....
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.March.16. 21:22:00
Final, reverse engineering schematic.
Can you check if it is correct ?
All correct! :smt038
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.17. 15:15:19
Similar decoding is made inside DAVE:

[attach=1]

I understand that /ROM is no more necessary, with your modified EXOS a ROM can exist on any 16kb boundary(Segment).
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.17. 17:45:25
Initial visualization.
COMBO connector with the option of mounting elements for connection in a standard BusBridge or without it, or via BusExpander or FlexiBridge.
Possibility to select a jumper of the standard cardridge segment (04-07) or the next (08-0B).
It is possible to choose ROM 27128 or 27256.
Jumper for connecting the IRQ signal from the ACIA to the INT input of the CPU.
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.17. 19:05:02
Wonderful!

I like your multi-connection options.
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.23. 13:34:48
I think is ready for production.
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.23. 15:17:08
Of course, I want one.

Now we need somebody polish the program in Rom.
Title: Re: Enterprise MIDI hardware
Post by: szipucsu on 2019.March.23. 15:26:15
I think is ready for production.
It seems awesome! What can it do? Have you tried it out? How does it work?
Can you plug a midi keyboard and play using midiplay or mididisp utilities?
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.23. 15:56:55
Unfortunately, I do not have any instrument or MIDI keyboard for testing.
For a moment I thought about buying, but these are things that take up a lot of space, and I'm not a musician (my level of music - music does not bother me :ds_icon_cheesygrin: ).
I will test the finished circuit on the oscilloscope, and then I will ask someone who has the musical equipment for help.
Title: Re: Enterprise MIDI hardware
Post by: szipucsu on 2019.March.23. 16:33:12
I'm not a musician
However, I suggest you use this T-shirt after finishing the midi hardware:

(https://enterpriseforever.com/other-topics/t-shirt-project/?action=dlattach;attach=20908;image)
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.23. 16:44:56
I am on an intermediate scale.... I can't play an instrument, but on the other side I am very intersted on music, even more on MIDI for its robotic behaviour.

I have the gear, I can test the card, but surely szipucsu can enjoy it more than me....
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.23. 17:04:39
I would be more interested in lighting control for music, i.e. DMX interface.
However, since it never existed in the Enterprise, it would be necessary to write software from scratch.
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.23. 17:47:02
I don't have DMX gear. It seems that it uses the same protocol, so with a MIDI channel you can control the lights.  Probably you don't need more software than the MIDI sequencer.
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.March.24. 17:39:31
Unfortunately, I do not have any instrument or MIDI keyboard for testing.
I have a synthesizer (from Apuci), I hope it can play music from EP :-)
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.24. 19:22:37
If the MIDI songs for the cartridge where made for a Roland MT32 as you have written, is possible that it wouldn't sound the same on a GM1(General Midi 1), Roland GS(General Standard), Yamaha XG(eXtended General standard), and finally GM2(General Midi 2).

The MT32 was launched on 1987, a lot of time before the GM1 standard on 1991. Roland GS was launched later on the same year(SC55), and was GM1 compliant, but added a lot of non standard features. Yamaha decided to launch the  XG standard on 1995, it was a conglomerate, with even the option to switch from the basic GM1 to  Roland GS mode and the, for me, superior XG mode.

GM2 was established on 1999 and ended with the MIDI standards "war", adopting some of the Roland only or Yamaha only specifications.

The problem is, the MT32 has the instruments and some controllers on other positions than the GM, so the songs can sound "strange"... But the songs can be re-arranged to sound correctly on a sequencer.

Of course you can opt to buy an original MT32 synthesizer to ear the songs, but the bad new is that the MIDI gear doesn't drop prices with the years, what I can't understand.
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.24. 20:05:18
Additionally, I have found that some of the earlier Roland Sound Canvas had a MT32 mode, so it is possible to have GM1, GS and MT32 modes in the same gear.


Edit: according to the Sound Canvas Wiki (https://en.wikipedia.org/wiki/Roland_Sound_Canvas), the Roland SC55 was able to partially emulate  the MT32, and only by rearranging the order of the instruments.

Also, on the MT32 wiki page (https://en.wikipedia.org/wiki/Roland_MT-32#Emulation) they talk about ways to emulate the MT32 along the years, including a soft synthesizer made by Roland themselves.
Title: Re: Enterprise MIDI hardware
Post by: Tutus on 2019.March.26. 06:22:52
Unfortunately, I do not have any instrument or MIDI keyboard for testing.
I can also try using an external MIDI keyboard :)
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.26. 06:42:06
There are 10 pieces of PCBs in production.
I'll let you know when the first interface is ready.
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.26. 10:59:50
Great!
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.26. 19:33:20
I bought a used Casio CTK-671 keyboard for 80 EUR for testing with the interface :cool:
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.26. 21:01:50
Not so bad.

I have searched about it on the net. It is at least GM1, as can be seen on this video (https://www.youtube.com/watch?v=_V5R7DxssJo). There are  a lot of links to download a manual, even the service manual, but probably not in polish.....

According to its Midi implementation chart, it can send and receive almost all the most used MIDI messages, so it will serve you for the test.
Title: Re: Enterprise MIDI hardware
Post by: IstvanV on 2019.March.27. 14:15:00
For the purpose of testing Scoretrack, you only need some hardware that can play MIDI output sent by the cartridge, even an old PC sound card could work with an adapter. There is currently no software on the Enterprise that can use input from this card.
Title: Re: Enterprise MIDI hardware
Post by: Povi on 2019.March.27. 14:43:31
I bought a used Casio CTK-671 keyboard for 80 EUR for testing with the interface :cool:
Oh, I have exactly the same keyboard :-)
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.27. 18:11:07
There is currently no software on the Enterprise that can use input from this card.

OK, I know, but we can read at least the input activity to know if the MIDI IN works. I made a simple Basic program to test the MSX Philips Music Module. I was able to read some input, but of course, Basic is slow to save all the stream.

I used IN() statements, now we would use SPEEK().
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.28. 06:18:33
PCB boards on the way.
Title: Re: Enterprise MIDI hardware
Post by: Tutus on 2019.March.28. 08:58:48
Pear, you're very fast!
Thank you very much! :smt038 :smt038 :smt038

I'm very excited :D
Title: Re: Enterprise MIDI hardware
Post by: gflorez on 2019.March.28. 09:26:14
Still the PCBs will took some weeks to travel from China to Poland. And then Pear will mount and test them, some weeks more...

But yes, I also think he is fast.

Logically, making it real will be a little slower than recreating and designing it.
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.28. 09:43:30
This is the first clone in which I had to recreate the original scheme without access to the equipment.
Only from photos and descriptions on the forum.
I hope it will works.
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.March.28. 16:21:49
The keyboard arrived.
One of the keys has poor sensitivity, but it is not important.
Title: Re: Enterprise MIDI hardware
Post by: Povi on 2019.March.28. 16:35:31
The keyboard arrived.
One of the keys has poor sensitivity, but it is not important.
When I had a similar issue, I just cleaned the PCB with alcohol under the key membrane
Title: Re: Enterprise MIDI hardware
Post by: Bagpuss22 on 2019.March.30. 11:24:14
Great work!  I am looking forward to seeing this working :smt023
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.April.07. 11:49:39
The PCBs in a great time of four days overcomed the distance from China to Poland.
At the last kilometer, from the post office to me, the postman lost the parcel.
I just do not want to believe :evil:
Title: Re: Enterprise MIDI hardware
Post by: szipucsu on 2019.April.07. 15:35:54
At the last kilometer, from the post office to me, the postman lost the parcel.
Hopefully he will find it at the post office...
Title: Re: Enterprise MIDI hardware
Post by: Zozosoft on 2019.April.09. 09:54:31
At the last kilometer, from the post office to me, the postman lost the parcel.
Arrrghhhh :evil:
Title: Re: Enterprise MIDI hardware
Post by: Tutus on 2019.April.15. 09:44:07
Was the shipment finally found?
Title: Re: Enterprise MIDI hardware
Post by: pear on 2019.April.15. 11:16:54
Unfortunately not. The shipment has been lost :smt013
I will order new PCBs after Easter.
Title: Re: Enterprise MIDI hardware
Post by: Tutus on 2019.April.15. 13:55:22
:smt013