is-dos & memory

ZXNet echo conference «code.zx»

From Dmitry Sharikov To All 24 August 1999

Hello dear, All! This is where a question arose for people, cat. wrote/are writing programs under is-dos... I wanted I would like to work with the upper memory, or rather the program, cat. not yet born (before end), I used this memory, but how can I make sure that there is no conflict with all sorts of ram disks? We are talking about the 128th memory... You understand, the 48th memory is somehow not interesting... ;) With best wishes, Dmitry. [ZX] [LETI]

From Dmitry Sharikov To Oleg Grigoriev 26 August 1999

Hello to you, Oleg!!! Once on Wednesday August 25, 1999 at 00:44:40 Oleg Grigoriev wrote to Dmitry Sharikov on the topic 'is-dos & memory': DS>> was born (to the end), I used this memory, but how to make sure DS>> that there will be no conflict with all sorts of ram disks? OG> No way. :) Use 128. And that's it. What, it’s so simple, like, if a person has a RAM disk, then his problems? Damn, I'll have to tinker with the 48th memory again... ;) With best wishes, Dmitry. [ZX] [LETI]

From Felix Knajzev To Dmitry Sharikov 27 August 1999

Greetings, O venerable Dmitry! [Thursday 26 August 1999] at [03:59:40] Dmitry Sharikov wrote a letter to Felix Knajzev. They discussed the topic "is-dos & memory". Let's continue what we started... FK>> RAM disk driver with the ability to configure the number FK>> used cans (or creat.com) and their order FK>> padding. The last one is most important. DS> Me too, because... I don't use a ramdisk... ;) But I have to: there is no screw, but 512K of brains. DS> Did you somehow create a ram disk (configured) in a cunning way? If the RAM disk driver has a table for filling jars, and pages 128K memories are at the very end of the list (used by the system last queue), then you just do it with creat.com frame disk size for 320 blocks (one bank = 64 blocks; memory 128K = banks 1,3,4,6,7; 64*5=320) less than it maximum volume. Naturally, for owners of 128K machines, bummer. I mean, they generally break off on the frame disk. :) DS> And also, where can you set the order of filling the cans? In the body of the driver itself. Somehow a good driver flew by here, (I have no idea who the author is) IMHO the fastest (2All: and even faster is it possible?) and with the ability to configure the order of filling the cans. Here it is:================= begin of file "ed_512+ .a" ================== ;Driver for 512K according to the Pentagon standard; #7ffd, 6&7 bits. ORG 50000 DEFW #0000 ;no installation DEFW dread DEFW write DEFW binit ;for dread and write: ;hl - address in memory ;de - start number block on disk ;b - number of blocks DEFB #E0,#04 DEFB #00,#00 DEFB #00,#00 DEFB #00,#00 ;page order table ptable DEFB #D0,#D1,#D2,#D3,#D4,#D5,#D6,#D7 DEFB #90,#91,#92,#93,#94,#95,#96,#97 DEFB #50,#51,#52,#53,#54,#55,#56,#57 DEFB #11,#13,#14,#16,#17 ; ^^^^^^^^^^^^^^^^^^^ ;And here are our 128K memory pages. ;They will be used last. ;They can be excluded from the list altogether if creat.com'om ;a ramdisk will be created with 320 blocks less than ;its possible (maximum) volume. dread XOR A JR WORK__ write LD A,#EB WORK__ LD (EXCH_1),A LD(EXCH_2),A LD A,H ADD A,B JR C,ERR_07 ADD A,#40 JR NZ,ERR_07 DEC A ADD A,L ERR_07 LD A,#07 RET C JR NEXT__ LOOP__ LD A,E OR#C0 PUSH AF N.E.G. LD C,B CP B JR NC,LLL1 LD C,A LLL1 LD A,B SUB C LD B,#00 EX DE,HL PUSH HL ADD HL,BC EX (SP),HLADD HL,HL ADD HL,HL LD L,H LD H,B LD B,A PUSH BC LD BC,ptable ADD HL,BC POP BC LD A,(HL) POP HL EX (SP),HL PUSH BC LD B,C LD C,#00 LD L,C DI DI. LD (STORE+1),BC LD BC,#7FFD OUT (C),A STORE LD BC,0 EXCH_1 EX DE,HL _LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI JP PE,_LDI EXCH_2 EX DE,HL LD A,#10 LD BC,#7FFD OUT (C),A EI EX DE,HL POP BC POP DE NEXT__ INC B DJNZ LOOP__ bit XOR A RET . ================= end of file "ed_512+ .a" =================== And here is the same driver, but for 1M-Scorp (#1ffd/bit_4, #7ffd/bit_6&7): ================== begin of file "ed_sc1mb.a" =================== Fast RAM drive for Scorpion ;with 1Mb RAM (!); Bit_4 or #1FFD; Bits_6&7 or #7FFD. ;Uses only additional upper ;memory! That is. "cans" from #08 to #3F! ;Ustpoystvo create on (3*8)+(4*8)=56*64=3584 blocks! ;Specially for Vlad Zinuk. ORG 50000 DEFW #0000 ;no installation DEFW dread DEFW write DEFW sew ;for dread and write: ;hl - address in memory;de - start number block on disk ;b - number of blocks DEFB #E0,#04 DEFB #00,#00 DEFB #00,#00 DEFB #00,#00 ;page order table ptable DEFB #F0,#F1,#F2,#F3,#F4,#F5,#F6,#F7; set to "1" bit_5 DEFB #B0,#B1,#B2,#B3,#B4,#B5,#B6,#B7; to write to bit_4 of #1FFD! DEFB #70,#71,#72,#73,#74,#75,#76,#77 DEFB #30,#31,#32,#33,#34,#35,#36,#37 ; DEFB #D0,#D1,#D2,#D3,#D4,#D5,#D6,#D7; reset to "0" bit_5 DEFB #90,#91,#92,#93,#94,#95,#96,#97; to write to bit_4 of #1FFD! DEFB #50,#51,#52,#53,#54,#55,#56,#57 dread XOR A JR WORK__ write LD A,#EB WORK__ LD (EXCH_1),A LD(EXCH_2),A LD A,H ADD A,B JR C,ERR_07 ADD A,#40 JR NZ,ERR_07 DEC A ADD A,L ERR_07 LD A,#07 RET C JR NEXT__ LOOP__ LD A,E OR#C0 PUSH AF N.E.G. LD C,B CP B JR NC,LLL1 LD C,A LLL1 LD A,B SUB C LD B,#00 EX DE,HL PUSH HL ADD HL,BC EX (SP),HL ADD HL,HL ADD HL,HL LD L,H LD H,B LD B,A PUSH BC LD BC,ptable ADD HL,BC POP B.C. LD A,(HL) POP HL EX (SP),HL PUSH BC LD B,C LD C,#00 LD L,C D.I.LD (STORE+1),BC LD BC,#7FFD LD (MEM1+1),A AND %11011111 OUT (C),A MEM1 LD A,0 LD B,#1F AND %00100000 SRL A OUT (C),A STORE LD BC,0 EXCH_1 EX DE,HL _LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI JP PE,_LDI EXCH_2 EX DE,HL XOR A LD BC,#1FFD OUT (C),A LD A,#10 LD B,#7F OUT (C),A EI EX DE,HL POP BC POP DE NEXT__ INC B DJNZ LOOP__ bit XOR A RET . ================= end of file "ed_sc1mb.a" =================== Sincerely, Felix. [I.ZX]