home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128BBS / PROG950307.ARC / A / USERBASE.MOD < prev    next >
Encoding:
Text File  |  2019-04-13  |  6.7 KB  |  328 lines

  1.            '╟ENERIC ╒SERBASE ═ODULE
  2.            ' BY ┴. ┬ERNHARDT
  3.            ' AS OF 910702
  4.  
  5.            ORG 40961
  6.  
  7.            HDR "A/DICT"
  8.            NAM "USERBASE.MOD"
  9.  
  10. 'RECORD DATA FORMAT:
  11. '    BYTE    - STATUS (A,N,V)
  12. ' 3-BYTES    - ACCOUNT (ASCII DIGITS)
  13. ' 6-BYTES    - DATE (ASCII DIGITS)
  14. '    BYTE    - CR
  15. '   KEY-DATA - (CR SEPARATED)
  16. ' OTHER-DATA - (CR SEPARATED)
  17.  
  18. "TMP0L"    DFL &9E
  19. "TMP0H"    DFL &9F
  20. "TMP1L"    DFL &BE
  21. "TMP1H"    DFL &BF
  22. "TMP2L"    DFL &C1
  23. "TMP2H"    DFL &C2
  24. "TMP3L"    DFL &C3
  25. "TMP3H"    DFL &C4
  26. "WDATBUFF" DFL 44800
  27. "RDATBUFF" DFL 44544
  28. "RDATBUF+" DFL 44555
  29.  
  30.            JMP "MAIN"
  31.  
  32.            VEC "DRIVE"
  33.  
  34. "PTEXT"    DF $P
  35. "CHAN"     DF &68
  36. "REC-LO"   DF &00
  37. "REC-HI"   DF &00
  38. "PTAB"     DF &01
  39.  
  40. "RECLEN"   DF &00
  41. "CMD"      DF &00
  42. "1STAVAIL" DF &00
  43. "1STAVAIH" DF &00
  44. "MANDFLAG" DF &00
  45. "PRIVATE"  DF &00
  46. "DELOPT"   DF &00
  47. "FERROR"   DF &00
  48. "FIELDNUM" DF &00
  49. "RECPOS"   DF &00
  50. "NOCR"     DF &00
  51. "FIELDTST" DF $0123456789A$N?
  52.            DF &00
  53.  
  54. "MAIN"     TSX
  55.            STX (".X.")
  56.            INC ("TOTFLDS")
  57.            LDA ("TOTFLDS")
  58.            CLC
  59.            ADC 16
  60.            TAX
  61.            JSR "FINDTEXT"
  62.            LDX 11
  63.            LDY (100)
  64. "M01"      CPY 0
  65.            BNE "M03"
  66.            DEC (101)
  67. "M03"      DEY
  68.            DEX
  69.            BNE "M01"
  70.            STY ("INTH")
  71.            LDA (101)
  72.            STA ("INTL")
  73.            LDY ("FILENLEN")
  74.            DEY
  75.            LDA ("FILENAME"),Y
  76.            CLC
  77.            ADC 11
  78.            STA ("FILENAME"),Y
  79.            STA ("RECLEN")
  80.            JSR "CLRCHN"
  81.            LDA 1
  82.            LDX ("DRIVE")
  83.            LDY 15
  84.            JSR "SETLG"
  85.            LDA 0
  86.            JSR "SETFN"
  87.            JSR "OPEN"
  88.            LDA 8
  89.            LDX ("DRIVE")
  90.            TAY
  91.            JSR "SETLG"
  92.            LDA ("FILENLEN")
  93.            LDX L"FILENAME"
  94.            LDY H"FILENAME"
  95.            JSR "SETFN"
  96.            JSR "OPEN"
  97. "RESTART"  JSR "+CLRCHN"
  98.            LDX 15
  99.            JSR "DISPTEXT"
  100. "M02"      JSR "CHARIN"
  101.            CMP &0D
  102.            BEQ "+EXIT"
  103.            LDX 4
  104. "M06"      CMP ("OPTIONS"),X
  105.            BEQ "M07"
  106.            DEX
  107.            BPL "M06"
  108.            BMI "M02"
  109. "M07"      TXA
  110.            PHA
  111.            JSR "DISPTEXT"
  112.            PLA
  113.            STA ("CMD")
  114.            ASL
  115.            TAX
  116.            LDA ("VTAB"),X
  117.            STA (85)
  118.            INX
  119.            LDA ("VTAB"),X
  120.            STA (86)
  121.            JMP 84
  122. "+EXIT"    JMP "EXIT"
  123.  
  124. "VTAB"     VEC "UPDATE"
  125.            VEC "SEARCH" 'DELETE
  126.            VEC "LIST"
  127.            VEC "SEARCH"
  128.            VEC "EXIT"
  129.  
  130. "UPDATE"   LDA 2
  131.            STA ("FIELDNUM")
  132. "UP03"     JSR "SETFIELD"
  133.            BCS "UP04"
  134.            JSR "DSPFIELD"
  135.            JSR "INPUT"
  136.            INC ("FIELDNUM")
  137.            BNE "UP03"
  138. "UP04"     LDX 5        '├ORRECT?
  139.            JSR "DISPTEXT"
  140. "UP05"     JSR "CHARIN"
  141.            AND &7F
  142.            CMP &0D      '├╥=ABORT
  143.            BEQ "UP08"
  144.            CMP $A       '┴=ABORT
  145.            BEQ "UP08"
  146.            CMP $E       '┼=ABORT
  147.            BEQ "UP08"
  148.            CMP $N       '╬=TRY AGAIN
  149.            BNE "UP06"
  150.            LDX 7
  151.            JSR "DISPTEXT"  '╬O.
  152.            BEQ "UPDATE"
  153. "UP06"     CMP $Y       '┘=YES
  154.            BNE "UP05"
  155.            LDX 6
  156.            JSR "DISPTEXT"  '╒PDATING..
  157.            JSR "WRITE"
  158.            LDX 8
  159.            JSR "DISPTEXT"  '─ONE.
  160. "UP08"     JMP "RESTART"
  161.  
  162. "LIST"     JSR "SEAINP"
  163. "LI00"     JSR "FNDNDISP"
  164.            BEQ "LI01"
  165.            BCC "LI00"
  166. "LI01"     LDX 8
  167.            JSR "DISPTEXT"
  168.            JMP "RESTART"
  169.  
  170. "SEARCH"   JSR "SEAINP"
  171. "SE02"     JSR "FNDNDISP"
  172.            BCS "SE10"
  173.            BEQ "SE10"
  174. "SE05"     LDX 0
  175.            STX ("DELOPT")
  176.            LDX 14
  177.            LDA (1028)
  178.            CMP &D3
  179.            BEQ "SE08"
  180.            LDA ("USERLOCK")
  181.            BEQ "SE08"
  182.            LDY 3
  183. "SE06"     LDA (1023),Y
  184.            AND &7F
  185.            CMP ("RDATBUFF"),Y
  186.            BNE "SE07"
  187.            DEY
  188.            BNE "SE06"
  189.            LDA ("CMD")
  190.            CMP 1
  191.            BEQ "SE08"
  192. "SE07"     LDX 13
  193.            STX ("DELOPT")
  194. "SE08"     JSR "DISPTEXT"
  195. "SE09"     JSR "CHARIN"
  196.            AND &7F
  197.            CMP &0D
  198.            BEQ "SE02"
  199.            CMP $N
  200.            BEQ "SE02"
  201.            CMP $E
  202.            BEQ "SE10"
  203.            CMP $D
  204.            BNE "SE09"
  205.            LDA ("DELOPT")
  206.            BNE "SE09"
  207.            LDX 11
  208.            JSR "DISPTEXT"
  209.            LDA $A
  210.            JSR "WR-ALT"
  211.            JMP "SE02"
  212. "SE10"     LDX 8
  213.            JSR "DISPTEXT"
  214.            JMP "RESTART"
  215.  
  216. "SEAINP"   LDA L"SEAFOR"
  217.            STA ("TMP2L")
  218.            LDA H"SEAFOR"
  219.            STA ("TMP2H")
  220.            LDA 0
  221.            STA ("TMP3L")
  222.            LDA 192
  223.            STA ("TMP3H")
  224.            JSR "INPUT"
  225.            LDX 12
  226.            JSR "DISPTEXT"
  227.            LDX 16
  228.            JSR "DISPTEXT"
  229.            LDA (100)
  230.            STA (38)
  231.            LDA (101)
  232.            STA (39)
  233.            LDA &0D
  234.            JSR "CHROUT"
  235.            LDY ("VIDEO")
  236. "SI00"     LDA $-
  237.            JSR "CHROUT"
  238.            DEY
  239.            BNE "SI00"
  240.            LDA &0D
  241.            JSR "CHROUT"
  242.            JMP "FINDSET"
  243.  
  244. "PVTBLANK" LDA (1028)
  245.            CMP &D3
  246.            BEQ "PV02"
  247.            LDX 3
  248. "PV000"    LDA (1023),X
  249.            AND &7F
  250.            CMP ("RDATBUFF"),X
  251.            BNE "PV001"
  252.            DEX
  253.            BNE "PV000"
  254.            BEQ "PV02"
  255. "PV001"    LDY 0
  256.            STY ("FIELDNUM")
  257. "PV00"     INC ("FIELDNUM")
  258.            JSR "SETFIELD"
  259.            BCS "PV02"
  260.            LDA ("PRIVATE")
  261.            BEQ "PV00"
  262.            LDY 0
  263.            LDA L"RDATBUFF"
  264.            CLC
  265.            ADC ("RECPOS")
  266.            STA ("TMP3L")
  267.            LDA H"RDATBUFF"
  268.            STA ("TMP3H")
  269.            BCC "PV01"
  270.            INC ("TMP3H")
  271. "PV01"     LDA ["TMP2L"],Y
  272.            BEQ "PV00"
  273.            LDA $-
  274.            STA ["TMP3L"],Y
  275.            INY
  276.            BNE "PV01"
  277. "PV02"     RTS
  278.  
  279. "FNDNDISP" JSR "FINDNEXT"
  280.            BCS "FD06"
  281.            JSR "PVTBLANK"
  282.            LDY 255
  283.            STY ("NOCR")
  284. "FD00"     INY
  285.            LDA ("RDATBUF+"),Y
  286.            BEQ "FD04"
  287.            CMP &0D
  288.            BNE "FD01"
  289.            LDA &20
  290. "FD01"     JSR "CHROUT"
  291.            LDA ("NOCR")
  292.            BEQ "FD010"
  293.            LDA [38],Y
  294.            STA ("NOCR")
  295.            CMP &0D
  296.            BNE "FD010"
  297.            JSR "CHROUT"
  298.            LDA &20
  299.            JSR "CHROUT"
  300. "FD010"    LDA ("KEY?")
  301.            BNE "KT00"
  302.            LDA ("RIDBE")
  303.            CMP ("RIDBS")
  304.            BEQ "KT02"
  305. "KT00"     JSR "GETIN"
  306.            AND &7F
  307.            CMP &03
  308.            BEQ "EXIT"
  309.            CMP $P
  310.            BNE "KT01"
  311.            STA ("XON")
  312. "KT01"     CMP $A
  313.            BEQ "FD05"
  314. "KT02"     JMP "FD00"
  315. "FD04"     LDA 1
  316. "FD05"     CLC
  317. "FD06"     PHP
  318.            LDA &0D
  319.            JSR "CHROUT"
  320.            PLP
  321.            RTS
  322.  
  323. "SEAFOR"   DF $$$$$$$$$$$$$$$$$$$$$
  324.            DF $$$$$$$$$$$$$$$$$$$$$
  325.            DF &00
  326.  
  327.            DFF "A/USERBASE2.MOD"
  328.