[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 01:03:43 DUMP - LS-DOS 6.2 Page 00001 00001 ;LBDUMP/ASM - DUMP Command 00003 ; 0000 00004 *GET SVCMAC:3 ;SVC Macro equivalents 00005 ;SVCMAC/ASM - LS-DOS Version VI 00006 *LIST OFF 00398 *LIST ON 00400 ; 000D 00401 CR EQU 13 002C 00402 PAR_ERR EQU 44 ;"Parameter Error" # 3000 00403 SINIT EQU 3000H 3000 00404 EINIT EQU SINIT 00405 ; 2400 00406 ORG 2400H 00407 ; 2400 00408 DUMP @@CKBRKC ;Break key down? 2400+3E6A 00409 LD A,106 2402+EF 00410 RST 40 2403 2804 00411 JR Z,BEGINA ;Ok if not 2405 21FFFF 00412 LD HL,-1 ; else abort 2408 C9 00413 RET 00414 ; 2409 111C26 00415 BEGINA LD DE,FCB1 ;Fetch the filespec 240C 00416 @@FSPEC 240C+3E4E 00417 LD A,78 240E+EF 00418 RST 40 240F C26E25 00419 JP NZ,SPCREQ ;Jump on error 2412 1A 00420 LD A,(DE) ;Cannot be a device 2413 FE2A 00421 CP '*' 2415 CA6E25 00422 JP Z,SPCREQ ;Quit if device 2418 00423 @@FLAGS ;Get system flag table 2418+3E65 00424 LD A,101 241A+EF 00425 RST 40 241B E5 00426 PUSH HL ;Save cmdline ptr 241C FD661A 00427 LD H,(IY+26) ;P/u SVC table MSB 241F 2E2C 00428 LD L,22*2 ; & point to @EXIT entry 2421 7E 00429 LD A,(HL) ;Get @EXIT LSB 2422 2C 00430 INC L 2423 66 00431 LD H,(HL) ;Get @EXIT MSB 2424 6F 00432 LD L,A 2425 224025 00433 LD (TPARM+1),HL ;Init transfer to @EXIT 2428 E1 00434 POP HL 00435 ; 00436 ; Search for parameters 00437 ; 2429 11BD25 00438 LD DE,PRMTBL$ ;Get the parms 242C 00439 @@PARAM 242C+3E11 00440 LD A,17 242E+EF 00441 RST 40 242F C25A25 00442 JP NZ,PRMERR ;Jump on parm error 2432 2AE024 00443 LD HL,(EPARM+1) ;Ck on end > start 2435 ED4BDA24 00444 LD BC,(SPARM+1) 2439 AF 00445 XOR A 243A ED42 00446 SBC HL,BC 243C DA6A25 00447 JP C,ENLTST ;Jump on start < end MISOSYS EDAS-4.3 04/19/99 01:03:43 DUMP - LS-DOS 6.2 Page 00002 243F 210030 00448 LD HL,SINIT ;Pt to lowest possible 2442 2B 00449 DEC HL ;Reduce for compare 2443 ED42 00450 SBC HL,BC ;Ck on start > minimum 2445 D26625 00451 JP NC,STLT30 ;Jump if start < minimum 2448 010000 00452 APARM LD BC,0 ;ASCII txt or code cim 244B 78 00453 LD A,B 244C B1 00454 OR C 244D 202B 00455 JR NZ,DUMPTXT ;Go if ASCII 244F 111626 00456 LD DE,NAMFLD ;Get up to a 6-character 2452 211C26 00457 LD HL,FCB1 ;Filename to stuff 2455 0606 00458 LD B,6 ;As file header 2457 7E 00459 $?1 LD A,(HL) 2458 FE30 00460 CP '0' ;Stop on non-alpha 245A 3813 00461 JR C,$?3 245C FE3A 00462 CP '9'+1 ;Use if 0-9 245E 3808 00463 JR C,$?2 2460 FE41 00464 CP 'A' ;Ck on A-Z 2462 380B 00465 JR C,$?3 2464 FE5B 00466 CP 'Z'+1 2466 3007 00467 JR NC,$?3 ;Exit if not A-Z 2468 12 00468 $?2 LD (DE),A ;Xfer this char 2469 23 00469 INC HL ;Bump input ptr 246A 13 00470 INC DE ; & output pointer 246B 10EA 00471 DJNZ $?1 ;Loop 6-chars max 246D 1806 00472 JR $?4 246F 3E20 00473 $?3 LD A,' ' ;Place blanks to 2471 12 00474 LD (DE),A ;Fill out to 6 chars 2472 13 00475 INC DE 2473 10FA 00476 DJNZ $?3 2475 21B725 00477 $?4 LD HL,LMFEXT ;Use /LMF extension 2478 1803 00478 JR DUMPCIM 247A 21BA25 00479 DUMPTXT LD HL,TXTEXT ;Use /TXT extension 247D 111C26 00480 DUMPCIM LD DE,FCB1 ;Default the EXT 2480 00481 @@FEXT 2480+3E4F 00482 LD A,79 2482+EF 00483 RST 40 2483 010000 00484 LPARM LD BC,0 ;P/u LRL 2486 78 00485 LD A,B ;Test for > 256 2487 B7 00486 OR A ;If hi-order = 0, 2488 2808 00487 JR Z,LP1 ;Just use lo-order 248A 3D 00488 DEC A ;Test hi-order = 1 248B C25A25 00489 JP NZ,PRMERR 248E B1 00490 OR C ;P/u lo-order 248F C25A25 00491 JP NZ,PRMERR ;Lo-order must be 0 2492 B1 00492 LP1 OR C ;Merge lo-order 2493 47 00493 LD B,A 2494 210027 00494 LD HL,BUFFER ;Pt to buffer 2497 00495 @@INIT ;Init the file 2497+3E3A 00496 LD A,58 2499+EF 00497 RST 40 249A C25C25 00498 JP NZ,IOERR ;Quit on init error 00499 ; 00500 ; Display the filespec being dumped 00501 ; MISOSYS EDAS-4.3 04/19/99 01:03:43 DUMP - LS-DOS 6.2 Page 00003 249D ED4B2226 00502 LD BC,(FCB1+6) ;P/u DEC & drive 24A1 11F625 00503 LD DE,FCB2 ;Point to FCB area 24A4 D5 00504 PUSH DE 24A5 00505 @@FNAME ;Fetch the name 24A5+3E50 00506 LD A,80 24A7+EF 00507 RST 40 24A8 E1 00508 POP HL 24A9 C25C25 00509 JP NZ,IOERR ;Quit on error 24AC 3E20 00510 LD A,20H ;Scan until ETX char 24AE 23 00511 FNLP INC HL 24AF BE 00512 CP (HL) 24B0 38FC 00513 JR C,FNLP 24B2 360D 00514 LD (HL),CR ;Replace with CR 24B4 00515 @@LOGOT DUMP$ ;Display "Dumping... 00516 IFEQ 01H,1 24B4+21ED25 00517 LD HL,DUMP$ 00518 ENDIF 24B7+3E0C 00519 LD A,12 24B9+EF 00520 RST 40 00521 ; 24BA 111C26 00522 LD DE,FCB1 ;Get dump FCB 24BD 3A4924 00523 LD A,(APARM+1) ;Ck if ASCII parm used 24C0 B7 00524 OR A 24C1 2016 00525 JR NZ,SPARM ; and go if so 24C3 3E05 00526 LD A,5 ;Name header 24C5 CD5325 00527 CALL PUTOUT 24C8 3E06 00528 LD A,6 ;Name length 24CA CD5325 00529 CALL PUTOUT 24CD 0606 00530 LD B,6 ;Init loop 24CF 211626 00531 LD HL,NAMFLD 24D2 7E 00532 $?5 LD A,(HL) 24D3 23 00533 INC HL 24D4 CD5325 00534 CALL PUTOUT ;Output the filename 24D7 10F9 00535 DJNZ $?5 00536 ; 24D9 210030 00537 SPARM LD HL,SINIT ;P/u starting addr 24DC E5 00538 $?7 PUSH HL ;Ck on write of 24DD 44 00539 LD B,H ; last byte written 24DE 4D 00540 LD C,L 24DF 21FF2F 00541 EPARM LD HL,EINIT-1 ;Where to end 24E2 23 00542 INC HL 24E3 AF 00543 XOR A 24E4 ED42 00544 SBC HL,BC 24E6 282E 00545 JR Z,$?10 ;Go if at end 24E8 06FE 00546 LD B,254 ;254-byte blocks 24EA 7C 00547 LD A,H ;A full sector left 24EB B7 00548 OR A ;To write? 24EC 2006 00549 JR NZ,$?8 24EE 7D 00550 LD A,L 24EF FEFF 00551 CP 0FFH 24F1 3001 00552 JR NC,$?8 ;If less than full, 24F3 45 00553 LD B,L ; reset len 24F4 E1 00554 $?8 POP HL 24F5 3A4924 00555 LD A,(APARM+1) MISOSYS EDAS-4.3 04/19/99 01:03:43 DUMP - LS-DOS 6.2 Page 00004 24F8 B7 00556 OR A 24F9 2012 00557 JR NZ,$?9 ;Bypass if TXT 24FB 3C 00558 INC A ;Init start of block 24FC CD5325 00559 CALL PUTOUT 24FF 78 00560 LD A,B ;Get block length 2500 C602 00561 ADD A,2 ;Add 2 for load address 2502 CD5325 00562 CALL PUTOUT ; & put it out 2505 7D 00563 LD A,L 2506 CD5325 00564 CALL PUTOUT ;Lo-order load address 2509 7C 00565 LD A,H 250A CD5325 00566 CALL PUTOUT ;Hi-order load address 250D 7E 00567 $?9 LD A,(HL) ;Write a load block 250E 23 00568 INC HL 250F CD5325 00569 CALL PUTOUT 2512 10F9 00570 DJNZ $?9 2514 18C6 00571 JR $?7 ;Loop for more 00572 ; 2516 E1 00573 $?10 POP HL ;Stack integrity 2517 3A4924 00574 LD A,(APARM+1) ;No TRAADR if TXT 251A B7 00575 OR A ; or TRAADR if not TXT 251B 2818 00576 JR Z,TRAADR 251D 010300 00577 ETXPARM LD BC,3 ;P/u etx character 2520 79 00578 LD A,C 2521 21E925 00579 LD HL,ETXRESP 2524 CB7E 00580 BIT 7,(HL) ;Value input means 2526 201F 00581 JR NZ,PUTETX ; put the ETX given 2528 0A 00582 LD A,(BC) ;In case string 2529 CB6E 00583 BIT 5,(HL) ;String input puts the 252B 201A 00584 JR NZ,PUTETX ; entered char 252D CB76 00585 BIT 6,(HL) ;Flag input gives ETX=3 252F 2819 00586 JR Z,CLSFIL ; if ETX=on 2531 3E03 00587 LD A,3 2533 1812 00588 JR PUTETX 2535 3E02 00589 TRAADR LD A,2 ;Put traadr header 2537 CD5325 00590 CALL PUTOUT 253A 3E02 00591 LD A,2 253C CD5325 00592 CALL PUTOUT 253F 210000 00593 TPARM LD HL,$-$ ;P/u transfer address 2542 7D 00594 LD A,L 2543 CD5325 00595 CALL PUTOUT ;Tra lo-order 2546 7C 00596 LD A,H 2547 CD5325 00597 PUTETX CALL PUTOUT ;Tra hi-order or ETX 254A 00598 CLSFIL @@CLOSE ;Close 'er up 254A+3E3C 00599 LD A,60 254C+EF 00600 RST 40 254D 210000 00601 LD HL,0 2550 C8 00602 RET Z ;Back on no error 2551 1809 00603 JR IOERR ;Go on error 00604 ; 2553 4F 00605 PUTOUT LD C,A ;Xfer the char 2554 00606 @@PUT ;Test each byte transfer 2554+3E04 00607 LD A,4 2556+EF 00608 RST 40 2557 C8 00609 RET Z ;Back if no error MISOSYS EDAS-4.3 04/19/99 01:03:43 DUMP - LS-DOS 6.2 Page 00005 2558 E1 00610 POP HL ;Pop the RET addr 2559 21 00611 DB 21H ;Skip LD A,## instruction 255A 3E2C 00612 PRMERR LD A,PAR_ERR ;"Parameter Error" 255C 6F 00613 IOERR LD L,A ;Error code to HL 255D 2600 00614 LD H,0 255F F6C0 00615 OR 0C0H ;Abbrev & return 2561 4F 00616 LD C,A 2562 00617 @@ERROR ;Show the error 2562+3E1A 00618 LD A,26 2564+EF 00619 RST 40 2565 C9 00620 RET 00621 ; 00622 ; Internal error routine 00623 ; 2566 218C25 00624 STLT30 LD HL,STLT30$ 2569 DD 00625 DB 0DDH 256A 217825 00626 ENLTST LD HL,ENLTST$ 256D DD 00627 DB 0DDH 256E 21A425 00628 SPCREQ LD HL,SPCREQ$ 2571 00629 @@LOGOT 00630 IFEQ 00H,1 00631 LD HL, 00632 ENDIF 2571+3E0C 00633 LD A,12 2573+EF 00634 RST 40 2574 21FFFF 00635 LD HL,-1 2577 C9 00636 RET 00637 ; 2578 53 00638 ENLTST$ DB 'START or END error ',CR 54 41 52 54 20 6F 72 20 45 4E 44 20 65 72 72 6F 72 20 0D 258C 53 00639 STLT30$ DB 'Start less than X''3000''',CR 74 61 72 74 20 6C 65 73 73 20 74 68 61 6E 20 58 27 33 30 30 30 27 0D 25A4 46 00640 SPCREQ$ DB 'File spec required',CR 69 6C 65 20 73 70 65 63 20 72 65 71 75 69 72 65 64 0D 25B7 4C 00641 LMFEXT DB 'LMF' 4D 46 25BA 54 00642 TXTEXT DB 'TXT' 58 54 00643 ; 0080 00644 VAL EQU 80H 0040 00645 SW EQU 40H 0020 00646 STR EQU 20H 0010 00647 SGL EQU 10H 00648 ; 25BD 80 00649 PRMTBL$ DB 80H 25BE 95 00650 DB VAL!SGL!5,'START',0 53 54 41 52 54 00 25C5 DA24 00651 DW SPARM+1 MISOSYS EDAS-4.3 04/19/99 01:03:43 DUMP - LS-DOS 6.2 Page 00006 25C7 93 00652 DB VAL!SGL!3,'END',0 45 4E 44 00 25CC E024 00653 DW EPARM+1 25CE 93 00654 DB VAL!SGL!3,'TRA',0 54 52 41 00 25D3 4025 00655 DW TPARM+1 25D5 55 00656 DB SW!SGL!5,'ASCII',0 41 53 43 49 49 00 25DC 4924 00657 DW APARM+1 25DE 93 00658 DB VAL!SGL!3,'LRL',0 4C 52 4C 00 25E3 8424 00659 DW LPARM+1 25E5 83 00660 DB VAL!3,'ETX',0 45 54 58 00 25E9 00661 ETXRESP EQU $-1 25EA 1E25 00662 DW ETXPARM+1 25EC 00 00663 NOP 00664 ; 25ED 44 00665 DUMP$ DB 'Dumping: ' ;FCB2 must follow 75 6D 70 69 6E 67 3A 20 25F6 00666 FCB2 DS 32 2616 00667 NAMFLD DS 6 261C 00668 FCB1 DS 32 2700 00669 ORG $<-8+1<+8 2700 00670 BUFFER DS 256 27FF 00671 LAST EQU $-1 00672 ; 2400 00673 END DUMP 2400 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]