;;******************************************************************* ;;******************************************************************* ;;** MACRO LIBRARY FOR THE KAYPRO II 11/23/83 ** ;;** WRITTEN BY LARRY KRAEMER LAST UPDATE 11/24/83 ** ;;******************************************************************* ;;******************************************************************* ;;** THE FOLLOWING MACRO'S ARE IN THIS LIBRARY: ** ;;** 1. VERSN ** ;;** 2. MOVE ** ;;** 3. SCREEN ** ;;** 4. DELAY ** ;;** 5. AON ** ;;** 6. AOFF ** ;;** 7. BON ** ;;** 8. BOFF ** ;;** 9. PRINT ** ;;** 10. INPUT ** ;;** 11. FILL ** ;;** 12. SAVREG ** ;;** 13. RESREG ** ;;** ** ;;** ** ;;** ** ;;** ** ;;** ** ;;** ** ;;** ** ;;** ** ;;** ** ;;** ** ;;** ** ;;** ** ; ; EOF EQU 1AH ;END OF FILE ESC EQU 1BH ;ESCAPE CR EQU 13 ;CARRIAGE RETURN LF EQU 10 ;LINE FEED TAB EQU 9 ;TAB = CONTROL I SPACE EQU 20H ;SPACE PERIOD EQU 46 ;DECIMAL POINT COMMA EQU 44 ;COMMA SYSPORT EQU 01CH ;SYSTEM BIT PORT BDOS EQU 5 ;BDOS VIDEO EQU 3000H ; ; ; ;; MACROS FOLLOW ;; VERSN MACRO NUM ;;11/23/83 ;;USAGE: NUM MUST BE ENCLOSED IN QUOTES VERSN 'XX.XX' LOCAL AROUND JP AROUND DEFM "VER ",NUM DEFM " WRITTEN BY LARRY KRAEMER " DEFM "S-001" AROUND: ENDM ; MOVE MACRO X,Y,Z ;;11/23/83 ;;USAGE: X,Y,Z MUST BE A HEX NUMBER (ADDRESS) ;; THIS IS AN INCREMENTING MOVE IN ASCENDING ORDER LD HL,X LD DE,Y LD BC,Z LDIR ENDM ; SCREEN MACRO Z ;;11/23/83 ;;USAGE: Z IS CHAR TO SEND TO VIDEO TERMINAL ;; THIS ROUTINE MUST BE LOCATED ABOVE 4000H TO WORK IN A,(SYSPORT) SET 7,A SET 6,A RES 0,A RES 1,A OUT (SYSPORT),A LD HL,VIDEO LD DE,VIDEO+1 LD BC,3*1024 LD (HL),Z LDIR ENDM ; DELAY MACRO X,Y ;;11/24/83 ;;USAGE: X IS THE OUTSIDE LOOP -- BC REG PAIR ;; Y IS THE INSIDE LOOP -- HL REG PAIR LOCAL DELAY0,DELAY1 LD BC,X DELAY0: LD HL,Y DELAY1: DEC HL LD A,H OR L JP NZ,DELAY1 DEC BC LD A,B OR C JP NZ,DELAY0 ENDM ; AON MACRO ;;11/24/83 ;;USAGE: THIS WILL TURN ON DRIVE A LED IN A,(SYSPORT) SET 0,A OUT (SYSPORT),A ENDM ; AOFF MACRO ;;11/24/83 ;;USAGE: THIS WILL TURN OFF DRIVE A LED IN A,(SYSPORT) RES 0,A OUT (SYSPORT),A ENDM ; BON MACRO ;;11/24/83 ;;USAGE: THIS WILL TURN ON DRIVE B LED IN A,(SYSPORT) SET 1,A OUT (SYSPORT),A ENDM ; BOFF MACRO ;;11/24/83 ;;USAGE: THIS WILL TURN OFF DRIVE B LED IN A,(SYSPORT) RES 1,A OUT (SYSPORT),A ENDM ; PRINT MACRO X ;;11/24/83 ;;USAGE: THIS WILL PRINT A MESSAGE TO THE MONITOR. TO USE ;; THE MACRO POINT TO THE MESSAGE AND TERMINATE IT WITH ;; A '$' WHICH WILL STOP THE MACRO. LD C,9 LD DE,X CALL BDOS ENDM ; INPUT MACRO ;;11/24/83 ;;USAGE: THIS WILL GET A CHARACTER FROM THE CONSOLE (UP CASE) ;;USAGE: (SINGLE CHARACTER ONLY) IT WILL WAIT FOR THAT CHAR. LD C,1 CALL BDOS RES 5,A ENDM ; FILL MACRO X,Y,Z ;;11/26/83 ;;USAGE: THIS WILL FILL MEMORY FROM -X- THRU NUMBER OF BYTES -Y- ;;USAGE: WITH CHARACTER -Z- LD HL,X LD DE,X+1 LD BC,Y LD (HL),Z LDIR ENDM ; SAVREG MACRO ;;11/26/83 ;;USAGE: SAVE ALL REGISTERS BY PUSHING ON STACK PUSH AF PUSH BC PUSH DE PUSH HL PUSH IX PUSH IY ENDM ; RESREG MACRO ;;11/26/83 ;;USAGE: RESTORE ALL REGISTERS BY POPPING FROM STACK POP IY POP IX POP HL POP DE POP BC POP AF ENDM ;