LS-DOS 6.3.1 - MAKBAS Assembly Listing (HTML format version)

[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]

Valid HTML 4.01!