; +++++ Start of PDM.LIB +++++ ; Last mod: 20-Aug-91 ; (The Pull Down Menue definition file) ; Definition of User Parameter Block: ; UPB+0 : X-start coordinate of text ; UPB+1 : Y-start coordinate of text ; UPB+2 : Length of window element ; UPB+3 : Number of window elements ; UPB+4 : Mode byte - see below ; UPB+5 : Optional current X-position ; UPB+6 : Optional current Y-position ; UPB+7,8 : Optional save pointer ; UPB+9,10 : Optional line input buffer ; started with number of max characters ; UPB+11 : Characters per line, including frame elements ; UPB+12 : Lines in window, including frame elements ; UPB+13 : X-start coordinate of window ; UPB+14 : Y-start coordinate of window ; UPB+15 : X-Start of text cursor for input ; UPB+16 : Y-Start of text cursor for input ; UPB+17,18 : Input text pointer ; The mode byte at UPB+4 is defined as follows ; BIT0 : Defines one of two frames ; Reset : single line frame ; Set : double line frame ; BIT1 : Defines delimiter required between elements ; Reset : No delimiter ; Set : delimiter requested ; BIT2 : Defines direction of window to build ; Reset : horizontal direction ; Set : vertical direction ; BIT3 : Defines colour of window ; Reset : normal colour ; Set : invers colour ; BIT4 : Defines to save current cursor position ; Reset : don't save position ; Set : save cursor position in UPB+5,UPB+6 ; BIT5 : Defines to save window area ; Reset : don't save area ; Set : save into area pointed to by UPB+7,8 ; BIT6 : Defines blank as delimiter ; Reset : don't use blank ; Set : use blank as delimiter ; BIT7 : Defines to restore window area after input ; Reset : don't save area ; Set : restore from area pointed to by UPB+7,8 .z80 ; ===== Constants ===== xcor equ 0 ; Parameter block offsets ycor equ 1 lenele equ 2 numele equ 3 mode equ 4 xsav equ 5 ysav equ 6 savpon equ 7 lininx equ 9 wdwchr equ 11 wdwlin equ 12 wdwpbx equ 13 wdwpby equ 14 txcur equ 15 tycur equ 16 txfld equ 17 frameb equ 0 ; Mode bits delim equ 1 direc equ 2 color equ 3 savxy equ 4 savwin equ 5 delimm equ 6 reswin equ 7 stxinv equ 0 ; Mode bits etxinv equ 1 stxins equ 2 etxins equ 3 retchr equ 4 bldfrm equ 5 posbit equ 0 ; Cursor set up bits incbit equ 1 posval equ 1 shl posbit incval equ 1 shl incbit posinc equ posval+incval frmlef equ 0 ; Frame offset frmchr equ 1 frmdel equ 2 frmrig equ 3 bdos equ 0005h bios equ 0001h ; *** BIOS functions conout equ 4 userf equ 30 teask equ 00bfh ; *** XBIOS functions kmget equ 00dah scrrun equ 00e9h tblstr equ 01780h ; Key translation tables in bank 0 cnvstr equ 0290fh ; Start of tokens in bank 0 roller equ 0b600h ; VIDEO Roller RAM tblen equ 81 ; Length of one table frmlng equ maxcol*8; Pixel bytes per line maxcol equ 90 ; JOYCE screen dimensions maxlin equ 32 scrput equ 0 ; Save window function scrget equ 1 ; Reload window function esc equ 01bh frlfup equ 083h ; Frame definitions (Single mode) frlfdw equ 086h ; Add 10h to get double frrgup equ 089h frrgdw equ 08ch frhor equ 08ah frver equ 085h frverr equ 087h frverl equ 08dh frhodw equ 08eh frhoup equ 08bh ; +++++ End of PDM.LIB +++++