	SECTION	KEYUK

; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; KEYUK_asm - UK Keybord support
;	   - last modified 30/08/95

; The source necessary to implement a UK keymap.
; Amiga-QDOS defaults to a German keymap

; Amiga-QDOS sources by Rainer Kowallik
;    ...some changes by Mark J Swift

; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;  ROM header

BASE:
	DC.L	$4AFB0001	; ROM recognition code
	DC.W	PROC_DEF-BASE
	DC.W	INIT-BASE
	DC.B	0,28,'Amiga-QDOS UK Keymap v1.04 ',$A

; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;  start of ROM code

INIT:
	movem.l	a0/a3,-(sp)
	LEA	QLASCII(PC),A0	; address of keyboard table
	MOVE.L	A0,D1		; in d1
	MOVEQ	#$27,D0		; MT_ASC (Amiga-QDOS 3.10
	TRAP	#1		; and later, only)
	movem.l	(sp)+,a0/a3
	RTS

; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;  British keyboard table

QLASCII:
	DC.B	$27,'1','2','3','4','5','6','7','8','9','0','-','=','\',0,'0'
	DC.B	'q','w','e','r','t','y','u','i','o','p',$5B,$5D,0,'1','2','3'
	DC.B	'a','s','d','f','g','h','j','k','l',';','#','#',0,'4','5','6'
	DC.B	'<','z','x','c','v','b','n','m',$2C,'.','/',0,0,'7','8','9'
	DC.B	' ',194,9,10,10,27,202,0,0,0,'-',0,208,216,200,192
	DC.B	232,236,240,244,248,234,238,242,246,250,'(',')','/','*','+',27
QLASC_SH:
	DC.B	'~','!','"',$60,'$','%','^','&','*','(',')','_','+','|',0,'0'
	DC.B	'Q','W','E','R','T','Y','U','I','O','P',$7B,$7D,0,'1','2','3'
	DC.B	'A','S','D','F','G','H','J','K','L',$3A,'@',$50,0,'4','5','6'
	DC.B	'>','Z','X','C','V','B','N','M','<','>','?',0,0,'7','8','9'
	DC.B	252,194,253,254,254,127,202,0,0,0,'-',0,212,220,204,196
	DC.B	234,238,242,246,250,232,236,240,244,248,'{','}','/','*','+',0
QLASC_CT:
	DC.B	0,145,146,147,148,149,150,151,152,153,144,0,0,188,0,'0'
	DC.B	17,23,5,18,20,25,21,9,15,16,187,189,0,'1','2','3'
	DC.B	1,19,4,6,7,8,10,11,12,0,0,0,0,'4','5','6'
	DC.B	0,26,24,3,22,2,14,13,140,142,141,0,0,'7','8','9'
	DC.B	' ',194,9,10,10,128,202,0,0,0,'-',0,210,218,202,194
	DC.B	233,237,241,245,249,235,239,243,247,251,91,93,'/','*','+',0
QLASC_SC:
	DC.B	'`',129,160,131,132,133,0,0,138,136,137,0,0,28,0,'0'
	DC.B	177,183,165,178,180,186,181,169,175,176,27,29,0,'1','2','3'
	DC.B	161,179,164,166,167,168,170,171,172,0,30,0,0,'4','5','6'
	DC.B	0,185,184,163,182,162,174,173,156,158,0,0,0,'7','8','9'
	DC.B	' ',194,9,10,10,31,202,0,0,0,'-',0,214,222,206,198
	DC.B	235,239,243,247,251,233,237,241,245,249,91,93,'/','*','+',0

; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;  BASIC extensions specific to AMIGA QDOS

PROC_DEF:
	dc.w	1
	dc.w	INIT-*
	dc.b	5,'KEYUK'
	dc.w	INIT-*
	dc.b	5,'KEZUK'

	dc.w	0

	dc.w	0

	dc.w	0

; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	END
