Важная информация
Страница 3 из 10 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 91

Тема: AY-микросхемы

  1. #21
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,773
    Благодарностей: 3329

    По умолчанию

    Цитата Сообщение от icebear
    А он даёт эти 25 мипсов? Я тоже раньше думал, что PICи белый и пушистые
    На сколько я помню, у силабсов 1 команда 8051 за один такт. Вот тебе и 25 мипсов на 25МГц. Хотя я их не особо люблю (силабсовские контроллеры). Дорогие и непрактичные.

  2. #22
    Guru Аватар для CHRV
    Регистрация
    18.01.2005
    Адрес
    Москва
    Сообщений
    3,690
    Благодарностей: 258

    По умолчанию

    Цитата Сообщение от Titus
    Ты думаешь 25MIPS'ов буде мало, чтобы сэмулить AY???
    Ну сделай, посмотрим .
    Дело не в мипсах, а в умении их прилагать

    Пожалуйста пишите в email (chunin{гаф}mail{тчк}ru), личка отключена!!!

    NedoPC group. ZX-Evolution, ATM Turbo 2+, Pentagon1024SL.
    [Предлагаю: ZXEvo, PAL coder, NeoGS, TS-FM, YM2149, Z80 и прочее]
    Все здесь: http://www.nedopc.com.
    Новости/поддержка/Faq: http://forum.nedopc.com.
    Раздача халявы: http://forum.nedopc.com/viewtopic.php?f=32&t=977

  3. #23
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,773
    Благодарностей: 3329

    По умолчанию

    Цитата Сообщение от CHRV
    Ну сделай, посмотрим .
    Дело не в мипсах, а в умении их прилагать
    Мне эмулировать AY наффиг не нужно

    p.s.: Я хоть и любитель Спектрума, но не фанат-маньяк

  4. #24
    Activist Аватар для tmp_online
    Регистрация
    02.04.2006
    Адрес
    Приютово
    Сообщений
    256
    Благодарностей: 6

    По умолчанию

    Цитата Сообщение от Robus
    Кстати в 2004-ом году я был на SpeXtream'е, и Looker показывал обыкновенный телефонный аппарат с АОНом, но вместо звонков играла спековская музыка.
    Ну это уж можно запрограммировать... а, погодь, ты говоришь, что там микросхема AY стояла?
    Цитата Сообщение от CHRV
    Сделанный на микроконтроллере Венус5 имеющий АУ на борту.
    О, нашел! А схему сможешь достать?
    Цитата Сообщение от Titus
    Мне эмулировать AY наффиг не нужно

    p.s.: Я хоть и любитель Спектрума, но не фанат-маньяк
    Это что же, я по твоему фанат-маньяк? Ща как бензопилу включу

  5. #25
    Master Аватар для Ronin
    Регистрация
    28.03.2005
    Адрес
    Krasnodar, Russia
    Сообщений
    585
    Благодарностей: 2

    По умолчанию

    Цитата Сообщение от Titus
    На сколько я помню, у силабсов 1 команда 8051 за один такт. Вот тебе и 25 мипсов на 25МГц.
    ну и че, lpc2101 - ARM, за 2.5$ так и все 50 мипсов выдаст эт если уложите эмуляцию в 8кб

  6. #26
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,773
    Благодарностей: 3329

    По умолчанию

    Цитата Сообщение от Ronin
    ну и че, lpc2101 - ARM, за 2.5$ так и все 50 мипсов выдаст эт если уложите эмуляцию в 8кб
    Только не 2.5$, а 2$ (если мелкооптом). Только тут речь идет о контроллере с ЦАП'ом на борту

  7. #27
    Guru Аватар для CHRV
    Регистрация
    18.01.2005
    Адрес
    Москва
    Сообщений
    3,690
    Благодарностей: 258

    По умолчанию

    Цитата Сообщение от Savage
    Ну это уж можно запрограммировать... а, погодь, ты говоришь, что там микросхема AY стояла?

    О, нашел! А схему сможешь достать?
    Описание проца здесь:
    http://www.venus.ru/news.php?id=67&arc=0&sct=1

    Пожалуйста пишите в email (chunin{гаф}mail{тчк}ru), личка отключена!!!

    NedoPC group. ZX-Evolution, ATM Turbo 2+, Pentagon1024SL.
    [Предлагаю: ZXEvo, PAL coder, NeoGS, TS-FM, YM2149, Z80 и прочее]
    Все здесь: http://www.nedopc.com.
    Новости/поддержка/Faq: http://forum.nedopc.com.
    Раздача халявы: http://forum.nedopc.com/viewtopic.php?f=32&t=977

  8. #28
    Activist Аватар для tmp_online
    Регистрация
    02.04.2006
    Адрес
    Приютово
    Сообщений
    256
    Благодарностей: 6

    По умолчанию

    Ух ты! Огромное спасибо

  9. #29
    Master
    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    791
    Благодарностей: 294

    По умолчанию

    Ну вот и свершилось ... Хех ...

    Прочитал я вот это:
    Цитата Сообщение от CHRV
    Распространненое заблуждение. Увы микроконтроллеров за 3бакса для эмуляции не хватит, желающие доказать - вперед
    и ещё вот это:
    Цитата Сообщение от CHRV
    Ну сделай, посмотрим .
    Дело не в мипсах, а в умении их прилагать
    Странно, что тут такого, чего нельзя сделать ? Если, конечно, писать на Си, то и вправду нельзя, но на асме проще не бывает.

    Итак, пришёл я вчера на работу, взял прайсы и нашёл C51F330 выпускаемый SILabs (Cygnal), у которого 32 ноги, короче мы на работе такое паяем простыми паяльниками. Микроконтроллер на 25 мипсов, стоит 16 гривень, или по всеобщему это $3.1. Нашёл флешку с последовательным доступом на 512к за 9 гривен по всеобщему это $1.7. Короче с буферами для RS232 это всё будет стоить максимум 10-20 долларов.

    После взял отладочный модуль, который валяется в моём столе где стоит C51F120 он на 100 мипсов, и написал программу примерно за 6-7 часов с учётом того, что постоянно запускал эмулятор, что бы проверить как работают регистры AY’а. Безусловно микроконтроллер сконфигурирован на 25 мегагерц с помощью PLL. Конечно за такое малое время я не мог идеально написать эмулятор и я так и не дописал шипения, поэтому они заблокированы в программе. Но в основном всё повторено. Лично проверил на 20-30 демках и играх, всё звучит так как положено. Единственное, это огибающая, в которой я где-то то ли ошибся то ли не так запускаю, но этот глюк заметен был только на одной единственной демке - Mental Masturbation. Однако всё работает, плеер великолепно пишется. Как будет свободное время, сяду и сделаю, заодно и схему разведу, паяйте сколько душе угодно.

    Инструкция по пользованию:
    Ниже будет прикреплён архив в котором нужно сделать:
    1. Запускаем «Ay8912.bat». На моём ассемблере откомпилируется программа лежащая в файле «Ay8912.ac5»
    2. В итоге получатся два файла «Ay8912.bin» и «Ay8912.hex», любой из них можно прошить непосредственно в C51F120. Простите, программу «прошивателя» забыл на работе, но если нужно принесу.
    3. После подсоединяем выводы DAC0 и DAC1 на входы уселителя. У меня на работе это сделано прямо в компьютер.
    4. Подсоединяем RXD и TXD микроконтроллера через буфера на 12-ть воль к Com’у номер 2 !!! Простите, у меня был свободен именно он.
    5. Запускаем мой эмулятор Wild Speccy имя файла - «Sp-emul.exe». И он на скорости 115200 отсылает 14*3 байт состояния AY’ка, каждый кадр монитора, который, безусловно, 50 герц, и только таким он должен быть НА ВСЕХ ЭМУЛЯТОРАХ.
    6. Слушаем музыку.

    Никогда не понимал, чего электронщики постоянно считают программистов за дураков ? Нет, что бы вместе сидеть и творить ?

    ... Продолжение следует ...
    Вложения Вложения
    • Тип файла: zip Ay.zip (258.5 Кб, Просмотров: 448)
    AAA

  10. #30
    Master
    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    791
    Благодарностей: 294

    Talking

    Вот текст программы для C51F120:
    Код:
    ; AY-8912 Emulator On C51F330 - 16grn=$3.1  25-MIPs 4-Timers
    ;                  On C51F332 - 12grn=$2.4  25-MIPs 4-Timers
    
            Include '51F120.inc'
            Include 'intel.inc'
    
    
    
    
    RCAP    EQU (12*14-6)/12
    
            .Delay
             PUSH DPL
             PUSH DPH
             MOV DPTR,#-@.0
             CALL Dela
             POP DPH
             POP DPL
            ..
    
    
    
            DEFDB R_AY15
            DEFDB R_AY14
            DEFDB R_AY13
            DEFDB R_AY12
            DEFDB R_AY11
            DEFDB R_AY10
            DEFDB R_AY09
            DEFDB R_AY08
            DEFDB R_AY07
            DEFDB R_AY06
            DEFDB R_AY05
            DEFDB R_AY04
            DEFDB R_AY03
            DEFDB R_AY02
            DEFDB R_AY01
            DEFDB R_AY00
    
            DEFDS Ch_AC,3
            DEFDS Ch_BC,3
            DEFDS Ch_CC,3
            DEFDS Ch_EC,3
            DEFDS Ch_NC,3
    
            ORG 0
            JMP Start
    
    
       ORG   03Bh
       RETI
    
       ORG 00BH
       JMP Timer0INT
    
    
    
            ORG 100H
    
    Start:
                   MOV SP,#SPMAX            ;DSEG$+1
    
    
                   MOV WDTCN, #0DEh
                   MOV WDTCN, #0ADh
    
    
    ;ENABLE INTERNAL PLL (MNOGO MEGAGERTZZZSS)
    
                   MOV SFRPAGE,#0FH
                   ORL PLL0CN,#00000001B
    
                   MOV PLL0DIV,#1
                   MOV PLL0MUL,#1
                   CLR A
                   DJNZ ACC,$
                   ORL PLL0CN,#00000010B
    MMM2:          MOV A,PLL0CN
                   JNB ACC.4,MMM2
                   MOV OSCICN,#10000011B
                   MOV CLKSEL,#00000010B
    ;
    
    
    
                   ; Enable the Port I/O Crossbar
    ;               MOV   P1MDIN,#11111111B
    
                   MOV XBR0,#00010111B
                   MOV XBR1,#00000000B
                   MOV XBR2,#01000100B
    
                   MOV   P0MDOUT,#0FFH
                   MOV   P1MDOUT,#0FFH
                   MOV   P2MDOUT,#000H
                   MOV   P3MDOUT,#000H
                   MOV   P4MDOUT,#000H
                   MOV   P5MDOUT,#000H
                   MOV   P6MDOUT,#000H
                   MOV   P7MDOUT,#11111111B
    
                   MOV SFRPAGE,#00H
    
    
    
            MOV SFRPAGE,#00H
            MOV REF0CN,#00001011B
            MOV DAC0CN,#10000100B
            MOV SFRPAGE,#01H
            MOV DAC1CN,#10000100B
            MOV SFRPAGE,#00H
    
            MOV DPTR,#4095
            MOV DAC0L,DPL
            MOV DAC0H,DPH
            MOV SFRPAGE,#00H
    
    
    ;Serial port
    
            MOV SFRPAGE,#0
            MOV RCAP2L,#LOW(-RCAP)
            MOV RCAP2H,#HIGH(-RCAP)
            MOV TMR2CN,#00000100B
            MOV TMR2CF,#00001010B
            MOV TMR2L,#0FFH
            MOV TMR2L,#0FFH
    
            MOV SCON0,#01010000B
            MOV SSTA0,#00000101B
    
    
    
    
    
            MOV TMOD,#00010010B
            MOV TL0,#LOW(-T0REL)
            MOV TH0,#LOW(-T0REL)
            SETB TR0
            ORL IE,#00000010B
    
            SETB EA
    
    
            CLR A
            MOV Ch_AC+0,A
            MOV Ch_AC+1,A
            MOV Ch_AC+2,A
            MOV Ch_BC+0,A
            MOV Ch_BC+1,A
            MOV Ch_BC+2,A
            MOV Ch_CC+0,A
            MOV Ch_CC+1,A
            MOV Ch_CC+2,A
            MOV Ch_EC+0,A
            MOV Ch_EC+1,A
            MOV Ch_EC+2,A
    
            MOV R_AY00,A
            MOV R_AY01,A
            MOV R_AY02,A
            MOV R_AY03,A
            MOV R_AY04,A
            MOV R_AY05,A
            MOV R_AY06,A
            MOV R_AY07,#00111111B
            MOV R_AY08,#15
            MOV R_AY09,#15
            MOV R_AY10,#15
            MOV R_AY11,A
            MOV R_AY12,A
            MOV R_AY13,A
            MOV R_AY14,A
            MOV R_AY15,A
    
    
            MOV R7,#1
    M1
            ;MOV R_AY00,#100
            ;MOV R_AY04,#200
    ;        CPL P1.6
    
    ;        MOV A,#10101010B
    ;        CALL Write_Sbuf0
    ;        DELAY 1
    ;
    ;        MOV A,#30
    ;        CALL Write_Sbuf0
    ;        DELAY 1
    
    
            JNB RI0,MM1
    .0
            MOV A,R7
            ANL A,#10000000B
            JNZ M3
            CPL P1.6
    M3      MOV R7,#255
    ..
            CALL Read_Sbuf0
            MOV B,A
            ANL B,#00001111B
            SWAP A
            ANL A,#00001111B
    
            JNZ MCM1
            MOV R0,B
            JMP MM1
    MCM1:   DEC A
            JNZ MCM2
            MOV R1,B
    MCM2:   DEC A
            JNZ MCM3
            MOV A,R0
            ANL A,#00001111B
            ADD A,#R_AY00
            MOV R0,A
            MOV A,B
            SWAP A
            ORL A,R1
            MOV @R0,A
            MOV R1,B
    MCM3:
    ;        CALL Write_Sbuf0
    
    MM1:
    
            JMP M1
    
    
    
    
    
    
    
    
    
    
    Read_Sbuf0:
            MOV SFRPAGE,#0
            JNB RI0,$
            MOV A,SBUF0
            CLR RI0
            RET
    
    Write_Sbuf0:
            MOV SFRPAGE,#0
            MOV SBUF0,A
            JNB TI0,$
            CLR TI0
            RET
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    DelNOP:                 ;CALL = 2   &   RET = 1    ...   25-3=22
            DS 245-3-2
            RET
    
    
    
    
    Dela:           ;DPTR=Delay
            PUSH ACC
    DELA1:  MOV A,#95
    DELA2:  CALL DelNOP
            DJNZ ACC,DELA2
            INC DPTR
            MOV A,DPL
            ORL A,DPH
            JNZ DELA1
            POP ACC
            RET
    
    
    ;5025536 TELEFON V ZALE NA RABOTE
    
    
           .PnDec ,ы
            CLR C
            MOV A,@.0+0
            SUBB A,#2
            MOV @.0+0,A
            JNC @P_DE1
    
            MOV A,@.1+0
            ANL A,#00011111B
            INC A
            RL A
            RL A
            MOV @.0+0,A
            INC @.0+2
    
    ;        MOV B,A
    ;@P_DE2  INC @.0+2
    ;        ADD A,@.0+0
    ;        MOV @.0+0,A
    ;        MOV A,B
    ;        JNC @P_DE2
    
    @P_DE1  MOV A,@.0+2
            MOVC A,@A+DPTR
           ..
    
    
           .PzDec ,ы
            CLR C
            MOV A,@.0+0
            SUBB A,#LOW(DECCER)
            MOV @.0+0,A
            MOV A,@.0+1
            SUBB A,#HIGH(DECCER)
            MOV @.0+1,A
            JNC @P_DE1
    ;        ANL @.1+1,#00001111B
            MOV A,@.1+0
            ORL A,@.1+1
            JNZ @P_DE2
            MOV @.0+0,A
            MOV @.0+1,A
    ;        MOV @.0+2,#1
            JMP @P_DE1
    @P_DE2  INC @.0+2
            MOV A,@.0+0
            ADD A,@.1+0
            MOV @.0+0,A
            MOV A,@.0+1
            ADDC A,@.1+1
            MOV @.0+1,A
            JNC @P_DE2
    @P_DE1  MOV A,@.0+2
            JNB ACC.4,@P_DE3
            INC DPH
    @P_DE3  ANL A,#00001111B
            MOVC A,@A+DPTR
           ..
    
           .PxDec ,,,ы
            CLR C
            MOV A,@.0+0
            SUBB A,#LOW(DECCER)
            MOV @.0+0,A
            MOV A,@.0+1
            SUBB A,#HIGH(DECCER)
            MOV @.0+1,A
            JNC @P_DE1
            ANL @.1+1,#00001111B
            MOV A,@.1+0
            ORL A,@.1+1
            JNZ @P_DE2
            MOV @.0+0,A
            MOV @.0+1,A
            ORL @.0+2,#1
            JMP @P_DE1
    @P_DE2  INC @.0+2
            CLR C
            MOV A,@.0+0
            ADDC A,@.1+0
            MOV @.0+0,A
            MOV A,@.0+1
            ADDC A,@.1+1
            MOV @.0+1,A
            JNC @P_DE2
    @P_DE1  MOV A,@.0+2
            RRC A
            MOV A,@.2
            JNB ACC.4,@P_DE3
            MOV A,R0
    @P_DE3  ANL A,#00001111B
            RLC A
    ;        JB @.3+3,@P_DE4
    ;        MOV C,B.0
    ;        ORL C,ACC.0
    ;        MOV ACC.0,C
    @P_DE4:
            MOV C,@.3
            RLC A
            MOVC A,@A+DPTR
            RL A
    
           ..
    
    
    
    
    
    
    
    
    
    
    
    DECCER  EQU 4
    T0REL   EQU DECCER*11
    
    
    Timer0INT:
    
    ;        CLR TR0
            CLR TF0
    
    
    
            SETB P1.6
            PUSH SFRPAGE
            PUSH ACC
            PUSH PSW
            PUSH DPTR
            PUSH R0
            PUSH R1
            PUSH R2
            PUSH B
    .0
            MOV A,R7
            JZ M2
            DEC R7
            MOV A,R7
            JNZ M2
            CLR P1.6
    M2
    ..
    ... Продолжение следует ...
    AAA

Страница 3 из 10 ПерваяПервая 1234567 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 22
    Последнее: 08.06.2012, 16:59

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •