Jump to content
BulForum.com

Компилатор за Assembler?


Curunir

Recommended Posts

Идеята ми е да направя конвертор от PSX joypad към USB, за да мога да играя емулирани конзолни игри (NES, SNES, SEGA, Atari) с нормален joypad, а не с някой от неудобните за тая цел нормални USB компютърни joypad-ове.

 

Има интернет магазини, които продават такива конвертори, но освен цената на компонента искат още 20 евро за доставка до България.

Обиколих почти всички магазини за конзолни и компютърни компоненти в Пловдив, но никъде дори не са чували за подобен конвертор.

 

Намерих сайт със схема за връзването на pad-а, както и driver за така направената връзка. Единственото нещо, което остава е да се програмира чипа, който прави връзката от PSX към USB.

 

Разполагам с кода за програмирането на чипа, но не е компилиран. За да програмирам чипа, имам нужда от изходния .hex файл, но за да стигна до .hex файла имам нужда от Assembler компилатор.

 

Единствения компилатор, който намерих и който не иска 99$ е на http://nasm.sourceforge.net/ Проблема е, че хора запознати с Assembler твърдят, че този компилатор няма да свърши работа.

 

Ето и част от самия код, за всички плашещи хора, които разбират нещо от него: :blink:

; GPIO Isink registers
Port0_Isink:            equ     30h
Port0_Isink0:           equ     30h
Port0_Isink1:           equ     31h
Port0_Isink2:           equ     32h
Port0_Isink3:           equ     33h
Port0_Isink4:           equ     34h
Port0_Isink5:           equ     35h
Port0_Isink6:           equ     36h
Port0_Isink7:           equ     37h

Port1_Isink:            equ     38h
Port1_Isink0:           equ     38h
Port1_Isink1:           equ     39h
Port1_Isink2:           equ     3Ah
Port1_Isink3:           equ     3Bh

 

Ако някой може да ми помогне или да компилира кода, ще бъда ужасно благодарен!

Благодаря пак, предварително!

 

[Edit] Правопис++ [/Edit]

Link to comment
Share on other sites

Единствения компилатор, който намерих и който не иска 99$ е на http://nasm.sourceforge.net/ Проблема е, че хора запознати с Assembler твърдят, че този компилатор няма да свърши работа.

 

 

Защо да не свърши работа, това е асемблер с доста добри възможности.

 

NASM is an 80x86 assembler designed for portability and modularity. It supports a range of object file formats including Linux a.out and ELF, COFF, Microsoft 16-bit OBJ and Win32. It will also output plain binary files. Its syntax is designed to be simple and easy to understand, similar to Intel's but less complex. It supports Pentium, P6, MMX, 3DNow! and SSE opcodes, and has macro capability. It includes a disassembler as well.
Link to comment
Share on other sites

Пробвах с NASM, ето и резултата: :(

C:\Progs\NASM>nasmw.exe psxusb.asm
psxusb.asm:179: error: parser: instruction expected
psxusb.asm:219: error: symbol `FFh' not defined before use
psxusb.asm:223: error: symbol `F0h' not defined before use
psxusb.asm:295: error: symbol `B4h' not defined before use
psxusb.asm:296: error: expression syntax error
psxusb.asm:297: error: expression syntax error
psxusb.asm:298: error: symbol `C3h' not defined before use
...

 

По-нататък продължава в същия дух. Доколкото разбирам от документацията, NASM не поддържа .hex output, а в страницата с описанието на сглобяването на контролера се казва, че файла трябва да е .hex

Link to comment
Share on other sites

Очевидно има грешки в изходния код, дай го целия или поне дай да видим упоменатите в грешките редове какъв формат имат.

Първото което си дал като цитат са обикновени директиви за дефиниране на именовани константи, всеки асемблер би ги разбрал.

Link to comment
Share on other sites

А за какъв чип все пак ства въпрос? Защото това е компилатор за асемблер, но за Интел 80х86 процесори, т.е за компилиране на програми , написани за РС, а не за отделен чип/едночипов микрокомпютър, напр. Microchip, Motorola 68HC11, Atmel, какъвто май се използва в твоя конвертор. А освен това ще ти трябва и програматор, което може би ще ти е още по-голям проблем.

Link to comment
Share on other sites

Има две версии на кода, току що пробвах и втората, също не се компилира. Ето и съответните линкове:

 

http://www.zen35383.zen.co.uk/stnield/psxusbcode/psxusb.asm - завършения код за поддръжка на PSX pad-ове

 

http://www.zen35383.zen.co.uk/stnield/psxusbcode/wicked3.asm - завършения код за поддръжка на PSX и на N64 pad-ове.

 

Имам познат с платен, доста скъп универсален програматор, смятам, че там проблеми няма да има.

 

Чипът, за който трябва да се компилира тоя код е или CY7C63000A-PC (еднократно програмируем, 2к) или CY7C63001A-WC (многократно програмируем, 4к), производство на Cypress Semiconductors.

Link to comment
Share on other sites

Случайно да не ти е забранен достъпа до Google :angry1 :angry1 :angry1 :angry1

 

http://www.zen35383.zen.co.uk/stnield/usbpads.htm

 

има всичко по въпроса

 

 

-----------

няма и да ти се копилира, щото има защита срещу ламери :)

 

