home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol064 / prompt.src < prev    next >
Encoding:
Text File  |  1984-04-29  |  3.3 KB  |  300 lines

  1. M    SET              0
  2. C    SET              0
  3. F    SET              0
  4. ;TYPE 
  5. ;BYTE = 0..255;
  6. ;$STRING255 = STRING 255;
  7. ;
  8. ;
  9. ;PROCEDURE PROMPT (X,Y,LENGTH: BYTE; P:$STRING255;
  10. ;             PROTECTED_FIELD_DESIRED:BOOLEAN);
  11. ;
  12. ;{procedure to position the cursor on the terminal, display a 
  13. ;prompting message, and provide underline char for an answer}
  14. ;
  15. ;VAR
  16. ;UNDERLINE: STRING 255;
  17. ;I:INTEGER;
  18. ;BEGIN
  19. L156
  20.     NAME PROMPT
  21.     ENTRY PROMPT
  22. PROMPT:
  23.     ENTR    D,2,258
  24. ;    UNDERLINE:='_';
  25.     STMT    D,1
  26.     PUSH    IX
  27.     POP    H
  28.     DCX    H
  29.     DCX    H
  30.     MVI    M,1
  31.     DCX    H
  32.     MVI    M,95
  33. ;    FOR  I:= 1 TO LENGTH DO APPEND (UNDERLINE,'_');
  34.     STMT    D,2
  35.     MOV    0(IX),A
  36.     MVI    -1(IX),1
  37.     PUSH    IX
  38.     MOV    H,A
  39.     LXI    B,265
  40.     PUSH    IX
  41.     DADX    B
  42.     MOV    L,0(IX)
  43.     POP    IX
  44.     XTHL
  45. L177
  46.     MOV    D,M
  47.     DCX    H
  48.     MOV    E,M
  49.     XTHL
  50.     PUSH    H
  51.     GE    D,0
  52.     JNC    L178
  53.     STMT    D,3
  54.     PUSH    IX
  55.     POP    H
  56.     DCX    H
  57.     DCX    H
  58.     PUSH    H
  59.     LXI    H,255
  60.     PUSH    H
  61.     LXI    H,351
  62.     PUSH    H
  63.     LXI    H,2
  64.     PUSH    H
  65.     CALL    L137
  66.     CTRL    M,3
  67.     POP    H
  68.     XTHL
  69.     INR    M
  70.     INX    H
  71.     JRNZ    L197
  72.     INR    M
  73.     JV    L198
  74. L197
  75.     JMP    L177
  76. L178
  77.     POP    D
  78. L198
  79.     POP    D
  80. ;    IF PROTECTED_FIELD_DESIRED = FALSE THEN
  81.     STMT    D,4
  82.     MOV    H,A
  83.     MOV    L,8(IX)
  84.     MOV    A,L
  85.     CMPI    D,0
  86.     MOV    A,H
  87. ;WRITE  (CHR(27),'=',CHR(Y+31),CHR(X+31),P,UNDERLINE)
  88.     JNZ    L200
  89.     STMT    D,5
  90.     LXI    H,27
  91.     STMT    M,5
  92.     PUSH    H
  93.     LXI    H,769
  94.     XTHL
  95.     LXI    B,1
  96.     PUSH    B
  97.     MOV    H,L
  98.     PUSH    H
  99.     INX    S
  100.     LXI    H,769
  101.     PUSH    H
  102.     LXI    B,1
  103.     PUSH    B
  104.     LXI    H,61
  105.     MOV    H,L
  106.     PUSH    H
  107.     INX    S
  108.     MOV    H,A
  109.     LXI    B,266
  110.     PUSH    IX
  111.     DADX    B
  112.     MOV    L,0(IX)
  113.     POP    IX
  114.     LXI    D,31
  115.     DADD    D,0
  116.     STMT    M,5
  117.     PUSH    H
  118.     LXI    H,769
  119.     XTHL
  120.     LXI    B,1
  121.     PUSH    B
  122.     MOV    H,L
  123.     PUSH    H
  124.     INX    S
  125.     MOV    H,A
  126.     LXI    B,267
  127.     PUSH    IX
  128.     DADX    B
  129.     MOV    L,0(IX)
  130.     POP    IX
  131.     LXI    D,31
  132.     DADD    D,0
  133.     STMT    M,5
  134.     PUSH    H
  135.     LXI    H,769
  136.     XTHL
  137.     LXI    B,1
  138.     PUSH    B
  139.     MOV    H,L
  140.     PUSH    H
  141.     INX    S
  142.     LXI    H,1793
  143.     PUSH    H
  144.     LXI    B,256
  145.     PUSH    B
  146.     LXI    H,-256
  147.     DADD    S
  148.     SPHL
  149.     XCHG
  150.     PUSH    IX
  151.     POP    H
  152.     LXI    B,9
  153.     DADD    B
  154.     LXI    B,256
  155.     LDIR
  156.     LXI    H,1793
  157.     PUSH    H
  158.     LXI    B,256
  159.     PUSH    B
  160.     LXI    H,-256
  161.     DADD    S
  162.     SPHL
  163.     XCHG
  164.     PUSH    IX
  165.     POP    H
  166.     LXI    B,-257
  167.     DADD    B
  168.     LXI    B,256
  169.     LDIR
  170.     LXI    B,540
  171. ;    ELSE
  172.     CALL    L111
  173. ;WRITE (CHR(27),'=',CHR(Y+31),CHR(X+31),CHR(27),')',P,
  174.     JMP    L263
  175. L200
  176.     STMT    D,6
  177.     LXI    H,27
  178.     STMT    M,6
  179.     PUSH    H
  180.     LXI    H,769
  181.     XTHL
  182.     LXI    B,1
  183.     PUSH    B
  184.     MOV    H,L
  185.     PUSH    H
  186.     INX    S
  187.     LXI    H,769
  188.     PUSH    H
  189.     LXI    B,1
  190.     PUSH    B
  191.     LXI    H,61
  192.     MOV    H,L
  193.     PUSH    H
  194.     INX    S
  195.     MOV    H,A
  196.     LXI    B,266
  197.     PUSH    IX
  198.     DADX    B
  199.     MOV    L,0(IX)
  200.     POP    IX
  201.     LXI    D,31
  202.     DADD    D,0
  203.     STMT    M,6
  204.     PUSH    H
  205.     LXI    H,769
  206.     XTHL
  207.     LXI    B,1
  208.     PUSH    B
  209.     MOV    H,L
  210.     PUSH    H
  211.     INX    S
  212.     MOV    H,A
  213.     LXI    B,267
  214.     PUSH    IX
  215.     DADX    B
  216.     MOV    L,0(IX)
  217.     POP    IX
  218.     LXI    D,31
  219.     DADD    D,0
  220.     STMT    M,6
  221.     PUSH    H
  222.     LXI    H,769
  223.     XTHL
  224.     LXI    B,1
  225.     PUSH    B
  226.     MOV    H,L
  227.     PUSH    H
  228.     INX    S
  229.     LXI    H,27
  230.     STMT    M,6
  231.     PUSH    H
  232.     LXI    H,769
  233.     XTHL
  234.     LXI    B,1
  235.     PUSH    B
  236.     MOV    H,L
  237.     PUSH    H
  238.     INX    S
  239.     LXI    H,769
  240.     PUSH    H
  241.     LXI    B,1
  242.     PUSH    B
  243.     LXI    H,41
  244.     MOV    H,L
  245.     PUSH    H
  246.     INX    S
  247.     LXI    H,1793
  248.     PUSH    H
  249.     LXI    B,256
  250.     PUSH    B
  251.     LXI    H,-256
  252.     DADD    S
  253.     SPHL
  254.     XCHG
  255.     PUSH    IX
  256.     POP    H
  257.     LXI    B,9
  258.     DADD    B
  259.     LXI    B,256
  260.     LDIR
  261. ;    UNDERLINE,CHR(27),'(');
  262.     LXI    H,1793
  263.     PUSH    H
  264.     LXI    B,256
  265.     PUSH    B
  266.     LXI    H,-256
  267.     DADD    S
  268.     SPHL
  269.     XCHG
  270.     PUSH    IX
  271.     POP    H
  272.     LXI    B,-257
  273.     DADD    B
  274.     LXI    B,256
  275.     LDIR
  276.     LXI    H,27
  277.     STMT    M,6
  278.     PUSH    H
  279.     LXI    H,769
  280.     XTHL
  281.     LXI    B,1
  282.     PUSH    B
  283.     MOV    H,L
  284.     PUSH    H
  285.     INX    S
  286.     LXI    H,769
  287.     PUSH    H
  288.     LXI    B,1
  289.     PUSH    B
  290.     LXI    H,40
  291.     MOV    H,L
  292.     PUSH    H
  293.     INX    S
  294.     LXI    B,560
  295.     CALL    L111
  296. L263
  297. ;END;
  298.     STMT    D,7
  299.     EXIT    D,260
  300.