home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol068 / userid1.asm < prev    next >
Encoding:
Assembly Source File  |  1984-04-29  |  13.9 KB  |  660 lines

  1. ;
  2. ;        USERID.ASM AS OF 12/1/80
  3. ;
  4. ;WRITTEN BY HOWARD MOULTON; SYSOP OF AMBBS REMOTE CP/M
  5. ;AMESBURY, MASS. 617-388-5125 (RINGBACK: SEE RCPMLIST.DOC)
  6. ;PROGRAM FOR USE AS PUBLIC DOMAIN SOFTWARE.
  7. ;
  8. ;ANY CHANGES AND IMPROVMENTS WOULD BE GREATLY APPRECIATED
  9. ;IF YOU LET ME KNOW WHAT THEY ARE SO WE ALL CAN SHARE THEM.
  10. ;THIS PROGRAM IS JUST A SMALL CONTRIBUTION AND ALL I HAVE
  11. ;TO OFFER FOR ALL THE CP/M SOFTWARE I'VE RECIEVED FROM THE
  12. ;MANY PEOPLE I'VE MET THRU CP/M USERS.
  13. ;
  14. ;12/1/80 MODIFIED TO OPERATE UNDER CP/M VERS.2.2 USING ATTRIBUTE
  15. ;     MODIFICATION, DRIVE SELECT, USER AREA SELECT, CONTROL-C
  16. ;     TRAP AND AUTOMATIC LOCATION OF THE CONSOLE COMMAND PRO-
  17. ;     CESSOR COMMAND TABLE. BY: ROD HART WA3MEZ
  18. ;
  19. ;
  20. ;THE FOLLOWING MUST BE CHANGED TO CORRESPOND TO YOUR SYSTEM.
  21. ;
  22. FALSE    EQU    0
  23. TRUE    EQU    NOT FALSE
  24. ;
  25. V1    EQU    FALSE    ;TRUE IF CP/M VERSION 1.X
  26. V2    EQU    TRUE    ;TRUE IF CP/M VERSION 2.X
  27. WBOOT    EQU    TRUE    ;WARMBOOT________CONT-C TRAP SET BY MODEM CONT. PGM
  28. ;
  29. USERN    EQU    1    ;CP/M VERS 2.2 USER #
  30. DRIVEN    EQU    0    ;CP/M VERS 2.2 DRIVE #
  31. ;
  32. MSIZE    EQU    48    ;CP/M SIZE IN K
  33. ;
  34.     IF    V1
  35. ;LOCATE CP/M VERS 1.4 CCP COMMAND TABLE
  36. BIAS    EQU    (MSIZE-16)*1024    ;CP/M VERS 1.4 OFFSET
  37. CCP    EQU    2900H+BIAS    ;CP/M VERS 1.4 CONSOLE COMMAND
  38.                 ;PROCESSOR
  39. COMTB    EQU    CCP+2F6H    ;CONSOLE PROCESSOR COMMAND TABLE
  40.     ENDIF
  41. ;
  42.     IF    V2
  43. ;LOCATE CP/M VERS 2.2 CCP COMMAND TABLE
  44. BIAS    EQU    (MSIZE-20)*1024    ;CP/M VERS 2.2 OFFSET
  45. CCP    EQU    3400H+BIAS    ;CP/M VERS 2.2 CONSOLE COMMAND
  46.                 ;PROCESSOR
  47. COMTB    EQU    CCP+310H    ;CONSOLE COMMAND PROCESSOR TABLE
  48.     ENDIF
  49. ;
  50. READCON    EQU    1    ;CONSOLE INPUT FUNCTION
  51. BDOS    EQU    5
  52. PRINT    EQU    9    ;PRINT STRING FUNCTION
  53. PCNBUFF    EQU    10    ;READ CONSOLE FUNCTION
  54. CONSTAT    EQU    11    ;GET CONSOLE STATUS FUNCTION
  55. SELDSK    EQU    13    ;RESET DISK SYSTEM FUNCTION
  56. OPEN    EQU    15    ;FILE OPEN FUNCTION
  57. CLOSE    EQU    16    ;CLOSE FILE FUNCTION
  58. ATTRIB    EQU    1EH    ;SET OR RESET FILE ATTRIBUTE FUNCTION
  59. WRITE    EQU    21    ;WRITE SEQUENTIAL FUNCTION
  60. RENAME    EQU    23    ;RENAME FILE FUNCTION
  61. DMA    EQU    26    ;SET DMA ADDRESS FUNCTION
  62. SUSER    EQU    32    ;SET OR GET USER CODE FUNCTION
  63. ;
  64. FCB    EQU    5CH    ;SYSTEM FCB
  65. FCB2    EQU    FCB+16
  66. DBUFF    EQU    80H    ;DMA ADDRESS
  67. ;
  68. CR    EQU    13    ;CARRIAGE RETURN
  69. LF    EQU    10    ;LINE FEED
  70. BELL    EQU    7    ;BELL
  71. ;
  72.     ORG    100H
  73.     MVI    C,CR
  74.     CALL    BDOS    ;RESET LOGGED TO DISC A
  75.     XRA    A
  76.     STA    BUFF    ;ZERO BUFFER
  77.     LXI    D,DBUFF
  78.     MVI    C,DMA
  79.     CALL    BDOS    ;MAKE SURE WE ARE AT 80H FOR DMA
  80. START    LXI    H,FCB+1    ;CHECK FOR PASSWORD
  81.     MVI    A,'0'
  82.     CMP    M
  83.     JNZ    IDERR    ;NO PASSWORD FOUND
  84.     XRA    A
  85.     MVI    B,8
  86. L1    INX    H
  87.     ADD    M
  88.     DCR    B
  89.     JNZ    L1
  90.     LXI    H,USERCT    ;NUMBER OF USER #'S TO CHECK
  91.     MOV    B,M
  92.     LXI    H,USERS
  93. CHK    CMP    M
  94.     JZ    CHOK    ;PASSWORD FOUND
  95.     INX    H
  96.     DCR    B
  97.     JNZ    CHK
  98. IDERR    LXI    D,NOIDMSG
  99.     MVI    C,PRINT
  100.     CALL    BDOS    ;PRINT NO PASSWORD FOUND MSG
  101. IDERR1    CALL    GETC
  102.     CPI    cr
  103.     JZ    IDERR2    ;PROCESS COMMAND
  104.     STA    BUFF
  105.     JMP    IDERR1    ;NEED CARRIAGE RETURN
  106. IDERR2    LDA    BUFF
  107.     CPI    'h'
  108.     JZ    QUERY    ;GIVE HELP
  109.     CPI    'H'
  110.     JZ    QUERY    ;GIVE HELP
  111.     LXI    D,EXMSG
  112.     CALL    SEND
  113.     JMP    0    ;RETURN TO CP/M
  114. QUERY    LXI    D,INTRO
  115.     CALL    SEND    ;PROVIDE HELP INFO
  116. QUERY1    CALL    GETC
  117.     CPI    CR
  118.     JZ    QCK
  119.     STA    BUFF
  120.     JMP    QUERY1
  121. QCK    LDA    BUFF
  122.     CPI    'y'
  123.     JZ    QCONT    ;GET INFO FOR APPLICATION
  124.     CPI    'Y'
  125.     JZ    QCONT    ;GET INFO FOR APPLICATION
  126.     LXI    D,EXMSG
  127.     CALL    SEND
  128.     JMP    0    ;RETURN TO CP/M
  129. QCONT    LXI    H,FILENM    ;PREPARE FOR INPUT
  130.     LXI    D,FCB+1
  131. MLOOP    MOV    A,M    ;LOOP UNTIL YOU HAVE IT ALL
  132.     STAX    D
  133.     CPI    0
  134.     JZ    QCONT1    ;HAVE COMPLETE FILE NAME IN FCB
  135.     INX    D
  136.     INX    H
  137.     JMP    MLOOP    ;RETURN FOR NEXT CHARACTER
  138. QCONT1    LXI    D,FCB
  139.     MVI    C,OPEN
  140.     CALL    BDOS    ;OPEN APPLICATION INPUT FILE
  141.     CPI    0FFH    ;LOOK FOR END
  142.     JZ    GENERR    ;FILE OPEN ERROR
  143.     XRA    A    ;ZERO OUT A
  144.     STA    FCB+32    ;AND PUT 0 IN RECORD #
  145. ;
  146. ;ASK QUESTIONS REQUIRED TO PROCESS APPLICATION FOR PASSWORD
  147. QCONT2    LXI    H,Q1H
  148.     CALL    PRINTH
  149.     LXI    D,Q1
  150.     CALL    SEND
  151.     XCHG
  152.     CALL    GETSTR
  153.     LXI    H,Q2H
  154.     CALL    PRINTH
  155.     LXI    D,Q2
  156.     CALL    SEND
  157.     XCHG
  158.     CALL    GETSTR
  159.     LXI    H,Q3H
  160.     CALL    PRINTH
  161.     LXI    D,Q3
  162.     CALL    SEND
  163.     XCHG
  164.     CALL    GETSTR
  165.     LXI    H,Q4H
  166.     CALL    PRINTH
  167.     LXI    D,Q4
  168.     CALL    SEND
  169.     XCHG
  170.     CALL    GETSTR
  171.     LXI    H,Q5H
  172.     CALL    PRINTH
  173.     LXI    D,Q5
  174.     CALL    SEND
  175.     XCHG
  176.     CALL    GETSTR
  177.     LXI    H,Q6H
  178.     CALL    PRINTH
  179.     LXI    D,Q6
  180.     CALL    SEND
  181.     XCHG
  182.     CALL    GETSTR
  183.     LXI    H,Q7H
  184.     CALL    PRINTH
  185.     LXI    D,Q7
  186.     CALL    SEND
  187.     XCHG
  188.     CALL    GETSTR
  189.     LXI    H,Q8H
  190.     CALL    PRINTH
  191.     LXI    D,Q8
  192.     CALL    SEND
  193.     XCHG
  194.     CALL    GETSTR
  195.     LXI    H,Q9H
  196.     CALL    PRINTH
  197.     LXI    D,Q9
  198.     CALL    SEND
  199.     XCHG
  200.     CALL    GETSTR
  201.     LXI    H,Q9AH
  202.     CALL    PRINTH
  203.     LXI    D,Q9A
  204.     CALL    SEND
  205.     XCHG
  206.     CALL    GETSTR
  207.     LXI    H,Q10H
  208.     CALL    PRINTH
  209.     LXI    D,Q10
  210.     CALL    SEND
  211.     XCHG
  212.     CALL    GETSTR
  213.     LXI    H,Q11H
  214.     CALL    PRINTH
  215.     LXI    D,Q11
  216.     CALL    SEND
  217.     XCHG
  218.     CALL    GETSTR
  219.     LXI    H,Q12H
  220.     CALL    PRINTH
  221.     LXI    D,Q12
  222.     CALL    SEND
  223.     XCHG
  224.     CALL    GETSTR
  225.     LXI    H,Q13H
  226.     CALL    PRINTH
  227.     LXI    D,Q13
  228.     CALL    SEND
  229.     XCHG
  230.     CALL    GETSTR
  231.     LXI    H,Q14H
  232.     CALL    PRINTH
  233.     LXI    D,Q14
  234.     CALL    SEND
  235.     XCHG
  236.     CALL    GETSTR
  237.     LXI    D,FCB
  238.     MVI    C,CLOSE
  239.     CALL    BDOS    ;CLOSE APPLICATION FILE
  240. ;
  241. ;RENAME FILE NOW SO USER CAN'T WRITE OVER THE INFORMATION
  242. ;AND IN CASE SOMEONE ELSE WANTS TO APPLY, HE WON'T WRITE
  243. ;OVER THIS ONE BEFORE I SEE IT. (DUE TO FACT THAT PGM
  244. ;CAN'T FIND FILE ON NEXT INVOCATION OF PROGRAM)
  245. REN    LXI    H,FILENM2    ;NEW FILENAME
  246.     LXI    D,FCB2+1
  247.     CALL    MOVER
  248.     LXI    D,FCB
  249.     MVI    C,RENAME
  250.     CALL    BDOS    ;RENAME FILE FOR PROTECTION
  251. ;
  252.     IF    V2
  253. ;SET FILE ATTRIBUTE TO .SYS SO FILE IS INVISIBLE TO CALLERS
  254.     MVI    C,ATTRIB
  255.     CALL    BDOS
  256.     ENDIF
  257. ;
  258. ;WE ARE DONE WITH THE FILE NOW SO LETS GET OUTTA HERE...
  259.     LXI    D,EQMSG
  260.     CALL    SEND
  261. FIN    LXI    D,EXMSG
  262.     CALL    SEND
  263.     RET
  264. CHOK    LXI    D,OKMSG
  265.     CALL    SEND
  266. ;
  267.     IF    V1
  268. ;ENABLE SELECTED FILES FOR AUTHORIZED USERS
  269.     LXI    D,RENMSG
  270.     CALL    SEND
  271.     CALL    CRLF
  272.     LXI    D,FCB+1
  273.     LXI    H,BASICD
  274.     CALL    MOVER
  275.     LXI    D,FCB2+1
  276.     LXI    H,BASICE
  277.     CALL    MOVER
  278.     LXI    D,FCB
  279.     MVI    C,RENAME
  280.     CALL    BDOS
  281.     LXI    D,BASICE
  282.     CALL    SEND    ;SHOW WHICH FILES ARE AVAILABLE NOW...
  283.     CALL    CRLF
  284.     LXI    D,FCB+1
  285.     LXI    H,MACD
  286.     CALL    MOVER
  287.     LXI    D,FCB2+1
  288.     LXI    H,MACE
  289.     CALL    MOVER
  290.     LXI    D,FCB
  291.     MVI    C,RENAME
  292.     CALL    BDOS
  293.     LXI    D,MACE
  294.     CALL    SEND
  295.     CALL    CRLF
  296.     LXI    D,FCB+1
  297.     LXI    H,LOADD
  298.     CALL    MOVER
  299.     LXI    D,FCB2+1
  300.     LXI    H,LOADE
  301.     CALL    MOVER
  302.     LXI    D,FCB
  303.     MVI    C,RENAME
  304.     CALL    BDOS
  305.     LXI    D,LOADE
  306.     CALL    SEND
  307.     CALL    CRLF
  308.     LXI    D,FCB+1
  309.     LXI    H,EDITD
  310.     CALL    MOVER
  311.     LXI    D,FCB2+1
  312.     LXI    H,EDITE
  313.     CALL    MOVER
  314.     LXI    D,FCB
  315.     MVI    C,RENAME
  316.     CALL    BDOS
  317.     LXI    D,EDITE
  318.     CALL    SEND
  319.     LXI    D,FCB+1
  320.     LXI    H,CBBSE
  321.     CALL    MOVER
  322.     LXI    D,FCB2+1
  323.     LXI    H,CBBSD
  324.     CALL    MOVER
  325.     LXI    D,FCB
  326.     MVI    C,RENAME
  327.     CALL    BDOS
  328.     ENDIF
  329. ;
  330.     IF    V2
  331. ;ENABLE USER AREA AND DRIVE FOR AUTHORIZED USER
  332.     MVI    E,USERN
  333.     MVI    C,SUSER
  334.     CALL    BDOS    ;SELECT USER AREA
  335.     MVI    E,DRIVEN
  336.     MVI    C,SELDSK
  337.     CALL    BDOS    ;SELECT DRIVE
  338.     ENDIF
  339. ;
  340.     CALL    CRLF
  341.     CALL    CRLF
  342. ;
  343. ;RENAME CCP COMMANDS AND SET CONT-C TRAP ON THE FLY
  344.     LXI    D,COMTB
  345.     LXI    H,NCOMTB
  346.     CALL    MOVER
  347.     MVI    A,0CDH
  348.     STA    0    ;SET CONTROL-C TRAP
  349.     LXI    D,BBSMSG
  350.     CALL    SEND
  351.     JMP    FIN
  352. ;
  353. ;SUBROUTINES
  354. MOVER    MOV    A,M
  355.     CPI    0
  356.     RZ
  357.     STAX    D
  358.     INX    D
  359.     INX    H
  360.     JMP    MOVER
  361. GETSTR    PUSH    D
  362.     CALL    GETC
  363.     POP    D
  364.     CPI    CR
  365.     JZ    WRBUFF
  366.     CPI    'U'-40H
  367.     JZ    REASK
  368.     CPI    'H'-40H
  369.     JZ    REASK
  370.     CPI    7FH
  371.     JZ    REASK
  372.     CPI    5FH
  373.     JZ    REASK
  374.     STAX    D
  375.     INX    D
  376.     JMP    GETSTR
  377. REASK    CALL    CRLF
  378.     PUSH    D
  379.     LXI    D,RTYMSG
  380.     CALL    SEND
  381.     POP    D
  382.     CALL    CRLF
  383.     PUSH    D
  384.     MVI    E,'?'
  385.     MVI    C,2
  386.     CALL    BDOS
  387.     MVI    E,07
  388.     MVI    C,2
  389.     CALL    BDOS
  390.     POP    D
  391.     LXI    H,DBUFF
  392. REASK1    MOV    A,M
  393.     CPI    ':'
  394.     JZ    REASKED
  395.     INX    H
  396.     JMP    REASK1
  397. REASKED    INX    H    ;ONE MORE TIME FOR SPACE
  398.     INX    H    ;PUTS US BACK WHERE WE START IN DMA.
  399.     XCHG
  400.     JMP    GETSTR
  401. CRLF    PUSH    D
  402.     PUSH    H
  403.     MVI    E,CR
  404.     MVI    C,2
  405.     CALL    BDOS
  406.     MVI    E,LF
  407.     MVI    C,2
  408.     CALL    BDOS
  409.     MVI    E,BELL
  410.     MVI    C,2
  411.     CALL    BDOS
  412.     POP    H
  413.     POP    D
  414.     RET
  415. PRINTH    LXI    D,DBUFF
  416.     MOV    A,M
  417. PRINTH1    STAX    D
  418.     INX    H
  419.     INX    D
  420.     MOV    A,M
  421.     CPI    0
  422.     JNZ    PRINTH1
  423. PRINTHE    XCHG
  424.     RET
  425. GETC    MVI    C,CONSTAT
  426.     CALL    BDOS
  427.     ORA    A
  428.     JZ    GETC
  429.     MVI    C,READCON
  430.     CALL    BDOS
  431.     RET
  432. SEND    PUSH    H
  433.     MVI    C,PRINT
  434.     CALL    BDOS
  435.     POP    H
  436.     RET
  437. WRBUFF    MVI    A,CR
  438.     STAX    D
  439.     INX    D
  440.     MVI    A,LF
  441.     STAX    D
  442.     INX    D
  443. WRBUFF1    MOV    A,E
  444.     CPI    0FFH
  445.     JZ    WRBUFF2
  446.     XRA    A
  447.     STAX    D
  448.     INX    D
  449.     JMP    WRBUFF1
  450. WRBUFF2    LXI    D,FCB
  451.     MVI    C,WRITE
  452.     CALL    BDOS
  453.     CPI    0
  454.     RZ
  455.     CPI    1
  456.     JZ    EXTERR
  457.     CPI    2
  458.     JZ    DIRFUL
  459.     CPI    255
  460.     JZ    DIRFUL
  461.     JMP    GENERR
  462. EXTERR    LXI    D,EXERMSG
  463.     CALL    SEND
  464.     CALL    FIN
  465.     JMP    0
  466. DIRFUL    LXI    D,DIRERMSG
  467.     CALL    SEND
  468.     CALL    FIN
  469.     JMP    0
  470. GENERR    LXI    D,GERRMSG
  471.     CALL    SEND
  472.     CALL    FIN
  473.     JMP    0
  474. ;
  475.     IF    V1
  476. RENMSG    DB    CR,LF,LF,'THE FOLLOWING ARE ENABLED; THEY WILL BE DISABLED '
  477.     DB    'AT SIGN-OFF:$'
  478.     ENDIF
  479. ;
  480. RTYMSG    DB    CR,LF,LF,'++RETYPE ENTIRE LINE PLEASE:$'
  481. ;
  482. EXERMSG    DB    CR,LF,LF,'++ERROR EXTENDING FILE: ABORTED.$'
  483. ;
  484. DIRERMSG    DB    CR,LF,LF,'++DISK OR DIRECTORY FULL: ABORTED.$'
  485. ;
  486. GERRMSG    DB CR,LF,'++AN APPLICATION HAS ALREADY BEEN SUBMITTED AND SYSOP HAS'
  487.     DB CR,LF,'NOT EXAMINED IT AS OF YET. PLEASE APPLY AGAIN TOMORROW.',07,'$'
  488. ;
  489. BBSMSG    DB CR,LF,'MESSAGE SYSTEM IS NOW DISABLED. IF YOU WANT TO USE IT YOU'
  490.     DB CR,LF,'WILL HAVE TO SIGN-OFF, THEN SIGN-IN AGAIN.',07,'$'
  491. ;
  492. okmsg    DB CR,LF,'CP/M Now Patched For Normal Use.'
  493. ;
  494.     IF    NOT WBOOT
  495.     DB CR,LF,07,07,07,'Remember: If you do a WARMSTART, YOU MUST CALL THIS'
  496.     DB ' PROGRAM AGAIN,'
  497.     DB CR,LF,'TO REINITIALIZE COMMAND TABLE. (Minor detail to be worked '
  498.     DB 'out later.',CR,LF,'Details, details...[sigh]).',07,07,07,'$'
  499.     ENDIF
  500. ;
  501.     IF    WBOOT
  502.     DB 07,07,07,'$'
  503.     ENDIF
  504. ;
  505. ;THE FOLLOWING WILL BE IN A FILE TO READ IN THE FUTURE
  506. ;(HOPEFULLY) AND WILL REDUCE THE SIZE OF THE .ASM FILE CONSIDERABLY.
  507. noidmsg    db    CR,LF,'User ID not found or not specified.'
  508.     DB CR,LF,'Enter "H" for help, <cr> to abort? ',07,'$'
  509. ;
  510. INTRO    DB CR,LF,'This program allows the user to modify file'
  511.     DB CR,LF,'extensions, rename files, erase files, and view .###'
  512.     DB CR,LF,'type files. Another words, with the correct user ID, the'
  513.     DB CR,LF,'user is given COMPLETE control of the system without ANY'
  514.     DB CR,LF,'restrictions whatsoever. In addition, these files may'
  515.     DB CR,LF,'be made available to you:'
  516.     DB CR,LF,'Basic',CR,LF,'Mac',CR,LF,'Load',CR,LF,'Edit'
  517.     DB CR,LF,'These programs will allow development of software directly'
  518.     DB CR,LF,'on this system in 8080 code. EDIT will allow editing .ASM'
  519.     DB CR,LF,'files, BASIC for basic programing, LOAD to convert .HEX'
  520.     DB CR,LF,'files to .COM, and MAC for assembling .ASM files.'
  521.     DB CR,LF,'If you wish to establish a user ID, please answer'
  522.     DB CR,LF,'ALL questions complete. Any unanswered questions'
  523.     DB CR,LF,'will assume you DO NOT want a user ID.'
  524.     DB CR,LF,LF,'Do you wish to establish a User ID (Y/N)? ',07,'$'
  525. ;
  526. Q1    DB CR,LF,LF,'What is your FULL name (include middle initial)? ',07,'$'
  527. ;
  528. Q2    DB CR,LF,'What is your current STREET address? ',07,'$'
  529. ;
  530. Q3    DB CR,LF,'What CITY/STATE is that located in? ',07,'$'
  531. ;
  532. Q4    DB CR,LF,'Where do you work (company name only)? ',07,'$'
  533. ;
  534. Q5    DB CR,LF,'What is your current work address? ',07,'$'
  535. ;
  536. Q6    DB CR,LF,'What CITY/STATE? ',07,'$'
  537. ;
  538. Q7    DB CR,LF,'What is the phone # at your home (include area code)? ',07,'$'
  539. ;
  540. Q8    DB CR,LF,'What is it at work (include area code)? ',07,'$'
  541. ;
  542. Q9    DB CR,LF,'What extension (enter 0 if none)? ',07,'$'
  543. ;
  544. Q9A    DB CR,LF,'What is your position at this company? ',07,'$'
  545. ;
  546. Q10    DB CR,LF,'What make modem are you using? ',07,'$'
  547. ;
  548. Q11    DB CR,LF,'Do you make computer calls from home or work (enter "home"'
  549.     DB CR,LF,'or "work" or "both")? ',07,'$'
  550. ;
  551. Q12    DB CR,LF,'What kind of DOS (e.i. CP/M, HDOS,) do you use? ',07,'$'
  552. ;
  553. Q13    DB CR,LF,'What kind of microcomputer (i.e. TRS-80, ALTAIR)? ',07,'$'
  554. ;
  555. Q14    DB CR,LF,'What kind of programs would you like to see available? ',07,'$'
  556. ;
  557. eqmsg    db cr,lf,lf,'End of questions; I left all info entered, on file.'
  558.     db cr,lf,'The sysop will evaluate the information entered, and'
  559.     db cr,lf,'determine if a user ID should be issued. If it is, call'
  560.     db cr,lf,'this programm as follows:'
  561.     db cr,lf,'A>USERID 0PASSWORD<cr>','$'
  562. ;
  563. exmsg    db    CR,LF,'Returning to CP/M....$'
  564. ;
  565. q1h    db    'name: ',0
  566. ;
  567. q2h    db    'Current address: ',0
  568. ;
  569. q3h    db    'Current address - city/state: ',0
  570. ;
  571. q4h    db    'Works at: ',0
  572. ;
  573. q5h    db    'Work address: ',0
  574. ;
  575. q6h    db    'CITY/STATE of work: ',0
  576. ;
  577. q7h    db    'Number at home: ',0
  578. ;
  579. q8h    db    'Number at work: ',0
  580. ;
  581. q9h    db    'Extension: ',0
  582. ;
  583. q9ah    db 'Position at work: ',0
  584. ;
  585. q10h    db 'Kind of modem he/she uses: ',0
  586. ;
  587. q11h    db 'Makes calls usaully from: ',0
  588. ;
  589. q12h    db 'Kind of DOS he/she uses: ',0
  590. ;
  591. q13h    db 'Kind of computer: ',0
  592. ;
  593. q14h    db    'Kind of programming would like to see: ',0
  594. ;
  595. BUFF    DS    1
  596. ;
  597. ;THESE BYTES ARE EQUATED BY FINDING OUT WHAT THE SUM
  598. ;IS OF ALL USERS LETTERS EXCLUDING THE STARTING '0'.
  599. ;REMEMBER, ALL UPPER CASE (CP/M DOES THAT WHEN YOU TYPE
  600. ;A>USERID 0XXXXXX)
  601. ;ID WILL BE IN FCB (5CH) WHEN PGM STARTS AND WILL ALREADY
  602. ;BE IN UPPERS.
  603. USERS    DB    0FEH    ;'XXXXXX'
  604.     DB    0E3H    ;'XXXXXX': USER NAME 
  605.     DB    01BH    ;'XXXXXX': USER NAME
  606.     DB    018H    ;'RWHART': SYSOP ROD
  607. ;
  608. USERCT    DB    04    ;number of user #'s in list
  609. ;
  610.     IF    V1
  611. ;PATCHED CCP COMMAND TABLE
  612. NCOMTB    DB    'SEE ERA TYPESAVEREN',0
  613.     ENDIF
  614. ;
  615.     IF    V2
  616. ;PATCHED CCP COMMAND TABLE
  617. NCOMTB    DB    'DIR ERA TYPESAVEREN AREA',0
  618.     ENDIF
  619. ;
  620. ;THESE FILES HAVE .### TYPE EXTENSIONS CAUSE I HAVE DIR WRITTEN
  621. ;TO MASK ANY FILE WITH A "#" LOCATED IN ANY POSITION IN THE
  622. ;EXTENSION OF THE FILE, SO USER DOES NOT SEE IT AT ALL (DOESN'T
  623. ;EVEN KNOW THE FILE IS THERE). ALSO HAVE MLIST MODIFIED TO
  624. ;NOT TYPE A FILE THAT HAS A # IN THE EXTENSION ANYWHERE.
  625. ;THE 80H+'X' IS REQUIRED IN ORDER TO MAKE .SYS FILE IN VERS 2.2
  626. ;
  627.     IF    V1
  628. FILENM    DB    'APPUSER ###',0    ;APPLICATION INPUT FILE
  629. FILENM2    DB    'APPUSER #LA',0    ;APPLICATION HOLDING FILE
  630.     ENDIF
  631. ;
  632.     IF    V2
  633. FILENM    DB    'APPUSER    ',0    ;APPLICATION INPUT FILE
  634. FILENM2    DB    'APPUSER A',80H+'P','P',0    ;APPLICATION HOLDING FILE
  635.     ENDIF
  636. ;
  637.     IF    V1
  638. ;YOU CAN CHANGE THE FOLLOWING TO WHAT EVER FILES YOU WANT USERS
  639. ;TO HAVE ACCESS TO. REMEMBER TO PUT COMPLIMENTARY FILENAME IN
  640. ;RESPECTIVE LABEL.
  641. BASICE    DB    'BASIC   COM',0,'$'
  642. MACE    DB    'MAC     COM',0,'$'
  643. LOADE    DB    'LOAD    COM',0,'$'
  644. EDITE    DB    'EDIT    COM',0,'$'
  645. BASICD    DB    'BASIC   #OM',0
  646. MACD    DB    'MAC     #OM',0
  647. LOADD    DB    'LOAD    #OM',0
  648. EDITD    DB    'EDIT    #OM',0
  649. CBBSE    DB    'CBBS    COM',0
  650. CBBSD    DB    'C'+80H,'BBS    COM',0
  651.     ENDIF
  652. ;
  653. ;AFTER USER IS SIGNED OFF SYSTEM, FILES ARE RENAMED FROM BYE, SO ADD
  654. ;APPRORIATE CODE TO BYE TO CORRESPOND TO FILES IN USERID.ASM
  655. ;THERE IS PROBABLY AN EASIER WAY TO DO THIS, AND CONSIDERING
  656. ;THAT THIS IS THE FIRST ATTEMPT OF ANYTHING LIKE THIS, SO
  657. ;THERE IS GOBS OF ROOM FOR IMPROVMENT, SO THAT IS WHY I
  658. ;SENT IT TO GET OTHER IDEAS. (LOOK WHAT HAPPENED TO SJBBS
  659. ;AFTER I GAVE THE FIRST COPY TO SOMEONE.)
  660.