PDA

Просмотр полной версии : Существует ли BAS to TXT ?



SaintTurnip
10.03.2012, 21:51
Чем можно конвертировать ZX BASIC в обычный текстовый файл?

Удивительно, но поиском не нашел.

newart
10.03.2012, 23:46
Best View на реале.

BYTEMAN
10.03.2012, 23:49
BASin

SaintTurnip
11.03.2012, 00:01
спасибо!

bestview на триальном спектакуляторе не работает.

basin рабатает!

AndTorp
11.03.2012, 00:01
В IS-DOS есть программа bas_is.com и резидент bas_is.res

А обратная программа (txt -> basic) существует?

John North
11.03.2012, 00:35
BView в чистом дос или в дос-боксе на хр..
Пс: Basic View.

BYTEMAN
11.03.2012, 00:46
А обратная программа (txt -> basic) существует?
Да вроде тот же BASin умеет...

vinxru
11.03.2012, 22:39
Просто так


char* zx{256] = {
"<0>", "<1>", "<2>", "<3>", "<4>", "<5>", "<6>", "<7>", "<8>", "<9>", "<10>", "<11>", "<12>", "<13>", "", "<15>",
"<16>", "<17>", "<18>", "<19>", "<20>", "<21>", "<22>", "<23>", "<24>", "<25>", "<26>", "<27>", "<28>", "<29>", "<30>", "<31>",

" ", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/",
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?",
"@", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O",
"P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "[", "\\", "]", "^", "_",
"f", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
"p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "~", "(c)",

"<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>", "<156>", "<157>", "<158>", "<159>",
"<160>", "<161>", "<162>", "SPECTRUM ", "PLAY ", "RND ", "INKEY$ ", "PI ",
"FN ", "POINT ", "SCREEN$ ", "ATTR ", "AT ", "TAB ", "VAL$ ", "CODE ",
"VAL ", "LEN ", "SIN ", "COS ", "TAN ", "ASN ", "ACS ", "ATN ",
"LN ", "EXP ", "INT ", "SQR ", "SGN ", "ABS ", "PEEK ", "IN ",
"USR ", "STR$ ", "CHR$ ", "NOT ", "BIN ", "OR ", "AND ", "<= ",
">= ", "<> ", "LINE ", "THEN ", "TO ", "STEP ", "DEF FN ", "CAT ",
"FORMAT ", "MOVE ", "ERASE ", "OPEN # ", "CLOSE # ", "MERGE ", "VERIFY ", "BEEP ",
"CIRCLE ", "INK ", "PAPER ", "FLASH ", "BRIGHT ", "INVERSE ", "OVER ", "OUT ",
"LPRINT ", "LLIST ", "STOP ", "READ ", "DATA ", "RESTORE ", "NEW ", "BORDER ",
"CONTINUE ", "DIM ", "REM ", "FOR ", "GO TO ", "GO SUB ", "INPUT ", "LOAD ",
"LIST ", "LET ", "PAUSE ", "NEXT ", "POKE ", "PRINT ", "PLOT ", "RUN ",
"SAVE ", "RANDOMIZE ", "IF ", "CLS ", "DRAW ", "CLEAR ", "RETURN ", "COPY "
};

void basicToTxt(const char* p, int s, FillBuffer& out) {
while(s>4) {
unsigned short line = p{0]<<8 | p{1];
unsigned short size = p{2]<<8 | p{3];
s-=4;
if(s<size) return;
out.itoa(line);
out.str(" ");
for(unsigned int i=0; i<size; i++) {
if(*p==14) {
p+=6;
i+=5;
} else {
out.str(zx{(unsigned char)*p++]);
}
}
out.str("\r\n");
s-=size;
}
}

Vitamin
13.03.2012, 15:42
vinxru, что-то у тебя с автоматической расстановок скобочек не так:) Плюс сырая реинтерпретация байт не комильфо- тот же номер строки ты вполне кошерно вычисляешь.

vinxru
13.03.2012, 15:55
vinxru, что-то у тебя с автоматической расстановок скобочек не так Плюс сырая реинтерпретация байт не комильфо- тот же номер строки ты вполне кошерно вычисляешь.

Оптимизация. :) Убрал.

Eltaron
13.03.2012, 16:17
В IS-DOS есть программа bas_is.com и резидент bas_is.res

А обратная программа (txt -> basic) существует?
zmakebas еще есть
http://www.svgalib.org/rus/zmakebas.html
ссылка там битая, вот - ftp://ftp.untergrund.net/users/gasman/zx/zmakebas-1.2.tar.gz
под винду через mingw собирается без проблем

Black Cat / Era CG
26.02.2017, 03:15
А если не надо в .tap, а в голый файл, типа хобеты без заголовка, есть такие?

Black Cat / Era CG
09.03.2017, 07:14
А присутствуют ли на форуме люди, могущие в сях и имеющие время и желание немного (?) поковырять bas2tap или/и zmakebas?

SGO
16.05.2017, 11:56
Taper :-)

