плз, ткните носом, откуда берется "длина программной части" BASIC, та самая, что записывается в 11-12 байтах заголовка файла в трдос-каталоге.
в смысле, как её выкопать из бинарного бейсик-файла?
плз, ткните носом, откуда берется "длина программной части" BASIC, та самая, что записывается в 11-12 байтах заголовка файла в трдос-каталоге.
в смысле, как её выкопать из бинарного бейсик-файла?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Вроде бы это длинна всей программы в байтах (те каждая команда=1байт и каждый символ=1байту + еще нумерация строк).
"Байт-48"
ну я фиг его знает ну я лично блал экзамплы из sjasmplus, немного подкорректировав получил такую картинку своего загрузчика для дверей:
сохранял брав разницу EndBasic-Basic, кроме того она указана в 2-м и 3-м байтеКод:DISP 23867 Basic db #00,#00 ; basic number string [#00,#01] dw EndBasic-Begin ; size of basic string Begin db #FD ; "CLEAR" token db #30 ; "0" fake numeber db #0e,#00,#00 dw #5fff ; real stack (CLEAR) [#5fb3] db #00 db #3a ; ":" db #f9 ; "RANDOMIZE" token db #c0 ; "USR" token db #30 ; "0" fake numeber db #0e,#00,#00 dw #5d53 ; real call (USR) [#5d53] db #00 db #3a ; ":" db #ea ; "REM" token include "bootloader/basicboot.asm" db #D EndBasic
(๑•̀ㅂ•́)و✧ Doors UI → https://t.me/doorsui | https://t.me/atari_xl_xe ← Atari XL/XE (●´ω`●)ゞ
а после EndBasic ниче в файле нет?? там же должно быть че-то типа то ли 0х80, то ли 0хАА.. за которым идет адрес строки автозапуска..
(๑•̀ㅂ•́)و✧ Doors UI → https://t.me/doorsui | https://t.me/atari_xl_xe ← Atari XL/XE (●´ω`●)ゞ
Одно из них (из START/LENGTH) -- длина всей области от переменной PROG до VARS. Второе -- длина в байтах обоих этих областей. В файле сохраняются обе области, т.к. в памяти они все равно лежат подряд. Что есть что легко проверяется однострочной программкой, в которой перед сохранением любой переменной присвоили любое значение между последним CLEAR и сохранением на диск. А т.к. заголовок кассетный длиннее дискетных 16 байт, TR-DOS выдумали цеплять в конце файла-с-автозапуском еще 3 байта -- AA и 2 байта номера LINE-строки. Имо, очень неудобно, т.к. с вероятностью 3/256 это займет целый сектор! Но раз уж иначе никак...
Кроме того, существуют условия, когда эти байты не добавляются, не проверяются -- условия без автозапуска. Точно знаю, что если START больше 32767, автостарта не происходит.
Последний раз редактировалось TomCaT; 05.10.2007 в 21:46. Причина: пр(в<->о)еряются
Помни. Только на компьютере можно семь раз Cut, а один - Format. В реале все иначе. (c)
Власть людей сильнее, чем люди у власти.
Чем меньше мы смотрим на мир, тем больше задумываемся о нем. (c)
Скрытый текст
Can you help Robin in his quest for the silver arrow? (c) Odin "Robin of the Wood"
Мы все немного режем по дереву, а потом собираем корабли в бутылках.
Is it the same old story you are going to tell me
or is it the old story telling me and you we are the same?
http://www.sky.od.ua/~ptsk[свернуть]
то есть, я правильно понял, что способа определить по имеющемуся бинарнику длину BASIC-программы, не перекапывая эту самую программу построчно, науке неизвестно?
Если в этом бинарнике -- только бэйсик файл, то отчего же?
Не самый надежный, но простой способ -- проверить последние 3 байта на предмет AA -- но есть шанс, хоть и маленький, что в программе сохраняли переменные. Тогда более надежно -- назначить поиск с конца байта 0x80 -- марекр конца переменных. Если AA есть, то этот байт лежит сразу за ним.
Ну, а случай, когда в конце последнего сектора бэйсик-файла кто-то умышленно навалил мусор из 0x80-байтов можно не рассматривать
Помни. Только на компьютере можно семь раз Cut, а один - Format. В реале все иначе. (c)
Власть людей сильнее, чем люди у власти.
Чем меньше мы смотрим на мир, тем больше задумываемся о нем. (c)
Скрытый текст
Can you help Robin in his quest for the silver arrow? (c) Odin "Robin of the Wood"
Мы все немного режем по дереву, а потом собираем корабли в бутылках.
Is it the same old story you are going to tell me
or is it the old story telling me and you we are the same?
http://www.sky.od.ua/~ptsk[свернуть]
Интересный текст можно обнаружить в ZX-Ревю.
http://trd.speccy.cz/book/REVU9645.ZIP
файл - Dos_tx.txt
"РАЗДЕЛ TR DOS ДЛЯ НАЧИНАЮЩИХ"
ГЛАВА 2 "ВНУТРЕННЯЯ ОРГАНИЗАЦИЯ ДИСКА"
(c) В.Сироткин, г.Краснокаменск.
Продолжение (начало см. ZX 96/1-2)
зы:
Можно в тексте задать поиск: "Давайте теперь посмотрим как лежит на диске в секторе блок файла"
(то же и здесь - http://trd.speccy.cz/book/REVU3_96.ZIP)
Spectrum Basic
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)