SIZ MACRO SIZE ;; SET "ORG" AND CREATE STACK LOCAL STACK ;;LABEL ON THE STACK ORG 100H ;;AT BASE OF TPA LXI SP,STACK JMP STACK ;;PAST STACK DS SIZE*2 ;;DOUBLE PRECISION STACK: ENDM ; DUP MACRO ;; DUPLICATE TOP OF STACK PUSH H ENDM ; SUM MACRO ;; ADD THE TOP TWO STACK ELEMENTS POP D ;;TOP-1 TO DE DAD D ;;BACK TO HL ENDM ; LSR MACRO LEN ;; LOGICAL SHIFT RIGHT BY LEN REPT LEN ;;GENERATE INLINE XRA A ;;CLEAR CARRY MOV A,H RAR ;;ROTATE WITH HIGH 0 MOV H,A MOV A,L RAR MOV L,A ;;BACK WITH HIGH BIT ENDM ENDM ; ADC0 EQU 1080H ;A-D CONVERTER 0 ADC1 EQU 1082H ;A-D CONVERTER 1 ADC2 EQU 1084H ;A-D CONVERTER 2 ADC3 EQU 1086H ;A-D CONVERTER 3 ; DAC0 EQU 1090H ;D-A CONVERTER 0 DAC1 EQU 1092H ;D-A CONVERTER 1 DAC2 EQU 1094H ;D-A CONVERTER 2 DAC3 EQU 1096H ;D-A CONVERTER 3 ; RDM MACRO ?C ;; READ A-D CONVERTER NUMBER "?C" PUSH H ;;CLEAR THE STACK ;; READ FROM MEMORY MAPPED INPUT ADDRESS LHLD ADC&?C ENDM ; WRM MACRO ?C ;; WRITE D-A CONVERTER NUMBER "?C" SHLD DAC&?C ;;VALUE WRITTEN POP H ;;RESTORE STACK ENDM