Subversion Repositories NedoOS

Rev

Rev 1673 | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
8 dimkam 1
NedoOS
200 alone 2
Многозадачная операционная система для ZX Spectrum
211 alone 3
Multitasking operating system for ZX Spectrum
8 dimkam 4
 
200 alone 5
Возможности
211 alone 6
Capabilities
8 dimkam 7
~~~~~~~~~~~
8
 
693 alone 9
* работа с дискетами TR-DOS, SD-картой, IDE HDD (FAT12/16/32). Номера устройств: "E".."H" - IDE HDD (Master), "I".."L" - IDE HDD (Slave), "M" - SD-карта (Z-controller), "N" - SD-карта (NeoGS), "O" - USB flash, "A".."D" - дискета TR-DOS. IDE-контроллер (ATM или Nemo) зависит от того, каким батником собрать. Поддержаны сегментированные файлы в TR-DOS произвольного размера (по стандарту файлов последовательного доступа TR-DOS). Длинные имена в FAT.
211 alone 10
  Works with TR-DOS floppies, SD card, IDE HDD (FAT12/16/32). Device letters: "E".."H" - IDE HDD (Master), "I".."L" - IDE HDD (Slave), "M" - SD-карта (Z-controller), "N" - SD-карта (NeoGS), "O" - USB flash, "A".."D" - TR-DOS floppies. IDE controller (ATM or Nemo IDE) depends on the batch file you run. Includes support for segmented TR-DOS files of any size (according to TR-DOS sequential access files standard).
200 alone 11
* до 16 задач одновременно. Задачи могут быть активными (одна из них имеет фокус, то есть может читать устройства ввода и печатать на видимый экран терминала) и замороженными. Задачи могут отдавать свой квант времени системе с помощью YIELD, но не обязаны это делать.
211 alone 12
  Up to 16 tasks at the same time. Tasks may be active (one of them has the focus, so it can read input devices and print on visible terminal screen) or frozen. Tasks may give away their times slot to system with using YIELD, but don't have to.
560 alone 13
* одновременно можно открыть до 8 файлов на FAT, до 8 файлов на TR-DOS и до 8 пайпов между задачами.
14
  May open up to 8 files on FAT, up to 8 files on TR-DOS, and up to 8 pipes between tasks at the same time.
248 alone 15
* программе пользователя доступна вся память 0x0100..0xffff, причём все 16K окна можно щёлкать через вызовы ОС (см. ниже). Файловые операции и передача данных в BDOS могут вестись по любому адресу в userspace.
16
  User program can access the whole memory 0x0100..0xffff, any 16K window can be switched via OS calls (see below). File operations and BDOS data transfer can be done at any address in userspace.
660 alone 17
* программа пользователя может заменить обработчик прерываний (например, для восстановления содержимого стека) и переставлять стек.
18
  User programs can change interrupt handler (for example, to restore stack data) and move stack pointer.
560 alone 19
* графический редактор Scratch, плейеры NedoPlayer и modplay, текстовый редактор texted, монтировщик образов дисков dmm, запускатель/переключатель снапшотов nmisvc, компилятор NedoLang, ассемблер NedoAsm, бейсик NedoBasic, просмотрщик картинок NedoView, разархиваторы *.zip, *gz, *.rar, *.tar, архиваторы *.rar и *.tar, сетевые утилиты (NedoBrowser, dmirc, dmftp, netterm и др.), игры...
20
  Gfx editor Scratch, music players NedoPlayer and modplay, text editor texted, disk image mounter dmm, snapshot runner/switcher nmisvc, compiler NedoLang, assembler NedoAsm, basic interpreter NedoBasic, picture viewer NedoView, decompressors for *.zip, *gz, *.rar, *.tar, archivers for *.rar and *.tar, network utilities (NedoBrowser, dmirc, dmftp, netterm etc.), games...
8 dimkam 21
 
200 alone 22
Системные требования
211 alone 23
System requirements
8 dimkam 24
~~~~~~~~~~~~~~~~~~~~
25
 
211 alone 26
* компьютер, совместимый с ATM Turbo 2 или с ATM3 (в зависимости от того, каким батником собрать)
27
  ATM Turbo 2 or ATM3 compatible computer (depends on the batch file)
200 alone 28
* рекомендуется Kempston mouse
211 alone 29
  Kempston mouse recommended
30
* рекомендуется SD-карта (Z-Controller с теневыми портами или NeoGS) или HDD (NemoIDE или ATM IDE)
31
  SD card recommended (Z-Controller with shadow ports or NeoGS) or HDD (NemoIDE or ATM IDE)
200 alone 32
* рекомендуется палитра от DDp (4+4+4)
211 alone 33
  DDp's palette (4+4+4) recommended
