Sprinter <-> PC

Компьютер "Спринтер" http://sprinter.nedopc.org

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Sprinter <-> PC

Post by Shaos »

Sprinter<->PC я уже почти сделал :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Блин:) И почему молчишь? Я у cr0acker`а Спринтер для этой цели даже взял (а это не для слабонервных, его Спринтер - коробка, в которой плата на одном винтике, а остальное так лежит;), доки тут курил...

Значит, с линком - тормознуть?

Я свой через LPT собирался сделать. Обычным автосвич-кабелем (LPT-LPT, провод-в-провод). На PC - основная программа; на Спринтере - простенькая прога типа cdx. С командами dir - показать текущую директорию PC; cd - перейти в другую; get - забрать файл; put - положить файл.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shiru Otaku wrote:Блин:) И почему молчишь? Я у cr0acker`а Спринтер для этой цели даже взял (а это не для слабонервных, его Спринтер - коробка, в которой плата на одном винтике, а остальное так лежит;), доки тут курил...

Значит, с линком - тормознуть?

Я свой через LPT собирался сделать. Обычным автосвич-кабелем (LPT-LPT, провод-в-провод). На PC - основная программа; на Спринтере - простенькая прога типа cdx. С командами dir - показать текущую директорию PC; cd - перейти в другую; get - забрать файл; put - положить файл.
Ну сделай свой вариант - мой первый опыт будет по одному проводу через LPT
Я тут за главного - если что шлите мыло на me собака shaos точка net
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

А зачем так мучаться, с одним проводом? Там гораздо проще именно байтами швырятся.

Ладно, в любом случае - хотелось-бы услышать ответы по сабжу. Если не линк, так может чего другое надумаю сделать:)
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shiru Otaku wrote:А зачем так мучаться, с одним проводом? Там гораздо проще именно байтами швырятся.

Ладно, в любом случае - хотелось-бы услышать ответы по сабжу. Если не линк, так может чего другое надумаю сделать:)
Вот предполагаемые шаги:
1) один провод (асинхронно)
2) два провода (синхронно)
3) двунаправленный 4-битный интерфейс (формат TotalCommander)
4) однонаправленный 8-битный интерфейс (LPT)
5) двунаправленный 8-битный интерфейс (ECP)
Я тут за главного - если что шлите мыло на me собака shaos точка net
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Hello, world и сильно далее.

Post by Shiru Otaku »

Наконец-то я отоварился правильным и очень длинным кабелем LPT-LPT, подключил Спринтер по RGB (ну, это давно уже), и могу наконец начать писать софт для линка. Т.к. под Спринтер я ранее не писал, помогите быстро войти в тему. А именно, нужен исходный код hello world - просто вывод строки в текстовом режиме.

Как выводить текст через rst 10h - это я, собственно, понял, но мне неясно, как exe-файл получить (какой правильный формат заголовка), и как корректно завершить работу программы.
Last edited by Shiru Otaku on 04 Mar 2005 09:28, edited 2 times in total.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Hello, world?

Post by Shaos »

Shiru Otaku wrote:Наконец-то я отоварился правильным и очень длинным кабелем LPT-LPT, подключил Спринтер по RGB (ну, это давно уже), и могу наконец начать писать софт для линка. Т.к. под Спринтер я ранее не писал, помогите быстро войти в тему. А именно, нужен исходный код hello world - просто вывод строки в текстовом режиме.

Как выводить текст через rst 10h - это я, собственно, понял, но мне неясно, как exe-файл получить (какой правильный формат заголовка), и как корректно завершить работу программы.
Вот тебе хелло-ворлд:

Code: Select all

	ORG	8100h-512

;EXE-file header:
        dw 5845h     ; EXE Signature
        db 45h       ; Reserved (EXE type)
        db 00h       ; Version of EXE file
        dw 0200h     ; Code offset
        dw 0000h
        dw 0000h     ; Primary loader size or 0 (no primary loader)
        dw 0000h     ; Reserved
        dw 0000h     ; Reserved
        dw 0000h     ; Reserved
        dw START     ; Loading address
        dw START     ; Starting address (register PC)
        dw 0C000h    ; Stack address (register SP)
        ds 490       ; Reserved 

;code of program

START:

; Write welcome message

        ld	hl,msg
        ld	c,5ch
        rst	10h

; Wait keypress

        ld	c,30h
        rst	10h

; Exit program

        ld	bc,0041h 
        rst	10h      

msg	db	"Hello, World!",13,10,0

Компильнуть можно вот этим http://nedopc.org/nedopc/sprinter/download/zmac132.zip

