[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/11/99 22:36:35 INSTALLB - BASIC ENHANCEMENT Page 00001 00001 ;MAKBAS - Install basic enhancement package 00002 ; 00004 ; 0000 00005 *GET SVCMAC 00006 ;SVCMAC/ASM - LS-DOS Version VI 00007 *LIST OFF 00399 *LIST ON 000D 00401 CR EQU 13 000A 00402 LF EQU 10 7F0C 00403 XFER60 EQU 7F0CH ;6.0 basic xfer address 00404 ; 2600 00405 ORG 2600H 00406 ; 00407 BEGIN: 2600 ED73F02A 00408 LD (SAVSTK),SP 2604 00409 @@FLAGS 2604+3E65 00410 LD A,101 2606+EF 00411 RST 40 2607 FDE5 00412 PUSH IY 2609 C1 00413 POP BC 260A 211200 00414 LD HL,'S'-'A' ;Get sflag 260D 09 00415 ADD HL,BC 260E 221826 00416 LD (SFLAG1),HL ;Need for read open 2611 217529 00417 LD HL,SIGNON$ 2614 00418 @@DSPLY 00419 IFEQ 00H,1 00420 LD HL, 00421 ENDIF 2614+3E0A 00422 LD A,10 2616+EF 00423 RST 40 00424 ; 2617 210000 00425 LD HL,$-$ ;Set read only bit 2618 00426 SFLAG1 EQU $-2 261A CBC6 00427 SET 0,(HL) 261C 111527 00428 LD DE,BUFCB ;BU program 261F 0601 00429 LD B,1 2621 217028 00430 LD HL,BUBUF 2624 00431 @@OPEN 2624+3E3B 00432 LD A,59 2626+EF 00433 RST 40 2627 2807 00434 JR Z,OK ;Go no error 2629 FE2A 00435 CP 42 ;LRL fault 262B 2803 00436 JR Z,OK 262D C3CD2A 00437 JP BUERR ;Can't find program 2630 00438 OK: @@PEOF ;End of new program 2630+3E41 00439 LD A,65 2632+EF 00440 RST 40 2633 FE1C 00441 CP 28 2635 C2E12A 00442 JP NZ,ERROR ;Go if not eof 2638 00443 @@BKSP 2638+3E3D 00444 LD A,61 263A+EF 00445 RST 40 263B 00446 @@BKSP 263B+3E3D 00447 LD A,61 263D+EF 00448 RST 40 263E C2E12A 00449 JP NZ,ERROR ;Should be at xfer addr 2641 217029 00450 LD HL,BUBYT ;1 byte buffer 2644 00451 @@READ 2644+3E43 00452 LD A,67 2646+EF 00453 RST 40 2647 C2E12A 00454 JP NZ,ERROR 264A 7E 00455 LD A,(HL) 264B 327129 00456 LD (NXFER),A ;Save lsb 264E 00457 @@READ 264E+3E43 00458 LD A,67 2650+EF 00459 RST 40 2651 C2E12A 00460 JP NZ,ERROR 2654 327229 00461 LD (NXFER+1),A ;Save MSB 2657 00462 @@REW ;Back to beginning 2657+3E44 00463 LD A,68 2659+EF 00464 RST 40 265A 21C329 00465 GETBAS: LD HL,BASPMT ;Get drive of BASIC 265D 00466 @@DSPLY 00467 IFEQ 00H,1 00468 LD HL, 00469 ENDIF 265D+3E0A 00470 LD A,10 265F+EF 00471 RST 40 2660 217329 00472 LD HL,KEYBUF 2663 010001 00473 LD BC,1<8.OR.0 ;Get 1 key 2666 00474 @@KEYIN 2666+3E09 00475 LD A,9 2668+EF 00476 RST 40 2669 DAE72A 00477 JP C,ABORT ;Go on break 266C 78 00478 LD A,B 266D 3D 00479 DEC A ;Was 1 key? 266E 20EA 00480 JR NZ,GETBAS ;Redo if not 2670 7E 00481 LD A,(HL) 2671 FE30 00482 CP '0' ;Valid drive ? 2673 38E5 00483 JR C,GETBAS 2675 FE38 00484 CP '8' 2677 30E1 00485 JR NC,GETBAS ;Bad if out of range 2679 324E27 00486 LD (BASDRV),A ;Save drive spec 267C 113E27 00487 LD DE,BASFCB 267F 217027 00488 LD HL,BASBUF 2682 0601 00489 LD B,1 2684 00490 @@OPEN 2684+3E3B 00491 LD A,59 2686+EF 00492 RST 40 2687 280C 00493 JR Z,OK2 ;Found basic 2689 FE2A 00494 CP 42 268B 2808 00495 JR Z,OK2 268D 21F429 00496 LD HL,NOBAS$ 2690 00497 @@DSPLY 00498 IFEQ 00H,1 00499 LD HL, 00500 ENDIF 2690+3E0A 00501 LD A,10 2692+EF 00502 RST 40 2693 18C5 00503 JR GETBAS 00504 OK2: 2695 00505 @@PEOF ;End of BASIC program 2695+3E41 00506 LD A,65 2697+EF 00507 RST 40 2698 FE1C 00508 CP 28 ;At the end? 269A 2803 00509 JR Z,OK3 269C C3E12A 00510 JP ERROR ;Some other wierd error 269F 0604 00511 OK3: LD B,4 ;Back up 4 bytes 26A1 00512 BLP: @@BKSP 26A1+3E3D 00513 LD A,61 26A3+EF 00514 RST 40 26A4 10FB 00515 DJNZ BLP 26A6 C2E12A 00516 JP NZ,ERROR ;Bad if can't 26A9 00517 @@LOC ;Save this posn 26A9+3E3F 00518 LD A,63 26AB+EF 00519 RST 40 26AC C5 00520 PUSH BC 26AD 217029 00521 LD HL,BUBYT ;Disk buffer 26B0 0602 00522 LD B,2 ;Ck for xfer load code 26B2 00523 RDLP1: @@READ ;Get a 02 26B2+3E43 00524 LD A,67 26B4+EF 00525 RST 40 26B5 C2E12A 00526 JP NZ,ERROR 26B8 7E 00527 LD A,(HL) 26B9 FE02 00528 CP 2 26BB C2D12A 00529 JP NZ,LMFERR ;Not BASIC 26BE 10F2 00530 DJNZ RDLP1 ;Do twice 26C0 00531 @@READ ;Get xfer address 26C0+3E43 00532 LD A,67 26C2+EF 00533 RST 40 26C3 4E 00534 LD C,(HL) ; LSB 26C4 C2E12A 00535 JP NZ,ERROR 26C7 00536 @@READ 26C7+3E43 00537 LD A,67 26C9+EF 00538 RST 40 26CA 46 00539 LD B,(HL) 26CB C2E12A 00540 JP NZ,ERROR 26CE 210C7F 00541 LD HL,XFER60 ;6.o xfer address 26D1 B7 00542 OR A 26D2 ED42 00543 SBC HL,BC ;Are they the same? 26D4 CAD52A 00544 JP Z,N62ERR ;Go if so 26D7 2A7129 00545 LD HL,(NXFER) ;New xfer fm BU 26DA B7 00546 OR A 26DB ED42 00547 SBC HL,BC ;Already installed? 26DD CAD92A 00548 JP Z,DUPERR ;Go if so 26E0 C1 00549 POP BC ;Start of xfer address 26E1 00550 @@POSN ;Go there 26E1+3E42 00551 LD A,66 26E3+EF 00552 RST 40 00553 ; 00554 ; Read a byte, write a byte 00555 ; 26E4 D5 00556 PUSH DE ;Save write FBC 26E5 217029 00557 LD HL,BUBYT ;1 byte I/O buffer 26E8 111527 00558 DOREAD: LD DE,BUFCB 26EB 00559 @@READ 26EB+3E43 00560 LD A,67 26ED+EF 00561 RST 40 26EE 280B 00562 JR Z,OK4 ;Good read 26F0 FE1C 00563 CP 1CH ;Eof? 26F2 2811 00564 JR Z,DUNREAD ;Go if so 26F4 FE1D 00565 CP 1DH 26F6 C2E12A 00566 JP NZ,ERROR 26F9 180A 00567 JR DUNREAD 26FB D1 00568 OK4: POP DE ;BASIC back 26FC 00569 @@WRITE ;Write the byte 26FC+3E4B 00570 LD A,75 26FE+EF 00571 RST 40 26FF D5 00572 PUSH DE 2700 C2E12A 00573 JP NZ,ERROR 2703 18E3 00574 JR DOREAD 00575 ; 00576 DUNREAD: 2705 D1 00577 POP DE ;BASIC FCB 2706 00578 @@CLOSE ;Save the change 2706+3E3C 00579 LD A,60 2708+EF 00580 RST 40 2709 C2E12A 00581 JP NZ,ERROR 270C 21A92A 00582 LD HL,ALLDUN$ 270F 00583 @@DSPLY 00584 IFEQ 00H,1 00585 LD HL, 00586 ENDIF 270F+3E0A 00587 LD A,10 2711+EF 00588 RST 40 2712 C3EC2A 00589 JP EXIT 00590 ; 2715 4E 00591 BUFCB DB 'NEWB/LMF',3 45 57 42 2F 4C 4D 46 03 271E 00 00592 DC 32,0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 273E 42 00593 BASFCB DB 'BASIC/CMD.BASIC:' 41 53 49 43 2F 43 4D 44 2E 42 41 53 49 43 3A 274E 20 00594 BASDRV DB ' ',3 03 2750 00 00595 DC 32,0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2770 00596 BASBUF DS 256 2870 00597 BUBUF DS 256 2970 00 00598 BUBYT DB 0 2971 0000 00599 NXFER DW 0 ;Xfer address of BU 2973 0000 00600 KEYBUF DW 0 ;Input buffer for drive # 00601 ; 2975 41 00602 SIGNON$ DB 'Add enhancement package to BASIC',LF 64 64 20 65 6E 68 61 6E 63 65 6D 65 6E 74 20 70 61 63 6B 61 67 65 20 74 6F 20 42 41 53 49 43 0A 2996 43 00603 DB 'Copyright (C) 1984 by Logical Systems, Inc.',LF,CR 6F 70 79 72 69 67 68 74 20 28 43 29 20 31 39 38 34 20 62 79 20 4C 6F 67 69 63 61 6C 20 53 79 73 74 65 6D 73 2C 20 49 6E 63 2E 0A 0D 29C3 45 00604 BASPMT DB 'Enter drive containing BASIC/CMD to be modified ',3 6E 74 65 72 20 64 72 69 76 65 20 63 6F 6E 74 61 69 6E 69 6E 67 20 42 41 53 49 43 2F 43 4D 44 20 74 6F 20 62 65 20 6D 6F 64 69 66 69 65 64 20 03 00605 ; 29F4 43 00606 NOBAS$ DB 'Can''t open BASIC/CMD on that drive',LF,CR 61 6E 27 74 20 6F 70 65 6E 20 42 41 53 49 43 2F 43 4D 44 20 6F 6E 20 74 68 61 74 20 64 72 69 76 65 0A 0D 2A18 43 00607 BUERR$ DB 'Can''t find BASIC enhancement file',CR 61 6E 27 74 20 66 69 6E 64 20 42 41 53 49 43 20 65 6E 68 61 6E 63 65 6D 65 6E 74 20 66 69 6C 65 0D 2A3A 42 00608 LMFERR$ DB 'BASIC/CMD: Load module format error',CR 41 53 49 43 2F 43 4D 44 3A 20 4C 6F 61 64 20 6D 6F 64 75 6C 65 20 66 6F 72 6D 61 74 20 65 72 72 6F 72 0D 2A5E 45 00609 N62ERR$ DB 'Enhancements require BASIC version 01.01.00',CR 6E 68 61 6E 63 65 6D 65 6E 74 73 20 72 65 71 75 69 72 65 20 42 41 53 49 43 20 76 65 72 73 69 6F 6E 20 30 31 2E 30 31 2E 30 30 0D 2A8A 45 00610 DUPERR$ DB 'Enhancements already installed',CR 6E 68 61 6E 63 65 6D 65 6E 74 73 20 61 6C 72 65 61 64 79 20 69 6E 73 74 61 6C 6C 65 64 0D 2AA9 0A 00611 ALLDUN$ DB LF,'Enhancements sucessfully installed',CR 45 6E 68 61 6E 63 65 6D 65 6E 74 73 20 73 75 63 65 73 73 66 75 6C 6C 79 20 69 6E 73 74 61 6C 6C 65 64 0D 00612 ; 2ACD 21182A 00613 BUERR: LD HL,BUERR$ 2AD0 DD 00614 DB 0DDH 2AD1 213A2A 00615 LMFERR: LD HL,LMFERR$ 2AD4 DD 00616 DB 0DDH 2AD5 215E2A 00617 N62ERR: LD HL,N62ERR$ 2AD8 DD 00618 DB 0DDH 2AD9 218A2A 00619 DUPERR: LD HL,DUPERR$ 2ADC 00620 @@LOGOT 00621 IFEQ 00H,1 00622 LD HL, 00623 ENDIF 2ADC+3E0C 00624 LD A,12 2ADE+EF 00625 RST 40 2ADF 1806 00626 JR ABORT 2AE1 F6C0 00627 ERROR: OR 0C0H ;Short, return 2AE3 4F 00628 LD C,A 2AE4 00629 @@ERROR 2AE4+3E1A 00630 LD A,26 2AE6+EF 00631 RST 40 2AE7 21FFFF 00632 ABORT: LD HL,-1 2AEA 1803 00633 JR EXIT1 2AEC 210000 00634 EXIT: LD HL,0 2AEF 310000 00635 EXIT1: LD SP,$-$ 2AF0 00636 SAVSTK EQU $-2 2AF2 00637 @@CKBRKC 2AF2+3E6A 00638 LD A,106 2AF4+EF 00639 RST 40 2AF5 C9 00640 RET 00641 ; 2600 00642 END BEGIN 2600 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]