след ;*************** interrupt vector table ****************

 

трясни по един таб на всички редове в секцията

Link to comment
Share on other sites

Не виждам за какво се ядосваш. Всичко, което съм взел, съм го взел от оная страница, просто съм пуснал линковете директно към кода, а не към страницата. Ако имаше "всичко" щях да си взема компилирания файл и работата да се свърши :rolleyes:

 

Какво ще оправи ако сложа по един таб на редовете след ;* interrupt vector table *? Не че разбирам от Assembler, но ми зиглежда като културно форматиран и написан код...

Link to comment
Share on other sites

Нищо няма да оправи.

Така като го гледам тоя код, то доста несъвместимости има с асемблера за x86, ненапразно ти дава такива грешки: например IN е инструкция на процесора а в кода се използва като константа! Двоеточие не се използва след константата при нейното дефиниране. Т.е. тези неща объркват асемблера.

В момента не мога да се сетя кой асемблер да ползваш който да поддържа подобен код. Ръчно да почнеш да го модифицираш е играчка.

Link to comment
Share on other sites

Хаха. Не е играчка, аз просто не мога.

 

На страницата, на която е разработката за тоя конвертор се споменава, че има безплатен assembler, който компилиря тоя код - CYASM, но той изглежда е правен специално за програмиране на части на Cypress Semiconductors, и в момента не мога да го намеря. Впрегнал съм един немски компютърен вещер да ми помага, вярвам, че ако изобщо тоя CYASM се намира из интернет още, той ще го намери.

Link to comment
Share on other sites

Няма да стане. Това е асемблер за този тип Cypress микроконтролери - Cyasm.

Трябва да се порови някой - най-вече из P2P - може и да излезе отнякъде, щото стария линк за сваляне на този асемблер не бачка.

 

Мда, виждам, че и сам си стигнал до този извод :)

Link to comment
Share on other sites

Какво ще оправи ако сложа по един таб на редовете след ;* interrupt vector table *?

Щото сега org и jmp ги възприема като лейбъли, иначе ще ги възприеме като команди. Не, че съм го компилирал, но на пръв преглед на *.asm файла се набива на очи. Мда наистина няма никой зад линка. Сорри за нервенето ;)

Link to comment
Share on other sites

Ужас, братя българи!

Ужасно е! Самата част, ако си я купиш, изобщо не е скъпа, 10-ина долара е. Но тъй като все още не сме в ЕВРОПЕЙСКИЯ СЪЮЗ :angry1 , online магазинът иска още 20 евро за доставка. Което е малоумно.

 

Доставките за европейския съюз са безплатни и се извършват от DHL. След като цяла България е покрита от DHL, просто не виждам защо превозът се оскъпява с 20 евро. Ама така ще е. И магазините за конзоли и компютърни компоненти не ги доставят, защото няма търсене. Днес на 4 места питах и на 4-те ме гледаха като голям камък, единия дори седна да ми обяснява как нямало изобщо такова нещо, а аз му пожелах приятен ден и си излязох още на първото му изречение.

 

Каквото е - това е. Накрая ще се принудя да си купя някакъв ужасен, неудобен, мек Logitech joypad, произвеждан за компютър и ще си го удрям в главата.

Link to comment
Share on other sites

Хм, този асм файл ми изглежда доста подробен, защо някои които разбира от асемблер за едночипови микроРС не вземе да го преведе за някои по известен чип в БГ. Едно време се занимавах с програмиране на асемблер за Атмел 8051, ама сега нямам време и нерви вече, ако се намери някои ентусиаст може да му помогна (малко :rolleyes: )

Link to comment
Share on other sites

Хм, този асм файл ми изглежда доста подробен, защо някои които разбира от асемблер за едночипови микроРС не вземе да го преведе за някои по известен чип в БГ. Едно време се занимавах с програмиране на асемблер за Атмел 8051, ама сега нямам време и нерви вече, ако се намери някои ентусиаст може да му помогна (малко  :rolleyes: )

 

И да ти го преведа за Microchip, няма да намериш този с USB. Нещо не ги внасят. Ако Atmel-и някакви внасят с USB, пробвай се. По скоро бих го написал отново, но затова се тръгва от 1К нагоре ;)

Link to comment
Share on other sites

Майната му на Assemblerа, намерих схеми за свързване на PSX joypad-а към LPT-то без допълнителни чипове и глупости. Дори няма нужда от допълнително захранване, защото няма да ползвам Dual Shock аналогов joypad. :wub:

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...