Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/26: Рейтинг темы: голосов - 26, средняя оценка - 4.50
6 / 6 / 1
Регистрация: 26.06.2022
Сообщений: 149
Записей в блоге: 15

Как перевести древний код на asm86, в fasm

11.10.2022, 18:11. Показов 7789. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
;This is a disk boot routine for the 1771/1791 type disk
;controllers.  It would normally reside on track 0,
;sector 1, to be loaded by the "B" command of the
;monitor at address 200H.  By changing the equates
;below, it may be configured to load any size of
;program at any address.  The program is assumed to
;occupy consecutive sectors starting at track 0, sector
;2, and will begin exection at its load address (which
;must be a 16-byte boundary) with the Instruction
;Pointer set to zero.
 
; Variations are available for the Cromemco 4FDC with
; large disks, the 4FDC with small disks, the Tarbell
; single-density controller, and the Tarbell double-
; density controller. Select one.
 
CROMEMCOSMALL:  EQU 0
CROMEMCOLARGE:  EQU 0
TARBELLSINGLE:  EQU 0
TARBELLDOUBLE:  EQU 1
 
LOAD:   EQU 400H    ;Address to load program
SEG:    EQU 40H ;LOAD/10H
SECTOR: EQU 8   ;No. of 128-byte sectors to load
BOOTER: EQU 200H    ;"B" command puts booter here
 
;**************************************************************
 
CROMEMCO:   EQU CROMEMCOLARGE+CROMEMCOSMALL
TARBELL:    EQU TARBELLSINGLE+TARBELLDOUBLE
 
WD1771: EQU CROMEMCO+TARBELLSINGLE
WD1791: EQU TARBELLDOUBLE
 
SMALL:  EQU CROMEMCOSMALL
LARGE:  EQU CROMEMCOLARGE+TARBELL
 
    IF  SMALL
MAXSECT:EQU 18
    ENDIF
 
    IF  LARGE
MAXSECT:EQU 26
    ENDIF
 
    IF  TARBELL
DONEBIT:EQU 80H
DISK:   EQU 78H
    ENDIF
 
    IF  CROMEMCO
DONEBIT:EQU 1
DISK:   EQU 30H
    ENDIF
 
    IF  WD1771
READCOM:EQU 88H
    ENDIF
 
    IF  WD1791
READCOM:EQU 80H
    ENDIF
 
    IF  CROMEMCOLARGE
WAITBYTE:EQU    0B1H
    ENDIF
 
    IF  CROMEMCOSMALL
WAITBYTE:EQU    0A1H
    ENDIF
 
    ORG BOOTER
    PUT 100H
 
    XOR AX,AX
    MOV DS,AX
    MOV ES,AX
    MOV SS,AX
    MOV SP,BOOTER   ;For debugging purposes
    UP
    MOV DI,LOAD
    MOV DX,SECTOR
    MOV BL,2
SECT:
    MOV AL,0D0H     ;Force Interrupt command
    OUT DISK        ;To force Type I status
    AAM
    CMP BL,MAXSECT+1
    JNZ NOSTEP
    MOV AL,58H      ;Step in with update
    CALL    DCOM
    MOV BL,1
NOSTEP:
    MOV AL,BL
    OUTB    DISK+2
 
    IF  CROMEMCO
    MOV AL,WAITBYTE
    OUT DISK+4      ;Turn on hardware wait
    ENDIF
 
    INB DISK        ;Get head load status
    NOT AL
    AND AL,20H
    JZ  OUTCOM
    MOV AL,4
OUTCOM:
    OR  AL,READCOM
    OUTB    DISK
    MOV CX,128
    PUSH    DI
READ:
    INB DISK+4
    TEST    AL,DONEBIT
 
    IF  TARBELL
    JZ  DONE
    ENDIF
 
    IF  CROMEMCO
    JNZ DONE
    ENDIF
 
    INB DISK+3
    STOB
    LOOP    READ
DONE:
    POP DI
    CALL    GETSTAT
    AND AL,9CH
    JNZ SECT
    ADD DI,128
    INC BL
    DEC DX
    JNZ SECT
    JMP 0,SEG
 
DCOM:
    OUT DISK
    AAM
GETSTAT:
    INB DISK+4
    TEST    AL,DONEBIT
 
    IF  TARBELL
    JNZ GETSTAT
    ENDIF
 
    IF  CROMEMCO
    JZ  GETSTAT
    ENDIF
 
    IN  DISK
    RET

1
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.10.2022, 18:11
Ответы с готовыми решениями:

Перевести код из FASM в TASM
Нужно переобразовать код из fasm в tasm org *100h jmp *start * fName * db *'*.*',0 * * * * * * *; маска для поиска файлов ...

Перевести код из Fasm на Tasm
Есть код на Fasm'e, я его почти перенес на Tasm, но выдает еще несколько ошибок Код на Fasm'e: ;== FASM code ======================= ...

Чтение из памяти по адресу или как перевести C++ программу на FASM
Уже два дня бьюсь с 4 строками кода. У меня есть мой старый исходник на C++, вот часть кода: DWORD a_p1 = (DWORD)(0x00400000 +...

42
2 / 2 / 0
Регистрация: 23.09.2023
Сообщений: 4
23.09.2023, 23:38
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от SergP01 Посмотреть сообщение
...MSDOS 1.5 (слабак... я в руках держал и по кнопкам щёлкал в версии 1.0
Вы не могли её держать в руках просто потому, что версии MS-DOS 1.0 никогда не было.
2
 Аватар для yevrowl
306 / 77 / 6
Регистрация: 27.04.2022
Сообщений: 240
07.01.2024, 14:04
Цитата Сообщение от SilverJohn Посмотреть сообщение
Вы не могли её держать в руках просто потому, что версии MS-DOS 1.0 никогда не было.
Кстати да, самая ранняя доступная версия вроде бы 1.10.
Сам начинал уже с версии 3.30 от NEC в советском НИИ.
0
0 / 0 / 0
Регистрация: 27.12.2018
Сообщений: 27
14.08.2025, 00:15
Как-то приспичило и купил в компьютерном магазине дисковод 3,5" фирмы NEC, который в USB втыкается. Пару раз и попользовал. MS-DOS давно с флэшки загружаю. А вот если на помойке найду дискетки старые, то можно будет поностальгировать... :-)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.08.2025, 00:15
Помогаю со студенческими работами здесь

Как адаптировать приведенный код под FASM
Будьте добры, если не затруднит помочь...или указать куда копать. Вот буквально день назад, в книге наткнулся на пример перехода в...

Не могу понять как исправить (код на FASM-е), простенькая программа
Написал программу для примера сдвигов, сдвигает нормально, вот только выводит каскадом (с начала выводит все переменные sent а потом только...

Как воспроизводить dll-файлы и код их чтения на отладчике xdbg? (FASM)
Как воспроизводить dll-файлы и их чтение на отладчике xdbg? (FASM)

Tasm в Fasm (перевести)
name prog .model small .stack 100h .data stroka db "hevtsov.dima.genad'evich", '$' .code start: mov ax,@data ...

Алгоритм RC4 (перевести FASM -> TASM)
Дали задание реализовать алгоритм rc4 на ассемблере. Не очень хорошо понимаю его. На просторах интернета нашла реализованную функцию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
43
Ответ Создать тему
Новые блоги и статьи
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru