ZXNet эхоконференция «code.zx»


тема: Turbo loader



от: Oleg Grigoriev
кому: Yuri Nazarenko
дата: 25 Jul 1999
Пусть враги твои, Yuri, умрут без сыновей! Thu 15 Jul 1999 at 23:01, Yuri Nazarenko ═> Oleg Grigoriev: OG>> Обычным способом. Только прерывания не запрещаются никогда. После OG>> чтения OG>> сектора OG>> проверяешь "а не было ли потери данных?". YN> Обычным способом это через #3d13 ? И как сделать чтоб YN> прерывания никогда не запрещались. Я пробовал так делать YN> следующим образом : YN> org 23746 YN> ei YN> ret YN> тоесть по адресу 23746 ставил разрешение прерываний. А как я YN> знаю к этому дресу тр-дос обращается регулярно. Это бессмысленно. Они в досе где попало запрещаются. Через #3d2f, естественно. YN> И как можно проверить "а не было ли потери данных?" Проверив соответствующий бит регистра состояния. Впрочем, достаточно выяснить, что была ошибка. Какая - не важно. #2099 в этом плане достаточно универсальная точка входа. OG>> Или тебе именно исходник надо? Hу, минут на десять работы. :) YN> Hу если можно, то хотелось бы увидеть. YN> Заранее спасибо. Hу, заняло это таки не десять минут (в основном из-за бордюра), да и потормозил я капитально; но - вот: ────[ Здесь начинается файл multi_ld.C ]─────────────────────── DRIVE EQU #00 ORG #6000 LD HL,#BE00 LD (HL),H:INC (HL),L:JR NZ,$-#03 LD A,H,I,A INC H:LD (HL),H,L,H LD (HL),#C3:INC L LD (HL),INT]:INC L LD (HL),INT[ IM 2 EI LD A,#3C!DRIVE:CALL TOPRFF LD A,#08:CALL COMWG LD B,#01,DE,#2604 LOOP PUSH BC LD B,#1B,HL,#4000 LOOP1 CALL RSEC:JR C,LOOP1 INC H,E:BIT 4,E:JR Z,$+#05 LD E,#00:INC D DJNZ LOOP1 POP BC DJNZ LOOP HALT XOR A:IN (#FE):CPL:AND #1F JR Z,$-#07 RET ;*************************************** ; INT PUSH AF,BC LD A,#01:OUT (#FE) INTD LD B,#3E INTD1 LD A,#0E:DEC A:JP NZ,$-#01 NOP DEC B:JR NZ,INTD1 LD A,#04:DEC A:JP NZ,$-#01 LD A,#07:OUT (#FE) .3 NOP RLCA:DEC A:JP NZ,$-#01 OUT (#FE) ;--------------------------------------- INTT LD A,#00:OR A LD A,(INTD+#01):JR NZ,INTT0 INC A:CP #3F:JR NZ,INTT1 LD (INTT+#01),A JR INT1 INTT0 DEC A:JR NZ,INTT1 LD (INTT+#01),A JR INT1 INTT1 LD (INTD+#01),A INT1 POP BC,AF EI JP #3D2F ;*************************************** ; RSEC PUSH HL,DE,BC SRL D LD A,#3C!DRIVE:JR NC,$+#04 LD A,#2C!DRIVE CALL TOPRFF LD A,D:CALL TOPR7F LD A,#18:CALL COMWG LD A,(#5CD6):PUSH AF LD A,E:INC A:CALL TOPR5F LD BC,RSEC1:PUSH BC LD BC,$:PUSH BC LD B,#01:PUSH BC LD BC,#2099:PUSH BC LD BC,#3FD7:PUSH BC LD A,#80:CALL TOPR1F LD BC,#017F,D,C JP #3D2F RSEC1 POP BC:LD A,(#5CD6) CP B LD A,B,(#5CD6),A POP BC,DE,HL SCF:RET NZ CCF:RET ;--------------------------------------- ; COMWG CALL TOPR1F INTRQ LD IX,#3FE5:JR DOS TOPR1F LD C,#1F:JR TOPR TOPR5F LD C,#5F:JR TOPR TOPR7F LD C,#7F:JR TOPR TOPRFF LD C,#FF TOPR LD IX,#2A53 DOS PUSH IX:JP #3D2F ────[ Здесь кончается файл multi_ld.C ]──────────────────────── Бордюрное барахло фиксено под вэйтовый в нетурбе скорп. Мой скорп. :) [ WBR, Oleg. ] [ 19:39 25 July XXXIV A.S. ]




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Реклама - реклама и обьявления в Бресте.
Comics - Путешествие оттуда и сюда: ЕЖИК
.history - Перед вами zx-версия The Chart!
Обратная связь - контакты редакции.
Литстраничка - Тысяча и одна ночь (Из цикла "Hовые сказки о старом").

В этот день...   8 мая