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

  1.            '╟ENERIC ─ATABASE ═ODULE
  2.            ' BY ┴. ┬ERNHARDT
  3.            ' AS OF 910702
  4.  
  5.            ORG 40961
  6.  
  7.            HDR "A/DICT"
  8.            NAM "DATABASE.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 1
  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
  139.            JSR "DISPTEXT"
  140. "UP05"     JSR "CHARIN"
  141.            AND &7F
  142.            CMP &0D
  143.            BEQ "UP08"
  144.            CMP $A
  145.            BEQ "UP08"
  146.            CMP $E
  147.            BEQ "UP08"
  148.            CMP $N
  149.            BNE "UP06"
  150.            LDX 7
  151.            JSR "DISPTEXT"
  152.            BEQ "UPDATE"
  153. "UP06"     CMP $Y
  154.            BNE "UP05"
  155.            LDX 6
  156.            JSR "DISPTEXT"
  157.            JSR "FINDSET"
  158.            JSR "FINDNEXT"
  159.            BIT ("FERROR")
  160.            BNE "UP08"
  161.            LDY 3
  162. "UP07"     LDA ("RDATBUFF"),Y
  163.            STA ("WDATBUFF"),Y
  164.            DEY
  165.            BNE "UP07"
  166.            JSR "WRITE"
  167.            LDX 8
  168.            JSR "DISPTEXT"
  169. "UP08"     JMP "RESTART"
  170.  
  171. "LIST"     JSR "SEAINP"
  172. "LI00"     JSR "FNDNDISP"
  173.            BEQ "LI01"
  174.            BCC "LI00"
  175. "LI01"     LDX 8
  176.            JSR "DISPTEXT"
  177.            JMP "RESTART"
  178.  
  179. "SEARCH"   JSR "SEAINP"
  180. "SE02"     JSR "FNDNDISP"
  181.            BCS "SE10"
  182.            BEQ "SE10"
  183. "SE05"     LDX 0
  184.            STX ("DELOPT")
  185.            LDX 14
  186.            LDA (1028)
  187.            CMP &D3
  188.            BEQ "SE08"
  189.            LDA ("USERLOCK")
  190.            BEQ "SE08"
  191.            LDY 3
  192. "SE06"     LDA (1023),Y
  193.            AND &7F
  194.            CMP ("RDATBUFF"),Y
  195.            BNE "SE07"
  196.            DEY
  197.            BNE "SE06"
  198.            LDA ("CMD")
  199.            CMP 1
  200.            BEQ "SE08"
  201. "SE07"     LDX 13
  202.            STX ("DELOPT")
  203. "SE08"     JSR "DISPTEXT"
  204. "SE09"     JSR "CHARIN"
  205.            AND &7F
  206.            CMP &0D
  207.            BEQ "SE02"
  208.            CMP $N
  209.            BEQ "SE02"
  210.            CMP $E
  211.            BEQ "SE10"
  212.            CMP $D
  213.            BNE "SE09"
  214.            LDA ("DELOPT")
  215.            BNE "SE09"
  216.            LDX 11
  217.            JSR "DISPTEXT"
  218.            LDA $A
  219.            JSR "WR-ALT"
  220.            JMP "SE02"
  221. "SE10"     LDX 8
  222.            JSR "DISPTEXT"
  223.            JMP "RESTART"
  224.  
  225. "SEAINP"   LDA L"SEAFOR"
  226.            STA ("TMP2L")
  227.            LDA H"SEAFOR"
  228.            STA ("TMP2H")
  229.            LDA 0
  230.            STA ("TMP3L")
  231.            LDA 192
  232.            STA ("TMP3H")
  233.            JSR "INPUT"
  234.            LDX 12
  235.            JSR "DISPTEXT"
  236.            LDX 16
  237.            JSR "DISPTEXT"
  238.            LDA (100)
  239.            STA (38)
  240.            LDA (101)
  241.            STA (39)
  242.            LDA &0D
  243.            JSR "CHROUT"
  244.            LDY ("VIDEO")
  245. "SI00"     LDA $-
  246.            JSR "CHROUT"
  247.            DEY
  248.            BNE "SI00"
  249.            LDA &0D
  250.            JSR "CHROUT"
  251.            JMP "FINDSET"
  252.  
  253. "PVTBLANK" LDA (1028)
  254.            CMP &D3
  255.            BEQ "PV02"
  256.            LDX 3
  257. "PV000"    LDA (1023),X
  258.            AND &7F
  259.            CMP ("RDATBUFF"),X
  260.            BNE "PV001"
  261.            DEX
  262.            BNE "PV000"
  263.            BEQ "PV02"
  264. "PV001"    LDY 0
  265.            STY ("FIELDNUM")
  266. "PV00"     INC ("FIELDNUM")
  267.            JSR "SETFIELD"
  268.            BCS "PV02"
  269.            LDA ("PRIVATE")
  270.            BEQ "PV00"
  271.            LDY 0
  272.            LDA L"RDATBUFF"
  273.            CLC
  274.            ADC ("RECPOS")
  275.            STA ("TMP3L")
  276.            LDA H"RDATBUFF"
  277.            STA ("TMP3H")
  278.            BCC "PV01"
  279.            INC ("TMP3H")
  280. "PV01"     LDA ["TMP2L"],Y
  281.            BEQ "PV00"
  282.            LDA $-
  283.            STA ["TMP3L"],Y
  284.            INY
  285.            BNE "PV01"
  286. "PV02"     RTS
  287.  
  288. "FNDNDISP" JSR "FINDNEXT"
  289.            BCS "FD06"
  290.            JSR "PVTBLANK"
  291.            LDY 255
  292.            STY ("NOCR")
  293. "FD00"     INY
  294.            LDA ("RDATBUF+"),Y
  295.            BEQ "FD04"
  296.            CMP &0D
  297.            BNE "FD01"
  298.            LDA &20
  299. "FD01"     JSR "CHROUT"
  300.            LDA ("NOCR")
  301.            BEQ "FD010"
  302.            LDA [38],Y
  303.            STA ("NOCR")
  304.            CMP &0D
  305.            BNE "FD010"
  306.            JSR "CHROUT"
  307.            LDA &20
  308.            JSR "CHROUT"
  309. "FD010"    LDA ("KEY?")
  310.            BNE "KT00"
  311.            LDA ("RIDBE")
  312.            CMP ("RIDBS")
  313.            BEQ "KT02"
  314. "KT00"     JSR "GETIN"
  315.            AND &7F
  316.            CMP &03
  317.            BEQ "EXIT"
  318.            CMP $P
  319.            BNE "KT01"
  320.            STA ("XON")
  321. "KT01"     CMP $A
  322.            BEQ "FD05"
  323. "KT02"     JMP "FD00"
  324. "FD04"     LDA 1
  325. "FD05"     CLC
  326. "FD06"     PHP
  327.            LDA &0D
  328.            JSR "CHROUT"
  329.            PLP
  330.            RTS
  331.  
  332. "SEAFOR"   DF $$$$$$$$$$$$$$$$$$$$$
  333.            DF $$$$$$$$$$$$$$$$$$$$$
  334.            DF &00
  335.  
  336.            DFF "A/DATABASE2.MOD"
  337.