[Copyright 1999,2002 Frank Durda IV, All Rights Reserved. Mirroring of any material on this page in any form is expressly prohibited. The official web site for this material is: http://nemesis.lonestar.org Contact this address for use clearances: clearance at nemesis.lonestar.org Comments and queries to this address: web_software_2011 at nemesis.lonestar.org]
MISOSYS EDAS-4.3 04/19/99 00:07:18 DEBUG/VERIFY - LS-DOS 6.2 Page 00001
00001 ;LBDEBUG/ASM - DEBUG VERIFY Commands
00003 ;
000D 00004 CR EQU 13
0000 00005 *GET SVCMAC:3 ;SVC Macro equivalents
00006 ;SVCMAC/ASM - LS-DOS Version VI
00007 *LIST OFF
00399 *LIST ON
00401 *LIST OFF ;Get SYS0/EQU
00717 *LIST ON
00718 ;
2400 00719 ORG 2400H
00720 ;
2400 C37824 00721 JP VERIFY ;Verify entry point
00722 ;
00723 ; Debug entry
00724 ;
2403 11F124 00725 DEBUG LD DE,PRM1TBL ;Pt to y/n on/off parms
2406 00726 @@PARAM ;Get parameters
2406+3E11 00727 LD A,17
2408+EF 00728 RST 40
2409 C2C324 00729 JP NZ,IOERR ;Jump on parm error
240C CDB624 00730 CALL NPARM ;Ck on yes or no entry
240F 2821 00731 JR Z,DBG2 ;Go if no (OFF)
2411 3A7324 00732 LD A,(EPARM) ;Ck on extended DEBUG
2414 B7 00733 OR A ; requested
2415 280A 00734 JR Z,DBG0 ;Go if not
2417 FDCB0246 00735 BIT 0,(IY+'C'-'A') ;Can't put extended DEBUG
241B C2CD24 00736 JP NZ,CANT ; if himem not available
241E CD7524 00737 CALL DBG3 ;Call if EXT entered
2421 FDCB12FE 00738 DBG0 SET 7,(IY+'S'-'A') ;Turn on DEBUG flag
2425 1608 00739 LD D,8 ;Set to mask bit 3
2427 CD9824 00740 CALL GET$DO
242A AF 00741 DBG0A XOR A ; & enable DEBUG
242B 329F19 00742 DBG1 LD (@DBGHK),A
242E 210000 00743 EXIT LD HL,0 ;Set no error
2431 C9 00744 RET
00745 ;
2432 FDCB12BE 00746 DBG2 RES 7,(IY+'S'-'A') ;Turn off DEBUG flag
2436 1680 00747 LD D,80H ;Set to mask bit 7
2438 CD9824 00748 CALL GET$DO
243B 3A7324 00749 DBG2A LD A,(EPARM) ;Ck on extended DEBUG
243E B7 00750 OR A ; requested
243F 282E 00751 JR Z,DBG4 ;Go if not
00752 ;
00753 ; User requested we remove extended DEBUG
00754 ;
2441 FDCB0246 00755 BIT 0,(IY+'C'-'A') ;Can we alter HIGH$?
2445 2028 00756 JR NZ,DBG4 ;Go if not
2447 ED5BA419 00757 LD DE,(EXTDBG$) ;Is extended resident?
244B 21FDEA 00758 LD HL,-ORARET@ ;Ck if vector same as
244E ED5A 00759 ADC HL,DE ; the default
2450 281D 00760 JR Z,DBG4 ;Go if not resident
2452 210000 00761 LD HL,0 ;Set to get HIGH$
2455 45 00762 LD B,L
2456 00763 @@HIGH$ ;P/u current pointer
2456+3E64 00764 LD A,100
2458+EF 00765 RST 40
2459 23 00766 INC HL ;Point to assumed module
245A AF 00767 XOR A ; & check if extended
245B ED52 00768 SBC HL,DE ; debugger is lowest
245D 2010 00769 JR NZ,DBG4 ;Can't release if not
245F 13 00770 INC DE ;Point to last byte used
2460 13 00771 INC DE
2461 EB 00772 EX DE,HL ;This will be new
2462 5E 00773 LD E,(HL)
2463 23 00774 INC HL ; HIGH$
2464 56 00775 LD D,(HL)
2465 EB 00776 EX DE,HL ;New high to HL
2466 00777 @@HIGH$ ;Reset high$
2466+3E64 00778 LD A,100
2468+EF 00779 RST 40
2469 210315 00780 LD HL,ORARET@ ;Reset extended debugger
246C 22A419 00781 LD (EXTDBG$),HL ; vector to default
246F 3EC9 00782 DBG4 LD A,0C9H ;Turn off DEBUG vector
2471 18B8 00783 JR DBG1
00784 ;
2473 0000 00785 EPARM DW 0
2475 3E9B 00786 DBG3 LD A,9BH ;Get SYS9 loaded & up
2477 EF 00787 RST 28H
00788 ;
00789 ; Verify entry
00790 ;
2478 110125 00791 VERIFY LD DE,PRM2TBL ;Pt to ext + above
247B 00792 @@PARAM
247B+3E11 00793 LD A,17
247D+EF 00794 RST 40
247E 2043 00795 JR NZ,IOERR ;Quit on parm error
2480 CDB624 00796 CALL NPARM ;Ck yes/no
2483 213115 00797 LD HL,@WRITE ;Init to vector WRITE
2486 FDCB0396 00798 RES 2,(IY+'D'-'A') ;Indicate VERIFY=OFF
248A 2807 00799 JR Z,VER1 ;Use WRITE if VER=(OFF)
248C 216015 00800 LD HL,@VER ;Init to vector VERIFY
248F FDCB03D6 00801 SET 2,(IY+'D'-'A') ;Indicate VERIFY=ON
2493 229601 00802 VER1 LD (75*2+SVCTAB$),HL ;Change SVCTAB vector
2496 1896 00803 JR EXIT
00804 ;
00805 ; Routine to save or restore SPACE COMPRESSION state
00806 ;
2498 D5 00807 GET$DO PUSH DE ;Save mask value
2499 11B224 00808 LD DE,$DO$
249C 00809 @@GTMOD
249C+3E53 00810 LD A,83
249E+EF 00811 RST 40
249F 210400 00812 LD HL,4 ;Point to 1st data byte
24A2 19 00813 ADD HL,DE
24A3 D1 00814 POP DE ;Rcvr mask value
24A4 C0 00815 RET NZ ;Return if not found
24A5 7E 00816 LD A,(HL) ;P/u existing state
24A6 A2 00817 AND D ;Strip state of space comp
24A7 07 00818 RLCA ; & move to bit 7 or 3
24A8 07 00819 RLCA
24A9 07 00820 RLCA
24AA 07 00821 RLCA
24AB 5F 00822 LD E,A ;Tempy save
24AC 7E 00823 LD A,(HL)
24AD E677 00824 AND 77H ;Strip bits 3 and 7
24AF B3 00825 OR E ;Merge comp state
24B0 77 00826 LD (HL),A
24B1 C9 00827 RET
00828 ;
24B2 24 00829 $DO$ DB '$DO',3
44 4F 03
00830 ;
00831 ; Parameter parsing of yes/no
00832 ;
24B6 010000 00833 NPARM LD BC,0 ;P/u "no" parm entry
24B9 00834 @@FLAGS ;Point to flag table
24B9+3E65 00835 LD A,101
24BB+EF 00836 RST 40
24BC 78 00837 LD A,B
24BD B1 00838 OR C ;If NO, make Z
24BE EEFF 00839 XOR 0FFH
24C0 C9 00840 RET
24C1 0000 00841 YPARM DW 0
00842 ;
00843 ; I/O Error Processing
00844 ;
24C3 6F 00845 IOERR LD L,A ;Set HL = error code
24C4 2600 00846 LD H,0 ;
24C6 F6C0 00847 OR 0C0H ;Short error
24C8 4F 00848 LD C,A ;Xfer error # to C
24C9 00849 @@ERROR ;Display error
24C9+3E1A 00850 LD A,26
24CB+EF 00851 RST 40
24CC C9 00852 RET ;Return to DOS
00853 ;
00854 ; Error exits
00855 ;
24CD 21D724 00856 CANT LD HL,CANT$
24D0 00857 @@LOGOT
00858 IFEQ 00H,1
00859 LD HL,
00860 ENDIF
24D0+3E0C 00861 LD A,12
24D2+EF 00862 RST 40
24D3 21FFFF 00863 LD HL,-1
24D6 C9 00864 RET
00865 ;
24D7 4E 00866 CANT$ DB 'No memory space available',CR
6F 20 6D 65 6D 6F 72 79
20 73 70 61 63 65 20 61
76 61 69 6C 61 62 6C 65
0D
00867 ;
24F1 45 00868 PRM1TBL DB 'EXT '
58 54 20 20 20
24F7 7324 00869 DW EPARM
24F9 45 00870 DB 'E '
20 20 20 20 20
24FF 7324 00871 DW EPARM
2501 4F 00872 PRM2TBL DB 'ON '
4E 20 20 20 20
2507 C124 00873 DW YPARM
2509 4F 00874 DB 'OFF '
46 46 20 20 20
250F B724 00875 DW NPARM+1
2511 59 00876 DB 'Y '
20 20 20 20 20
2517 C124 00877 DW YPARM
2519 4E 00878 DB 'N '
20 20 20 20 20
251F B724 00879 DW NPARM+1
2521 00 00880 NOP
00881 ;
2403 00882 END DEBUG
2403 is the transfer address
00000 Total errors
[Copyright 1999,2002 Frank Durda IV, All Rights Reserved. Mirroring of any material on this page in any form is expressly prohibited. The official web site for this material is: http://nemesis.lonestar.org Contact this address for use clearances: clearance at nemesis.lonestar.org Comments and queries to this address: web_software_2011 at nemesis.lonestar.org]