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 >
Wrap
Text File
|
1984-04-29
|
2KB
|
182 lines
; THIS IS A TEST FOR THE ASSEMBLY LANGUAGE EXTENSION PREPROCESSOR
;
; THE FOLLOWING BEGIN CAUSES ALX TO DISPLAY REVISION INFO
BEGIN
;
; THE FOLLOWING PRESETS THE LABEL GENERATOR TO 24
; MUST USE THIS IF SEPERATE MODULES ARE TO BE RUN THROUGH ALX
; THEN CONCATENATED AFTERWORDS.
; BETTER TO USE SOMETHING LIKE M80 AND LINKER.
.LSKIP 23
;
PROCEDURE ONEBRANCH
IF ( CARRY ) LDA XYZ
;
LABEL:
LABEL2: IF ( CARRY ) LDA PDQ
;
IF ( CARRY )
LDA XYZ
STA PDQ
FIN
RET
PROCEDURE TWOBRANCH
WHEN ( CARRY ) LDA XYZ
ELSE LDA PDQ
;
WHEN ( CARRY )
LDA XYZ
STA PDQ
FIN
ELSE
LDA PDQ
STA XYZ
FIN
RET
PROCEDURE MULTIPLEBRANCHES
BRANCH
( 'W' ) LWW
( 'A' | 'Z' ) LAZY
( OTHERWISE ) LBL
FIN
;
LWW: STA T1
RET
;
LAZY: STA T2
;
LBL: MOV B,A
RLC
ADD B
RET
;
SELECT
('Q') CALL QQQ
('A'|7|'Z') CALL A7Z
(OTHERWISE) CALL OTHER
FIN
;
SELECT
('Q')
LDA XYZ
CALL QQQ
FIN
('A'|7|'Z')
LDA PDQ
CALL A7Z
FIN
(OTHERWISE)
LDA ABC
CALL OTHER
FIN
FIN
RET
PROCEDURE STATEMACHINE
EXECUTE ( NSTATE )
( ST1 )
LDA PDQ
CPI 'X'
IF ( ZERO )
SETNEXT ( NSTATE = ST2 )
FIN
FIN
( ST2 )
LDA PDQ
CPI 'Y'
IF ( ZERO )
SETNEXT ( NSTATE = ST1 )
FIN
FIN
FIN
RET
PROCEDURE LOOPS
LOOP
CALL GETCH
CPI 3 ; CONTROL C
BREAK IF ( ZERO ) ; BREAK OUT OF LOOP ON CONTROL C
CALL DOIT
FIN
;
WHILE ( CARRY ) RLC
;
WHILE ( CARRY )
MOV A,M
INX H
RLC
FIN
;
REPEAT
MOV E,M
CALL DOIT
INX H
SUI 1
UNTIL ( CARRY )
RET
PROCEDURE NESTING
LOOP
REPEAT
IN 0
ANI 1
UNTIL ( NOT ZERO )
IN 1
ANI 7FH
CPI 3
BREAK IF ( ZERO ) ; CONTROL C
SELECT
( 'A' | 'a' ) CALL AAAA
( 'Q' )
MVI A,0FFH
STA QUIT
FIN
( 1AH ) CALL CTLZPROCESS
( OTHERWISE )
LDA ABC
ORA A
WHEN ( NOT ZERO ) CALL BBBB
ELSE
MVI A,32
STA ABC
FIN
FIN
FIN
FIN
RET
PROCEDURE ERRORS ; ALX SHOULD PRODUCE SOME ERROR MESSAGES
WHEN ( CARRY )
IF (MINUS) CALL HELP
WHILE (PLUS)
ADI 3
FIN
FIN
SBB 1
IF ( CARRY ) ADI 5
ELSE
IF (MINUS) CALL HELP
STA ABC
FIN
;
SELECT
REPEAT
INR A
UNTIL (ZERO)
('A') CALL HELLO
FIN
;
IF (ZERO)
('B') CALL NOGOOD
STA XYZ
FIN
;
WHILE (NOT ZERO)
DCR B
UNTIL ( CARRY )
FIN
;
FIN
FIN
FIN
RET
;
END
END-OF-FILE