;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; HVR
; WERSJA:       3.39 (dla HF-6030)
; INSTRUKCJI:   70
;
; ZMIANY WERSJI
; wersja 3.35 skrócone mnemoniki instrukcji WRIO -> WRI, RDIO -> RDI, INSB -> INS, DSPB -> DSP,
;              WRTXT -> WRT, WRSYS -> WRS, PSHx -> PHx, POPx -> PPx (zaoszczędzone 32 bajt)
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; SYSTEM CONSTANTS
HAVR_VER_H	equ		 3
HAVR_VER_L	equ		 39
ENTRY_POINT	equ		 0x00
FUNC_SEG	equ		 0x80
DATA_SEG	equ		 0xD0
HAVR_EXTRA_CODE equ		 0xEC
HAVR_EXTRA_DATA equ		 0xED
HAVRVERL	equ		 0xEE
HARDWARE_COMPAT equ		 0xEF
FILE_NAME	equ		 0xF0
HF6030_HW	equ		 0x30
HF6030_6048_HW	equ		 0x78	  ; HF6030 + HF6048
HF6030_6050_HW	equ		 0x80	  ; HF6030 + HF6050
ALL_HW		equ		 0xFF
EXTRA_CODESEG	equ		 0xEC
EXTRA_DATASEG	equ		 0xED
HF6030_MAX_FLA	equ		 0xFFF

RAMSEG0 	equ		 0x00
RAMSEG1 	equ		 0x01
RAMSEG2 	equ		 0x02
RAMSEG3 	equ		 0x03
RAMSEG4 	equ		 0x04

BATCH_FILE_ID	equ		 0xBF
BATCH_END	equ		 0xE0
BATCH_LOAD	equ		 0xEE
BATCH_EXEC	equ		 0xEF


