На сколько я помню, у силабсов 1 команда 8051 за один такт. Вот тебе и 25 мипсов на 25МГц. Хотя я их не особо люблю (силабсовские контроллеры). Дорогие и непрактичные.Сообщение от icebear
На сколько я помню, у силабсов 1 команда 8051 за один такт. Вот тебе и 25 мипсов на 25МГц. Хотя я их не особо люблю (силабсовские контроллеры). Дорогие и непрактичные.Сообщение от icebear
Ну сделай, посмотрим .Сообщение от Titus
Дело не в мипсах, а в умении их прилагать
Пожалуйста пишите в 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
Мне эмулировать AY наффиг не нужноСообщение от CHRV
p.s.: Я хоть и любитель Спектрума, но не фанат-маньяк
Ну это уж можно запрограммировать... а, погодь, ты говоришь, что там микросхема AY стояла?Сообщение от Robus
О, нашел! А схему сможешь достать?Сообщение от CHRV
Это что же, я по твоему фанат-маньяк? Ща как бензопилу включуСообщение от Titus
ну и че, lpc2101 - ARM, за 2.5$ так и все 50 мипсов выдаст эт если уложите эмуляцию в 8кбСообщение от Titus
Только не 2.5$, а 2$ (если мелкооптом). Только тут речь идет о контроллере с ЦАП'ом на бортуСообщение от Ronin
Описание проца здесь:Сообщение от Savage
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
Ух ты! Огромное спасибо
Ну вот и свершилось ... Хех ...
Прочитал я вот это:
и ещё вот это:Сообщение от CHRV
Странно, что тут такого, чего нельзя сделать ? Если, конечно, писать на Си, то и вправду нельзя, но на асме проще не бывает.Сообщение от 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. Слушаем музыку.
Никогда не понимал, чего электронщики постоянно считают программистов за дураков ? Нет, что бы вместе сидеть и творить ?
... Продолжение следует ...
AAA когда меня режут, я терплю, но когда дополняют, становится нестерпимо.
Вот текст программы для 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,#[email protected] 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 когда меня режут, я терплю, но когда дополняют, становится нестерпимо.
USERHOME (30.12.2020)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)