what kind of restart is this?

ZXNet echo conference «code.zx»

From Valerij Kozhevnikov To All 6 July 1998

Hello All! Who knows what kind of restart is like this in Scorpio: LD C,#28 RST 8 DEFB #81 Found in trdos ROM. Because my book is old, it only contains up to #26. I used it, like a simplified copy of #23, i.e. can perform only "auto-connect". Purely visually - it works faster, i.e. in one head jump. Quick entry point? And for C=#27 it’s the same, plz. If there is one. :-/ And what is Tr-dos mirror on/off in the screw utilities menu? I was digging my trdos here, and I found something there. Once upon a time I I thought that intercepting calls to the drive was done in hardware, that is, in some place the ROM is replaced, similar to #3Dxx. Everything turned out to be simpler. But that's not the point. Does anyone know how to detect the presence/from- absence of screw NOT using #24 function #81 restart "identification" HDD fixation". This restart has a multi-faceted glitch: during its (restart) version, the passport is read from the screw to the specified address, BUT For some reason, the shadow guy takes geometry data from this passport (number of cylinders/heads/sectors) and writes it into its transfers exchangeable (thank God it’s not wrong). A friend of mine has a geometry of 560/6/26 in his passport, and on actually 1024/5/17. And after this restart he needs to stomp "left arrow + reset", because disk error begins, or climb in the HDD setup menu to correct the geometry.And they say that there are surprisingly many such incorrect screws, especially especially among older models. Another has one head completely banged, and that’s why he has... a straight piece of the screw disappears. The reaction to restart is similar. WHAT TO DO??? The code here is a driver for one music. editor, and I’m writing quietly thoroughly described the whole farm, so that later everything would be in a heap send to Dismaster for insertion into Melon. And then there’s a glitch... It’s awkward to use restart. I dug through the entire trdos and found a bunch of calls to the screw. The principle is this: RST 8 : DB #8x : RET is placed at address #5CBF, and CALL #5CBF is implicitly executed. The procedure that does this is located at #0826. See below, there it is. I set the trap to #5CBF and re-read the disk, it worked first with C=#28 (see at the beginning of the letter), then with C=#01 (selection disk drive). And throughout the area #800 - #1000 there are procedures scattered here and there something cleverly read from port #7FBA, and depending on the pro- I read that they are doing something so cunning. :)) I read all sorts of things, always from #7FBA comes #7F. Although, judging by code, it happens differently. There are guesses, but maybe someone knows, or is also guessing? Can I throw a complete disassembler of a piece of ROM here? Here's a little: ;use of restarts has been noticed: ;#81 (disk BIOS), functions #01,#02,#05,#06,#28. ;#82 (working with BIOS variables), offsets #0D,#1D. ORG #0826BIOS EX (SP),HL ;package RST 8. BIOS EX (SP),HL. PUSH AF LD A,#CF LD (L5CBF),A LD A,(HL) INC HL LD (L5CC0),A LD A,#C9 LD (L5CC1),A POP AF EX (SP),HL PUSH HL LD HL,L3D2F EX (SP),HL PUSH HL LD HL,L5CBF EX(SP),HL RET LD DE,L4000 LD A,#7 JP #0B L84C RST #20 LD D,H RRA RET C RST #20 LD A,E DEC DE LD A,(L5CF6) LD BC,L7FBA IN C,(C) CP #1 JR Z,L867 JR NC,L86B BIT 7,C JR NZ,L8A3 JR L86F L867 BIT 6,C JR NZ,L8A3 L86B CP #4 JR NC,L8A3 L86F LD,(L5CF4) LD HL,(L5D00) LD BC,L105 ; LD A,(L5CFE) CP #A0 JR NZ,L881 INC C ;small scale L881 CALL BIOS DEFB #81 JR C,L88B POP HL POP OF EI RET [this page] RST #38 RST #38 LD (L5CF6),A LD BC,L7FBA IN C,(C) CP #1 JR Z,L914 JR NC,L917 BIT 7,C RET NZ JR L91A L914 BIT 6,C RET NZ L917 CP #4 RET NC L91A OR #80LD C,#28; CALL BIOS ;subject-to-subject. DEFB #81 LD A,(L5CF6) JR NC,L92D CP #2 RET C L92A JP L3EE7 L92D LD HL,L5D1 LD C,A LD A,#3C OR C LD (HL),A LD A,(L5CF6) LD C,#1 ;St CALL BIOS DEFB #81 JR C,L92A CALL L3E08 LD (HL), #0 CALL L3E11 LD (HL), #8 LD A,#8 LD (L5CCD),A POP HL RET [this page] RST #38 RST #38 LD A,(L5CF6) PUSH BC LD BC,L7FBA IN C,(C) CP #1 JR Z,LA16 JR NC,LA1A BIT 7,C JR NZ,LA2D JR LA1E LA16 BIT 6,C JR NZ,LA2D LA1A CP #4 JR NC,LA2D LA1E POP BC LD D,C PUSH BC LD C,#2; CALL BIOS ;Obvious BIOS DEFB #81 POP BC JP C,L3EE7 POP HL RET LA2D POP BC JP L1FEB LD A,(L5CF6) LD BC,L7FBA IN C,(C) CP #1 JR Z,LA45 JR NC,LA49 BIT 7,C JR NZ,LA4F JR LA4D LA45 BIT 6,C JR NZ,LA4F LA49 CP #4 JR NC,LA4FLA4D POP HL RET WBR Jason. Powered by ScorpionZS256turbo+/SMUC/HDD'IDE130Mb/FDD'800/ /CMOS/Cache8k/Covox/ATkbd/Mouse/CDOS...