; VECTORS
RESET			equ		 0x00
MENU			equ		 0x01
SEND_NEGATIVE		equ		 0x13
SEND_AFFIRMATIVE	equ		 0x14
Z_USER_PORTS		equ		 0x15	 ; (user, system)
READ_PORTB		equ		 0x16
READ_PORTC		equ		 0x17
WRITE_PORTB		equ		 0x18
WRITE_PORTC		equ		 0x19
FLASH_TO_RAM		equ		 0x1A
RAMFILL 		equ		 0x1B	 ; (system)
INT_FIND_VALUE		equ		 0x1C
INT_WRT_DEC8		equ		 0x1D
INT_WRT_CRLF		equ		 0x1E
INT_WRT_SPACE		equ		 0x1F
IMPULSE_COUNTER 	equ		 0x20
PORTB_BIT_WRITE 	equ		 0x21
PORTC_BIT_WRITE 	equ		 0x22
INT_23			equ		 0x23
INT_24			equ		 0x24
SPI0_MASTER_IO		equ		 0x25	 ; (user)
UART_SEND		equ		 0x26
UART_RCV		equ		 0x27
INT_28			equ		 0x28
INT_29			equ		 0x29
GET_HEX 		equ		 0x2A
GET_HEX16		equ		 0x2B
I2C_MASTER		equ		 0x2C
I2C_SEQUENCER		equ		 0x2D
I2C_SCANNER		equ		 0x2E
KATOKANA_RANDOM 	equ		 0x2F	 ; (user)
KATOKANA_ALPHABET	equ		 0x30	 ; (user)
CLEAR_RAMSEG1		equ		 0x31
CLEAR_RAMSEG2		equ		 0x32
CLEAR_RAMSEG3		equ		 0x33
INT_MULTIPLY		equ		 0x34
INT_35			equ		 0x35
PORTB_GROUND_CHECK	equ		 0x36
PORTC_GROUND_CHECK	equ		 0x37
COMPARE12		equ		 0x38
COMPARE13		equ		 0x39
DIGITAL_ANALYZER	equ		 0x3A
GOTO_FLA0		equ		 0x3B
WRITE_CHAR		equ		 0x3C
WRITE_TEXT		equ		 0x3D
CW_WRITE_CHAR		equ		 0x3E
CW_WRITE_TEXT		equ		 0x3F
WRITE_TEXT_FILE 	equ		 0x40
READ_FILE_NAME		equ		 0x41
LOAD_FILE		equ		 0x42
SAVE_FILE		equ		 0x43
DELETE_FILE		equ		 0x44
LIST_FILES		equ		 0x45	 ; USER MODE
FILE_UNPACKER		equ		 0x46	 ; USER MODE
INT_EN_DE_CRYPT_SEGMENT equ		 0x47
DOWNLOAD_FILE		equ		 0x48	 ; USER MODE
UPLOAD_FILE		equ		 0x49	 ; USER MODE
INT_READ_TEXT_FILE	equ		 0x4A
INT_4B			equ		 0x4B
INT_4C			equ		 0x4C
INT_4D			equ		 0x4D
INT_MAKE_CS_FTA 	equ		 0x4E
INT_RUN_BATCH_FILE	equ		 0x4F
SQWGEN_ADJUST		equ		 0x50
SQWGEN_1MHZ		equ		 0x51
SQWGEN_800KHZ		equ		 0x52
SQWGEN_666KHZ		equ		 0x53
SQWGEN_BAND0		equ		 0x54
SQWGEN_BAND1		equ		 0x55
SQWGEN_BAND2		equ		 0x56
SQWGEN_BAND3		equ		 0x57
SQWGEN_BAND4		equ		 0x58
SQWGEN_BAND5		equ		 0x59
INT_5A			equ		 0x5A
INT_5B			equ		 0x5B
UART_SEGMENT_SEND	equ		 0x5C
UART_SEGMENT_RCV	equ		 0x5D
READ_CONFIG_SETUP	equ		 0x5E
WRITE_CONFIG_SETUP	equ		 0x5F
READ_RAMSEG0		equ		 0x60
READ_RAMSEG1		equ		 0x61
READ_RAMSEG2		equ		 0x62
READ_RAMSEG3		equ		 0x63
DRIVER_74164		equ		 0x64
SET_74164		equ		 0x65
INT_66			equ		 0x66
INT_67			equ		 0x67
DRIVER_4094		equ		 0x68
PULSER			equ		 0x69
MOVE_RAM_BLOCK		equ		 0x6A
MOVE_RAM_SEGMENT	equ		 0x6B
MOVE_RAMSEG1_RAMSEG2	equ		 0x6C
MOVE_RAMSEG1_RAMSEG3	equ		 0x6D
INT_WRT_TXT_RAM_HL	equ		 0x6E
MOVE_RAMSEG2_RAMSEG1	equ		 0x6F
MOVE_RAMSEG3_RAMSEG1	equ		 0x70
INTEGRATOR		equ		 0x71
INV			equ		 0x72
INT_73			equ		 0x73
INT_74			equ		 0x74
INT_75			equ		 0x75
INT_76			equ		 0x76
INT_MIN_OSCCAL		equ		 0x77	 ; (system, user)
INT_MAX_OSCCAL		equ		 0x78	 ; (system, user)
INT_SET_OSCCAL		equ		 0x79	 ; (user)
INT_7A			equ		 0x7A
INT_7B			equ		 0x7B
INT_7C			equ		 0x7C
INT_7D			equ		 0x7D
GET_VERSION		equ		 0x7E	 ; (user)
INT_RAND		equ		 0x7F
INT_MAKE_CS		equ		 0x80
INT_HF1781_PORTE_READ	equ		 0x81	 ; (system)
INT_HF1781_PORTF_READ	equ		 0x82	 ; (system)
INT_HF1781_PORTG_READ	equ		 0x83	 ; (system)
INT_HF1781_PORTH_READ	equ		 0x84	 ; (system)
INT_HF1781_PORTI_READ	equ		 0x85	 ; (system)
INT_HF1781_PORTK_READ	equ		 0x86	 ; (system)
INT_HF1781_PORTL_READ	equ		 0x87	 ; (system)
INT_HF1781_PORTN_READ	equ		 0x88	 ; (system)
INT_HF1781_PORTE_WRITE	equ		 0x89	 ; (system)
INT_HF1781_PORTF_WRITE	equ		 0x8A	 ; (system)
INT_HF1781_PORTG_WRITE	equ		 0x8B	 ; (system)
INT_HF1781_PORTH_WRITE	equ		 0x8C	 ; (system)
INT_HF1781_PORTI_WRITE	equ		 0x8D	 ; (system)
INT_HF1781_PORTJ_WRITE	equ		 0x8E	 ; (system)
INT_HF1781_PORTK_WRITE	equ		 0x8F	 ; (system)
INT_HF1781_PORTL_WRITE	equ		 0x90	 ; (system)
INT_HF1781_PORTM_WRITE	equ		 0x91	 ; (system)
INT_HF1781_PORTN_WRITE	equ		 0x92	 ; (system)
INT_AS1115_INIT 	equ		 0x93
INT_AS1115_WORD 	equ		 0x94
INT_95			equ		 0x95
INT_96			equ		 0x96
INT_97			equ		 0x97
SPI0_MASTER_INIT	equ		 0x98	 ; (system)
SPI0_MASTER		equ		 0x99	 ; (system)
SPI0_SLAVE_INIT 	equ		 0x9A	 ; (system)
SPI0_SLAVE		equ		 0x9B	 ; (system)
HF17576_READ		equ		 0x9C	 ; WY: PORT0: 0xA7, PORT1: 0xA8
HF17576_WRITE		equ		 0x9D	 ; WE: PORT0: 0xA5, PORT1: 0xA6
PORT0_WRITE		equ		 0x9E	 ; USER MODE
PORT1_WRITE		equ		 0x9F	 ; USER MODE
ADC0_READ		equ		 0xA0
ADC1_READ		equ		 0xA1
ADC2_READ		equ		 0xA2
ADC3_READ		equ		 0xA3
ADC4_READ		equ		 0xA4
ADC5_READ		equ		 0xA5
ADC_INIT		equ		 0xA6
ADC_OFF 		equ		 0xA7
JEDEC_FLASH_LOAD_SEG	equ		 0xA8	 ; USER MODE
JEDEC_FLASH_SAVE_SEG	equ		 0xA9	 ; USER MODE
INT_AA			equ		 0xAA
INT_AB			equ		 0xAB
INT_AC			equ		 0xAC
INT_AD			equ		 0xAD
INT_AE			equ		 0xAE
INT_AF			equ		 0xAF
INT_KBD 		equ		 0xB0
INT_STRCMP		equ		 0xB1
HF64107_INIT		equ		 0xB2
SLOT_A_INIT		equ		 0xB2
SET_LATCH0		equ		 0xB3	  ; WE: 0x1C  (system)
SET_LATCH1		equ		 0xB4	  ; WE: 0x1D  (system)
HF64107_READ		equ		 0xB5	  ; A (system)
HF64107_WRITE		equ		 0xB6	  ; A (system)
SET_LATCH01		equ		 0xB7	  ; WE: 0x1C, 0x1D (system)
DRIVE4_BYTE_READ	equ		 0xB8	  ; (user)
DRIVE4_BYTE_WRITE	equ		 0xB9	  ; (user)
DRIVE4_LOAD_SEGMENT	equ		 0xBA	  ; (user)
DRIVE4_SAVE_SEGMENT	equ		 0xBB	  ; (user)
UART_TO_CW		equ		 0xBC
PROG2RAM		equ		 0xBD	 ; USER MODE
READ_EEP0		equ		 0xBE
WRITE_EEP0		equ		 0xBF
I2C_INIT		equ		 0xC0
I2C_START		equ		 0xC1
I2C_REP_START		equ		 0xC2
I2C_WRITE		equ		 0xC3
I2C_READ		equ		 0xC4
I2C_STOP		equ		 0xC5
TWI_SEND		equ		 0xC6
TWI_READ		equ		 0xC7
LOAD_SWAPFILE		equ		 0xC8
SAVE_SWAPFILE		equ		 0xC9
RECEIVE_THN_PACKET	equ		 0xCA
SEND_THN_PACKET 	equ		 0xCB
INT_CC			equ		 0xCC
INT_CD			equ		 0xCD
INT_CE			equ		 0xCE
INT_CF			equ		 0xCF
READ_SYSTEM_ERROR	equ		 0xE0
READ_HAVR_SIGNAL	equ		 0xE1
WRITE_CURRENT_ERROR	equ		 0xE2
WRITE_HAVR_SIGNAL	equ		 0xE3
EEP0_ASCII_TXT_WRT	equ		 0xE4
BEEP			equ		 0xE5
INT_E6			equ		 0xE6
INT_E7			equ		 0xE7
INT_E8			equ		 0xE8
INT_E9			equ		 0xE9
INT_DRIVE2_READ_SEGMENT equ		 0xEA
INT_DRIVE2_WRT_SEGMENT	equ		 0xEB
INT_DRIVE3_READ_SEGMENT equ		 0xEC
INT_DRIVE2_WRT_SEGMENT	equ		 0xED
EREAD			equ		 0xEE
EWRITE			equ		 0xEF
DUMP_DRIVE4_32K 	equ		 0xF0
DUMP_MEMORY_64K 	equ		 0xF1
INT_JEDEC_PROG_32K_MEM	equ		 0xF2
INT_F3			equ		 0xF3
INT_F4			equ		 0xF4
CIV_CONTROLLER_SET_MODE equ		 0xF5
CIV_CONTROLLER_SET_FREQ equ		 0xF6
INT_F7			equ		 0xF7
INT_F8			equ		 0xF8
INT_F9			equ		 0xF9
INT_FA			equ		 0xFA
CW_BEACON		equ		 0xFB
HAVR_COMPILER		equ		 0xFC
RUN_HAVR_PROGRAM	equ		 0xFD
INT_GET_ADR		equ		 0xFE
INT_SYS_ID		equ		 0xFF