200 alone 34
* рекомендуются энергонезависимые часы по схеме Mr.Gluk'а
211 alone 35
  Real-time clock (Mr.Gluk's schematics) recommended
200 alone 36
* рекомендуется сетевая плата ZXNETUSB
211 alone 37
  ZXNETUSB card recommended
637 alone 38
* рекомендуется General Sound или NeoGS
39
  General Sound or NeoGS recommended
40
* рекомендуется TurboSound FM
41
  TurboSound FM recommended
8 dimkam 42
 
200 alone 43
Горячие клавиши
8 dimkam 44
~~~~~~~~~~~~~~~
45
 
200 alone 46
NedoOS опрашивает клавиши и мышь и передаёт их задаче, которая в фокусе.
47
Комбинации клавиш Ext+буква (Tab+буква) соответствуют управляющим кодам ASCII 1..26.
48
Комбинации клавиш Ext+цифра (Tab+цифра, Caps Shift+Symbol Shift+цифра) эквивалентны F1..F10 на PS/2 клавиатуре.
147 alone 49
 
200 alone 50
Параллельно проверяются горячие клавиши:
8 dimkam 51
 
200 alone 52
Caps Shift - задерживает скролл на экране
53
Symbol Shift+Enter - переключение визуальных задач (то есть тех, которые вызывали CMD_SETGFX), при этом задача, на которую переключились, получает код клавиши key_redraw (узнав это, она может перерисовать экран)
54
C+M+D (одновременно) - запустить cmd.com (опрашивается в задаче idle, поэтому работает только при отсутствии активных задач)
55
Caps Shift+2 (Caps Lock) - переключение регистра
861 alone 56
Caps Shift+1 (`) (Alt+Shift) - переключение языка (рус/lat). В русском режиме (он также поддерживает украинский язык) действует раскладка ШВЕРТЫ. При этом часть букв вводится двумя нажатиями (ja=я, jo=ё, ju=ю, je=є, ji=ї, jy=i, cg=?, cc=ц, hh=э, jj=ъ). Из-за того, что "й", "ц", "ш", "э" работают в начале комбинаций, отдельно их ввести можно, нажав после них какую-либо клавишу, не входящую в их комбинации. Эта клавиша, нажатая после, не игнорируется, а тоже обрабатывается. В литературном тексте комбинации "йа", "йо", "йу", "йе", "чч", "хх", "йи", "йы", "йй", "цг" практически исключены (бывают в иностранных словах). Чтобы вводить такие комбинации, можно пользоваться движением курсора. Все знаки препинания, доступные в латинском режиме, доступны и в русском. Кодировка русских букв - CP866, украинских букв - CP1125 (см. setfont на ZX Evo)
851 alone 57
Ext+Enter (Tab+Enter, Caps Shift+Symbol Shift+Enter, use Tab+Right Shift+Enter on incompatible keyboards) - вкл/выкл режим ввода псевдографики
8 dimkam 58
 
200 alone 59
При ошибках TR-DOS (красный бордер) работают кнопки R (Retry), I (Ignore sector), A (Abort).
146 alone 60
 
8 dimkam 61
cmd
62
~~~
63
 
200 alone 64
Командный интерпретатор.
65
Имеется интерактивный режим ввода команд (командная строка) с прокруткой влево и вправо.
612 alone 66
Кнопка вверх - вспомнить предыдущую команду.
8 dimkam 67
 
200 alone 68
Запускаются файлы следующих типов (проверяется первый символ расширения):
69
.com (расширение можно не писать) - исполняемая программа, под неё создаётся новый параллельный процесс, ей передаётся командная строка по адресу COMMANDLINE (см. раздел "Программирование").
70
.bat - последовательность команд, которые понимает cmd, в том числе запуск программ .com (в этом случае последовательный, а не параллельный - кроме команды start). Каждая команда показывается на экране до её исполнения.
8 dimkam 71
 
200 alone 72
Программы, установленные в bin/ системного диска, можно запускать в командной строке из любой директории любого диска (сначала программа ищется в текущей директории, потом в системном bin/). При запуске программ текущая директория не меняется.
66 Alone 73
 
200 alone 74
Поддерживаются следующие команды:
1673 dimkam 75
uname - вывод ревизии ядра
200 alone 76
exit - выход из cmd
565 alone 77
a: ... o: - смена текущего диска
851 alone 78
dir (ls) - каталог текущего диска (директории). Можно выводить в файл: dir >filename
858 alone 79
cd <path> - переход на другую директорию. <path> может содержать имя диска. Путь ".." означает переход на уровень выше
851 alone 80
md (mkdir) <path/dirname> - создать директорию с заданным именем в текущей или в заданной директории
81
del (rm) <path/filename> - удалить файл или пустую директорию в текущей директории
82
copy (cp) <path/filename> <newpath/newfilename> - копировать файл
200 alone 83
ren <path/filename> <newpath/newfilename> - переименовать или переместить файл
851 alone 84
mem (free) - показать число свободных страниц памяти
85
proc (ps) - показать текущие процессы и их состояние ("+" или "-" - активность, "g" для графических задач) 
86
drop (kill) <ID> - удалить процесс с заданным ID
200 alone 87
date - показать текущую дату и время
88
rem - ничего не делает (нужно для .bat-файлов)
512 alone 89
start <path/filename> - запустить программу в фоновом режиме (по умолчанию запускаемая программа блокирует cmd)
200 alone 90
copydir <dir1> <dir2> - скопировать директорию dir1 вместе с файлами в директорию dir2 (рекурсивно). Должны быть указаны полные пути, а не относительные!
1674 dimkam 91
pause [sec] - ожидание нажатия клавиши sec секунд(по умолчанию - бесконечность)
637 alone 92
echo <сообщение> - вывести сообщение (нужно для .bat-файлов)
851 alone 93
type (cat) <path/filename> - вывести файл
8 dimkam 94
 
612 alone 95
Допустимы команды типа:
96
dir > filename.txt
97
dir | more.com
613 alone 98
more < filename.txt
612 alone 99
 
637 alone 100
Параметры .bat-файла доступны через макросы %0..%9 (%0 - имя самого файла)
101
 
560 alone 102
Системная задача idle запускает терминал term.com, который создаёт пайпы stdin и stdout и запускает командный интерпретатор для исполнения autoexec.bat. Потом idle входит в бесконечный цикл с опросом C+M+D (см. выше).
103
При запуске командный интерпретатор смотрит свою командную строку и исполняет её. Если командная строка имеет вид "cmd.com autoexec.bat", то после выполнения autoexec.bat командный интерпретатор входит в интерактивный режим, иначе выход.
858 alone 104
Можно запустить ещё один независимый терминал командой term, или сетевой терминал (netterm), доступный по Telnet (TCP/IP port 2323).
8 dimkam 105
 
106
nv
107
~~
108
 
200 alone 109
Nedovigator - двухпанельный файловый менеджер.
8 dimkam 110
 
200 alone 111
Горячие клавиши:
112
стрелки (вверх, вниз) - переход по файлам
113
Home (Symbol Shift+Q) - переход к первому файлу
114
End (Symbol Shift+E) - переход к последнему файлу
115
Tab (Caps Shift+Symbol Shift) - переход между панелями
116
Space - пометка
1315 alone 117
Ext+A (Alt+A) - инверсия пометки
200 alone 118
BackSpace (Caps Shift+0) - переход на директорию уровнем выше
612 alone 119
Enter - запуск файла в блокирующем режиме (файлы .com и .$c запускаются непосредственно, остальные типы - с помощью внешних запускальщиков, см. ниже)
560 alone 120
Enter - исполнение командной строки в блокирующем режиме, когда nv освобождает фокус и ожидает окончания вызыванной программы (потом кнопкой 9 можно посмотреть текстовый экран, который был на момент завершения команды)
612 alone 121
Caps Shift+Enter или F9 - вставка имени файла в командную строку
1180 dimkam 122
3 - просмотр текстовых файлов (стрелки, PageUp (Caps Shift+3), PageDown (Caps Shift+4), F1 - переключение кодировки, Ins - переключение переноса строк, Break (Esc, Caps Shift+Space) - выход, Tab (Caps Shift + Symbol Shift) - hex viewer (управление стрелками, PgUp, PgDn, ввод цифрами и a-f, Caps Shift+Enter или F2 (сохранение), Break (Esc, Caps Shift+Space) - выход), Tab (Caps Shift+Symbol Shift) - переход в просмотрщик)
200 alone 123
4 - вызов редактора texted для редактирования файла под курсором
124
5 - копирование помеченных файлов или текущего файла на противоположную панель
125
6 - переименование файла/директории (запрещены символы :,/,\)
126
7 - создание директории с заданным именем в текущей панели (Esc (CS+Space) - отмена)
127
8 - удаление помеченных файлов (или директорий, если они пустые - непустая не удалится)
1180 dimkam 128
1 - выбор дисковода в текущей панели (стрелками, Esc (CS+Space) - отмена, Enter - подтверждение)
129
2 - поиск файла (Tab - переключение между именем файла и подстрокой)
200 alone 130
(вместо цифр можно нажимать F1..F10 на клавиатуре PS/2)
131
Symbol Shift+1..5 - выбор режима сортировки (по имени, расширению, размеру, дате, без сортировки). Повторное нажатие меняет порядок сортировки на противоположный, смена режима устанавливает порядок по возрастанию
132
Break (Esc, Caps Shift+Space) - выход (Esc - отмена, Enter - подтверждение)
8 dimkam 133
 
200 alone 134
Остальные клавиши используются для редактирования командной строки (цифры не вводятся при пустой командной строке).
8 dimkam 135
 
858 alone 136
Сохраняется текстовый экран программы, запущенной из командной строки (но не программы, запущенной в другом терминале). Терминал можно прокрутить колесом мыши.
137
В случае nvfast, который работает не через терминал, переключение между экраном программы и nv - кнопка Esc.
200 alone 138
 
139
В файле nv.ext описана ассоциация запускальщиков файлов по расширению, например:
40 alone 140
bmp,scr:scratch.com
8 dimkam 141
bat:cmd.com
142
 
143
texted
144
~~~~~~
145
 
200 alone 146
Текстовый редактор. Вызывается с параметром - именем редактируемого файла.
147
Может редактировать файл любого размера, сколько хватит памяти.
8 dimkam 148
 
200 alone 149
Горячие клавиши:
150
стрелки, PageUp (Caps Shift+3), PageDown (Caps Shift+4) - движение курсора
151
Home (Symbol Shift+Q) - переход к началу строки
152
End (Symbol Shift+E) - переход к концу строки
1404 alone 153
Symbol Shift+PageUp - переход к началу текста
154
Symbol Shift+PageDown - переход к концу текста
200 alone 155
BackSpace (Caps Shift+0) - удаление символа слева от курсора
156
Del (Caps Shift+9) - удаление символа справа от курсора
157
Break (Esc, Caps Shift+Space) - выход
1198 alone 158
Ins (Symbol Shift+W) - wrap on/off
1404 alone 159
F1 - help
160
F2 или Caps Shift+Enter - сохранение
1381 alone 161
F9 - запустить build.bat из директории с текстом
1404 alone 162
F10 - сменить кодировку (866/1251)
8 dimkam 163
 
200 alone 164
Остальные клавиши используются для ввода символов.
8 dimkam 165
 
40 alone 166
basic
167
~~~~~
8 dimkam 168
 
248 alone 169
NedoBasic - интерпретатор языка Бейсик. Можно вызвать с параметром - именем запускаемого файла *.bas.
8 dimkam 170
 
200 alone 171
Типы данных:
172
* целые числа (32 бита со знаком), также используются как логические значения (0=false, -1=true), также используются как индекс цикла, но для этого им выделяется больше памяти
173
* строки (до 255 байт+нулевой терминатор), также используются как массив беззнаковых байтов
174
* одномерные массивы целых чисел (32 бита со знаком)
8 dimkam 175
 
200 alone 176
Имена переменных однобуквенные: i (число), a$ (строка), a(10) (10-й элемент массива, считая с 0), a$(10) (10-й символ строки, считая с нуля).
8 dimkam 177
 
200 alone 178
В выражениях используются операции:
179
* самый низкий приоритет: =, <, >, <=, >=, <>
180
* средний приоритет: +, -
181
* высокий приоритет: *, /
182
* самый высокий приоритет: унарный -, скобки выражений ()
183
Также имеется функция $rnd (выдаёт числа 0..65535, после названия функции надо писать пробел!)
8 dimkam 184
 
200 alone 185
Команды (можно писать несколько в одной строке через двоеточие):
186
run - запуск программы
187
list - просмотр листинга программы
188
quit - выход из NedoBasic
189
edit <выражение> - вызов на редактирование строки с заданным номером
190
clear - очистка переменных
191
new - удаление программы
192
let <переменная>=<выражение>
193
print <выражение>;<выражение>... (если последний символ - точка с запятой, то в конце не делается перевод строки)
194
cls - очистка экрана чёрным цветом
195
goto <выражение> - переход на заданный номер строки или (если такой строки нет) на первый номер после указанного
196
if <выражение> then <команды> - если выражение не равно false, выполнить команды до конца строки
197
dim <переменная>(<выражение>) - создать массив заданного размера
198
for <переменная>=<выражение_начальное значение> to <выражение_конечное значение> step <выражение_шаг> - начало цикла. Шаг может быть положительным или отрицательным, но не 0
199
next <переменная> - конец цикла
200
rem <текст> - комментарий до конца строки
201
gfx 0 - включение графического режима 320x200x16 цветов
202
gfx 6 - включение текстового режима (после выхода из программы включается автоматически)
203
pause - ожидание нажатия клавиши
204
plot <выражение_x>,<выражение_y>,<выражение_color> - рисование точки в графическом режиме
205
line <выражение_x2>,<выражение_y2>,<выражение_color> - рисование линии в графическом режиме (от предыдущей точки или конца предыдущей линии)
858 alone 206
save <строка_имя файла> - сохранение программы. Имя файла может быть с путём, например, "m:/path/file.bas". Строка может быть строковой переменной
207
load <строка_имя файла> - загрузка программы. Имя файла может быть с путём, например, "m:/path/file.bas". Строка может быть строковой переменной
200 alone 208
system <строка_команда> - запуск команды через cmd с ожиданием завершения. Строка может быть строковой переменной
8 dimkam 209
 
200 alone 210
Прерывание выполнения программы или просмотра листинга - по кнопке Esc (Break, CS+Space)
8 dimkam 211
 
637 alone 212
tp
213
~~
214
 
858 alone 215
Turbo Pascal 3.0 by Borland. Горячие клавиши написаны на экране.
216
Может редактировать, компилировать в память и на диск. Описание есть на английском: http://www.retroarchive.org/docs/software/turbodoc.html
217
Примеры - t.pas ("Hello" в цикле), mc.pas (электронная таблица)
637 alone 218
 
219
cc, cc2, clink, c.ccc, deff.crl, deff2.crl
220
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
221
 
222
BDS C compiler by Brain Damage Software. Пример: cc.bat ex (скомпилирует ex.c, слинкует и запустит)
223
 
224
#include <stdio.h>
225
main(argc,argv)
226
char **argv;
227
{
228
int i;
229
printf("Hello world!\n");
230
 
231
for (i = 1; i < argc; i++) printf("Arg #%d = %s\n",i,argv[i]);
232
 
233
getchar();
234
}
235
 
858 alone 236
Работать так:
237
cc filename.c
238
(cc2 - второй проход компилятора, запускается автоматически)
239
Объектные файлы и библиотеки имеют расширение .crl (deff2.crl линкер подключает автоматически). Примеры библиотек - deff2a.csm, deffgfx.csm.
240
Слинковать исполняемый файл:
241
clink filename
242
clink filename deffgfx (см. cc.bat и пример ex.c)
243
 
244
Как собрать утилиту склейки файлов (concat outfile infile1 infile2):
245
cc concat.c
246
clink concat
247
 
66 Alone 248
modplay
249
~~~~~~
250
 
200 alone 251
Простейший плейер музыки в формате MOD (на General Sound).
252
Имя файла для проигрывания передаётся параметром в командной строке.
253
Запуск без параметров останавливает проигрывание.
66 Alone 254
 
68 Alone 255
pkunzip
256
~~~~~~~
257
 
200 alone 258
Распаковщик архивов в форматах *.zip и *.gz.
259
Распаковывает весь архив, заданный в качестве параметра, в текущую директорию.
68 Alone 260
 
261
tar
262
~~~
263
 
200 alone 264
Распаковщик архивов в формате *.tar.
265
Распаковывает весь архив, заданный в качестве параметра, в текущую директорию.
266
Если параметр - не архив .tar, то это имя файла, из которого создастся архив (если указана директория, то она вся упакуется в архив со входящими файлами и директориями). Имя архива соответствует имени файла, с заменой расширения на .tar
68 Alone 267
 
86 Alone 268
unrar
269
~~~~~
270
 
200 alone 271
Распаковщик архивов в формате *.rar (2.x).
272
Принимает имя архива в командной строке, дальше работает в интерактивном режиме.
612 alone 273
v - просмотр содержимого архива
274
e - распаковка нужных файлов из архива
275
m - ввод маски для файлов (первые символы имени файла в архиве, включая внутренний путь)
86 Alone 276
 
146 alone 277
zxrar
278
~~~~~
279
 
200 alone 280
Упаковщик архивов в формате *.rar (2.x).
281
Принимает имя файла в командной строке, создаёт и пополняет архив mynewrar.rar.
146 alone 282
 
40 alone 283
browser
284
~~~~~~~
31 Alone 285
 
453 alone 286
NedoBrowser - веб-браузер.
200 alone 287
Вызывается командной строкой типа:
612 alone 288
browser file://m:/girl.jpg (можно не писать file://)
200 alone 289
browser http://alonecoder.nedopc.com/ (можно не писать http:// и конечный слеш)
453 alone 290
https:// поддерживается через прокси.
31 Alone 291
 
200 alone 292
Внизу экрана расположена строка статуса, где отображается:
293
- полный путь к текущему файлу
294
- число занятых страниц
295
- время рендера
296
- ошибки (conn.err - ошибка соединения, load err - ошибка загрузки)
40 alone 297
 
200 alone 298
Поддержаны форматы:
299
html (пока не все тэги и только кодировки windows-1251 и UTF-8 (по умолчанию))
300
jpeg (пока только обычная развёртка)
301
gif (пока только обычная развёртка, поддержана анимация)
302
png (пока только обычная развёртка)
303
bmp (пока только обычный порядок строк, 24bit)
453 alone 304
svg (без заливки, координаты в ограниченном диапазоне)
200 alone 305
При просмотре крупных картинок действуют стрелки, Z - смена масштаба.
31 Alone 306
 
200 alone 307
Горячие клавиши:
308
стрелки, PageUp (Caps Shift+3), PageDown (Caps Shift+4) - движение курсора
309
Enter - переход по ссылке
310
S - сохранить текущий файл (в текущей версии имя файла download.fil, первая буква увеличивается с каждым файлом)
311
L - скачать файл по ссылке (вызывает программу wget)
312
5 - перезагрузить файл
313
E - отредактировать url (действуют стрелки влево, вправо, Enter, BackSpace (Caps Shift+0))
314
U - сменить кодировку UTF-8/windows-1251
315
BackSpace (Caps Shift+0) - возврат по истории
316
Break (Esc, Caps Shift+Space) - выход
31 Alone 317
 
86 Alone 318
wget
319
~~~~
320
 
200 alone 321
Утилита скачки файла по HTTPS.
612 alone 322
Автоматически запускает музыку и картинки scr.
86 Alone 323
 
324
dmm
325
~~~
326
 
200 alone 327
Утилита монтирования образов TRD, SCL, FDI, TAP через Evo Service.
858 alone 328
Также может монтировать TRD образы с помошью ПЗУ xBIOS на ATM2.
86 Alone 329
 
693 alone 330
time
331
~~~~
332
 
333
Утилита обновления времени с импользованием интернета. Ключи:
334
-H help
335
-T set time(-T17:59:38)
336
-D set date(-D21-06-2019)
337
-N ntp-server default: -N2.ru.pool.ntp.org
338
-Z time-zone default: -Z3
339
-i get datetime from internet
340
 
86 Alone 341
dmirc
342
~~~~~
343
 
200 alone 344
IRC-клиент.
86 Alone 345
 
346
dmftp
347
~~~~~
348
 
200 alone 349
FTP-клиент.
86 Alone 350
 
248 alone 351
ping
352
~~~~
353
 
354
ping 1.2.3.4
355
 
356
telnet
357
~~~~~~
358
 
359
Telnet-клиент.
612 alone 360
Можно писать порт: telnet url:1234, по умолчанию 23.
248 alone 361
 
362
3ws
363
~~~
364
 
365
Web-сервер для расшаривания системного диска.
250 alone 366
Описание см. 3ws.txt
248 alone 367
Можно использовать своё оформление (файлы в одноимённом подкаталоге)
368
 
369
wizcfg
370
~~~~~~
371
 
372
Настройка сети для ZXNETUSB по файлу net.ini.
373
 
92 DimkaM 374
nmisvc
375
~~~~~~
376
 
200 alone 377
Запускатель и переключатель снапшотов (на ATM3).
378
Запускает снапшот .SNA (48K или 128K), переданный в командной строке.
92 DimkaM 379
 
200 alone 380
Выход из снапшота в OS по кнопке NMI. Можно сохранить состояние в новый снапшот или продолжить выполнение.
381
В это же время можно вручную переключиться на другую задачу в OS. Таким образом можно переключаться между снапшотами и системой.
92 DimkaM 382
 
200 alone 383
Также умеет запускать бейсики с TR-DOS диска.
146 alone 384
 
64 Alone 385
view
386
~~~~
387
 
200 alone 388
NedoView - просмотрщик картинок.
64 Alone 389
 
200 alone 390
Поддерживает следующие форматы:
391
scr (6144 и 6912)
392
fnt (в линейном и экранном формате, 768 и 2048)
393
img (два экрана с мерцанием)
394
3 (редакторы AGA, 8col)
395
888 (редактор 8col)
396
+ или - (редактор MultiStudio)
397
Y (упакованная 8-цветная картинка для просмотрщика ManyColor+/XColor+)
73 Alone 398
plc (Laser Compact 5, BGE)
200 alone 399
mc (мультиколор)
453 alone 400
mlt (мультиколор из редактора ZX Paintbrush)
200 alone 401
mcx (мультиколор с мерцанием)
402
grf (аппаратный мультиколор ATM/Profi)
403
ch$ (большие картинки с атрибутами, с мерцанием и без)
404
mg1, mg2, mg4, mg8 (редактор MultiArtist)
73 Alone 405
rm (R-Mode)
275 alone 406
16c (образ памяти 32K + 32 байта палитра)
64 Alone 407
 
248 alone 408
hddfdisk
409
~~~~~~~~
410
 
858 alone 411
Утилита для разметки и форматирования разделов на IDE.
248 alone 412
 
584 alone 413
term
414
~~~~
415
 
612 alone 416
Терминал для программ, использующих stdio.asm.
417
Передаёт ANSI-коды (VT-100+) с событиями мыши.
418
Прокрутка колёсиком мыши.
419
Клик мышкой в левом верхнем углу - сохранение текст терминала файл в pasta.txt.
420
Клик мышкой в левом нижнем углу - вставка 80 символов из файла pasta.txt.
584 alone 421
 
422
netterm
858 alone 423
~~~~~~~
584 alone 424
 
425
Сетевой терминал (Telnet-сервер по порту 2323) для программ, использующих stdio.asm
426
Telnet-клиент (на примере Putty) должен быть настроен так:
612 alone 427
- VT-100
584 alone 428
- Local echo off
429
- Local line editing off
430
- Backspace = Control H
431
 
693 alone 432
pt
433
~~
584 alone 434
 
858 alone 435
Pro Tracker 3.x с увеличенным окном и с поддержкой жёсткого диска и General Sound (см. описание в отдельном файле)
693 alone 436
 
707 alone 437
playtap
438
~~~~~~~
439
Плейер файлов .tap. Играемый файл должен называться tilt.tap.
440
 
612 alone 441
Программирование (подробнее см. api_base.txt)
442
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8 dimkam 443
 
200 alone 444
Программы пользователя компилируются с заголовочным файлом ../_sdk/sys_h.asm, который включает файл sysdefs.asm с константами.
8 dimkam 445
 
345 alone 446
Программы грузятся и запускаются с PROGSTART (0x0100), с командной строкой в COMMANDLINE (0x0080) длиной COMMANDLINE_sz (0x0080). Крайне рекомендуется использовать эти константы, а не числа (то же касается кодов клавиш, номеров вызовов и т.п.).
200 alone 447
Стек изначально растёт сверху из 0x0000, его можно переставлять вручную в любое место выше 0x3b00.
448
Файловые операции и передача данных в BDOS могут вестись по любому адресу в userspace.
8 dimkam 449
 
200 alone 450
Не рекомендуется читать порты клавиатуры вручную, используйте OS_GETKEYMATRIX - она возвращает нажатые клавиши только той задаче, которая сейчас в фокусе.
147 alone 451
 
200 alone 452
Не рекомендуется в программах пользователя использовать зависимость от syssets.asm.
147 alone 453
 
200 alone 454
Разработчики приложений используют символьные имена клавиш, определённые в sysdefs.asm в разделе "Usable key codes".
147 alone 455
 
200 alone 456
В настоящий момент система не может собрать сама себя. Чтобы приблизиться к этому, будем соблюдать ряд рекомендаций при программировании на ассемблере:
457
- не рекомендуется использовать для сборки программ внешние утилиты (*.exe), кроме ассемблера и пакета NedoLang.
458
- рекомендуется оформлять шестнадцатеричные числа в формате 0xffff, не рекомендуется использовать двоичные числа (в крайнем случае писать в формате 0b0101).
459
- рекомендуется арифметические выражения писать так, чтобы они выполнялись правильно даже при отсутствии приоритета операций. Если для этого требуется начать выражение со скобки, пишите перед скобкой знак +.
460
- рекомендуется арифметические выражения писать так, чтобы они выполнялись правильно при беззнаковом умножении и делении.
461
- не рекомендуется использовать ifn a == b, пользуйтесь if a != b.
462
- не рекомендуется использовать ORG, кроме начального. Пользуйтесь ds addr-$.
463
- не рекомендуется использовать DUP..EDUP, для больших блоков можно пользоваться include, а маленькие разворачивать.
464
- не рекомендуется использовать EQU и STRUCT, пользуйтесь знаком =.
465
- не рекомендуется использовать цифровые метки и переходы вида 1b (особенно переходы вида 1f!).
466
- не рекомендуется писать несколько команд в строке и несколько наборов параметров у одной команды.
467
- не рекомендуется использовать кодировку UTF8, пользуйтесь кодировкой Windows-1251 или CP866.
468
По мере развития нативной системы сборки эти ограничения будут смягчаться.
147 alone 469
 
434 alone 470
Рестарты в кернале (крайне рекомендуется использовать их через макросы, т.к. планируется освободить 0x0000 для пользователя, сделать CALLBDOS рестартом, а SETPG... вызовами для скорости):
875 alone 471
QUIT (0x0000) - закрытие текущей задачи и освобождение её памяти (предполагается также как точка останова в отладчике), hl=result
330 alone 472
CALLBDOS (0x0005) - вызов BDOS (функции см. в см. sys_h.asm, номер функции в C). Не следует вызывать этот макрос напрямую, для каждой команды есть отдельный макрос OS_... Регистры не сохраняются!
892 alone 473
OS_GETKEY (0x0008) - читать клавишу (HA=код с языком, BC=код без языка, коды клавиш указаны в sysdefs.asm) и одновременно читать мышь (de=mouse position (y,x), l=mouse buttons (bits 0,1,2: 0=pressed)) и кемпстон-джойстик (LX), nz=программа не в фокусе, кнопки не выдаются, позицию мыши надо игнорировать (=0)
874 alone 474
OS_PRCHAR (0x0010) - печать символа A (регистры не сохраняются!)
475
SETPG4000 (0x0018) - включить страницу A в 0x4000 (портит регистр BC). Номер страницы сохраняется в (CURPG16K)
476
SETPG8000 (0x0020) - включить страницу A в 0x8000 (портит регистр BC). Номер страницы сохраняется в (CURPG32KLOW)
477
SETPGC000 (0x0028) - включить страницу A в 0xc000 (портит регистр BC). Номер страницы сохраняется в (CURPG32KHIGH)
248 alone 478
(страницу в 0x0000 переключать через OS_SETMAINPAGE, при этом в странице должен быть керналь!)
200 alone 479
0x0030 - планируется far call
480
0x0038 - обработчик прерываний
8 dimkam 481
 
200 alone 482
Функции BDOS:
483
см. sys_h.asm
8 dimkam 484
 
307 alone 485
Вход в стандартный обработчик прерываний выглядит так:
660 alone 486
        push af
487
        push bc
488
        push de
307 alone 489
 
490
Как перехватывать обработчик прерываний в вашей программе:
491
- замените 3 байта по адресу 0x0038 на jp <адрес вашего обработчика>, а адрес intjp возьмите из 0x0038+3 и скопируйте к себе.
492
Например:
493
swapimer ;первый вызов включит ваш обработчик, второй вызов вернёт обратно стандартный обработчик
494
	di
495
         ld hl,(0x0038+3) ;адрес intjp
496
         ld (intjpaddr),hl        
497
        ld de,0x0038
498
        ld hl,oldimer
499
        ld bc,3
500
swapimer0
501
        ld a,(de)
502
        ldi ;[oldimer] -> [0x0038]
503
        dec hl
504
        ld (hl),a ;[0x0038] -> [oldimer]
505
        inc hl
506
        jp pe,swapimer0
507
	ei
508
        ret
509
oldimer
510
        jp on_int ;заменится на код из 0x0038
660 alone 511
        jp 0x0038+3
512
- ваш обработчик прерываний должен вызывать oldimer.
307 alone 513
Например:
514
on_int
515
        ex de,hl ;de="hl", hl="de"
516
        ex (sp),hl ;hl=адрес выхода, de="hl", в стеке "de"
660 alone 517
	ld (on_int_jp),hl
307 alone 518
        ld (on_int_sp),SP
519
	ld sp,INTSTACK ;чтобы не запортить стек
660 alone 520
        push af
521
        push bc
522
        push de ;"hl"
307 alone 523
	...
660 alone 524
        call oldimer ;ei
525
        ...
526
        pop de ;"hl"
527
        pop bc
528
        pop af
307 alone 529
on_int_sp=$+1
530
	ld sp,0
531
;de="hl", в стеке "de"
660 alone 532
        pop de
533
        ;ei
534
on_int_jp=$+1
535
        jp 0
307 alone 536
- не пользуйтесь YIELD, пользуйтесь вместо него HALT. Иначе прерывание уйдёт в другую задачу, а там другой обработчик прерываний.
537
- функции NedoOS (кроме переключения страниц) вызывайте либо в обработчике прерываний, либо непосредственно после HALT.
345 alone 538
- если вы просто устанавливаете свой проигрыватель музыки, используйте OS_SETMUSIC, при этом можно игнорировать предыдущие два пункта (музыка будет работать всё равно).
307 alone 539
 
200 alone 540
Разработчики
8 dimkam 541
~~~~~~~~~~~~
542
 
200 alone 543
Руководитель проекта, код, документирование - Быстров Дмитрий Михайлович (Alone Coder/Conscience).
544
Работа с сетью, патчи в дисковую подсистему, утилиты, тестирование - DimkaM.
545
Немного кода и документирования - Гривин Николай Александрович.
546
NedoBasic написан с участием Кирилла Ловягина в рамках обучения ассемблеру.
547
Дальнейшее развитие NedoBasic и Nedovigator, скрипты сборки под Linux, утилиты - demige.
612 alone 548
Сортировка файлов, фиксы скриптов сборки под Linux, утилита aynet_psg, фикс sjasm и UnrealSpeccy - Lord Vader.
858 alone 549
Утилиты rdtrd, wrtrd - Konstantin Kosarev.
550
Игра ZX Battle City - Slip, музыка - nq, тестирование - Videogames Sematary, портирование - Alone Coder.
413 alone 551
Портирование игры Eric and the Floaters - Rasmer, раскраска - Alone Coder, Sashapont.
431 alone 552
Портирование игры Black Raven - Alone Coder, раскраска - Alone Coder, Sashapont, Котик, Louisa.
307 alone 553
Логотипы - Louisa, Sashapont, Wizard.
8 dimkam 554
 
200 alone 555
Дисковая подсистема основана на библиотеке FatFS с драйверами от Savelij13 и DimkaM и на библиотеке iofast из комплекта NedoLang.
8 dimkam 556
 
200 alone 557
Операционная система была задумана в 2007 году, тогда же была написана (но не проверена) первая версия ядра. Основная часть кода ядра, cmd и nv написана в 2018 году в рамках проекта графического редактора Scratch.
8 dimkam 558
 
200 alone 559
Лицензия
8 dimkam 560
~~~~~~~~
561
 
200 alone 562
Разрешается свободное распространение программы и её исходного кода. Нельзя портировать на другие платформы (полностью или частично) без согласования с руководителем проекта.
8 dimkam 563
 
200 alone 564
Настройка системы
8 dimkam 565
~~~~~~~~~~~~~~~~~
566
 
200 alone 567
Использование часов по схеме Mr.Gluk'а на АТМ2 проверено в UnrealSpeccy 0.37.1.
8 dimkam 568
 
200 alone 569
Образы дисков (чисто для примера, там нужны только bmp'шки, образ HDD можно расковырять через WinImage, а образ SD-карты замаунтить в новых виндовсах, главное не забыть потом размаунтить):
8 dimkam 570
http://alonecoder.nedopc.com/sd.zip
571
http://alonecoder.nedopc.com/hdd.zip
572
 
200 alone 573
Установка системы на реальный HDD:
574
1. Запустить mkatm2.bat (или mkatm3.bat для ATM3).
611 alone 575
2. С помощью nv скопировать все файлы с полученного *.trd в e:/bin/.
200 alone 576
3. Запустить mkatm2hd.bat (или mkatm3hd.bat для ATM3), скопировать полученный *.$c на драйв 1.
577
После этого можно запускать систему (*.$c) с HDD.
20 dimkam 578
 
200 alone 579
Установка системы на реальную SD-карту: пцшным копировщиком скопировать каталог bin/ и нужный $c на SD-карту.
55 Alone 580
 
200 alone 581
Настройки для эмулятора UnrealSpeccy:
8 dimkam 582
 
583
[ZC]            ; Z-Controller settings
584
; sdcard image
585
SDCARD="sd.vhd"
586
 
587
[HDD]
200 alone 588
Scheme=NEMO-DIVIDE (для АТМ3 версии) или ATM (для ATM2 версии)
8 dimkam 589
 
590
Image0=hdd.ima
591
CHS0=609/16/63  ; max size, accessible through CHS. not used for real drive
592
LBA0=614400    ; max size, accessible through LBA. not used for real drive
593
HD0RO=0         ; read only flag
594
CD0=0           ; 1 if image is cdrom
595
 
200 alone 596
eVHDattach.bat (можно примонтировать и по клику на *.vhd):
8 dimkam 597
d:
598
cd zx\us035\
599
@echo off
600
if exist VHDattach.txt (
601
	@echo on
602
	echo VHDattach.txt exist
603
	@echo off
604
) else (
605
	@echo on
606
	echo create VHDattach.txt
607
	@echo off
608
	echo select vdisk file="%cd%\sd.vhd" > VHDattach.txt
609
	echo attach vdisk >> VHDattach.txt
610
	rem echo select vdisk file="%cd%\sd.vhd" >> VHDattach.txt
611
	rem echo select part 1 >> VHDattach.txt
612
	rem echo assign letter=K >> VHDattach.txt
613
)
614
if exist sd.vhd (
615
	@echo on
616
	echo sd.vhd attach
617
	diskpart /s VHDattach.txt
618
	@echo off
619
) else (
620
	@echo on
621
	echo create VHDcreate.txt
622
	@echo off
623
	echo create vdisk file="%cd%\sd.vhd" MAXIMUM=300 TYPE=FIXED > VHDcreate.txt
624
	echo select vdisk file="%cd%\sd.vhd" >> VHDcreate.txt
625
	echo attach vdisk >> VHDcreate.txt
626
	echo create part primary  >> VHDcreate.txt
627
	echo select part 1 >> VHDcreate.txt
628
	echo format label="ZX" quick fs=FAT32 >> VHDcreate.txt
629
	echo assign >> VHDcreate.txt
630
	@echo on
631
	diskpart /s VHDcreate.txt
632
	del VHDcreate.txt
633
	@echo off
634
)
635
@echo on
636
pause
637
 
638
eVHDdetach.bat:
639
d:
640
cd zx\us035\
641
@echo off
642
if exist VHDdetach.txt (
643
	@echo on
644
	echo VHDdetach.txt exist
645
	@echo off
646
) else (
647
	@echo on
648
	echo create VHDdetach.txt
649
	@echo off
650
	echo select vdisk file="%cd%\sd.vhd" > VHDdetach.txt
651
	echo detach vdisk >> VHDdetach.txt
652
)
653
@echo on
654
diskpart /s VHDdetach.txt
655
pause
248 alone 656
 
657
В Windows 10 можно использовать монтирование и размонтирование по правой кнопке.