[Copyright 1999,2002,2014 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_2014 at nemesis.lonestar.org Comments and queries to this address: web_software_2014 at nemesis.lonestar.org]
MISOSYS EDAS-4.3 04/11/99 01:28:25 LOAD/RUN - LS-DOS 6.2 Page 00001 00001 ;LBLOAD/ASM - LOAD & RUN Commands 00003 ; 000D 00004 CR EQU 13 004D 00005 @RUN EQU 77 0028 00006 RST28 EQU 28H 0000 00007 *GET SVCMAC:3 ;SVC Macro equivalents 00008 ;SVCMAC/ASM - LS-DOS Version VI 00009 *LIST OFF 00401 *LIST ON 00403 ; 2400 00404 ORG 2400H 00405 ; 00406 ; RUN entry point 00407 ; 2400 C32924 00408 RUN JP RUN0 ;RUN entry point 00409 ; 00410 ; LOAD entry point 00411 ; 2403 CDC924 00412 LOAD CALL COMMON ;Parse parms & filespec 2406 203F 00413 JR NZ,IOERR 2408 3AFC24 00414 LD A,(XPARM+1) ;If not (X), go to it 240B B7 00415 OR A 240C 200A 00416 JR NZ,NEEDPR 240E 119425 00417 LD DE,FCB ;Pt to fcb 2411 00418 @@LOAD 2411+3E4C 00419 LD A,76 2413+EF 00420 RST 40 2414 2031 00421 JR NZ,IOERR ;Go on error 2416 1844 00422 JR EXIT ; or just exit 00423 ; 00424 ; Need to prompt for the system disk 00425 ; 2418 CD0F25 00426 NEEDPR CALL LOADIT ;Load the file 241B 202A 00427 JR NZ,IOERR ;Exit if error 241D 210000 00428 LD HL,0 ;Init no error 00429 ; 00430 ; Get the system disk back in system drive 00431 ; 2420 E5 00432 PMTSYS PUSH HL ;Save cmd line ptr 2421 213A25 00433 LD HL,PMTSYS$ 2424 CD6324 00434 CALL FLASH 2427 E1 00435 POP HL ;Rcvr cmnd line ptr 2428 C9 00436 RET 00437 ; 00438 ; RUN command entry 00439 ; 2429 CDC924 00440 RUN0 CALL COMMON ;Parse common args 242C 2019 00441 JR NZ,IOERR ;Go on error 242E 3AFC24 00442 LD A,(XPARM+1) 2431 B7 00443 OR A 2432 119425 00444 LD DE,FCB 2435 2005 00445 JR NZ,RUN1 ;Prompt if (X) 2437 3E4D 00446 LD A,@RUN ;RUN SVC number 2439 C32800 00447 JP RST28 00448 ; 243C E5 00449 RUN1 PUSH HL ;Save cmnd line ptr 243D 119425 00450 LD DE,FCB 2440 CD0F25 00451 CALL LOADIT 2443 E3 00452 EX (SP),HL ;Get cmd ptr & save ept 2444 28DA 00453 JR Z,PMTSYS ;Run if prog OK or 2446 E1 00454 POP HL ; pop TRAADR & error 00455 ; 00456 ; Error handling 00457 ; 2447 FE3F 00458 IOERR CP 63 ;If extended error 2449 280A 00459 JR Z,EXTERR ; handle by @LOGOT 244B 6F 00460 LD L,A ;Put error # into HL 244C 2600 00461 LD H,0 244E F6C0 00462 OR 0C0H ;Set short error and ret 2450 4F 00463 LD C,A 2451 00464 @@ERROR 2451+3E1A 00465 LD A,26 2453+EF 00466 RST 40 2454 C9 00467 RET 2455 00468 EXTERR @@LOGOT 00469 IFEQ 00H,1 00470 LD HL, 00471 ENDIF 2455+3E0C 00472 LD A,12 2457+EF 00473 RST 40 2458 21FFFF 00474 LD HL,-1 245B C9 00475 RET 245C 210000 00476 EXIT LD HL,0 245F C9 00477 RET 00478 ; 00479 ; Flash the prompt & await reply 00480 ; 2460 CDB924 00481 FLASH0 CALL RESKFLG ;Reset 3-bit field 2463 01FD41 00482 FLASH LD BC,16893 ;Delay for 250 ms 2466 00483 @@PAUSE 2466+3E10 00484 LD A,16 2468+EF 00485 RST 40 2469 FD7E0A 00486 LD A,(IY+'K'-'A') 246C E605 00487 AND 4!1 ;Wait for no ENTER!BRK 246E 20F0 00488 JR NZ,FLASH0 2470 CDB924 00489 CALL RESKFLG ;Reset in case BREAK 2473 00490 FLS1 @@DSPLY ;Display the message 00491 IFEQ 00H,1 00492 LD HL, 00493 ENDIF 2473+3E0A 00494 LD A,10 2475+EF 00495 RST 40 2476 C24724 00496 JP NZ,IOERR ;Abort on error 2479 010040 00497 LD BC,4000H 247C CD9024 00498 CALL FLS2 ;Blink start 247F 2042 00499 JR NZ,GOTBRK ;Handle BREAK 2481 0E1E 00500 LD C,1EH ;Cursor erase to EOL 2483 CD2025 00501 CALL DSP 2486 013333 00502 LD BC,3333H ;Wait 2489 CD9024 00503 CALL FLS2 ;Wait & ck enter 248C 2035 00504 JR NZ,GOTBRK ;Handle BREAK 248E 18E3 00505 JR FLS1 ;Loop until ENTER 00506 ; 00507 ; FLS2 - Delay a while & ck on00508 ; 2490 00509 FLS2 @@CKBRKC ; hit ? 2490+3E6A 00510 LD A,106 2492+EF 00511 RST 40 2493 2808 00512 JR Z,CKENT ;No - check 2495 0E1E 00513 LD C,1EH ;Erase Line 2497 CD2025 00514 CALL DSP ;Output byte 249A AF 00515 XOR A ;Set NZ 249B 3C 00516 INC A ; 249C C9 00517 RET ;And RETurn 00518 ; 249D FDCB0A56 00519 CKENT BIT 2,(IY+'K'-'A') ;Ck ENTER bit 24A1 2006 00520 JR NZ,FLS4 ;Go on ENTER down 24A3 0B 00521 DEC BC ;Count down 24A4 78 00522 LD A,B 24A5 B1 00523 OR C 24A6 20E8 00524 JR NZ,FLS2 24A8 C9 00525 RET ;Return with Z-flag 00526 ; 00527 ; ENTER condition found 00528 ; 24A9 F1 00529 FLS4 POP AF ;Pop return code 24AA 00530 FLS5 @@KBD ;Clear type ahead buffer 24AA+3E08 00531 LD A,8 24AC+EF 00532 RST 40 24AD 28FB 00533 JR Z,FLS5 ;Loop if have character 24AF 0E1E 00534 LD C,1EH ;Wipe line 24B1 CD2025 00535 CALL DSP 24B4 0E0E 00536 LD C,14 ;Cursor on 24B6 CD2025 00537 CALL DSP 24B9 FD7E0A 00538 RESKFLG LD A,(IY+'K'-'A') ;Reset 3-bit field 24BC E6F8 00539 AND 0F8H 24BE FD770A 00540 LD (IY+'K'-'A'),A 24C1 AF 00541 XOR A ;Set Z-flag 24C2 C9 00542 RET 00543 ; 24C3 217825 00544 GOTBRK LD HL,STOP$ ;Point to error message 24C6 3E3F 00545 LD A,63 ;Init extended error 24C8 C9 00546 RET ; & return NZ 00547 ; 00548 ; Common initialization routine 00549 ; 24C9 118A25 00550 COMMON LD DE,PRMTBL ;Parm of X? 24CC 00551 @@PARAM 24CC+3E11 00552 LD A,17 24CE+EF 00553 RST 40 24CF C0 00554 RET NZ ;Ret with error code 24D0 00555 COMM1 @@FLAGS ;Get flag table pointer 24D0+3E65 00556 LD A,101 24D2+EF 00557 RST 40 24D3 7E 00558 COMM1A LD A,(HL) ;Skip past spaces 24D4 FE20 00559 CP ' ' 24D6 2003 00560 JR NZ,COMM2 24D8 23 00561 INC HL 24D9 18F8 00562 JR COMM1A 24DB 119425 00563 COMM2 LD DE,FCB ;Get filespec 24DE 00564 @@FSPEC 24DE+3E4E 00565 LD A,78 24E0+EF 00566 RST 40 24E1 2005 00567 JR NZ,COMM3 ;Go on error 24E3 1A 00568 LD A,(DE) ;Device specs not allowed 24E4 FE2A 00569 CP '*' 24E6 2007 00570 JR NZ,COMM4 ;Go if OK 24E8 212725 00571 COMM3 LD HL,SPCREQ$ ;Point to error message 24EB 3E3F 00572 LD A,63 ;Init extended error 24ED B7 00573 OR A ;Set NZ condition 24EE C9 00574 RET 00575 ; 24EF E5 00576 COMM4 PUSH HL ;Save cmdline ptr 24F0 219125 00577 LD HL,CMDEXT ;Default to CMD 24F3 00578 @@FEXT 24F3+3E4F 00579 LD A,79 24F5+EF 00580 RST 40 24F6 CD0C25 00581 CALL GOSYS2 ;Get SYS2 for open 24F9 E1 00582 POP HL ;Pop the INBUF$ pointer 24FA C0 00583 RET NZ 24FB 110000 00584 XPARM LD DE,0 ;Ck on X parm 24FE 7A 00585 LD A,D 24FF B3 00586 OR E 2500 C8 00587 RET Z ;Back on no (X) 2501 E5 00588 PUSH HL ;Save pointer 2502 215925 00589 LD HL,PMTSRC$ ;Init prompt 2505 CD6324 00590 CALL FLASH ;Prompt for source disk 2508 D1 00591 POP DE ;Pointer to DE 2509 C0 00592 RET NZ ;Back on error in HL 250A EB 00593 EX DE,HL ;If no error, pointer 250B C9 00594 RET ; back to HL 00595 ; 00596 ; Call SYS2 for open routine 00597 ; 250C 3E84 00598 GOSYS2 LD A,84H ;Load sys2 250E EF 00599 RST 28H 00600 ; 00601 ; Loading routine 00602 ; 250F 119425 00603 LOADIT LD DE,FCB 2512 FDCB12D6 00604 SET 2,(IY+'S'-'A') ;Turn on RUN flag 2516 00605 @@LOAD ;Load the file 2516+3E4C 00606 LD A,76 2518+EF 00607 RST 40 2519 C8 00608 RET Z 251A F5 00609 PUSH AF ;Save error ret code 251B CD2024 00610 CALL PMTSYS ;Get system disk back 251E F1 00611 POP AF ;Rcvr error ret code 251F C9 00612 RET 00613 ; 2520 00614 DSP @@DSP ;Display byte 2520+3E02 00615 LD A,2 2522+EF 00616 RST 40 2523 C8 00617 RET Z ;Return if OK 2524 C34724 00618 JP IOERR 00619 ; 00620 ; 2527 46 00621 SPCREQ$ DB 'File spec required',CR 69 6C 65 20 73 70 65 63 20 72 65 71 75 69 72 65 64 0D 253A 0F 00622 PMTSYS$ DB 15,29,30,'Insert SYSTEM disk ',29,3 1D 1E 49 6E 73 65 72 74 20 53 59 53 54 45 4D 20 64 69 73 6B 20 3C 45 4E 54 45 52 3E 1D 03 2559 0F 00623 PMTSRC$ DB 15,29,30,'Insert SOURCE disk ',29,3 1D 1E 49 6E 73 65 72 74 20 53 4F 55 52 43 45 20 64 69 73 6B 20 3C 45 4E 54 45 52 3E 1D 03 2578 0E 00624 STOP$ DB 14,29,'Command aborted',CR 1D 43 6F 6D 6D 61 6E 64 20 61 62 6F 72 74 65 64 0D 00625 ; 258A 80 00626 PRMTBL DB 80H,41H,'X',0 41 58 00 258E FC24 00627 DW XPARM+1 2590 00 00628 NOP 00629 ; 2591 43 00630 CMDEXT DB 'CMD' 4D 44 2594 00 00631 FCB DB 0 2595 00632 DS 31 00633 ; 2403 00634 END LOAD 2403 is the transfer address 00000 Total errors
[Copyright 1999,2002,2014 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_2014 at nemesis.lonestar.org Comments and queries to this address: web_software_2014 at nemesis.lonestar.org]