Обработка ошибок в TR-DOS

ZXNet эхоконференция «real.speccy»

От Waldemar Krigen Кому All 04.12.2002

╠╗■
ў╚ў, All!

Поможте чем сможте:
Кто-нидь сталкивался с обработкой ошибки READ ONLY (WRITE PROTECT) при вызове
системного интерпретатора с функцией #0B (создание файла)?
В книге Федина по TR-DOS'у написано об баге в обработке именно
этой ошибки (не устанавливается код ошибки в аккумуляторе).
Как это "обойти"?

Вроде всё. Пакеда!

deadie.horrorsoft.cpu [real][6912][hrwI][ampack] i speccy

От Kirill Frolov Кому All 05.12.2002

Hемедленно нажми на RESET, Waldemar!

04 Dec 02 16:27, Waldemar Krigen wrote to All:

WK> Кто-нидь сталкивался с обработкой ошибки READ ONLY (WRITE PROTECT)
WK> при
WK> вызове системного интерпретатора с функцией #0B (создание файла)? В
WK> книге Федина по TR-DOS'у написано об баге в обработке именно этой
WK> ошибки (не устанавливается код ошибки в аккумуляторе). Как это
WK> "обойти"?

Код ошибки сохраняется в какой-то переменной TR-DOS. Перед вызовом занули
её, а потом проверь.

От Vassili Klimov Кому All 06.12.2002

Здарова Waldemar !


WK> Кто-нидь сталкивался с обработкой ошибки READ ONLY (WRITE PROTECT) при
WK> вызове системного интерпретатора с функцией #0B (создание файла)?
WK> В книге Федина по TR-DOS'у написано об баге в обработке именно
WK> этой ошибки (не устанавливается код ошибки в аккумуляторе).
WK> Как это "обойти"?

я, честно говоря, не совсем понял, но обычно обработку всех ошибок делают
так: по адресу 23746 (не помню в hex'e...) ставят джампер на собственный
обработчик, там делаб проверку адреса, лежащего на стеке, и если он равен
3435dec (CLS), то вызывают собственный обработчик. Примерно это выглядит так:

org 23746:jp test
org xyz
ld (error+1),sp:jp #3d13
test ex (sp),hl:push af:ld a,h:cp clsH: jr nz,exit:ld a,l:cp clsL:jr z,error
exit pop af:ex (sp),hl:ret
error ld sp,#3131:ld a,(err_code)
и т.д. советую посмотреть, например, real commander, там сделанно именно так.


покедова Waldemar
jtn\\4d