; COMPILATOR DIRECTIVES
macro		ADR	   arg	{ times arg-$ db 0 }
macro		INFO_SECTION	{ times 0xEC-$ db 0
				  db	0		 ; EXTRA CODE SEGMENT
				  db	0		 ; EXTRA DATA SEGMENT
				  db	HAVR_VER_L	 ; VERSION
				  db	HF6030_HW    }	 ; HCC
macro		FILE_END	{ times 0x100-$ db 0 }


; INSTRUCTIONS
macro		START		{ if ($ > 0)
				   display 'START must be at address 0x00 only!',0x0D,0x0A
				  else
				  db	  0xAA
				  end if  }
macro		END		{ db	  0x00	   }
macro		LDA	   arg	{ db	  0x01
				  db	  arg	   }
macro		LDB	   arg	{ db	  0x02
				  db	  arg	   }
macro		LDC	   arg	{ db	  0x03
				  db	  arg	   }
macro		LDD	   arg	{ db	  0x04
				  db	  arg	   }
macro		LDE	   arg	{ db	  0x05
				  db	  arg	   }
macro		PHA		{ db	  0x06	   }
macro		PPA		{ db	  0x07	   }
macro		PHB		{ db	  0x08	   }
macro		PPB		{ db	  0x09	   }
macro		PHC		{ db	  0x0A	   }
macro		PPC		{ db	  0x0B	   }
macro		PHD		{ db	  0x0C	   }
macro		PPD		{ db	  0x0D	   }
macro		PHE		{ db	  0x0E	   }
macro		PPE		{ db	  0x0F	   }
macro		NOP		{ db	  0x10	   }
macro		RPB		{ db	  0x12	   }
macro		RPC		{ db	  0x13	   }
macro		WPB		{ db	  0x16	   }
macro		WPC		{ db	  0x17	   }
macro		ADD		{ db	  0x19	   }
macro		SUB		{ db	  0x1A	   }
macro		AND		{ db	  0x1B	   }
macro		OR		{ db	  0x1C	   }
macro		XOR		{ db	  0x1D	   }
macro		NEG		{ db	  0x1E	   }
macro		NOT		{ db	  0x1F	   }
macro		LSL		{ db	  0x20	   }
macro		LSR		{ db	  0x21	   }
macro		DEC		{ db	  0x22	   }
macro		INC		{ db	  0x23	   }
macro		INT	   arg	{ db	  0x24
				  db	  arg	   }
