Парус 0 4 декабря, 2023 Опубликовано 4 декабря, 2023 · Жалоба Поставьте на комп эмулятор MSDOS. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 27 4 декабря, 2023 Опубликовано 4 декабря, 2023 · Жалоба В 03.12.2023 в 21:15, firstvald сказал: у них софт в разных местах должен работать и пока под виндой еще терпят. но, думаю, через год спросят: а как под пингвином. там переписать вопросов нет , но есть нюанс... Lazarus же 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladec 10 4 декабря, 2023 Опубликовано 4 декабря, 2023 · Жалоба 2 часа назад, Парус сказал: Поставьте на комп эмулятор MSDOS. Это и есть DOSBOX на котором, как я понял, сейчас у них и работает https://www.dosbox.com/download.php?main=1. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 24 4 декабря, 2023 Опубликовано 4 декабря, 2023 · Жалоба 10 hours ago, iiv said: на форуме, когда кто-то делает добро, принято благодарить, а вы это не сделали. Далее обсуждать что-либо, боюсь, будет сложно. Понимаете ли тут какое дело. Конечно Вы спросили в правильном разделе, но все же. Тут дружный коллектив, кто многие годы общается и друг другу и помогает. Здесь принято помогать и советом, и примерами, их иногда даже проще сделать, чем долго объяснять, так как большинство участников, сами являются разработчиками, они живут по принципу минимизации совместных усилий по решению проблемы. Конечно Вам хочется решить задачу, но, Вы, подсознательно понимая, что у вас там 20 строк кода, не готовы платить много, но хотите гарантии, чтобы все работало. А так не получится. Девелопить-то Вам придется. Вам дали пример, и это очень здорово, если бы я знал бы дельфи и дельфи у меня под рукой была бы, я бы тоже так же сделал. Но вот делать под ключ - хз, без тех задания никто не решится. А так как Вы не удосужились тех задание написать и выложить в первом посте, все смотрят - хз, легаси код, в этом всем надо разобраться, даже если там линейный МНК, на пару месяцев только согласований будет, а потом у заказчика будут какие-то левые хотелки и ты за условную тыщу рублей подписываешься кодить пол-года что-то из каменного века, которое тебе не принесет никакого нового опыта. Я не прав? браво 10 hours ago, Леонид К. said: Не прав. Потому что техзадание нужно согласовывать совместно. А с чего вы вдруг взяли, что техзадания не будет? Я же написал, что самое главное - ПОВТОРИТЬ существующую программу. Там всё видно, что нужно сделать. программа Аполлон. куча видео. описание конкретики в статьях. просто повторяем. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KPG 2 4 декабря, 2023 Опубликовано 4 декабря, 2023 (изменено) · Жалоба 10 hours ago, Леонид К. said: Не прав. Потому что техзадание нужно согласовывать совместно. А с чего вы вдруг взяли, что техзадания не будет? Я же написал, что самое главное - ПОВТОРИТЬ существующую программу. Там всё видно, что нужно сделать. Эта фраза напоминает такую ситуацию, когда например на форум Gamedev.ru регистрируется новый "ДиреХтор" и начинает создавать топики по тому как ему видется оптимальное описание предполагаемой игры к разработке и какое количство и каких специалистов ему необходимо в его команду. Топик же, конечно, ожидамо оказывается снесённым в Раздел - Флейм (ПроЭкты) 🙂 Изменено 4 декабря, 2023 пользователем KPG 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlanSbor 0 24 января Опубликовано 24 января · Жалоба Всем добрый вечер. Повторить то можно. Главное начать и закончить. 😉 Но это не тот случай, для начала реверсим OBJ файл, что бы понять таки что происходит при чтении порта. Исходники на Паскале я так и не увидел. Вот что получилось: extn00:0000 ; Format : Object Module Format (OMF/Microsoft) extn00:0000 ; Module name : aux_vvod.asm extn00:0000 extn00:0000 extn00:0000 .686p extn00:0000 .mmx extn00:0000 .model flat extn00:0000 extn00:0000 ; =========================================================================== extn00:0000 extn00:0000 ; Segment type: Externs extn00:0000 ; extn00 extn00:0000 extrn STR0:byte:2 ; DATA XREF: CODE:002E↓w extn00:0000 ; CODE:0094↓w ... extn00:0002 extrn STR1:far ; DATA XREF: CODE:loc_100F9↓o extn00:0003 extrn STR2:far ; DATA XREF: CODE:00AE↓o extn00:0003 ; CODE:loc_100DE↓o extn00:0004 extrn STR3:far ; DATA XREF: CODE:loc_100A0↓o extn00:0004 ; CODE:00D9↓o extn00:0004 CODE:0000 ; =========================================================================== CODE:0000 CODE:0000 ; Segment type: Regular CODE:0000 CODE segment para private '' use16 CODE:0000 assume cs:CODE CODE:0000 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing CODE:0000 word_10010 dw 3F8h ; DATA XREF: CODE:AUX_VVOD↓r CODE:0000 ; CODE:003A↓o ... CODE:0002 word_10012 dw 180h ; DATA XREF: CODE:0012↓r CODE:0004 ; --------------------------------------------------------------------------- CODE:0004 CODE:0004 public AUX_VVOD CODE:0004 AUX_VVOD: CODE:0004 mov dx, cs:word_10010 CODE:0009 add dl, 3 CODE:000C mov al, 83h ; 10000011 CODE:000E out dx, al ; COM: line control register bits: CODE:000E ; 0-1: word length: 00=5, 01=6, 10=7, 11=8 CODE:000E ; 2: stop bits: 0=1,1=2 CODE:000E ; 3-4: parity: x0=None, 01=Odd, 11=Even CODE:000E ; 5: stuck parity CODE:000E ; 6: enable break control. 1=start sending 0s (spaces) CODE:000E ; 7: DLAB (Divisor Latch Access Bit) CODE:000F sub dl, 3 CODE:0012 mov ax, cs:word_10012 CODE:0016 out dx, al ; COM: transmitter holding register CODE:0016 ; or (when DLAB=1) divisor latch low byte. CODE:0017 inc dx CODE:0018 mov al, ah CODE:001A out dx, al ; COM: divisor latch high byte(when DLAB=1) CODE:001A ; or interrupt enable register bits: CODE:001A ; 0:1=an interrupt when rec'd data is available CODE:001A ; 1:1=interrupt when transmit buffer is empty CODE:001A ; 2:1=int on rec'r line status (error or break) CODE:001A ; 3:1=int on modem status (CTS,DSR,RI,RLSD) CODE:001B add dl, 2 CODE:001E mov al, 3 CODE:0020 out dx, al ; COM: line control register bits: CODE:0020 ; 0-1: word length: 00=5, 01=6, 10=7, 11=8 CODE:0020 ; 2: stop bits: 0=1,1=2 CODE:0020 ; 3-4: parity: x0=None, 01=Odd, 11=Even CODE:0020 ; 5: stuck parity CODE:0020 ; 6: enable break control. 1=start sending 0s (spaces) CODE:0020 ; 7: DLAB (Divisor Latch Access Bit) CODE:0021 inc dx CODE:0022 mov al, 8 CODE:0024 out dx, al ; COM: modem control reg bits: CODE:0024 ; 0: 1=activate -DTR (-data termnl ready), 0=deactivate CODE:0024 ; 1: 1=activate -RTS (-request to send), 0=deactivate CODE:0024 ; 2: 1=activate -OUT1 (spare, user-designated output) CODE:0024 ; 3: 1=activate -OUT2 CODE:0024 ; 4: 1=activate loopback for diagnostic testing CODE:0025 mov al, 3 CODE:0027 out dx, al ; COM: modem control reg bits: CODE:0027 ; 0: 1=activate -DTR (-data termnl ready), 0=deactivate CODE:0027 ; 1: 1=activate -RTS (-request to send), 0=deactivate CODE:0027 ; 2: 1=activate -OUT1 (spare, user-designated output) CODE:0027 ; 3: 1=activate -OUT2 CODE:0027 ; 4: 1=activate loopback for diagnostic testing CODE:0028 sub dl, 3 CODE:002B mov al, 0 CODE:002D out dx, al ; COM: divisor latch high byte(when DLAB=1) CODE:002D ; or interrupt enable register bits: CODE:002D ; 0:1=an interrupt when rec'd data is available CODE:002D ; 1:1=interrupt when transmit buffer is empty CODE:002D ; 2:1=int on rec'r line status (error or break) CODE:002D ; 3:1=int on modem status (CTS,DSR,RI,RLSD) CODE:002E mov ds:STR0+1, 30h ; '0' CODE:0033 push es CODE:0034 push cs CODE:0035 pop es CODE:0036 assume es:nothing CODE:0036 cld CODE:0037 mov cx, 1Eh CODE:003A lea di, word_10010+51h CODE:003E CODE:003E loc_1004E: ; CODE XREF: CODE:0046↓j CODE:003E call sub_10106 CODE:0041 cmp al, 8Dh CODE:0043 jz short loc_10099 CODE:0045 stosb CODE:0046 loop loc_1004E CODE:0048 call sub_10106 CODE:004B cmp al, 8Dh CODE:004D jz short loc_100DE CODE:004F pop es CODE:0050 assume es:nothing CODE:0050 retn CODE:0050 ; --------------------------------------------------------------------------- CODE:0051 db ? ; CODE:0052 db ? ; CODE:0053 byte_10063 db ? ; DATA XREF: CODE:0099↓r CODE:0053 ; CODE:00A6↓r ... CODE:0054 align 8 CODE:0058 db ? ; CODE:0059 db ? ; CODE:005A db ? ; CODE:005B db ? ; CODE:005C db ? ; CODE:005D db ? ; CODE:005E db ? ; CODE:005F db ? ; CODE:0060 db ? ; CODE:0061 db ? ; CODE:0062 db ? ; CODE:0063 db ? ; CODE:0064 db ? ; CODE:0065 db ? ; CODE:0066 db ? ; CODE:0067 db ? ; CODE:0068 db ? ; CODE:0069 db ? ; CODE:006A db ? ; CODE:006B db ? ; CODE:006C db ? ; CODE:006D db ? ; CODE:006E db ? ; CODE:006F db 0A0h CODE:0070 db 30h ; 0 CODE:0071 db 0B1h CODE:0072 db 0B2h CODE:0073 db 33h ; 3 CODE:0074 db 0B4h CODE:0075 db 35h ; 5 CODE:0076 db 36h ; 6 CODE:0077 db 0B7h CODE:0078 db 0B8h CODE:0079 a90 db '9.-0' CODE:007D a0123456789 db '0123456789.-' CODE:0089 ; --------------------------------------------------------------------------- CODE:0089 CODE:0089 loc_10099: ; CODE XREF: CODE:0043↑j CODE:0089 cmp cx, 14h CODE:008C jz short loc_100A0 CODE:008E pop es CODE:008F retn CODE:0090 ; --------------------------------------------------------------------------- CODE:0090 CODE:0090 loc_100A0: ; CODE XREF: CODE:008C↑j CODE:0090 lea bx, STR3 CODE:0094 mov ds:STR0+1, 34h ; '4' CODE:0099 cmp es:byte_10063, 56h ; 'V' CODE:009F jz short loc_100FD CODE:00A1 mov ds:STR0+1, 33h ; '3' CODE:00A6 cmp es:byte_10063, 42h ; 'B' CODE:00AC jz short loc_100FD CODE:00AE lea bx, STR2 CODE:00B2 mov ds:STR0+1, 32h ; '2' CODE:00B7 cmp es:byte_10063, 47h ; 'G' CODE:00BD jnz short loc_100FD CODE:00BF mov ds:STR0+1, 31h ; '1' CODE:00C4 cmp es:byte_10063, 0D2h CODE:00CA jz short loc_100F9 CODE:00CC pop es CODE:00CD retn CODE:00CE ; --------------------------------------------------------------------------- CODE:00CE CODE:00CE loc_100DE: ; CODE XREF: CODE:004D↑j CODE:00CE lea bx, STR2 CODE:00D2 lea si, word_10010+60h CODE:00D6 call sub_10134 CODE:00D9 lea bx, STR3 CODE:00DD lea si, word_10010+6Ah CODE:00E1 call sub_10134 CODE:00E4 mov ds:STR0+1, 35h ; '5' CODE:00E9 CODE:00E9 loc_100F9: ; CODE XREF: CODE:00CA↑j CODE:00E9 lea bx, STR1 CODE:00ED CODE:00ED loc_100FD: ; CODE XREF: CODE:009F↑j CODE:00ED ; CODE:00AC↑j ... CODE:00ED lea si, word_10010+56h CODE:00F1 call sub_10134 CODE:00F4 pop es CODE:00F5 retn CODE:00F6 CODE:00F6 ; =============== S U B R O U T I N E ======================================= CODE:00F6 CODE:00F6 CODE:00F6 sub_10106 proc near ; CODE XREF: CODE:loc_1004E↑p CODE:00F6 ; CODE:0048↑p ... CODE:00F6 mov dx, cs:word_10010 CODE:00FB add dl, 5 CODE:00FE CODE:00FE loc_1010E: ; CODE XREF: sub_10106+1B↓j CODE:00FE mov ah, 1 CODE:0100 int 16h ; KEYBOARD - CHECK BUFFER, DO NOT CLEAR CODE:0100 ; Return: ZF clear if character in buffer CODE:0100 ; AH = scan code, AL = character CODE:0100 ; ZF set if no character in buffer CODE:0102 jz short loc_1011E CODE:0104 xor ah, ah CODE:0106 int 16h ; KEYBOARD - READ CHAR FROM BUFFER, WAIT IF EMPTY CODE:0106 ; Return: AH = scan code, AL = character CODE:0108 cmp ah, 1 CODE:010B jnz short loc_1011E CODE:010D retn CODE:010E ; --------------------------------------------------------------------------- CODE:010E CODE:010E loc_1011E: ; CODE XREF: sub_10106+C↑j CODE:010E ; sub_10106+15↑j CODE:010E in al, dx CODE:010F test al, 1 CODE:0111 jz short loc_1010E CODE:0113 mov ah, al CODE:0115 sub dl, 5 CODE:0118 in al, dx CODE:0119 and ah, 9Eh CODE:011C jnz short sub_10106 CODE:011E cmp ax, 0Dh CODE:0121 jle short sub_10106 CODE:0123 retn CODE:0123 sub_10106 endp CODE:0123 CODE:0124 CODE:0124 ; =============== S U B R O U T I N E ======================================= CODE:0124 CODE:0124 CODE:0124 sub_10134 proc near ; CODE XREF: CODE:00D6↑p CODE:0124 ; CODE:00E1↑p ... CODE:0124 mov ah, 5 CODE:0126 push bx CODE:0127 inc bx CODE:0128 CODE:0128 loc_10138: ; CODE XREF: sub_10134+1C↓j CODE:0128 mov al, es:[si] CODE:012B lea di, word_10010+6Fh CODE:012F mov cx, 0Dh CODE:0132 repne scasb CODE:0134 jnz short loc_10157 CODE:0136 mov al, es:[di+0Ch] CODE:013A mov [bx], al CODE:013C inc si CODE:013D inc bx CODE:013E dec ah CODE:0140 jnz short loc_10138 CODE:0142 pop bx CODE:0143 mov byte ptr [bx], 5 CODE:0146 retn CODE:0147 ; --------------------------------------------------------------------------- CODE:0147 CODE:0147 loc_10157: ; CODE XREF: sub_10134+10↑j CODE:0147 pop bx CODE:0148 mov ds:STR0+1, 30h ; '0' CODE:014D pop ax CODE:014E CODE:014E locret_1015E: CODE:014E retn CODE:014E sub_10134 endp ; sp-analysis failed CODE:014E CODE:014E CODE ends CODE:014E CODE:014E CODE:014E end По исходнику ничего интересного, все относительно стандартно, можно кучу примеров найти на гугле. единственное что тут добавлено работа с форматами при формировании вывода строк в порт и опрос клавы, но тоже ничего экстра ординарного. Но самый лучший вариант, это для начала посмотреть обмен вот таким приборчиком : Посмотреть в разных режимах работы программы. И от этого плясать. А нервничать, зачем ? оно никому не нужно кроме автора топика. На предложение в личке прислать исходники на паскале, что бы не мудрить - тишина, игнорирование вопросов по существу - это вообще как здравствуйте. Поэтому топик, скорее всего мертв, чем жив. А жаль. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 24 24 января Опубликовано 24 января · Жалоба тс из параллельной вселенной. не парьтесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Практик 1 25 января Опубликовано 25 января (изменено) · Жалоба А что мешает автору купить на Авито Б/У IBM ноутбук или настольный комп типа такого (https://m.opt-union.ru/i_store/item_1001766831/kompyuter-ibm-thinkcenter-a55-sff.html) , поставить Нортон или Волков коммадер и радоваться жизни? У меня для досовских программ и программ на турбоБейсике такой и стоит. Я на на нем и турбобейсике иногда быстренько организовываю телеметрию от блоков с микроконтроллерами Изменено 25 января пользователем Практик Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivnor 1 25 января Опубликовано 25 января · Жалоба пользователи обычно хотят ПК с RTX 4070 , Win 11 и чтобы всё летало на нём Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 24 25 января Опубликовано 25 января · Жалоба там нужно организовать процесс в нескольких местах. речь идет о комплексе. его нужно разработать заново. софт с хранением файлов и чтением из файлов и общения с железкой. протокола общения практически нет. нужно разбираться. т с встает в штыки и считает что obj файл когда- то написанной на паскале программы полностью закрывает проблему. ну и по всем вопросам у него компетентное мнение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться