home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG051.ARK / ALXTEST.ALX < prev    next >
Text File  |  1984-04-29  |  2KB  |  182 lines

  1. ; THIS IS A TEST FOR THE ASSEMBLY LANGUAGE EXTENSION PREPROCESSOR
  2. ;
  3. ;        THE FOLLOWING BEGIN CAUSES ALX TO DISPLAY REVISION INFO
  4. BEGIN
  5. ;
  6. ;        THE FOLLOWING PRESETS THE LABEL GENERATOR TO 24
  7. ;        MUST USE THIS IF SEPERATE MODULES ARE TO BE  RUN THROUGH ALX
  8. ;        THEN CONCATENATED AFTERWORDS.
  9. ;        BETTER TO USE SOMETHING LIKE M80 AND LINKER.
  10. .LSKIP 23
  11. ;
  12. PROCEDURE ONEBRANCH
  13.     IF ( CARRY )    LDA    XYZ
  14. ;
  15. LABEL:
  16. LABEL2:    IF ( CARRY )    LDA    PDQ
  17. ;
  18.     IF ( CARRY )
  19.     LDA    XYZ
  20.     STA    PDQ
  21.     FIN
  22.     RET
  23. PROCEDURE TWOBRANCH
  24.     WHEN ( CARRY )    LDA    XYZ
  25.     ELSE    LDA    PDQ
  26. ;
  27.     WHEN ( CARRY )
  28.     LDA    XYZ
  29.     STA    PDQ
  30.     FIN
  31.     ELSE
  32.     LDA    PDQ
  33.     STA    XYZ
  34.     FIN
  35.     RET
  36. PROCEDURE MULTIPLEBRANCHES
  37.     BRANCH
  38.     ( 'W' )  LWW
  39.     ( 'A' | 'Z' )  LAZY
  40.     ( OTHERWISE )  LBL
  41.     FIN
  42. ;
  43. LWW:    STA    T1
  44.     RET
  45. ;
  46. LAZY:    STA    T2
  47. ;
  48. LBL:    MOV    B,A
  49.     RLC
  50.     ADD    B
  51.     RET
  52. ;
  53.     SELECT
  54.     ('Q')    CALL    QQQ
  55.     ('A'|7|'Z')    CALL    A7Z
  56.     (OTHERWISE)    CALL    OTHER
  57.     FIN
  58. ;
  59.     SELECT
  60.     ('Q')
  61.     LDA    XYZ
  62.     CALL    QQQ
  63.     FIN
  64.     ('A'|7|'Z')
  65.     LDA    PDQ
  66.     CALL    A7Z
  67.     FIN
  68.     (OTHERWISE)
  69.     LDA    ABC
  70.     CALL    OTHER
  71.     FIN
  72.     FIN
  73.     RET
  74. PROCEDURE STATEMACHINE
  75.     EXECUTE ( NSTATE )
  76.     ( ST1 )
  77.     LDA    PDQ
  78.     CPI    'X'
  79.     IF ( ZERO )
  80.     SETNEXT ( NSTATE = ST2 )
  81.     FIN
  82.     FIN
  83.     ( ST2 )
  84.     LDA    PDQ
  85.     CPI    'Y'
  86.     IF ( ZERO )
  87.     SETNEXT ( NSTATE = ST1 )
  88.     FIN
  89.     FIN
  90.     FIN
  91.     RET
  92. PROCEDURE LOOPS
  93.     LOOP
  94.     CALL    GETCH
  95.     CPI    3    ; CONTROL C
  96.     BREAK IF ( ZERO )  ; BREAK OUT OF LOOP ON CONTROL C
  97.     CALL    DOIT
  98.     FIN
  99. ;
  100.     WHILE ( CARRY )    RLC
  101. ;
  102.     WHILE ( CARRY )
  103.     MOV    A,M
  104.     INX    H
  105.     RLC
  106.     FIN
  107. ;
  108.     REPEAT
  109.     MOV    E,M
  110.     CALL    DOIT
  111.     INX    H
  112.     SUI    1
  113.     UNTIL ( CARRY )
  114.     RET
  115. PROCEDURE NESTING
  116.     LOOP
  117.     REPEAT
  118.     IN    0
  119.     ANI    1
  120.     UNTIL ( NOT ZERO )
  121.     IN    1
  122.     ANI    7FH
  123.     CPI    3
  124.     BREAK IF ( ZERO )  ; CONTROL C
  125.     SELECT
  126.     ( 'A' | 'a' )  CALL AAAA
  127.     ( 'Q' )
  128.     MVI    A,0FFH
  129.     STA    QUIT
  130.     FIN
  131.     ( 1AH )  CALL CTLZPROCESS
  132.     ( OTHERWISE )
  133.     LDA    ABC
  134.     ORA    A
  135.     WHEN ( NOT ZERO )  CALL BBBB
  136.     ELSE
  137.     MVI    A,32
  138.     STA    ABC
  139.     FIN
  140.     FIN
  141.     FIN
  142.     FIN
  143.     RET
  144. PROCEDURE ERRORS    ; ALX SHOULD PRODUCE SOME ERROR MESSAGES
  145.     WHEN ( CARRY )
  146.     IF (MINUS)    CALL    HELP
  147.     WHILE (PLUS)
  148.     ADI    3
  149.     FIN
  150.     FIN
  151.     SBB    1
  152.     IF ( CARRY )    ADI    5
  153.     ELSE
  154.     IF (MINUS)    CALL    HELP
  155.     STA    ABC
  156.     FIN
  157. ;
  158.     SELECT
  159.     REPEAT
  160.     INR    A
  161.     UNTIL    (ZERO)
  162.     ('A')    CALL    HELLO
  163.     FIN
  164. ;
  165.     IF (ZERO)
  166.     ('B')    CALL    NOGOOD
  167.     STA    XYZ
  168.     FIN
  169. ;
  170.     WHILE (NOT ZERO)
  171.     DCR    B
  172.     UNTIL ( CARRY )
  173.     FIN
  174. ;
  175.     FIN
  176.     FIN
  177.     FIN
  178.     RET
  179. ;
  180.     END
  181. END-OF-FILE
  182.