macro		I2CRD		{ db	  0x25	   }
macro		I2CIT		{ db	  0x26	   }
macro		I2CST	   arg	{ db	  0x27
				  db	  arg	   }
macro		I2CWR	   arg	{ db	  0x28
				  db	  arg	   }
macro		I2CSP		{ db	  0x29	   }
macro		KBD		{ db	  0x2A	   }
macro		CPBNE arg1,arg2 { db	  0x2B
				  db	  arg1
				  db	  arg2	   }
macro		CALL	   arg	{ db	  0x2C
				  db	  arg	   }
macro		RET		{ db	  0x2D	   }
macro		DBNE	   arg	{ db	  0x2E		  ; = LOOP
				  db	  arg	   }
macro		LOOP	   arg	{ db	  0x2E		  ; = DBNE
				  db	  arg	   }
macro		JMP	   arg	{ db	  0x2F
				  db	  arg	   }
macro		GOTO	   arg	{ if (arg > HF6030_MAX_FLA)
				   display 'Address out of FLASH range!',0x0D,0x0A
				  else
				  db	  0x30
				  db	  (arg SHR 8)
				  db	  (arg AND 0xFF)
				  end if  }
macro		DEL20U		{ db	  0x31	   }
macro		DEL100U 	{ db	  0x32	   }
macro		DEL1M		{ db	  0x33	   }
macro		ST0	    arg { db	  0x34, arg	}
macro		DEL10M		{ db	  0x35	   }
macro		DEL40M		{ db	  0x36	   }
macro		DEL100M 	{ db	  0x37	   }
macro		DEL200M 	{ db	  0x38	   }
macro		DEL500M 	{ db	  0x39	   }
macro		DEL1		{ db	  0x3A	   }
macro		DBG		{ db	  0x3B	   }
macro		WRT	    arg { db	  0x3C
				  db	  arg	   }
