Turbo loader

ZXNet echo conference «code.zx»

From Oleg Grigoriev To Yuri Nazarenko 25 July 1999

Let your enemies, Yuri, die without sons! Thu 15 Jul 1999 at 23:01, Yuri Nazarenko ═> Oleg Grigoriev: OG>> In the usual way. Only interruptions are never prohibited. After OG>>readings OG>> sectors OG>> you check “was there any data loss?” YN> The usual way is through #3d13 ? And how to make it so YN> interrupts were never disabled. I tried to do this YN> as follows: YN> org 23746 YN> ei YN> ret YN> that is, at address 23746 I set interrupt enable. How am I? YN> I know tr-dos accesses this address regularly. It's pointless. They are prohibited anywhere. Via #3d2f, naturally. YN> And how can you check “was there any data loss?” By checking the corresponding bit of the status register. However, that's enough find out there was an error. It doesn't matter which one. #2099 is enough in this regard universal entry point. OG>> Or do you just need the source? Well, about ten minutes of work. :) YN> Well, if possible, I would like to see.YN> Thanks in advance. Well, it didn’t take ten minutes (mainly because of the curb), and I braked thoroughly; but here it is: ────[ The file multi_ld.C begins here ]─────────────────────── 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 B.C. 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),AINT1 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. ]