Если на самом Спринтере, то используй OrgASM

Почитать про программирование Спринтера можно на форуме создателей http://www.eng.petersplus.ru/forum/wwwthreads.php
Last edited by Shaos on 21 May 2013 23:27, edited 1 time in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Ага, большое спасибо:)

Я и незнал, что на сайте петерсов что-то выжило. Там на форуме я несколько лет назад видел то, что меня сейчас интересует (скажем, про звук топик наконец-то нашёл).

Конкретно по линкеру - Спринтеровскую часть буду писать на нём самом, в OrgASM`е.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shiru Otaku wrote:Ага, большое спасибо:)

Я и незнал, что на сайте петерсов что-то выжило. Там на форуме я несколько лет назад видел то, что меня сейчас интересует (скажем, про звук топик наконец-то нашёл).

Конкретно по линкеру - Спринтеровскую часть буду писать на нём самом, в OrgASM`е.
Петерсовский форум-инвалид зажил только благодаря моим "костылям" т.к. я теперь владелец доменного имени "petersplus.com" ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Shaos wrote:Петерсовский форум-инвалид зажил только благодаря моим "костылям" т.к. я теперь владелец доменного имени "petersplus.com" ;)
За это - отдельное спасибо:)

Так, меня можно поздравить - hello world скомпилен и запущен на Спринтере:) Заняло полчаса времени - найти, в чём набрать, как скомпилить, и увидеть опечатки после набора (однако-же, тяжело на ТВ читать, с моим-то зрением). Первый шаг сделан.

Теперь хочу следующий шаг. Как поудобнее организовать работу над проектом? Есть какой-нибудь текстовый редактор на Спринтере? Я сейчас пользуюсь встроенным в fn, но он весьма неудобен. И я так и не понял, как создавать новые текстовики. Пока втупую брал маленький текстовик, копировал, переименовывал, стирал там текст, и набирал свой. Это явно ненормально.

Проект пока организую так: папка, в ней orgasm.exe, мой исходник, bat-файл, запускающий orgasm для компиляции исходника. Не очень удобно.

Поделитесь опытом:)


btw, на харде cr0acker`а есть ещё tasm и masm80 - а что с этими ассемблерами, чем они лучше/хуже?
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Я короткие вещи набирал в редакторе MC - еще в бытность MASM-a :)
Глючный он, но лучше вроде не нашел
Я тут за главного - если что шлите мыло на me собака shaos точка net
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Shiru Otaku wrote:Есть какой-нибудь текстовый редактор на Спринтере?
TASM
Я сейчас пользуюсь встроенным в fn, но он весьма неудобен. И я так и не понял, как создавать новые текстовики.
Shift+F4
Extreme Entertainment
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Тасм попробую. Блин, изукрашен он - по самые не балуйся, у меня на мутном ТВ ничего не видно. Надо будет перенастроить.

Вообще, посидел часок за ТВ - глаза из орбит лезут. Как так можно работать - решительно непонятно, но, надеюсь, я выдержу:)

Глючит всё ужасно. Редактор fn`а, моя программа (без единой логической ошибки, но глючит бессовестно, и непонятно почему - разбираюсь).

Но начало положено. С частью нужных функций dss уже разобрался. Сегодня-завтра начну конкретно с программированием паралельного порта разбираться.
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Так, разобрался с глюком. У меня был буфер в 256 байт (BUF ds 256), я его вставил сразу после хидера. Всё жутко глючило. Когда перенёс его в конец программы - всё стало ок.

У меня новый вопрос. Скажем, путь к папке с моей программой прописан в path (чтобы можно было просто набрать имя программы для её запуска). Как после запуска получить путь к тому месту, откуда она была вызвана? Я попробовал использовать функцию CURDIR dss`а (1eh) - она возвращает директорию, где лежит exe моей программы, т.е. при запуске директория изменяется (мне надо узнать - с какой).
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shiru Otaku wrote:У меня новый вопрос. Скажем, путь к папке с моей программой прописан в path (чтобы можно было просто набрать имя программы для её запуска). Как после запуска получить путь к тому месту, откуда она была вызвана? Я попробовал использовать функцию CURDIR dss`а (1eh) - она возвращает директорию, где лежит exe моей программы, т.е. при запуске директория изменяется (мне надо узнать - с какой).
Вроде как понятия "текущий каталог" у DSS (Estex?) не существует. Есть каталог где лежит запущенный EXE и есть PATH - вот и все :)
Я тут за главного - если что шлите мыло на me собака shaos точка net