macro		WRS	    arg { db	  0x3D
				  db	  arg	   }
macro		INS		{ db	  0x3E	   }
macro		DSP		{ db	  0x3F	   }
macro		RDI	    arg { db	  0x40, arg	}   ; adr stara wersja - do wycofania
macro		LD0	    arg { db	  0x40, arg	}   ; adr aktualna wersja
macro		WRI    arg1,arg2{ if ((arg1 eq 0x1A) | (arg1 eq 0x1B))
				   display 'HAVR Program Counter cannot be accessed!',0x0D,0x0A
				  else
				  db	  0x41		; adr, data
				  db	  arg1		; adr
				  db	  arg2		; data
				  end if  }
macro		LD	   arg	{ db	  0x42		;
				  db	  arg	   }	; adr
macro		ST	   arg	{ db	  0x43		;
				  db	  arg	   }	; adr
macro		LD2	   arg	{ db	  0x44		;
				  db	  arg	   }	; adr
macro		ST2	   arg	{ db	  0x45		;
				  db	  arg	   }	; adr
macro		LD3	   arg	{ db	  0x46		;
				  db	  arg	   }	; adr
macro		ST3	   arg	{ db	  0x47		;
				  db	  arg	   }	; adr
macro		CPBLO  arg,arg2 { db	  0x48		;
				  db	  arg		; constant
				  db	  arg2	   }	; adr



; MACROINSTRUCTIONS
macro		CLRA		{ db	  0x01
				  db	  0x00	   }
macro		CLRB		{ db	  0x02
				  db	  0x00	   }
macro		CLRC		{ db	  0x03
				  db	  0x00	   }
macro		CLRD		{ db	  0x04
				  db	  0x00	   }
macro		CLRE		{ db	  0x05
				  db	  0x00	   }
macro		SERA		{ db	  0x01
				  db	  0xFF	   }
macro		SERB		{ db	  0x02
				  db	  0xFF	   }
macro		SERC		{ db	  0x03
				  db	  0xFF	   }
macro		SERD		{ db	  0x04
				  db	  0xFF	   }
macro		SERE		{ db	  0x05
				  db	  0xFF	   }
macro		MOVAB		{ db	  0x08
				  db	  0x07	   }
macro		MOVAC		{ db	  0x0A
				  db	  0x07	   }
macro		MOVAD		{ db	  0x0C
				  db	  0x07	   }
macro		MOVAE		{ db	  0x0E
				  db	  0x07	   }
macro		MOVBA		{ db	  0x06
				  db	  0x09	   }
macro		MOVBC		{ db	  0x0A
				  db	  0x09	   }
macro		MOVBD		{ db	  0x0C
				  db	  0x09	   }
macro		MOVBE		{ db	  0x0E
				  db	  0x09	   }
macro		MOVCA		{ db	  0x06
				  db	  0x0B	   }
macro		MOVCB		{ db	  0x08
				  db	  0x0B	   }
macro		MOVCD		{ db	  0x0C
				  db	  0x0B	   }
macro		MOVCE		{ db	  0x0E
				  db	  0x0B	   }
macro		MOVDA		{ db	  0x06
				  db	  0x0D	   }
macro		MOVDB		{ db	  0x08
				  db	  0x0D	   }
macro		MOVDC		{ db	  0x0A
				  db	  0x0D	   }
macro		MOVDE		{ db	  0x0E
				  db	  0x0D	   }
macro		MOVEA		{ db	  0x06
				  db	  0x0F	   }
macro		MOVEB		{ db	  0x08
				  db	  0x0F	   }
macro		MOVEC		{ db	  0x0A
				  db	  0x0F	   }
macro		MOVED		{ db	  0x0C
				  db	  0x0F	   }
macro		POPALL		{ db	  0x0F
				  db	  0x0D
				  db	  0x0B
				  db	  0x09
				  db	  0x07	   }
macro		PUSHALL 	{ db	  0x06
				  db	  0x08
				  db	  0x0A
				  db	  0x0C
				  db	  0x0E	   }
