Amazing #01
29 сентября 1997 |
|
TR-DOS - disable key Break, poll SH 93 at the lack of disk drive head positioning procedure.
Section: Tr-Dos Text: J. Jury Music: IRONMAN Information: Dr.Serg, Mr.Beeper "Today we will talk one of the glitches in TR-DOS " So it was written in journal "ZX-FORMAT", about the glitch, which I now going to tell you detail. This journal has been described a case when you start your computer, head drive directed to trk 159 and tried to move on. Explanation they given is: (approx) - Comrades nick! The problem is not in Your controller, but in your ROM. So that change the ROM and everything will work as it should. I'd like to see theirs faces when this "new ROM" run for about a week. Yes, when to change everything as PZU'shku though, would have worked fine, but after a few days, everything happens for the first time. Do not want to upset you, but the whole problem not in the ROM and floppy drive in your controller! It has already been verified and tested several times. Most often this "Glitch" found in computers, model "Leningrad2", "Kharkiv", and the like, where there is a controller without the ROM, but instead the usual 128k worth 512K. So comrades PUBLISHER check the reliability of their materials before than releasing them into the light! p.s. Sorry guys! ________________________________________ I want to write here is about. Many start working on the assembly programmers might have noticed that loading unit sectors with the entry point 15635 (# 3D13 hate HEX - the system!) stops when you press BREAK. To avoid this, sufficient first program to put here such two lines: LD HL, 51697 LD (23746), HL and all! That's all suffering with the key BREAK will be finished - it simply "cease to exist." Using the above method together with the load through # 3D13 - Best loader, which can only come up with: In - First, it is brief, and secondly - Works on all computers nazavisimo version of TR-DOS. This method is used and the DREAM MAKERS SOFTWARE, and MAX IWAMOTO. And: Driesse! Learn to save memory: what to write: LD B, LEN LD C, 5 because you can instead write: LD BC, LEN * 256 5 and assembler will understand and one byte of memory save ("penny - penny gained"). Gentlemen programmers! Squeeze, perhaps hundred, its software products. There is also a peerless thing as LZ / PACK or MS_PACK vobschem a lot of them ... If you have such materials, send them to our office and we must publish them. Now go to the principal. ________________________________________ Today in section Tr-Dos much as two procedures that will be useful to you in many sluchyayah life, namely: 1. POLL SH 93 AT NO DISC! 2. PROCEDURE FOR POSITIONING HEAD! Two of these procedures are provided courtesy of the great CODER'om under klikuhoy Dr.Serg. In the subsequent issues this section will carry it again, and in application has its Remix Game "SPACE CR." a MOUSE!!! So I ask to love and favor. * In order not to complicate your life, to drive have these procedures in a format ZX-ASM 3 Poll "VG93" in the absence of a disk! Coded and copyright by Dr.SERG, (Special for magazine PolyForm) ORG # 8000 DI CALL ConDisk LD HL, met3 LD (HL), A met2 EI HALT: DI CALL ConDisk CP (HL) JR NZ, met1 LD A, # 7f IN A, (# fe) BIT 0, A JR NZ, met2 met1 DS 3 RET met3 DB 0 ConDisk PUSH IY PUSH IX PUSH HL PUSH DE PUSH BC LD (ConDisk1 +1), SP ; Installation for the add. # 5CC2: 3ConDisk1 LD A, # c3 LD (# 5cc2), A LD HL, ConDisk1 LD (# 5cc3), HL ; Command "Forced termination" LD IX, # 2FC1 CALL LL7846 ; The "Restoration" LD A, # 08 LD BC, # 001F LD IX, # 2A53 CALL LL7846 , Reading the status registers VG93 LD DE, # 0000 LD IX, # 2740 CALL LL7846 ConDisk1 LD SP, 0 XOR A Clear the VG93 LD IX, # 1FF3 CALL LL7846 ; Restore the system registry VG93 LD IX, # 1FEB CALL LL7846 ; Command "Forced termination" LD IX, # 2FC1 CALL LL7846 ; Installation at - # 5CC2: RET LD A, # c9 LD (# 5cc2), A LD A, (# 5CCD) AND # 40 POP BC POP DE POP HL POP IX POP IY RET LL7846 PUSH IX JP # 3D2F The procedure for positioning the head! Coded and copyright by Dr.SERG, (Special for magazine PolyForm) VVHOD: w-nom.treka 0-159 : A = 0 test position 1 (0001 1h00) : A = 255 not verify 0 OUTPUT: A = 0 O.K. A <> 0 Error, BIT 7, a = 1 kom.ne priinyata BIT 4, a = 1 osh-ka positioning BIT 0, a = 1 kontr.ne ready to receive izm.et IX, AF Business Registry => (ErrWG) When starting the engine pauses opred.konstantoy => (DrPause) ORG 25000 LD B, 0; Trk Posic PUSH BC LD IX, posicC AND A SET 2, (IX +1) JR Z, posic3 RES 2, (ix +1) posic3 LD IX, posicex PUSH IX And, installation of side LD A, B SRL A LD B, A LD IX, # 1feb JR NC, posic1 LD IX, # 1ff6 posic1 CALL Dos2 LD IX, # 3c30 CALL Dos2 BIT 0, A jr z, posic4 ; SH not gotova.preryvanie Kamanda LD A,% 11010000 LD C, # 1f LD IX, # 2a53 JR posic1 ; Checking motor rotation ; And modification konst.zaderzhki posic4 LD IX, 1 BIT 7, A JR Z, posic5 LD IX, (DrPause) posic5 LD (posicp +2), IX LD A, B LD C, # 7f CALL Dos1; installation number trk. posicC LD A,% 00011100; ; Bit 2-way navigation key and check .. LD C, # 1f CALL Dos1 CALL Dos1; Track Search LD IX, # 3c30; in a, (# 1f) posic2 CALL Dos2 BIT 0, A; is the command JP NZ, posic2 BIT 7, A; Emergency exit RET NZ; drive worth! BIT 4, A: RET NZ; error search BIT 3, A: RET NZ; error control. C; code (if CHECK) LD (ErrWG), A And, a pause, if there was engine start posicp LD IX, 0 posic6 DEC IX LD A, XL OR XH JR NZ, posic6 POP BC: RET posicex LD (ErrWG), a POP BC RET ; Nn transition TR.DOS ; For 2A53: OUT (BC), A: RET Dos1 LD IX, # 2a53; out (c), a: ret Dos2 PUSH IX JP # 3d2f ErrWG DB 0 DrPause DW # A000 Attention! These procedures do not work on ROM ver siey TR-DOS 5.03. When using these procedures in their own programs, make reference to author. Today all are waiting for your letters of representation proposition. ________________________________________
Other articles:
Similar articles:
В этот день... 21 November