home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / progm / disam.zip / ADDRBOOK.LST < prev    next >
File List  |  1989-11-25  |  14KB  |  309 lines

  1.                                                                        PAGE   1
  2.                                                                        11-25-89
  3.                                                                        18:33:44
  4. Offset  Data    Source Line               GW-BASIC Compiler Version 3.20  V2.02
  5.  
  6.  0030   0006    1 GOSUB 12 : REM INITIALIZE.CONS
  7.  0047   0006    2 GOSUB 210 : REM VERIFY.DFH3.LOA
  8.  004F   0006    3 GOSUB 219 : REM OPEN.FILE
  9.  0057   0006    4 GOSUB 27 : REM DISPLAY.SCREEN
  10.  005F   0006    5 GOSUB 44 : REM SET.SOFT.KEYS
  11.  0067   0006    6 WHILE Z<>1
  12.  0078   000A    7 GOSUB 65 : REM PROCESS
  13.  0080   000A    8 WEND
  14.  0083   000A    9 SYSTEM
  15.  0089   000A    10 END
  16.  008F   000A    11 REM SUB INITIALIZE.CONS
  17.  0090   000A    12 DIM FLD$(5)                 'five fields defined.
  18.  0091   0022    13 FILE$="ADDRBOOK.DSF"        'file name.
  19.  009D   0026    14 KEY.LEN=10                  'key length is 10 bytes
  20.  00A9   002A    15 KEY.OFF=0                   'starting at offset 0.
  21.  00B5   002E    16 MAX.REC.LEN=255             'BASIC record length constraint
  22.  00C1   0032    17 DELIMITER$=CHR$(01)         'delimiter is a CTRL-A
  23.  00D2   0036    18 X$=""                       'tempy string area
  24.  00DE   003A    19 Z=0                         'end of program indicator
  25.  00EA   003A    20 NAM.LEN=30                  'define field maximum lengths
  26.  00F6   003E    21 ADR1.LEN=40
  27.  0102   0042    22 ADR2.LEN=40
  28.  010E   0046    23 CSZ.LEN=40
  29.  011A   004A    24 PHO.LEN=15
  30.  0126   004E    25 RETURN
  31.  012C   004E    26 REM SUB DISPLAY.SCREEN
  32.  012D   004E    27 CLS
  33.  0136   004E    28 LOCATE 3,27
  34.  0147   004E    29 PRINT "Sample DISAM Program";
  35.  015A   004E    30 LOCATE 4,12
  36.  016B   004E    31 PRINT "When a Fn key is used, it must be followed by a C/R"
  37.  017E   004E    32 LOCATE 7,19
  38.  018F   004E    33 PRINT "Name:";
  39.  01A2   004E    34 LOCATE 9,16
  40.  01B3   004E    35 PRINT "Address:";
  41.  01C6   004E    36 LOCATE 11,16
  42.  01D7   004E    37 PRINT "Address:";
  43.  01EA   004E    38 LOCATE 13,10
  44.  01FB   004E    39 PRINT "City, St. Zip:";
  45.  020E   004E    40 LOCATE 15,12
  46.  021F   004E    41 PRINT "Telephone #:";
  47.  0232   004E    42 RETURN
  48.  0238   004E    43 REM SUB SET.SOFT.KEYS
  49.  0239   004E    44 DATA "AddRec","","ChgRec","","DelRec","","GetRec","","ClrScn
  50.                 ","End"
  51.  023B   004E    45 KEY OFF
  52.  0243   004E    46 FOR N=1 TO 10
  53.  024F   004E    47 READ SOFTKEY$
  54.  0258   0052    48 KEY N,SOFTKEY$
  55.  0269   0056    49 NEXT N
  56.  0289   0056    50 KEY ON
  57.  0292   0056    51 ON KEY(1) GOSUB 99 : REM ADD.RECORD
  58.  029E   0056    52 KEY(1) ON
  59.  02A7   0056    53 ON KEY(3) GOSUB 183 : REM CHANGE.RECORD
  60.                                                                        PAGE   2
  61.                                                                        11-25-89
  62.                                                                        18:33:44
  63. Offset  Data    Source Line               GW-BASIC Compiler Version 3.20  V2.02
  64.  
  65.  02B3   0056    54 KEY(3) ON
  66.  02BC   0056    55 ON KEY(5) GOSUB 196 : REM DELETE.RECORD
  67.  02C8   0056    56 KEY(5) ON
  68.  02D1   0056    57 ON KEY(7) GOSUB 140 : REM DISPLAY.RECORD
  69.  02DD   0056    58 KEY(7) ON
  70.  02E6   0056    59 ON KEY(9) GOSUB 121 : REM CLEAR.SCREEN
  71.  02F2   0056    60 KEY(9) ON
  72.  02FB   0056    61 ON KEY(10) GOSUB 94 : REM END.SESSION
  73.  0307   0056    62 KEY(10) ON
  74.  0310   0056    63 RETURN
  75.  0316   0056    64 REM SUB PROCESS
  76.  0317   0056    65 LOCATE 7,25                 'position cursor
  77.  0328   0056    66 LINE INPUT X$               'get input
  78.  033A   0056    67 IF NOT (LEN(X$)<>0) THEN 69
  79.  034A   0056    68 NAME$=X$                'if something was entered, use it
  80.  0356   005A    69 REM END IF
  81.  0357   005A    70 LOCATE 17,25                'clear the info line
  82.  0368   005A    71 PRINT SPACE$(50)
  83.  0380   005A    72 LOCATE 9,25                 'get input 4 more times
  84.  0391   005A    73 LINE INPUT X$
  85.  03A3   005A    74 IF NOT (LEN(X$)<>0) THEN 76
  86.  03B3   005A    75 ADDR1$=X$
  87.  03BF   005E    76 REM END IF
  88.  03C0   005E    77 LOCATE 11,25
  89.  03D1   005E    78 LINE INPUT X$
  90.  03E3   005E    79 IF NOT (LEN(X$)<>0) THEN 81
  91.  03F3   005E    80 ADDR2$=X$
  92.  03FF   0062    81 REM END IF
  93.  0400   0062    82 LOCATE 13,25
  94.  0411   0062    83 LINE INPUT X$
  95.  0423   0062    84 IF NOT (LEN(X$)<>0) THEN 86
  96.  0433   0062    85 CSZ$=X$
  97.  043F   0066    86 REM END IF
  98.  0440   0066    87 LOCATE 15,25
  99.  0451   0066    88 LINE INPUT X$
  100.  0463   0066    89 IF NOT (LEN(X$)<>0) THEN 91
  101.  0473   0066    90 PHONE$=X$
  102.  047F   006A    91 REM END IF
  103.  0480   006A    92 RETURN
  104.  0486   006A    93 REM SUB END.SESSION
  105.  0487   006A    94 GOSUB 227 : REM CLOSE.FILE
  106.  048F   006A    95 Z=1
  107.  049B   006A    96 SYSTEM
  108.  04A1   006A    97 RETURN
  109.  04A7   006A    98 REM SUB ADD.RECORD
  110.  04A8   006A    99 GOSUB 112 : REM EDIT.KEY.LENGTH
  111.  04B0   006A    100 GOSUB 117 : REM BUILD.RECORD
  112.  04B8   006A    101 FUNC$="A"                   'add action
  113.  04C4   006E    102 REC$=TMP$                   'input record
  114.  04D0   0076    103 GOSUB 232 : REM ACCESS.DFH3
  115.  04D8   0076    104 IF NOT (REC$="2") THEN 108
  116.  04E9   0076    105 LOCATE 17,25            'display error
  117.  04FA   0076    106 PRINT "Record already exists                    ";
  118.  050D   0076    107 GOTO 109 : REM ELSE
  119.                                                                        PAGE   3
  120.                                                                        11-25-89
  121.                                                                        18:33:44
  122. Offset  Data    Source Line               GW-BASIC Compiler Version 3.20  V2.02
  123.  
  124.  0511   0076    108 GOSUB 121 : REM CLEAR.SCREEN
  125.  0519   0076    109 REM END IF
  126.  051A   0076    110 RETURN
  127.  0520   0076    111 REM SUB EDIT.KEY.LENGTH
  128.  0521   0076    112 IF NOT (LEN(NAME$)<KEY.LEN) THEN 114
  129.  053C   0076    113 NAME$=NAME$+SPACE$(KEY.LEN-LEN(NAME$))
  130.  056A   0076    114 REM END IF
  131.  056B   0076    115 RETURN
  132.  0571   0076    116 REM SUB BUILD.RECORD
  133.  0572   0076    117 TMP$=NAME$+DELIMITER$+ADDR1$+DELIMITER$+ADDR2$+DELIMITER$
  134.  05AC   0076    118 TMP$=TMP$+CSZ$+DELIMITER$+PHONE$+DELIMITER$
  135.  05DB   0076    119 RETURN
  136.  05E1   0076    120 REM SUB CLEAR.SCREEN
  137.  05E2   0076    121 LOCATE 07,25
  138.  05F3   0076    122 PRINT SPACE$(NAM.LEN)
  139.  0610   0076    123 NAME$=""
  140.  061C   0076    124 LOCATE 09,25
  141.  062D   0076    125 PRINT SPACE$(ADR1.LEN)
  142.  064A   0076    126 ADDR1$=""
  143.  0656   0076    127 LOCATE 11,25
  144.  0667   0076    128 PRINT SPACE$(ADR2.LEN)
  145.  0684   0076    129 ADDR2$=""
  146.  0690   0076    130 LOCATE 13,25
  147.  06A1   0076    131 PRINT SPACE$(CSZ.LEN)
  148.  06BE   0076    132 CSZ$=""
  149.  06CA   0076    133 LOCATE 15,25
  150.  06DB   0076    134 PRINT SPACE$(PHO.LEN)
  151.  06F8   0076    135 PHONE$=""
  152.  0704   0076    136 LOCATE 17,25
  153.  0715   0076    137 PRINT SPACE$(50)
  154.  072D   0076    138 RETURN
  155.  0733   0076    139 REM SUB DISPLAY.RECORD
  156.  0734   0076    140 GOSUB 112 : REM EDIT.KEY.LENGTH
  157.  073C   0076    141 FUNC$="G"
  158.  0748   0076    142 REC$=NAME$+SPACE$(MAX.REC.LEN-LEN(NAME$)) 'send a 255 byte 
  159.                 field
  160.  0778   0076    143 GOSUB 232 : REM ACCESS.DFH3
  161.  0780   0076    144 IF NOT (REC$="1") THEN 148
  162.  0791   0076    145 LOCATE 17,25
  163.  07A2   0076    146 PRINT "Record not found                         ";
  164.  07B5   0076    147 GOTO 156 : REM ELSE IF
  165.  07B9   0076    148 IF NOT (REC$="3") THEN 153
  166.  07CA   0076    149 GOSUB 121 : REM CLEAR.SCREEN
  167.  07D2   0076    150 LOCATE 17,25
  168.  07E3   0076    151 PRINT "You have reached the end of the file     ";
  169.  07F6   0076    152 GOTO 156 : REM ELSE
  170.  07FA   0076    153 GOSUB 121 : REM CLEAR.SCREEN
  171.  0802   0076    154 GOSUB 159 : REM PARSE.RECORD
  172.  080A   0076    155 GOSUB 171 : REM DISPLAY.FIELDS
  173.  0812   0076    156 REM END IF
  174.  0813   0076    157 RETURN
  175.  0819   0076    158 REM SUB PARSE.RECORD
  176.  081A   0076    159 FOR I=1 TO 5
  177.  0826   0076    160 J=INSTR(1,REC$,DELIMITER$)
  178.                                                                        PAGE   4
  179.                                                                        11-25-89
  180.                                                                        18:33:44
  181. Offset  Data    Source Line               GW-BASIC Compiler Version 3.20  V2.02
  182.  
  183.  0842   007A    161 FLD$(I)=MID$(REC$,1,J-1)
  184.  087A   007E    162 REC$=MID$(REC$,J+1)
  185.  08A0   007E    163 NEXT
  186.  08C3   007E    164 NAME$=FLD$(1)
  187.  08CF   007E    165 ADDR1$=FLD$(2)
  188.  08DB   007E    166 ADDR2$=FLD$(3)
  189.  08E7   007E    167 CSZ$=FLD$(4)
  190.  08F3   007E    168 PHONE$=FLD$(5)
  191.  08FF   007E    169 RETURN
  192.  0905   007E    170 REM SUB DISPLAY.FIELDS
  193.  0906   007E    171 LOCATE 7,25
  194.  0917   007E    172 PRINT NAME$;
  195.  092A   007E    173 LOCATE 9,25
  196.  093B   007E    174 PRINT ADDR1$;
  197.  094E   007E    175 LOCATE 11,25
  198.  095F   007E    176 PRINT ADDR2$;
  199.  0972   007E    177 LOCATE 13,25
  200.  0983   007E    178 PRINT CSZ$;
  201.  0996   007E    179 LOCATE 15,25
  202.  09A7   007E    180 PRINT PHONE$;
  203.  09BA   007E    181 RETURN
  204.  09C0   007E    182 REM SUB CHANGE.RECORD
  205.  09C1   007E    183 GOSUB 112 : REM EDIT.KEY.LENGTH
  206.  09C9   007E    184 GOSUB 117 : REM BUILD.RECORD
  207.  09D1   007E    185 FUNC$="P"
  208.  09DD   007E    186 REC$=TMP$
  209.  09E9   007E    187 GOSUB 232 : REM ACCESS.DFH3
  210.  09F1   007E    188 IF NOT (REC$="1") THEN 192
  211.  0A02   007E    189 LOCATE 17,25
  212.  0A13   007E    190 PRINT "Record not found                         ";
  213.  0A26   007E    191 GOTO 193 : REM ELSE
  214.  0A2A   007E    192 GOSUB 121 : REM CLEAR.SCREEN
  215.  0A32   007E    193 REM END IF
  216.  0A33   007E    194 RETURN
  217.  0A39   007E    195 REM SUB DELETE.RECORD
  218.  0A3A   007E    196 GOSUB 112 : REM EDIT.KEY.LENGTH
  219.  0A42   007E    197 FUNC$="D"
  220.  0A4E   007E    198 REC$=NAME$
  221.  0A5A   007E    199 IF NOT (LEN(REC$)<>0) THEN 207
  222.  0A6A   007E    200 GOSUB 232 : REM ACCESS.DFH3
  223.  0A72   007E    201 IF NOT (REC$="1") THEN 205
  224.  0A83   007E    202 LOCATE 17,25
  225.  0A94   007E    203 PRINT "Record not found                         ";
  226.  0AA7   007E    204 GOTO 206 : REM ELSE
  227.  0AAB   007E    205 GOSUB 121 : REM CLEAR.SCREEN
  228.  0AB3   007E    206 REM END IF
  229.  0AB4   007E    207 REM END IF
  230.  0AB5   007E    208 RETURN
  231.  0ABB   007E    209 REM SUB VERIFY.DFH3.LOA
  232.  0ABC   007E    210 DEF SEG=&H0012
  233.  0AC5   007E    211 X=PEEK(&H0)
  234.  0ADB   0082    212 DEF SEG
  235.  0AE1   0082    213 IF NOT (X<>234) THEN 216
  236.  0AF2   0082    214 PRINT "DISAM File Handler is not loaded."
  237.                                                                        PAGE   5
  238.                                                                        11-25-89
  239.                                                                        18:33:44
  240. Offset  Data    Source Line               GW-BASIC Compiler Version 3.20  V2.02
  241.  
  242.  0B05   0082    215 STOP
  243.  0B0B   0082    216 REM END IF
  244.  0B0C   0082    217 RETURN
  245.  0B12   0082    218 REM SUB OPEN.FILE
  246.  0B13   0082    219 FUNC$="F"                   'insure that the buffer is avai
  247.                 lable
  248.  0B1F   0082    220 REC$="  "
  249.  0B2B   0082    221 GOSUB 232 : REM ACCESS.DFH3
  250.  0B33   0082    222 FUNC$="O"                   'and then open the file
  251.  0B3F   0082    223 REC$=FILE$+""
  252.  0B53   0082    224 GOSUB 232 : REM ACCESS.DFH3
  253.  0B5B   0082    225 RETURN                      'assume a "0" return-code
  254.  0B61   0082    226 REM SUB CLOSE.FILE
  255.  0B62   0082    227 FUNC$="C"
  256.  0B6E   0082    228 REC$=" "
  257.  0B7A   0082    229 GOSUB 232 : REM ACCESS.DFH3
  258.  0B82   0082    230 RETURN                      'assume a "0" return-code
  259.  0B88   0082    231 REM SUB ACCESS.DFH3
  260.  0B89   0082    232 ERR.F$=FUNC$                'Store stuff for possible error
  261.  0B95   0086    233 ERR.R$=REC$
  262.  0BA1   008A    234 DEF SEG=&H0012              'point SEG addr to DISAM epa
  263.  0BAA   008A    235 DFH3=&H0
  264.  0BB6   008E    236 CALL ABSOLUTE (FUNC$,REC$,DFH3)
  265.  0BD0   008E    237 DEF SEG
  266.  0BD6   008E    238 IF ERR.F$="F"THEN RETURN    'do not edit the FREE function
  267.  0BED   008E    239 IF NOT (REC$="9") THEN 245
  268.  0BFE   008E    240 PRINT "Unexpected response from DFH3"
  269.  0C11   008E    241 'process internal errors here
  270.  0C12   008E    242 PRINT "FUNC= ";ERR.F$       'also display what was sent
  271.  0C2D   008E    243 PRINT "REC= ";ERR.R$        'to DISAM to help debug
  272.  0C48   008E    244 STOP
  273.  0C4E   008E    245 REM END IF
  274.  0C4F   008E    246 RETURN
  275.  0C55   008E    247 REM END PROGRAM
  276.  0C56   008E    
  277.  1039   008E    
  278.  
  279. 50449 Bytes Available
  280. 47316 Bytes Free
  281.  
  282.     0 Warning Error(s)
  283.     0 Severe  Error(s)
  284.  
  285.  
  286.  Start  Stop   Length Name                   Class
  287.  00000H 01038H 01039H ADDRBOOK_CODE          BC_CODE
  288.  01040H 0A063H 09024H CSEG                   CODESG
  289.  0A070H 0A070H 00000H SHELL                  CODESG
  290.  0A070H 0A070H 00000H CODE                   CODE
  291.  0A070H 0A27FH 00210H BC_ICN_CODE            INIT_CODE
  292.  0A280H 0A2C4H 00045H BC_IDS_CODE            INIT_CODE
  293.  0A2D0H 0A396H 000C7H INIT_CODE              INIT_CODE
  294.  0A3A0H 0B191H 00DF2H DSEG                   DATASG
  295.  0B192H 0B1B9H 00028H PSEUDOCOMMON           DATASG
  296.  0B1C0H 0B1C0H 00000H COMMON                 BLANK
  297.  0B1C0H 0B1C0H 00000H CONST                  CONST
  298.  0B1C0H 0B1C0H 00000H DATA                   DATA
  299.  0B1C0H 0B24DH 0008EH BC_DATA                BC_VARS
  300.  0B24EH 0B24EH 00000H BC_FT                  BC_SEGS
  301.  0B250H 0B45FH 00210H BC_CN                  BC_SEGS
  302.  0B460H 0B4A4H 00045H BC_DS                  BC_SEGS
  303.  0B4B0H 0B6AFH 00200H STACK                  STACK
  304.  
  305.  Origin   Group
  306.  0A3A:0   DGROUP
  307.  
  308. Program entry point at 0000:0030
  309.