macro		SPI0_INIT   arg { db	  0x24
				  db	  SPI0_MASTER_INIT   }
macro		SPI0	    arg { db	  0x01
				  db	  arg
				  db	  0x24
				  db	  SPI0_MASTER	  }
macro		ADC0		{ db	  0x24
				  db	  0xA0	   }
macro		ADC1		{ db	  0x24
				  db	  0xA1	   }
macro		ADC2		{ db	  0x24
				  db	  0xA2	   }
macro		ADC3		{ db	  0x24
				  db	  0xA3	   }
macro		ADC4		{ db	  0x24
				  db	  0xA4	   }
macro		ADC5		{ db	  0x24
				  db	  0xA5	   }
macro		ADC6		{ db	  0x24
				  db	  0xA6	   }
macro		ADC7		{ db	  0x24
				  db	  0xA7	   }
macro		PORT0_WRT   arg { db	  0x41		; WRIO
				  db	  0x1C		; YL
				  db	  arg		; value
				  db	  0x24		; INT
				  db	  SET_LATCH0  } ; vector
macro		PORT1_WRT   arg { db	  0x41		; WRIO
				  db	  0x1D		; YH
				  db	  arg		; value
				  db	  0x24		; INT
				  db	  SET_LATCH1  } ; vector
macro		XCHGAB		{ db	  0x06
				  db	  0x08
				  db	  0x07
				  db	  0x09	   }
macro		XCHGAC		{ db	  0x06
				  db	  0x0A
				  db	  0x07
				  db	  0x0B	   }
macro		XCHGAD		{ db	  0x06
				  db	  0x0C
				  db	  0x07
				  db	  0x0D	   }
macro		XCHGAE		{ db	  0x06
				  db	  0x0E
				  db	  0x07
				  db	  0x0F	   }
macro		XCHGBA		{ db	  0x06
				  db	  0x08
				  db	  0x07
				  db	  0x09	   }
macro		XCHGBC		{ db	  0x08
				  db	  0x0A
				  db	  0x09
				  db	  0x0B	   }
macro		XCHGBD		{ db	  0x08
				  db	  0x0C
				  db	  0x09
				  db	  0x0D	   }
macro		XCHGBE		{ db	  0x08
				  db	  0x0E
				  db	  0x09
				  db	  0x0F	   }
macro		XCHGCA		{ db	  0x06
				  db	  0x0A
				  db	  0x07
				  db	  0x0B	   }
macro		XCHGCB		{ db	  0x08
				  db	  0x0A
				  db	  0x09
				  db	  0x0B	   }
macro		XCHGCD		{ db	  0x0A
				  db	  0x0C
				  db	  0x0B
				  db	  0x0D	   }
macro		XCHGCE		{ db	  0x0A
				  db	  0x0E
				  db	  0x0B
				  db	  0x0F	   }
macro		XCHGDA		{ db	  0x06
				  db	  0x0C
				  db	  0x07
				  db	  0x0D	   }
macro		XCHGDB		{ db	  0x08
				  db	  0x0C
				  db	  0x09
				  db	  0x0D	   }
macro		XCHGDC		{ db	  0x0A
				  db	  0x0C
				  db	  0x0B
				  db	  0x0D	   }
macro		XCHGDE		{ db	  0x0C
				  db	  0x0E
				  db	  0x0D
				  db	  0x0F	   }
macro		XCHGEA		{ db	  0x06
				  db	  0x0E
				  db	  0x07
				  db	  0x0F	   }
macro		XCHGEB		{ db	  0x08
				  db	  0x0E
				  db	  0x09
				  db	  0x0F	   }
macro		XCHGEC		{ db	  0x0A
				  db	  0x0E
				  db	  0x0B
				  db	  0x0F	   }
macro		XCHGED		{ db	  0x0C
				  db	  0x0E
				  db	  0x0D
				  db	  0x0F	   }

; BŁĘDY - INSTRUKCJE ZAREZERWOWANE - FASM PRZYDZIELA KODY 80x86
macro		INSB		{ display 'INSB: reserved instruction',0x0D,0x0A }
macro		POP		{ display 'POP: reserved instruction',0x0D,0x0A }
macro		POPA		{ display 'POPA: reserved instruction',0x0D,0x0A }
macro		PUSH		{ display 'PUSH: reserved instruction',0x0D,0x0A }
macro		PUSHA		{ display 'PUSHA: reserved instruction',0x0D,0x0A }
