Обработка ошибок в 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
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
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