Afavyt
20.09.2017, 06:24
Тут есть 2 маленькие утилитки на Перле, которые умеют читать тап/тзх и выводят листинг бейсика: https://my.mixtape.moe/hxwtbp.zip

Утилиты предназначены для реверсинга, а не для модификации, потому распечатывают не только сам бейсик, но и переменные, и скрытые значения цифровых значений (поддерживаются как целочисленные, как в коде выше, так и флоаты, которых в коде выше нет). Тап-версия чуть более продвинута и выводит листинг более правильно, но по сути можно скопипастить одно в другое. Утилька в основном пытается детектить экраны и шрифты и отображает, если найдет.

Умею в сишку, но зачем?

Black Cat / Era CG
20.09.2017, 07:52
Умею в сишку, но зачем?
Чтобы сделать длл-ку, кодирующую в Барсик 1 текстовую строку, например.

Shiny
20.09.2017, 08:50
так bas->txt или txt->bas?

Black Cat / Era CG
20.09.2017, 09:05
так bas->txt или txt->bas?
Ну тема про bas->txt. Однако это я и сам умею, поэтому спрашивал про txt->bas. Тут уже надо парсить, а это совсем не мое.

Afavyt
20.09.2017, 10:20
Чтобы сделать длл-ку, кодирующую в Барсик 1 текстовую строку, например.Напиши задание или хотя бы интерфейс. Но мне проще просто либу сделать, под винду я мало умею.

Shiny
20.09.2017, 13:47
8. bView v0.6b - Basic view for HoBeta files

http://forum.tslabs.info/viewtopic.php?f=9&t=626

zxmodules.de

Black Cat / Era CG
20.09.2017, 14:29
А присутствуют ли на форуме люди, могущие в сях и имеющие время и желание немного (?) поковырять bas2tap или/и zmakebas?

Умею в сишку, но зачем?

Чтобы сделать длл-ку, кодирующую в Барсик 1 текстовую строку, например.

так bas->txt или txt->bas?

Ну тема про bas->txt. Однако это я и сам умею, поэтому спрашивал про txt->bas. Тут уже надо парсить, а это совсем не мое.

http://forum.tslabs.info/viewtopic.php?f=9&t=626
Шынни, читай всю тему, а не последнее сообщение :)


Но мне проще просто либу сделать, под винду я мало умею.
Думаю, это может быть даже и лучше, если она в итоге открытой будет. Скомпилить-то в .dll или .so наверное при желании сможет почти каждый.

Напиши задание или хотя бы интерфейс.
По сути в итоге нужна функция, которая на входе будет получать 1 Барсик-строку в текстовом виде [, номер этой строки], а на выходе будет выдавать адрес результата, его (результата) длина в байтах, номер ошибки.
В таком случае почти все остальное можно будет вытащить за скобки.

Afavyt
20.09.2017, 14:55
По сути в итоге нужна функция, которая на входе будет получать 1 Барсик-строку в текстовом виде [, номер этой строки], а на выходе будет выдавать адрес результата, его (результата) длина в байтах, номер ошибки.

int compileString(char *text, size_t size, uint8_t **out, size_t *out_size); - так?
Как будешь кодировать коды аттрибутов, псевдографику и прочее?
Можешь попробовать мои утили, посмотреть как там сделан вывод листингов.

Shiny
20.09.2017, 15:16
Шынни, читай всю тему, а не последнее сообщение

туманен смысл сообщения ТСа мне.

Black Cat / Era CG
20.09.2017, 15:53
int compileString(char *text, size_t size, uint8_t **out, size_t *out_size); - так?
Ага.

Как будешь кодировать коды аттрибутов, псевдографику и прочее?
Можешь попробовать мои утили, посмотреть как там сделан вывод листингов.
Да по-разному можно. Для того, чтобы посмотреть, надо еще умудриться найти tap-ок с этим всем :)
Еще б неплохо заиметь возможность "кодировать" сырую хекс-последовательность для кусков маш-кода после REM.



туманен смысл сообщения ТСа мне.
Исходники zmakebas и bas2tap есть. Но толку мне от них :(

Shiny
20.09.2017, 16:30
Исходники zmakebas и bas2tap есть. Но толку мне от них
просто хочешь автоматизировать что-то?
мне непонятно, я по привычке пишу бейсик в ужясме, и работает.

Afavyt
20.09.2017, 16:57
Еще б неплохо заиметь возможность "кодировать" сырую хекс-последовательность для кусков маш-кода после REM.Так напиши нормальное задание со всеми интерфейсами, чтобы не переделывать потом.


Исходники zmakebas и bas2tap есть. Но толку мне от них :(Ну у меня будет нечто подобное, только проще и глючнее. Чтобы оно было лучше, лучше заюзать bas2tap, но он тебе не нравится. Потому с требованиями надо как-то подробнее определиться.

b2m
20.09.2017, 21:34
А если не надо в .tap, а в голый файл, типа хобеты без заголовка, есть такие?
zmakebas 1.2 имеет опцию -r, то есть "сырой" формат без заголовков. По-моему, это то что ты и хотел.

Reobne
21.09.2017, 09:44
Как вариант:
В ZX-Editor сохраняем как BASin Basic.