%TITLE "Pc Directory to XL/XE .ATR Disk Image File Creator - CHiPS bv 1998"
;**********************************************************************
;** **
;** Program : D_FILDSK **
;** Purpose : Pc Directory to XL/XE .ATR Disk Image Creator **
;** **
;** Author : B.F. Schreurs **
;** Computer High Performance Software (CHiPS) bv **
;** Date : May 15, 1998 **
;** **
;** Calls : APPEND - Glue 2 strings together **
;** DC_DIRS - Determine Current Directories **
;** DC_FILES - Determine Current Files **
;** FMSIO - File Management System Handler **
;** D_SPARTA - Create a SpartaDos disk **
;** HEX2DIGI - Convert Hex Data To Digits (Text) **
;** WSIO - Screen Handler **
;** **
;** Parameter : 1. Pass the address of the directory path where the **
;** files reside to be placed on an ATR disk image. **
;** Size is PATH_LENGTH. **
;** Parameter : 2. Pass the address of the directory path where the **
;** ATR disk image(s) will be stored. **
;** Size is PATH_LENGTH. **
;** Parameter : 3. Pass the address of the Disk density to use **
;** Size is 1 **
;** Parameter : 4. Pass the address of the Create ATR or XFD disk **
;** Size is 1 **
;** Parameter : 5. Pass the address of the DOS path **
;** Size is PATH_LENGTH. **
;** Parameter : 6. Pass the address of the Disk Format DOS or MYDOS **
;** Size is 1 **
;** Parameter : 7. Pass the address of the DOS included YN field **
;** Size is 1 **
;** Parameter : 8. Pass the address of the DUP.SYS included YN field**
;** Size is 1 **
;** Parameter : 9. Pass the address of the use of MAIN dir YN field **
;** Size is 1 **
;** Parameter :10. Pass the address of the available drives **
;** in the format ABCDE etc. **
;** Size is MAX_DRIVES **
;** In case of a CLI, this address contains: **
;** Include Subdirectories Logic Yes or No. **
;** Size is 1 **
;** Parameter :11. Pass the address of the available drives **
;** in the format [A: Mydiskette ] **
;** [C: Harddisk_C ] etc. **
;** Size is MAX_DRIVES * DRIVE_AREA_STRUCTURE_SIZE **
;** In case of a CLI, this address is irrelevant **
;** Parameter :12. Pass the address of the usage of a CLI **
;** Size is 1 **
;** **
;** Language : Turbo Assembler **
;** **
;**********************************************************************
IDEAL
JUMPS
;----------------------------------------------------------------------
;-- Functions which can be called --
;----------------------------------------------------------------------
PUBLIC D_FILDSK
;----------------------------------------------------------------------
;-- Equates --
;----------------------------------------------------------------------
include ".\equ\attrib.equ"
include ".\equ\dos.equ"
include ".\equ\fmsio.equ"
include ".\equ\keyboard.equ"
include ".\equ\sysdep.equ"
include ".\equ\video.equ"
include ".\equ\wsio.equ"
EXTRA_TABLE_FIELDS EQU 16
DIR_MAP_LENGTH EQU (MAX_DIRS_AND_FILES + EXTRA_TABLE_FIELDS) * DIR_ENTRY_LENGTH
CONFIG_FILE_LINE_SIZE EQU 256
WS_DR_D_DRIVE_SIZE EQU 672
WS_E2_ERROR_MESSAGE_SIZE EQU 40
ATR_HEADER_SIZE EQU 16
EIGHTBIT_VTOC_DISPLACEMENT_DOUBLE EQU 8
EIGHTBIT_VTOC_SLOT_DOUBLE EQU 16
EIGHTBIT_VTOC_FILES EQU 64
EIGHTBIT_VTOC_SIZE EQU 1024
EIGHTBIT_VTOC_SIZE_DOUBLE EQU 2048
EIGHTBIT_FILE_ENTRY_SIZE EQU 16
EIGHTBIT_FILE_NAME_LENGTH EQU 11
EIGHTBIT_SECTOR_PHANTOM EQU 720
EIGHTBIT_SECTOR_FREE_SPACE EQU 1040
EIGHTBIT_SECTOR_SIZE EQU 128
EIGHTBIT_SECTOR_DATA_SIZE EQU 125
EIGHTBIT_SECTOR_BITMAP_EXTENDED_MYDOS EQU 359
EIGHTBIT_SECTOR_BITMAP EQU 360
EIGHTBIT_SECTOR_VTOC_START EQU 361
EIGHTBIT_SECTOR_VTOC_END EQU 368
EIGHTBIT_SECTOR_ADDRESSABLE EQU 1023
EIGHTBIT_SECTOR_BITMAP_EXTENDED_DOS25 EQU 1024
EIGHTBIT_SECTOR_SIZE_DOUBLE EQU 256
EIGHTBIT_SECTOR_DATA_SIZE_DOUBLE EQU 253
DISK_SECTOR_BEG EQU 4
DISK_BOOTCODE_SIZE EQU 384
DISK_BOOTCODE_SECTOR_SIZE EQU 3
;---------------------------
DISK_MEDIA_TYPE_SINGLE EQU "S"
DISK_SECTORS_SINGLE EQU 720
DISK_SECTORS_SINGLE_USABLE EQU 706
;---------------------------
DISK_MEDIA_TYPE_MEDIUM EQU "M"
DISK_SECTORS_MEDIUM EQU 1040
DISK_SECTORS_MEDIUM_USABLE EQU 1009
;---------------------------
DISK_MEDIA_TYPE_DOUBLE EQU "D"
DISK_SECTORS_DOUBLE EQU 720
DISK_SECTORS_DOUBLE_USABLE EQU 706
;---------------------------
DISK_MEDIA_TYPE_QUAD EQU "Q"
DISK_SECTORS_QUAD EQU 1440
DISK_SECTORS_QUAD_USABLE EQU 1427
;---------------------------
DISK_MEDIA_TYPE_720KB EQU "7"
DISK_SECTORS_720KB EQU 2880
DISK_SECTORS_720KB_USABLE EQU 2867
;---------------------------
DISK_MEDIA_TYPE_1440KB EQU "1"
DISK_SECTORS_1440KB EQU 5760
DISK_SECTORS_1440KB_USABLE EQU 5747
;---------------------------
DISK_MEDIA_TYPE_HARDDISK EQU "H"
DISK_SECTORS_HARDDISK EQU 65535
DISK_SECTORS_HARDDISK_USABLE EQU 65522
;---------------------------
DOS25_FORMAT EQU "D"
MYDOS_FORMAT EQU "M"
MYOWNDOS_MYDOS_FORMAT EQU "O"
BEWEDOS_FORMAT EQU "B"
SPARTADOS_FORMAT EQU "S"
SPARTADOSX_FORMAT EQU "X"
MYOWNDOS_SPARTADOS_FORMAT EQU "Y"
LAST_SECTOR_IN_BITMAP_DOS25 EQU 719
LAST_SECTOR_IN_BITMAP_MYDOS EQU 943
;**********************************************************************
SEGMENT SSeg Para Stack 'STACK'
;**********************************************************************
db 256 dup (0) ; Stack
ENDS SSeg
;**********************************************************************
SEGMENT DSeg Word Public 'DATA'
;**********************************************************************
;----------------------------------------------------------------------
;-- Structures --
;----------------------------------------------------------------------
include ".\str\direntry.str"
include ".\str\dta.str"
include ".\str\fmsio.str"
include ".\str\position.str"
include ".\str\wsio.str"
;----------------------------------------------------------------------
;-- SELECT and FD --
;----------------------------------------------------------------------
;
; Atari Disk Image
;
ATARI____File FMS_Area <>
ATARI____Pathname DB PATH_LENGTH dup (SPACE)
DB 1 dup (0)
;
; Extracted Atari Disk Image (pc) File
;
PC_ATARI_File FMS_Area <>
PC_ATARI_Pathname DB PATH_LENGTH dup (SPACE)
DB 1 dup (0)
;----------------------------------------------------------------------
;-- Working Storage --
;----------------------------------------------------------------------
GLOBAL Return_Code:Byte:1
Parm_Files_ptr_es DW 1 dup (NULL)
Parm_Files_ptr_di DW 1 dup (NULL)
Parm_Location_ptr_es DW 1 dup (NULL)
Parm_Location_ptr_di DW 1 dup (NULL)
Parm_Density_ptr_es DW 1 dup (NULL)
Parm_Density_ptr_di DW 1 dup (NULL)
Parm_ATR_Or_XFD_ptr_es DW 1 dup (NULL)
Parm_ATR_Or_XFD_ptr_di DW 1 dup (NULL)
Parm_DOS_Path_ptr_es DW 1 dup (NULL)
Parm_DOS_Path_ptr_di DW 1 dup (NULL)
Parm_DISK_FORMAT_ptr_es DW 1 dup (NULL)
Parm_DISK_FORMAT_ptr_di DW 1 dup (NULL)
Parm_INCLUDE_DOS_ptr_es DW 1 dup (NULL)
Parm_INCLUDE_DOS_ptr_di DW 1 dup (NULL)
Parm_DUP_SYS_ptr_es DW 1 dup (NULL)
Parm_DUP_SYS_ptr_di DW 1 dup (NULL)
Parm_MAIN_Dir_ptr_es DW 1 dup (NULL)
Parm_MAIN_Dir_ptr_di DW 1 dup (NULL)
Parm_Drives_ptr_es DW 1 dup (NULL)
Parm_Drives_ptr_di DW 1 dup (NULL)
Parm_Drives_Txt_ptr_es DW 1 dup (NULL)
Parm_Drives_Txt_ptr_di DW 1 dup (NULL)
Parm_CLI_Used_ptr_es DW 1 dup (NULL)
Parm_CLI_Used_ptr_di DW 1 dup (NULL)
Parm_InclDirs_ptr_es DW 1 dup (NULL)
Parm_InclDirs_ptr_di DW 1 dup (NULL)
CLI_Used DB LOGIC_NO
CLI_Include_Subdirs DB "N"
D_FilDsk_Initialize DB LOGIC_NO
Disk_Media_Type DB DISK_MEDIA_TYPE_SINGLE
Requested_Format_Drives DB "1" ; 1 = "ABCDEFGHIJKL " etc.
; 2 = "A: [Floppy ]"
; "C: [HARD_DRIVE ]" etc.
Requested_Format_LibFil DB "1" ; 1 = DIRENTRY format etc.
; 2 = "..
"
; "ATARI "
Hex2digi_Requested_Format DB "2" ; "1" = With thousand seperator
; "2" = No thousand seperator
Media_Id_Buffer DB 25 dup (NULL)
Available_Drives DB MAX_DRIVES dup (SPACE)
Directories_File_Mask DB "*.* "
Search_Files_Path DB PATH_LENGTH dup (SPACE)
DB NULL ; To satisfy DOS find file
Search_Dirs_Path DB PATH_LENGTH dup (SPACE)
Search_Filemask DB FILE_NAME_LENGTH dup (SPACE)
PC_ATARI_DOS_Pathname DB PATH_LENGTH dup (SPACE)
DB NULL
Dir_DOS25 DB "DOS25\ "
Dir_MYDOS DB "MYDOS\ "
Dir_SPARTADOS DB "SPARTA\ "
Dir_SPARTADOSX DB "SPARTAX\ "
Dir_BEWEDOS DB "BEWEDOS\ "
Dir_MYOWNDOS DB "MYOWNDOS\ "
File_Name_BOOTCODE DB "BOOTCODE "
File_Name_DOS_SYS DB "DOS.SYS "
File_Name_DUP_SYS DB "DUP.SYS "
Save_cx DW ?
Sectors_Per_Progress_Bar DW ?
Dir_Memo_Occur_Curr DW MAX_DIRS dup (NULL) ; Remember from which dir we came
Dir_Memo_Occur_W_Curr DW MAX_DIRS dup (NULL) ; Remember from which dir we came
Dir_Memo_Pointer DB 0
Dir_Up DB 0 ; 0=Stay current
; 1=Go dir up
; 2=Go dir down
Disk_Present DB LOGIC_NO
Dir2atr_Error DB LOGIC_NO ; 0=No Error
; 1=Error Encountered
Atari_File_Name_Invalid_Char DB KEY_VALID_DOS ; Translate to "_"
DB NULL
Path_Spec DB PATH_LENGTH dup (SPACE)
File_Map_Entry Dir_Entry <>
Dir_Entry_Files DW 0
Dir_Entry_Files_Processed DW 0
Dir_Entry_File_Size DW 0
Dir_Entry_ptr_es DW 1 dup (NULL)
Dir_Entry_ptr_di DW 1 dup (NULL)
Dir_Entry_Fits_On_Image DB LOGIC_NO
Ws_CF_Progress_Bar_Cnt_Prev DB 0
Ws_CF_Progress_Bar_Cnt_Max DB 32
Ws_CF_Progress_Bar_Cnt_Sectors_Hi DW 0
Ws_CF_Progress_Bar_Cnt_Sectors_Lo DW 0
Ws_CF_Progress_Bar_Sectors_Hi DW 0
Ws_CF_Progress_Bar_Sectors_Lo DW 0
Ws_FF_Progress_Bar_Cnt_Prev DB 0
Ws_FF_Progress_Bar_Cnt_Max DB 34
Ws_FF_Progress_Bar_Cnt_Sectors DW 0
Ws_FF_Progress_Bar_Sectors DW 0
Disk_Sector_Size DW ?
Disk_Sector_Data_Size DW ?
ATR_Header DB 096h,002h,080h,020h,080h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
ATR_Header_Single DB 096h,002h,080h,016h,080h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
ATR_Header_Medium DB 096h,002h,080h,020h,080h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
ATR_Header_Double DB 096h,002h,0E8h,02Ch,000h,001h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
ATR_Header_Quad DB 096h,002h,0E8h,059h,000h,001h,000h,000h,000h,000h,000h,000h,000h,000h,000h,001h
ATR_Header_720KB DB 096h,002h,000h,0B4h,000h,001h,000h,000h,000h,000h,000h,000h,000h,000h,000h,001h
ATR_Header_1440KB DB 096h,002h,000h,068h,000h,001h,001h,000h,000h,000h,000h,000h,000h,000h,000h,001h
ATR_Header_Harddisk DB 096h,002h,0F0h,0FFh,000h,001h,00Fh,000h,000h,000h,000h,000h,000h,000h,000h,001h
Bitmap_DOS25 DB 002h,0F2h,003h,0F2h,003h,000h,000h,000h,000h,000h,00Fh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FEh,000h,07Fh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
Bitmap_Extended_DOS25 DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,07Fh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,07Fh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,02Fh,001h,000h,000h,000h,000h
Bitmap_MYDOS DB 003h,003h,004h,003h,004h,000h,000h,000h,000h,000h,00Fh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FEh,000h,07Fh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
Bitmap_Extended_MYDOS DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,080h,0FFh,0FFh,0FFh
DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
Last_Sector_In_Bitmap DW 0
Disk_Name DB "000"
DB ".ATR "
Disk_Seq_Nr DW 0
Disk_Seq_Nr_Present DW 0
Passed_Parameters DB PATH_LENGTH dup (0)
Disk_Path DB PATH_LENGTH dup (0) ; C:\TO
DB NULL
File_Path DB PATH_LENGTH dup (0) ; C:\FROM
DB NULL
Temp_File_Name DB " "
Disk_Mask_ATR DB "*.ATR "
Disk_Mask_XFD DB "*.XFD "
File_Mask DB "*.* "
ATR_Disk_Image_Open DB 1 dup (FALSE)
Atari_Files_Processed DB 64
File_Size_In_Bytes_Hi DW 0
File_Size_In_Bytes_Lo DW 0
File_Size_In_Sectors DW 0
Max_File_Size_In_Sectors DW 0
Disk_Sector_Start DW 4
Disk_Sector_Current DW 4
Disk_Sector_Next DW 5
Disk_Sector_Bitmap_Ext DW EIGHTBIT_SECTOR_BITMAP_EXTENDED_DOS25
Disk_Sectors DW 0
Disk_Sectors_Usable DW 0
Disk_Sectors_Left DW 0
Disk_Sectors_Available DW 0
Vtoc_Size DW 0
Bytes_In_Sector DB 0
Old_Dta_Seg DW ? ; Old Dta Segment Address
Old_Dta_Ofs DW ? ; Old Dta Segment Offset
Own_Dta Dta <>
VTOC_I_O_Buffer DB EIGHTBIT_VTOC_SIZE_DOUBLE dup (0)
VTOC_I_O_Bitmap DB EIGHTBIT_SECTOR_SIZE_DOUBLE dup (0)
VTOC_I_O_Bitmap_Extend DB EIGHTBIT_SECTOR_SIZE_DOUBLE dup (0)
Disk_I_O_Buffer DB EIGHTBIT_SECTOR_SIZE_DOUBLE dup (0)
Disk_File_ID DB 0
Remainder_Bytes DB 0
; Supported DOS format types: "D"=DOS 2.5, "M"=MYDOS 4.53, "B"=BEWEDOS,
; "S"=SPARTADOS 3.3a, "X"=SPARTADOS/X
; "O"=User's DOS - MYDOS format
; "Y"=User's DOS - SPARTADOS format
Disk_Format DB "D"
; Continue adding disks after highest disk number found? N=NO Y=YES
Disk_Adding DB "N"
;
; Atari Disk sector layout
; Byte 1 Byte 125 Byte 126 Byte 127 Byte 128
; +----------//------------+------------------------+------------------------+------------------------+
; ³ ³ 6 bits File ID ³ 10 bits for Next Sector Addr ³ Byte Count per Sector ³
; +----------//------------+------------------------+------------------------+------------------------+
;
;
; MyDos Disk sector layout
; Byte 1 Byte 125 Byte 126 Byte 127 Byte 128
; +----------//------------+------------------------+------------------------+------------------------+
; ³ ³ 16 bits for Next Sector Addr ³ Byte Count per Sector ³
; +----------//------------+------------------------+------------------------+------------------------+
;
Bootcode_Data DB EIGHTBIT_SECTOR_SIZE dup (0)
DB EIGHTBIT_SECTOR_SIZE dup (0)
DB EIGHTBIT_SECTOR_SIZE dup (0)
;----------------------------------------------------------------------
;-- --
;-- C O N F I G U R A T I O N F I L E --
;-- --
;----------------------------------------------------------------------
Config_Field_Filemask DB "*.* "
Default_Startup_Path DB "C:\"
DB PATH_LENGTH - 3 dup (SPACE)
DB NULL
Config_Startup_Path DB PATH_LENGTH dup (SPACE)
DB 1 dup (0)
DB 1 dup (0)
;----------------------------------------------------------------------
;-- --
;-- S C R E E N S S E C T I O N --
;-- --
;----------------------------------------------------------------------
Filler DB 16 dup (" ")
;**********************************************************************
; B a c k G r o u n d *
;**********************************************************************
Ws_BG DB WSIO_OPEN
DB 1 ; Start of screen ROW
DB 1 ; Start of screen COLUMN
DB 25 ; End of screen ROW
DB 80 ; End of screen COLUMN
DB ATTRIB_BLUE_WHITE ; Screen attribute
DB 0 ; Field attribute
DB 0 ; Input attribute
DB 0 ; Error attribute
DB 0 ; Mouse support
DB 0 ; Locate cursor at field
DB 0 ; Locate cursor at occurrence
DB 0 ; Locate cursor at position
DB LOGIC_NO ; Screen not changed
DB CURSOR_OFF_SCREEN ; Cursor Position Row
DB CURSOR_OFF_SCREEN ; Cursor Position Col
DW ? ; Screen Name Address HIGH
DW ? ; Screen Name Address LOW
DW ? ; Text Address HIGH
DW ? ; Text Address LOW
DW NULL ; Attribute Address HIGH
DW NULL ; Attribute Address LOW
DW ? ; Valid Keys Address HIGH
DW ? ; Valid Keys Address LOW
DW ? ; Enter Keys Address HIGH
DW ? ; Enter Keys Address LOW
DW ? ; Field Area Address HIGH
DW ? ; Field Area Address LOW
Ws_BG_Name DB "BG2 "
Ws_BG_Keys DB NULL
; 1 2 3 4 5 6 7 8
; ....5....0....5....0....5....0....5....0....5....0....5....0....5....0....5....0
Ws_BG_Text DB "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "º º"
DB "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"
DB NULL
Ws_BG_Fields DB NULL
;**********************************************************************
; F r e e W a r e *
;**********************************************************************
Ws_FW DB WSIO_DISPLAY_ONLY
DB 3 ; Start of screen ROW
DB 28 ; Start of screen COLUMN
DB 24 ; End of screen ROW
DB 79 ; End of screen COLUMN
DB ATTRIB_CYAN_WHITE ; Screen attribute
DB 0 ; Field attribute
DB 0 ; Input attribute
DB 0 ; Error attribute
DB 0 ; Mouse support
DB 0 ; Locate cursor at field
DB 0 ; Locate cursor at occurrence
DB 0 ; Locate cursor at position
DB LOGIC_NO ; Screen not changed
DB CURSOR_OFF_SCREEN ; Cursor Position Row
DB CURSOR_OFF_SCREEN ; Cursor Position Col
DW ? ; Screen Name Address HIGH
DW ? ; Screen Name Address LOW
DW ? ; Text Address HIGH
DW ? ; Text Address LOW
DW NULL ; Attribute Address HIGH
DW NULL ; Attribute Address LOW
DW ? ; Valid Keys Address HIGH
DW ? ; Valid Keys Address LOW
DW ? ; Enter Keys Address HIGH
DW ? ; Enter Keys Address LOW
DW ? ; Field Area Address HIGH
DW ? ; Field Area Address LOW
Ws_FW_Name DB "FREEWARE"
Ws_FW_Keys DB NULL
; 1 2 3 4 5 6 7 8
; ....5....0....5....0....5....0....5....0....5....0....5....0....5....0....5....0
Ws_FW_Text DB " "
DB " "
DB " DIR2ATR - Convert pc dir into .ATRs - v05.07.00 "
DB " "
DB " "
DB " "
DB " "
DB " "
DB " "
DB " Please select the appropiate Directory "
DB " (and Drive) to store the .ATR disk images. "
DB " "
DB " "
DB " "
DB " "
DB " "
DB " "
DB " "
DB " "
DB " "
DB " "
DB " "
DB NULL
Ws_FW_Fields DB NULL
;**********************************************************************
; P A t h *
;**********************************************************************
Ws_PA DB WSIO_DISPLAY_ONLY
DB 2 ; Start of screen ROW
DB 2 ; Start of screen COLUMN
DB 2 ; End of screen ROW
DB 79 ; End of screen COLUMN
DB ATTRIB_BLUE_WHITE ; Screen attribute
DB 0 ; Field attribute
DB 0 ; Input attribute
DB 0 ; Error attribute
DB 0 ; Mouse support
DB 0 ; Locate cursor at field
DB 0 ; Locate cursor at occurrence
DB 0 ; Locate cursor at position
DB LOGIC_NO ; Screen not changed
DB CURSOR_OFF_SCREEN ; Cursor Position Row
DB CURSOR_OFF_SCREEN ; Cursor Position Col
DW ? ; Screen Name Address HIGH
DW ? ; Screen Name Address LOW
DW ? ; Text Address HIGH
DW ? ; Text Address LOW
DW NULL ; Attribute Address HIGH
DW NULL ; Attribute Address LOW
DW ? ; Valid Keys Address HIGH
DW ? ; Valid Keys Address LOW
DW ? ; Enter Keys Address HIGH
DW ? ; Enter Keys Address LOW
DW ? ; Field Area Address HIGH
DW ? ; Field Area Address LOW
Ws_PA_Name DB "PATH "
Ws_PA_Keys DB KEY_ESC, KEY_ENTER, KEY_ARROW_LEFT, KEY_ARROW_RIGHT
DB NULL
; 1 2 3 4 5 6 7 8
; ....5....0....5....0....5....0....5....0....5....0....5....0....5....0....5....0
Ws_PA_Text DB "Path: "
DB NULL
;------------
; F I E L D S
;------------
;
; Path Specification
;
Ws_PA_F_Path DB 1 ; Relative ROW, NULL=End
DB 7 ; Relative COLUMN
DB 72 ; Field Size
DB 1 ; Nr of occurrences
DW 0 ; This is not a table
DB 1 ; Protected
DB 0 ;
DB 0 ;
DB 0 ;
DB 0 ;
DB 0 ;
DB 0 ;
DB 0 ;
DB 0 ;
DB 0 ;
DB 0 ;
DB LOGIC_NO ; Field changed indicator
DW ? ; Source Hi
DW ? ; ...... Lo
DW NULL ;