************************************************
************************************************

Unfortunately, this site has restricted functionality as this browser does not support the HTML button formaction attribute.

Unfortunately, this site has restricted functionality as this browser has HTML web storage turned off.

57 of 48,804 files

1985 April 4

  • Text / Guides and how-tos
[+] Configuration Copy text
;Making SYMPHONY ver 1.00 to run with out SYMPHONY'S master disk - ;unprotecting it: ; ;A>REN SYMPHONY.CMP SYMPHONY.XXX ;A>DEBUG SYMPHONY.XXX ;-R ;find the segment where loaded and add 1000 to it ; ;DS=0DFA - xxxx=1DFA (0DFAH+1000H=1DFAH) ;-E xxxx:3A05 75 ;change INT 13 to INT 75H (see label SYMINT below) ;-W ;save changed file ;-Q ;exit debuger ;A>REN SYMPHONY.XXX SYMPHONY.CMP ;A>SYMPH ;execute THIS PROGRAM (it modifies the changed interupt ; ;back to 13H since SYMPHONY does checksum of it's self) ; ; ; ; assemble, link, exe2bin ; ;Execute this program before using SYMPHONY. ;There is no need to re-execute this program after exit from SYMPHONY, in ;order to use the SYMPHONY again, since it is a resident program ; ; ;to further examine the symphony for possibly other way to solve this, using ;DEBUG, do: ;A>DEBUG SYMPHONY.EXE ;-G2 ;-T3 ;-G8A40 ;-T ;at this point you will find the the subroutine that fills ; ;location ds:8735 with n and int 13 (the second one) which ; ;reads the serial number from flopy disk in A. Zeroing 8735 ; ;fools the symphony, and prevents it from testing for special ; ;track/sector structure on the flopy. If the location 8735 is ; ;not zeroed, debugging will not be possible after IP 8A4D, ; ;since INT 3 will be modified by SYMPHONY. ; SYMINT EQU 75H ;interupt to use SYMFLG EQU 8735H ;see above for info CSEG SEGMENT ASSUME CS:CSEG,DS:CSEG ORG 100H PROGRA: XOR AX,AX MOV ES,AX ;set to segment 0 (interupt table) XOR DX,DX MOV AL,SYMINT ;interupt number MOV CX,4 ;get position in interupt table MUL CX MOV BX,AX TEST WORD PTR ES:[BX],0 ;test if set? JZ DOIT ;no, go set it INT 20H ;exit to dos with out mod DOIT: ;get interupt routine address MOV word ptr ES:[BX],offset corc ;store it at the apropriate int address MOV ES:[BX+2],CS ;also store the segment MOV DX,5+16 ;lenght of this pgm in segments MOV AX,3103H ;exit & stay resident INT 21H ;this is the actual interupt CORC: CLI PUSH ES ;save all used registers PUSH BP PUSH BX MOV BP,SP MOV ES,[BP+8] ;get calling segment from stack MOV BX,[BP+6] ;get calling address from stack DEC BX ;back up one MOV BYTE PTR ES:[BX],13H ;store interupt 13h there MOV BYTE PTR DS:SYMFLG,0 ;zero out the flopy test flag POP BX ;restore registers POP BP POP ES STI IRET ;back to symphony CSEG ENDS END PROGRA →→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
80x84 Font
80