Browse Source

Merge pull request #14 from wwarthen/dev

Dev
pull/290/head
b1ackmai1er 4 years ago
committed by GitHub
parent
commit
70697a762c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      Source/Apps/sysgen.z80
  2. 159
      Source/BPBIOS/diskdefs
  3. 65
      Source/CBIOS/cbios.asm
  4. 2
      Source/CBIOS/config.asm
  5. 47
      Source/CBIOS/util.asm
  6. 41
      Source/Fonts/fonts.txt
  7. 1
      Source/HBIOS/cfg_dyno.asm
  8. 1
      Source/HBIOS/cfg_ezz80.asm
  9. 1
      Source/HBIOS/cfg_master.asm
  10. 1
      Source/HBIOS/cfg_mbc.asm
  11. 1
      Source/HBIOS/cfg_mk4.asm
  12. 1
      Source/HBIOS/cfg_n8.asm
  13. 1
      Source/HBIOS/cfg_rcz180.asm
  14. 1
      Source/HBIOS/cfg_rcz280.asm
  15. 1
      Source/HBIOS/cfg_rcz80.asm
  16. 1
      Source/HBIOS/cfg_rph.asm
  17. 1
      Source/HBIOS/cfg_sbc.asm
  18. 1
      Source/HBIOS/cfg_scz180.asm
  19. 1
      Source/HBIOS/cfg_zeta.asm
  20. 1
      Source/HBIOS/cfg_zeta2.asm
  21. 17
      Source/HBIOS/hbios.asm
  22. 9
      Source/HBIOS/tms.asm
  23. 3
      Source/Images/Build.cmd
  24. 0
      Source/Images/Common/SIMH/HDIR.COM
  25. 0
      Source/Images/Common/SIMH/R.COM
  26. 0
      Source/Images/Common/SIMH/RSETSIMH.COM
  27. 0
      Source/Images/Common/SIMH/TIMER.COM
  28. 0
      Source/Images/Common/SIMH/URL.COM
  29. 0
      Source/Images/Common/SIMH/W.COM
  30. 8
      Source/Images/Makefile
  31. BIN
      Source/Images/d_dos65/u0/dbasic.co6
  32. BIN
      Source/Images/d_dos65/u0/dos65.com
  33. 448
      Source/Images/d_dos65/u0/dos65.hex
  34. 633
      Source/Images/d_dos65/u0/dos65.s19
  35. BIN
      Source/Images/d_dos65/u0/dos65drv.sys
  36. BIN
      Source/Images/d_dos65/u0/sedit.co6
  37. 20
      Source/Images/d_qpm/ReadMe.txt
  38. BIN
      Source/Images/d_qpm/u0/d.com
  39. BIN
      Source/Images/d_qpm/u0/dbginst.com
  40. BIN
      Source/Images/d_qpm/u0/debugz.com
  41. 1
      Source/Images/d_qpm/u0/debugz.hlp
  42. BIN
      Source/Images/d_qpm/u0/dhoriz.com
  43. 3
      Source/Images/d_qpm/u0/hello.qpm
  44. BIN
      Source/Images/d_qpm/u0/lz.com
  45. BIN
      Source/Images/d_qpm/u0/qbackup.com
  46. BIN
      Source/Images/d_qpm/u0/qinstall.com
  47. BIN
      Source/Images/d_qpm/u0/qpatch.com
  48. BIN
      Source/Images/d_qpm/u0/qpip.com
  49. 107
      Source/Images/d_qpm/u0/qpmclk.mac
  50. 22
      Source/Images/d_qpm/u0/qpmcmds.txt
  51. 19
      Source/Images/d_qpm/u0/qpmutils.txt
  52. BIN
      Source/Images/d_qpm/u0/qstamp.com
  53. BIN
      Source/Images/d_qpm/u0/qstampv.com
  54. BIN
      Source/Images/d_qpm/u0/qstampx.com
  55. BIN
      Source/Images/d_qpm/u0/qstat.com
  56. BIN
      Source/Images/d_qpm/u0/qsub.com
  57. BIN
      Source/Images/d_qpm/u0/qsweep.com
  58. BIN
      Source/Images/d_qpm/u0/qterm.dat
  59. BIN
      Source/Images/d_qpm/u0/qterms.lib
  60. BIN
      Source/Images/d_qpm/u0/setqterm.com
  61. BIN
      Source/Images/d_qpm/u0/tdcnfg.com
  62. 159
      Source/Images/diskdefs
  63. 52
      Source/Images/fd_qpm.txt
  64. 1
      Source/Images/hd_bp.txt
  65. 1
      Source/Images/hd_cpm22.txt
  66. 1
      Source/Images/hd_cpm3.txt
  67. 5
      Source/Images/hd_nzcom.txt
  68. 60
      Source/Images/hd_qpm.txt
  69. 1
      Source/Images/hd_zpm3.txt
  70. 1
      Source/Images/hd_zsdos.txt
  71. 159
      Source/RomDsk/diskdefs
  72. 2
      Source/ver.inc
  73. 2
      Source/ver.lib
  74. 159
      Tools/cpmtools/diskdefs
  75. BIN
      Tools/simh/altairz80.exe

2
Source/Apps/sysgen.z80

@ -22,7 +22,7 @@ DREADF EQU 20 ; DISK READ FUNCTION
;
CR EQU 0DH ; CARRIAGE RETURN
LF EQU 0AH ; LINE FEED
STKSIZE EQU 16 ; SIZE OF LOCAL STACK
STKSIZE EQU 32 ; SIZE OF LOCAL STACK
;
WBOOT EQU 1 ; ADDRESS OF WARM BOOT (OTHER PATCH ENTRY
;

159
Source/BPBIOS/diskdefs

@ -311,6 +311,7 @@ diskdef wbw_rom1024
end
# RomWBW 720K floppy media
diskdef wbw_fd720
seclen 512
tracks 160
@ -323,6 +324,7 @@ diskdef wbw_fd720
end
# RomWBW 1.44M floppy media
diskdef wbw_fd144
seclen 512
tracks 160
@ -335,6 +337,7 @@ diskdef wbw_fd144
end
# RomWBW 360K floppy media
diskdef wbw_fd360
seclen 512
tracks 80
@ -347,6 +350,7 @@ diskdef wbw_fd360
end
# RomWBW 1.20M floppy media
diskdef wbw_fd120
seclen 512
tracks 160
@ -359,7 +363,8 @@ diskdef wbw_fd120
end
# RomWBW 8320KB Hard Disk Slice (512 directory entry format)
# Legacy format, 512 dir entries, 16,630 sectors / slice
# Legacy format: 512 dir entries, 16,630 sectors / slice
diskdef wbw_hd512
seclen 512
tracks 1040
@ -372,6 +377,9 @@ diskdef wbw_hd512
end
# First 4 slices of wbw_hd512
# Assumes first slice (slice 0) starts at sector 0
# Offset of any slice (in tracks) = (1040 * <slice_num>)
diskdef wbw_hd512_0
seclen 512
tracks 1040
@ -380,45 +388,50 @@ diskdef wbw_hd512_0
maxdir 512
skew 0
boottrk 16
offset 0T
os 2.2
end
diskdef wbw_hd512_1
seclen 512
tracks 2080
tracks 1040
sectrk 16
blocksize 4096
maxdir 512
skew 0
boottrk 1056
boottrk 16
offset 1040T
os 2.2
end
diskdef wbw_hd512_2
seclen 512
tracks 3120
tracks 1040
sectrk 16
blocksize 4096
maxdir 512
skew 0
boottrk 2096
boottrk 16
offset 2080T
os 2.2
end
diskdef wbw_hd512_3
seclen 512
tracks 4160
tracks 1040
sectrk 16
blocksize 4096
maxdir 512
skew 0
boottrk 3136
boottrk 16
offset 3120T
os 2.2
end
# RomWBW 8MB Hard Disk (1024 directory entry format)
# New format, 1024 dir entries, 16,384 sectors / slice
# New format: 1024 dir entries, 16,384 sectors / slice
# Pure filesystem image, no MBR prefix
diskdef wbw_hd1024
seclen 512
tracks 1024
@ -431,110 +444,124 @@ diskdef wbw_hd1024
end
# First 4 slices of wbw_hd1024
# Assumes 1MB prefix (2048 sectors)
# Assumes standard 1MB prefix
# Offset of any slice (in tracks) = 128 + (1024 * <slice_num)
diskdef wbw_hd1024_0
seclen 512
tracks 1040
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 130
boottrk 2
offset 128T
os 2.2
end
diskdef wbw_hd1024_1
seclen 512
tracks 2064
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 1154
boottrk 2
offset 1152T
os 2.2
end
diskdef wbw_hd1024_2
seclen 512
tracks 3112
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 2178
boottrk 2
offset 2176T
os 2.2
end
diskdef wbw_hd1024_3
seclen 512
tracks 4136
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 3202
boottrk 2
offset 3200T
os 2.2
end
# SmallZ80 Hard Disk Image
# 5 slices
diskdef smz80_hd0
seclen 512
tracks 1034
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 10
boottrk 0
offset 10T
os 2.2
end
diskdef smz80_hd1
seclen 512
tracks 2058
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 1034
boottrk 0
offset 1034T
os 2.2
end
diskdef smz80_hd2
seclen 512
tracks 1034
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 2058
boottrk 0
offset 2058T
os 2.2
end
diskdef smz80_hd3
seclen 512
tracks 4106
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 3082
boottrk 0
offset 3082T
os 2.2
end
diskdef smz80_hd4
seclen 512
tracks 5130
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 4106
boottrk 0
offset 4106T
os 2.2
end
# RC2014 standard hard disk image
# RC2014 standard (Grant Searle) hard disk image
# Slices A-P
# Offset of slice (in tracks) = (512 * <slice_num>)
diskdef rc2014a
seclen 512
tracks 512
@ -542,155 +569,171 @@ diskdef rc2014a
blocksize 4096
maxdir 512
boottrk 1
offset 0T
os 2.2
end
diskdef rc2014b
seclen 512
tracks 1024
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 512
boottrk 0
offset 512T
os 2.2
end
diskdef rc2014c
seclen 512
tracks 1536
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 1024
boottrk 0
offset 1024T
os 2.2
end
diskdef rc2014d
seclen 512
tracks 2048
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 1536
boottrk 0
offset 1536T
os 2.2
end
diskdef rc2014e
seclen 512
tracks 2560
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 2048
boottrk 0
offset 2048T
os 2.2
end
diskdef rc2014f
seclen 512
tracks 3072
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 2560
boottrk 0
offset 2560T
os 2.2
end
diskdef rc2014g
seclen 512
tracks 3584
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 3072
boottrk 0
offset 3072T
os 2.2
end
diskdef rc2014h
seclen 512
tracks 4096
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 3584
boottrk 0
offset 3584T
os 2.2
end
diskdef rc2014i
seclen 512
tracks 4608
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 4096
boottrk 0
offset 4096T
os 2.2
end
diskdef rc2014j
seclen 512
tracks 5120
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 4608
boottrk 0
offset 4608T
os 2.2
end
diskdef rc2014k
seclen 512
tracks 5632
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 5120
boottrk 0
offset 5120T
os 2.2
end
diskdef rc2014l
seclen 512
tracks 6144
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 5632
boottrk 0
offset 5632T
os 2.2
end
diskdef rc2014m
seclen 512
tracks 6656
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 6144
boottrk 0
offset 6144T
os 2.2
end
diskdef rc2014n
seclen 512
tracks 7168
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 6656
boottrk 0
offset 6656T
os 2.2
end
diskdef rc2014o
seclen 512
tracks 7680
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 7168
boottrk 0
offset 7168T
os 2.2
end
diskdef rc2014p
seclen 512
tracks 7808
tracks 128
sectrk 32
blocksize 4096
maxdir 512
boottrk 7680
boottrk 0
offset 7680T
os 2.2
end

65
Source/CBIOS/cbios.asm

@ -144,6 +144,43 @@ CBXSIZ .EQU $ - CBX
.ECHO " bytes.\n"
;
;==================================================================================================
; TIMDAT ROUTINE FOR QP/M
;==================================================================================================
;
#IFDEF PLTWBW
#IF QPMTIMDAT
;
TIMDAT:
; GET CURRENT DATE/TIME FROM RTC INTO BUFFER
LD B,BF_RTCGETTIM ; HBIOS GET TIME FUNCTION
LD HL,CLKDAT ; POINTER TO BUFFER
RST 08 ; DO IT
;
; CONVERT ALL BYTES FROM BCD TO BINARY
LD HL,CLKDAT ; BUFFER
LD B,7 ; DO 7 BYTES
TIMDAT1:
LD A,(HL)
CALL BCD2BYTE
LD (HL),A
INC HL
DJNZ TIMDAT1
;
; SWAP BYTES 0 & 2 TO MAKE BUFFER INTO QP/M ORDER
LD A,(CLKDAT+0)
PUSH AF
LD A,(CLKDAT+2)
LD (CLKDAT+0),A
POP AF
LD (CLKDAT+2),A
;
LD HL,CLKDAT ; RETURN BUFFER ADDRESS
RET
;
#ENDIF
#ENDIF
;
;==================================================================================================
; CHARACTER DEVICE MAPPING
;==================================================================================================
;
@ -346,11 +383,13 @@ BOOT:
#ENDIF
CALL RESCPM ; RESET CPM
;
#IF DEBUG
#IF AUTOSUBMIT
#IF DEBUG
CALL PRTSTRD
.DB "\r\nPerforming Auto Submit...$"
#ENDIF
#ENDIF
CALL AUTOSUB ; PREP AUTO SUBMIT, IF APPROPRIATE
#ENDIF
;
#IF DEBUG
CALL PRTSTRD
@ -1718,6 +1757,12 @@ SLICE .DB 0 ; CURRENT SLICE
SPS .DW 0 ; SECTORS PER SLICE
STKSAV .DW 0 ; TEMP SAVED STACK POINTER
;
#IFDEF PLTWBW
#IF QPMTIMDAT
CLKDAT .FILL 7,0 ; RTC CLOCK DATA BUFFER
#ENDIF
#ENDIF
;
#IFDEF PLTWBW
BNKBIOS .DB 0 ; BIOS BANK ID
BNKUSER .DB 0 ; USER BANK ID
@ -2317,6 +2362,17 @@ INIT3:
LD DE,STR_TPA2 ; AND TPA SUFFIX
CALL WRITESTR
CALL NEWLINE ; FORMATTING
;
; SETUP QP/M TIMDAT ROUTINE VECTOR IN ZERO PAGE AT 0x0010
;
#IFDEF PLTWBW
#IF QPMTIMDAT
LD A,$C3 ; JP INSTRUCTION
LD ($0010),A ; STORE AT 0x0008
LD HL,TIMDAT ; ROUTINE ADDRESS
LD ($0011),HL ; SET VECTOR
#ENDIF
#ENDIF
;
RET ; DONE
;
@ -2328,6 +2384,9 @@ ERR_BIOMEM:
;
;
;__________________________________________________________________________________________________
;
#IF AUTOSUBMIT
;
AUTOSUB:
;
; SETUP AUTO SUBMIT COMMAND (IF REQUIRED FILES EXIST)
@ -2359,6 +2418,8 @@ AUTOSUB:
LDIR ; PATCH COMMAND LINE INTO CCP
RET ; DONE
;
#ENDIF
;
;
;__________________________________________________________________________________________________
DEV_INIT:

2
Source/CBIOS/config.asm

@ -2,6 +2,8 @@
; CBIOS BUILD CONFIGURATION OPTIONS
;
CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA)
AUTOSUBMIT .EQU TRUE ; PROCESS PROFILE.SUB AT STARTUP
QPMTIMDAT .EQU TRUE ; SUPPORT QP/M TIMDAT ROUTINE
WRTCACHE .EQU TRUE ; ENABLE WRITE CACHING IN CBIOS (DE)BLOCKING ALGORITHM
DSKTRACE .EQU FALSE ; ENABLE TRACING OF CBIOS DISK FUNCTION CALLS
DEBUG .EQU FALSE ; MISCELLANEOUS DEBUG TRACING

47
Source/CBIOS/util.asm

@ -460,7 +460,52 @@ HEXCONV:
DAA
ADC A,40H
DAA
RET
RET
;
;****************************
; A(BCD) => A(BIN)
; [00H..99H] -> [0..99]
;****************************
;
BCD2BYTE:
PUSH BC
LD C,A
AND 0F0H
SRL A
LD B,A
SRL A
SRL A
ADD A,B
LD B,A
LD A,C
AND 0FH
ADD A,B
POP BC
RET
;
;*****************************
; A(BIN) => A(BCD)
; [0..99] => [00H..99H]
;*****************************
;
BYTE2BCD:
PUSH BC
LD B,10
LD C,-1
BYTE2BCD1:
INC C
SUB B
JR NC,BYTE2BCD1
ADD A,B
LD B,A
LD A,C
ADD A,A
ADD A,A
ADD A,A
ADD A,A
OR B
POP BC
RET
;
; PRINT A BYTE BUFFER IN HEX POINTED TO BY DE
; REGISTER A HAS SIZE OF BUFFER

41
Source/Fonts/fonts.txt

@ -1,15 +1,36 @@
Font files for ROMWBW.
There are three fonts associated with ROMWBW supported hardware - ECB-SCG, ECB-CVDU and the ECB-VGA3.
Name Format Size Board & Display Mode
------------------------------------------------------------------------------------
font8x8u.bin 8x8 2048 ECB-SCG, ECB-VGA3 (80x60)
font8x11u.bin 8x11 2816 ECB-VGA3 (80x43)
font8x16u.bin 8x16 4096 ECB-CVDU (80x25), ECB-VGA3 (80x24, 80x25, 80x30), MBC-VDC
fontcgau.bin 8x8 4096 ECB-CVDU (80x25), MBC-VDC
For inclusion in HBIOS the .bin format files must be convert to assembler .asm format.
8x8: 8x8 cell, mostly IBM CGA, first 16 differ, thin font
8x11: 8x11 cell, possibly VT-100?
8x16: 8x16 cell, IBM MDA
CGA: 8x16 cell, IBM CGA, normal (thick) CGA font, rows 8-15 are unused padding
There are multiple fonts associated with ROMWBW supported hardware:
Board Driver Chip
-------- -------- --------
ECB-SCG tms.asm 9918
ECB-VDU vdu.asm 6545
ECB-CVDU cvdu.asm 8563
ECB-VGA3 vga.asm 6445
MBC-VDC cvdu.asm 8568
MBC-VDP tms.asm 9938/9958
Name Font Storage Size Board & Display Mode
--------------------------------------------------------------------------------------------
font8x8u.bin 6x8 8x8 2048 ECB-SCG, ECB-VGA3 (80x60), MBC-VDP
font8x11u.bin 8x11 8x11 2816 ECB-VGA3 (80x43)
font8x16u.bin 8x14 8x16 4096 ECB-CVDU (80x25), ECB-VGA3 (80x24, 80x25, 80x30), MBC-VDC
fontcgau.bin 8x8 8x16 4096 ECB-CVDU (80x25), MBC-VDC
Notes:
- The CGA font is roughly equivalent to the 8x8 font, but padded out to 8x16. Scan lines
8-15 are unused. The CVDU driver (8563 chip) always uses fonts defined in an 8x16 cell.
When the CVDU is configured for use with a CGA monitor, an 8x8 character cell is used,
but the font definition must still be 8x16. The CGA font is used for this.
For inclusion in HBIOS the .bin format files must be converted to assembler .asm format.
This is acheived using the fonttool utility and is completed automatically as part of the build process.
i.e. fonts files are converted to .asm format and then copied to the HBIOS directory.

1
Source/HBIOS/cfg_dyno.asm

@ -24,6 +24,7 @@ USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW

1
Source/HBIOS/cfg_ezz80.asm

@ -24,6 +24,7 @@ USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW

1
Source/HBIOS/cfg_master.asm

@ -21,6 +21,7 @@ USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW

1
Source/HBIOS/cfg_mbc.asm

@ -24,6 +24,7 @@ USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_HILO ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_LOW ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW

1
Source/HBIOS/cfg_mk4.asm

@ -24,6 +24,7 @@ USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW

1
Source/HBIOS/cfg_n8.asm

@ -24,6 +24,7 @@ USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW

1
Source/HBIOS/cfg_rcz180.asm

@ -24,6 +24,7 @@ USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW

1
Source/HBIOS/cfg_rcz280.asm

@ -24,6 +24,7 @@ USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW

1
Source/HBIOS/cfg_rcz80.asm

@ -24,6 +24,7 @@ USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW

1
Source/HBIOS/cfg_rph.asm

@ -24,6 +24,7 @@ USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW

1
Source/HBIOS/cfg_sbc.asm

@ -24,6 +24,7 @@ USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW

1
Source/HBIOS/cfg_scz180.asm

@ -24,6 +24,7 @@ USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW

1
Source/HBIOS/cfg_zeta.asm

@ -24,6 +24,7 @@ USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW

1
Source/HBIOS/cfg_zeta2.asm

@ -24,6 +24,7 @@ USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT
;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW

17
Source/HBIOS/hbios.asm

@ -2227,6 +2227,21 @@ NOT_REC_M0:
DIAG(%01111111)
LED(%00000011)
;
;
;
;
#IF (BOOT_DELAY > 100)
.ECHO "*** ERROR: INVALID BOOT_DELAY (BOOT_DELAY > 100)!!!\n"
!!! ; FORCE AN ASSEMBLY ERROR
#ENDIF
;
#IF (BOOT_DELAY > 0)
LD B,BOOT_DELAY * 2 ; SCALE TO 1/2 SEC
HB_BOOTDLY:
CALL LDELAY ; 1/2 SECOND DELAY
DJNZ HB_BOOTDLY ; LOOP TILL DONE
#ENDIF
;
; PRIOR TO THIS POINT, CONSOLE I/O WAS NOT AVAILABLE UNLESS DIRECTED TO DEBUG OUTPUT I.E. XIO
; NOW THAT HBIOS IS READY, SET THE CONSOLE UNIT TO ACTIVATE CONSOLE I/O
; VIA HBIOS.
@ -5920,7 +5935,7 @@ SIZ_FONTS .EQU $ - ORG_FONTS
.ECHO SIZ_FONTS
.ECHO " bytes.\n"
;
#IF (CVDUENABLE | VGAENABLE) | GDCENABLE | (TMSENABLE & (TMSMODE == TMSMODE_RCKBD))
#IF (CVDUENABLE | VGAENABLE) | GDCENABLE | (TMSENABLE & ((TMSMODE == TMSMODE_RCKBD) | (TMSMODE == TMSMODE_MBC)))
ORG_KBD .EQU $
#INCLUDE "kbd.asm"
SIZ_KBD .EQU $ - ORG_KBD

9
Source/HBIOS/tms.asm

@ -929,9 +929,10 @@ TMS_IDAT:
#IF ((TMSMODE == TMSMODE_RCKBD) | (TMSMODE == TMSMODE_MBC))
.DB TMS_KBDST ; 8242 CMD/STATUS PORT
.DB TMS_KBDDATA ; 8242 DATA PORT
.DB 0 ; FILLER
.DB 0 ; FILER
#ENDIF
TMS_PORTS:
;
.DB TMS_DATREG
.DB TMS_CMDREG
;
@ -1012,7 +1013,3 @@ TMS_INITVDULEN .EQU $ - TMS_INITVDU
#IF (CPUFAM == CPU_Z180)
TMS_DCNTL .DB $00 ; SAVE Z180 DCNTL AS NEEDED
#ENDIF
;
.ECHO "TMS instance data occupies "
.ECHO $ - TMS_IDAT
.ECHO " bytes\n"

3
Source/Images/Build.cmd

@ -13,6 +13,7 @@ call BuildDisk.cmd nzcom fd wbw_fd144 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd cpm3 fd wbw_fd144 ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd zpm3 fd wbw_fd144 ..\zpm3\zpmldr.sys || exit /b
call BuildDisk.cmd ws4 fd wbw_fd144 || exit /b
call BuildDisk.cmd qpm fd wbw_fd144 ..\cpm22\cpm_wbw.sys || exit /b
echo.
echo Building Hard Disk Images (512 directory entry format)...
@ -24,6 +25,7 @@ call BuildDisk.cmd cpm3 hd wbw_hd512 ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd zpm3 hd wbw_hd512 ..\zpm3\zpmldr.sys || exit /b
call BuildDisk.cmd ws4 hd wbw_hd512 || exit /b
call BuildDisk.cmd dos65 hd wbw_hd512 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd qpm hd wbw_hd512 ..\cpm22\cpm_wbw.sys || exit /b
if exist ..\BPBIOS\bpbio-ww.rel call BuildDisk.cmd bp hd wbw_hd512 || exit /b
@ -40,6 +42,7 @@ call BuildDisk.cmd nzcom hd wbw_hd1024 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd cpm3 hd wbw_hd1024 ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd zpm3 hd wbw_hd1024 ..\zpm3\zpmldr.sys || exit /b
call BuildDisk.cmd ws4 hd wbw_hd1024 || exit /b
call BuildDisk.cmd qpm hd wbw_hd1024 ..\cpm22\cpm_wbw.sys || exit /b
if exist ..\BPBIOS\bpbio-ww.rel call BuildDisk.cmd bp hd wbw_hd1024 || exit /b

0
Source/Images/SIMH/HDIR.COM → Source/Images/Common/SIMH/HDIR.COM

0
Source/Images/SIMH/R.COM → Source/Images/Common/SIMH/R.COM

0
Source/Images/SIMH/RSETSIMH.COM → Source/Images/Common/SIMH/RSETSIMH.COM

0
Source/Images/SIMH/TIMER.COM → Source/Images/Common/SIMH/TIMER.COM

0
Source/Images/SIMH/URL.COM → Source/Images/Common/SIMH/URL.COM

0
Source/Images/SIMH/W.COM → Source/Images/Common/SIMH/W.COM

8
Source/Images/Makefile

@ -4,7 +4,7 @@
SYSTEMS = ../CPM22/cpm_wbw.sys ../ZSDOS/zsys_wbw.sys ../CPM3/cpmldr.sys ../ZPM3/zpmldr.sys
FDIMGS = fd144_cpm22.img fd144_zsdos.img fd144_nzcom.img \
fd144_cpm3.img fd144_zpm3.img fd144_ws4.img
fd144_cpm3.img fd144_zpm3.img fd144_ws4.img fd144_qpm.img
HD512IMGS = hd512_cpm22.img hd512_zsdos.img hd512_nzcom.img \
hd512_cpm3.img hd512_zpm3.img hd512_ws4.img
# HDIMGS += hd512_bp.img
@ -16,8 +16,8 @@ HD512PREFIX =
HD1024PREFIX = hd1024_prefix.dat
OBJECTS = $(FDIMGS)
OBJECTS += $(HD512IMGS) hd512_dos65.img hd512_combo.img $(HD512PREFIX)
OBJECTS += $(HD1024IMGS) hd1024_combo.img $(HD1024PREFIX)
OBJECTS += $(HD512IMGS) hd512_combo.img hd512_dos65.img hd512_qpm.img$(HD512PREFIX)
OBJECTS += $(HD1024IMGS) hd1024_combo.img hd1024_qpm.img $(HD1024PREFIX)
OTHERS = blank144 blankhd512 blankhd1024
@ -70,7 +70,7 @@ blankhd1024:
%.img: $(SYSTEMS) blank144 blankhd512 blankhd1024 Makefile
@sys= ; \
case $@ in \
(*cpm22*) sys=../CPM22/cpm_wbw.sys;; \
(*cpm22* | *qpm*) sys=../CPM22/cpm_wbw.sys;; \
(*zsdos* | *nzcom* | *dos65*) sys=../ZSDOS/zsys_wbw.sys;; \
(*cpm3*) sys=../CPM3/cpmldr.sys;; \
(*zpm3*) sys=../ZPM3/zpmldr.sys;; \

BIN
Source/Images/d_dos65/u0/dbasic.co6

Binary file not shown.

BIN
Source/Images/d_dos65/u0/dos65.com

Binary file not shown.

448
Source/Images/d_dos65/u0/dos65.hex

@ -1,321 +1,129 @@
:203800004C21CED84820FCBB682000BCAD92CC4A4A4A4A8DF6BFAD43BFD03CA2FF9AD8A946
:203820001120F0BB2069BCA93E20F0BBAD8BBEAC8CBE20F4BBA000AE43BFF0DFB944BFC956
:20384000619009C97BB005295F9944BFC8CAD0EC8A9944BF8DE7BF20A4BD202BBC8DE8BFEE
:2038600020A5BCD064ADE9BFF004A915D02EA900AA8DECBFA001BD1DBFF01AD9C3BFD00490
:20388000E8C8D0F2E8BD1DBFD0FAE8EEECBFADECBFC907D0DFADECBF0A6DECBFAAE8BD96B4
:2038A000BEBC97BE8DEABF8CEBBFAD8FBE48AD8EBE486CEABF2034BC20A5BCADC4BF38E953
:2038C000200DE9BFD0034C1BB820E1BBACEDBFB944BFF00AC920F0062072BCC8D0F1A93FB9
:2038E00020F0BB4C1BB820A5BC20ABBDA920CDC4BFD00FCDCCBFD00AA93FA00B99C3BF8875
:20390000D0FA205FBC3058ADF6BF8DF5BF20E1BB206CBCA93A20F0BBADEEBF0A0A0A0A0A39
:203920002960A8C8A201B92801297F2072BCC8E8E00CF00CE009D0EEA92E2072BC4C26B984
:2039400020F8BBD0192097BC2010BC8DEEBF300ECEF5BFF0B220EEBB20EEBB4C10B960A009
:20396000344CC0BD20A5BCD057209EBC20ABBD205FBC304F20E0BDACE7BFB944BFC920D062
:203980003C20A5BCD037ADE9BFF012CDF2BFF00D38E901CDE8BFD025ADF2BFD020ADF2BF5A
:2039A0008DE9BFA9008DD3BF20ABBD205FBC100920E0BD2097BC4C27BCA03ED0082034BC09
:2039C0004CC9B8A0344CC0BDA900A0088DFCBF8CFDBF2005BED07A8DF1BF0DF1BFF07220F3
:2039E000A5BCD06D20E0BD209EBC2005BEAEC4BFE020F00A8DFCBF8CFDBFC002905320F39C
:203A0000BD20ABBD2014BC2097BC2023BC3045204ABC304418ADFDBF6DF1BF8DF1BFADFC6C
:203A2000BFACFDBF8DF3BF8CF4BF20CACA2097BC201FBCD02718ADF3BFACF4BF6980900376
:203A4000C8F005CCF1BFD0DC2097BC2008BC3010604CC9B8A001D00AA055D006A062D002A3
:203A6000A00A4CC0BD20A5BCC90BD013A01820C0BD20EABB4820E1BB68295FC959D0D120AA
:203A8000ABBD4C14BC20A5BCD0302047BC303220E1BB2059BCF00410203022A200BD2801AD
:203AA000C91AF0152072BC20F8BBD008AEEFBFE810EB30DEA206200301604CC9B8A029D046
:203AC00002A0344CC0BD20D5BD20A5BCD0EC20E0BD209EBC2005BEAEC4BFE020F00320D921
:203AE000BD20F3BD2047BC30D8ADF3BFACF4BF202FBC2059BCD00620B7CA4CEFBA30BE4C6A
:203B0000A4BD2005BEAEC4BFE020F0034C76BB4C72BBADC4BFC920D011ADE9BFF00938E9DE
:203B2000018DE8BF2000BC4CB8B8ADCCBFC920F0034CD9BBA202BDE4BF9DCCBFCA10F720A7
:203B400047BC10034CD6BB20D5BD202FBC2059BCD01E20B7CACD91BE9007CC92BE90EBB0F7
:203B600007CC92BE90E4F0E220A4BD2059BCF06C306AA900A0088DCBBB8CCCBB2034BC2089
:203B8000A5BCADE9BF8DC3BFA21020A7BCADE9BF8DD3BFA0008CE3BFA220BDC3BF9D070143
:203BA000CA10F7E8B944BFF007C920F003C8D0F4A9008D2801B944BF9D2901F007E8C8EEBA
:203BC0002801D0F120E1BB20A4BD200008ADE8BF2000BC4C1BB82034BC4CC9B8A04A4CC074
:203BE000BDA90D20F0BBA90AD006A201D043A920A202D03DA20AD039A20BD035A20DD031B7
:203C0000A20ED02DA20FD029A210D025A211D021A212D01D2097BCA213D016A214D012A219
:203C200015D00EA216D00AA217D006A219D002A21A4C0301ADE9BFF01F38E901CDE8BFF0ED
:203C400017ADE8BF4C00BC20ABBDA9008DE3BF2097BC2004BC8DEEBF602097BC4C1BBC20EE
:203C600097BC200CBC8DEEBF6020E1BB202BBC1869418EEFBF8CF0BF20C1C8B01048AD9085
:203C8000CC20F0BB68094020F0BBAD8FCC20F0BBACF0BFAEEFBF60AD94BEAC95BE60ADE933
:203CA000BF8DF2BF60A2008A48A9008DE9BFACE7BF2072BD8CEDBFF00D290F48C8B944BF7B
:203CC000C93AF00A6888ADE8BF9DC3BF1008688DE9BF9DC3BFC8A9088DECBF207FBDF01D96
:203CE000E8C92AD007A93F9DC3BFD0049DC3BFC8CEECBFD0E6207FBDF011C8D0F8E8A92083
:203D00009DC3BFCEECBFD0F5B944BF48A9038DECBF68C92ED023C8207FBDF01DE8C92AD030
:203D200007A93F9DC3BFD0049DC3BFC8CEECBFD0E6207FBDF00EC8D0F8E8A9209DC3BFCE03
:203D4000ECBFD0F5A9038DECBFE8A9009DC3BFCEECBFD0F58CE7BFA9008DECBF68A8A20B51
:203D6000C8B9C3BFC93FD003EEECBFCAD0F2ADECBF60B944BFF007C920D003C8D0F460B974
:203D800044BFF01CC9209019F016C93DF012C92EF00EC93AF00AC93BF006C93CF002C93E8A
:203DA000604CC9B8A928A0014C2FBCA9008DC3BFADE9BFF01F38E901CDE8BFF0174C00BC6C
:203DC0008CF0BF20E1BBACF0BFB9AFBEF0062072BCC8D0F560A900A0088DF3BF8CF4BF600B
:203DE000A20FBDC3BFBCD3BF9DD3BF989DC3BFCA10F060A20FBDD3BF9DC3BFCA10F7ADF2E6
:203E0000BF8DE9BF60A9098DF7BF20A5BCADE9BFD0678DF8BF8DF9BFA8B9C4BFC924D0061C
:203E2000A90F8DF7BFC8C8B9C3BFC920F04E20A1CA900E20ABCAB041E906A20FECF7BFD0D4
:203E400038290F48ADF8BF8DFABFADF9BF8DFBBFAEF7BF18ADF8BF6DFABF8DF8BFADF9BFA5
:203E60006DFBBF8DF9BFB011CAD0E9686DF8BF8DF8BF90B2EEF9BFD0AD4CC9B8ADCCBFC98F
:203E800020D0F6ADF8BFACF9BF604C42BF4CB4B84C03B84CC3BF4CE6B84CC8B94C65BA4CCC
:203EA00085BA4C64B94C02BB4CC6BA4C12BBFF004E4F2053504143450043414E204E4F5461
:203EC00020434C4F534500414C4C2046494C45532028592F4E293F00524541442045525235
:203EE0004F52004E4F5420464F554E440046494C4520455849535453004C4F41442045529D
:203F0000524F520043414E204E4F54204F50454E005752495445204552524F520044495265
:203F20002000534156452000455241200054595045200052454E2000474F20004C4F4144DD
:203F400020007F0000000000000000000000000000000000000000000000000000000000C2
:203F6000000000000000000000000000000000000000000000000000000000000000000041
:203F8000000000000000000000000000000000000000000000000000000000000000000021
:203FA000000000000000000000000000000000000000000000000000000000000000000001
:203FC0000000000000000000000000000000000000000000000000000000000000000000E1
:203FE00000000000434F360000000000000000000000000008000009000000000008D88D7B
:2040000098CB8DDCCB8C99CB8CDDCB8E9ACBE024B050BD54CBF008A9FF8D97CB20E9C2A90F
:20402000008D9FCBAD9ACB0A6D9ACBAAE8BD76C0BC77C08DA0CB8CA1CBADE4CA48ADE3CA36
:2040400048AD98CBAC99CB6CA0CB8D9BCB8C9CCBAD9FCBF00DA0009102ADA9CB8D98CB20C3
:2040600004C32C97CB100820E9C2A9008D97CBAC9CCBAD9BCB604CEAC04CDBC24C19C94C91
:204080006BCC4C68CC4C65CC4C8BC84C1FC14C2AC14CD0C84C85C94C9BC84C83CC4C32C3E1
:2040A0004C04C34CAFC54CEAC54C0EC64C3AC14CA2C14C42C14CC7C14CB7C64C80C14C3225
:2040C000C14C2EC14CF9C24C23C14C6DC54C36C14CE2C04CE6C04CFAC04C0EC14C18C14C7A
:2040E00089CC8D95CB60AD95CB602C97CB100820E9C2A9008D97CB4C59CC2086CC8DC5CBA8
:204100008CC6CB8EC7CB8A2980A8ADC5CB60ADC7CB297FA8ADC6CB60AD6CC3AC6DC360ADF8
:20412000060160ADD4CBACD5CB608D060160ADAACB60ADABCB60ADACCB602012C3A90D4CAC
:204140001BC62012C3208FC5ADB5CBCDB6CB9013C980F003A90160A20120F3C6C900D0F4A8
:204160008DB5CB2084C7ADB0CB0DB1CBD003A902602066C620ACC4203DC8209EC5A90060AB
:204180002012C3201AC8A90C2013C63014A900A0109102A90CA2102086C6A90C201BC610B1
:2041A000EC602012C3201AC8A90C2013C63017A20020EAC7ACAFCBAD53CB91042043C8A9FA
:2041C0000C201BC610E9602012C3201AC8208FC5ADB5CBC9809003A901602084C7A9008D5A
:2041E000D9CBADB0CB0DB1CBF0034CAAC2A9028DD9CBAD91CB48C910F01AA8882CC0CB10B8
:204200000188B1028DB0CBC8A9002CC0CB1002B1028DB1CBADB0CB8DA5CB8DA7CBADB1CB17
:204220008DA6CB8DA8CBADA7CBCDCBCBD008ACA8CBCCCCCBF012EEA7CBD003EEA8CBADA5BC
:20424000CB0DA6CBF018D00BADA5CB0DA6CBD003A8F030ADA5CBD003CEA6CBCEA5CBADA53D
:20426000CBACA6CB2051C5D009ADA5CBACA6CB4C83C2ADA7CBACA8CB2051C5D0A9ADA7CB70
:20428000ACA8CB8DB0CB8CB1CB0DB1CBD00468A90260ADB0CB2065C568A8ADB0CB9102AD35
:2042A000B1CBC82CC0CB100291022066C620ACC42049C8AEB5CBECB6CB9005E88EB6CBCA60
:2042C000E07FD011209EC5A20020F3C6C900D00AA9FF8DB5CB209EC5A90060208BC820C168
:2042E000C89005482019C96860A207B502BCDCCB9DDCCB9402CA10F360A502A4038504842A
:20430000054C7ACCAD98CBCDAACBF0EC8DAACB4C45C3A000B102F01938E90129078D98CBE4
:20432000ADAACB8DA9CBB1028D9FCB9891022004C360A9028DAACB8DABCBA928A001850295
:20434000840320F9C2ADAACBC908900F206CC8ADE6CAACE7CA20D0C84CEAC02071CC8D6C57
:20436000C38C6DC30D6DC3F0E3A00DB9FFFF99CBCB8810F7ADD1CBA81869038DC4CBB98BB7
:20438000CB8DC3CBADD2CB8DC1CBADD3CB4A6EC1CB4A6EC1CB8DC2CBA9008DC0CBADCCCBE2
:2043A000F00588386EC0CBB988CB8DDACB38A91FF988CB8DDBCBAEAACBBD80CB2DABCBD0F4
:2043C0000CBD80CB0DABCB8DABCB4CCEC360202EC8ADCBCB8DC8CBADCCCBA2034A6EC8CB59
:2043E000CAD0F98DC9CBEEC8CBD003EEC9CBADD4CBACD5CB85068407A000A9009106E606B9
:20440000D002E607ADC8CBD003CEC9CBCEC8CBADC8CB0DC9CBD0E3ADC1CB8DC8CBADC2CBE0
:20442000AEC4CB4A6EC8CBCAD0F98DC9CBEEC8CBD003EEC9CB8EB0CB8EB1CBADB0CBACB1D2
:20444000CB2065C5EEB0CBD003EEB1CBADC8CBD003CEC9CBCEC8CBADC8CB0DC9CBD0DC201E
:204460007EC420DEC7A2012026C73011ACAFCBB104C9E5F0F0A20120EAC74C65C460206E04
:20448000CCADCFCBACD0CB4C74CCADAECB8DB1CBADADCB4EB1CB6A4EB1CB6A8DB7CB8DB02E
:2044A000CBADB1CB8DB8CBA9008DB2CBA2008ECACB8EA2CB8EA3CB8EA4CBADB0CBCDA2CB2A
:2044C000ADB1CBEDA3CBADB2CBEDA4CB902118ADA2CB6DCDCB8DA2CBADA3CB6DCECB8DA39F
:2044E000CB9003EEA4CBE8D0D1EECACB4CBAC4CAE0FFD003CECACB8A186DCFCBAAADCACBB7
:204500006DD0CBA88A2074CC38ADA2CBEDCDCB8DA2CBADA3CBEDCECB8DA3CB38ADB0CBED47
:20452000A2CBAAADB1CBEDA3CBA88A2089CC4C77CC488407A00346076A88D0FA186DD4CB07
:204540008506A5076DD5CB8507682907AABD78CB602031C5310660E001F00A2031C549FF03
:2045600031069106602031C51106910660AEAACBBD80CB0DACCB8DACCB60A900A07F187185
:20458000048810FA60AEAACBBD80CB2DACCB60A020B1028DB5CBA00FB1028DB6CB60AEB543
:2045A000CBE88AA0209102ADB6CBA00F9102602012C32011C63032A90C0DAFCBA8B104AA0A
:2045C00098291FA88A9102980DAFCBA8C898291FD0EBA00CAD92CBD102F00B9102A980903C
:2045E000010AA00F9102ADB9CB602012C32011C6301B2085C5D013A00CB10248980DAFCB93
:20460000A868D1046E90CB2082C6ADB9CB602012C3A90D4820DEC7207EC4688DB3CBA200C4
:204620008EB4CB2026C7303DAEB3CBACB4CBEEB4CBB102C00CD0138D92CB48980DAFCBA8D4
:204640006851042DDBCBF017D0D4C93FF01148980DAFCBA868851CB104297FC51CD0BFCA67
:20466000D0C9ADB9CB60AEC4CB0EB0CB2EB1CB2EB2CBCAD0F4ADC3CB2DB5CB0DB0CB8DB0BA
:20468000CB60A920A2008DB3CBCEB3CB188A6DB3CBA8C00CF004C00FD0052C90CB100DB13F
:2046A0000248ADB3CB0DAFCBA8689104CEB3CB10DB208AC44C43C82012C3201AC8A5024877
:2046C000A50348ADE9CAACEACA85028403A9012013C6688503688502ADB9CB3015A00DA9CE
:2046E000009102C8C021D0F9386E90CB2082C6ADB9CB608E9ECB20EDC5302AA00CB1021821
:204700006901291FF01791022011C6100BAD9ECBD01320BAC64C1BC720B2C51003A90160C0
:20472000208FC5A900608A48EEADCBD003EEAECBADD2CBCDADCBADD3CBEDAECBB00568AA83
:204740004CDEC7ADADCB29038DB9CB0A0A0A0A0A8DAFCBF00568AA4C62C7208AC4203DC8BE
:2047600068AAADB9CB602CD6CB30FACAD009207AC520C8C7910860207AC520C8C7D108F01E
:20478000E44C6DC5AEC4CBADB5CB4ACAD0FC8DB0CB38A908EDC4CBAAA00CB1022DDACB4ADB
:2047A0002ACAD0FC186DB0CB2CC0CB10010A1869108D91CBA8B1028DB0CBC8A9002CC0CB62
:2047C0001002B1028DB1CB604818ADB7CB6DD7CB8508ADB8CB6DD8CB8509A0006860A9FFA2
:2047E0008DADCB8DAECB8DB9CB6018ADAFCB6910A88CBECB8A48B1048DBFCBC8207EC80DEF
:20480000BFCBF00A207EC8A8ADBFCB2057C568AAACBECBC898290FD0D8602085C5F01D2015
:204820006CC8ADECCAACEDCA20D0C84CEAC0AEAACBBD80CB49FF2DACCB8DACCB60207DCCEC
:204840004C4FC8A201A901D003ADD9CB2080CCC900F0E9206CC8ADEFCAACF0CA20D0C8207E
:204860008BC8C90DF0034CEAC04C67CAADF2CAACF3CA20D0C8ADAACB1869414C19C9A90064
:204880002CC0CB1005B1048CBECB60AD94CB48A9008D94CB68D003205FCC60AD94CBD02057
:2048A000205CCCC900F019205FCCC913D00D205FCCC903D0034CEAC0A900608D94CBA9FF5D
:2048C00060C90DF00AC90AF006C909F002C920608DD9C88CDAC8A000B9FFFFC924F00CC86E
:2048E0008CBACB2019C9ACBACBD0ED602C95CB100A2CBCCB3005482065CC686020C1C8B00F
:204900001848AD90CC2032C9A95E20ECC8680940202AC9AD8FCC4C32C9C909D00DA920208D
:204920002AC9AD96CB2907D0F46048209BC86820ECC8482CBCCB30032062CC68EE96CBC91F
:2049400020B026CD8ECCF021CE96CBCD8CCCD006CE96CB300F60C90DF00ACD93CCF005CD73
:2049600094CCD005A9008D96CB60A90D202AC9A90A20ECC8AD93CBCD96CBF0EDAD8ECC207E
:2049800032C94C74C9A900A00191028C9DCBAD96CB8D93CB208BC8AC9DCBC90DD0034C64E9
:2049A000CAC908D05EC001F0EBB10248A00138B102E901910268CE9DCBC920B040C909D075
:2049C00030386EBCCBAD96CB8DBDCB206AC92071CAAD96CB4838ADBDCBED96CB8DBDCB0E75
:2049E000BCCB2091CACEBDCBD0F8688D96CB4C94C9AD8FCC208DCAAD90CC208DCA2091CA1E
:204A00004C94C9C910D00BAD95CB49FF8D95CB4C94C9C918D00C206AC9AD8DCC2032C94CD1
:204A200085C9C912D009206AC92071CA4C94C9C89102488C9DCBA0019818710291026820A7
:204A4000FCC8AC9DCBB102C903D00BA001B102C901D0034CEAC0A001B10288D102B0034C8F
:204A600094C9A90D4C2AC9A90D202AC9A90A4C2AC9AD9DCB8DBBCBA9014868CEBBCBD00182
:204A800060A8C89848B10220FCC84C7ACAC9209019AD8CCC482032C9A9202032C9684C327B
:204AA000C9C9309004C93A9001386020A1CA90FAC94190F5C94760ADF3BFACF4BF186980A1
:204AC0008DF3BF9004C88CF4BF60ADF3BFACF4BF8DD9CA8CDACAA200BDFFFF9D2801E81063
:204AE000F7604C49C04C42CB4C53CB4CF8CA4CFFCA4C32CB4CCBCBFF202D20522F4F242079
:204B00002D2042414420534543544F520D0A3C5245543E20544F2049474E4F5245202D2DF4
:204B2000203C4F544845523E20544F2041424F5254240D0A50454D204552524F52204F4E7A
:204B40002024202D20494E56414C494420445249564524E5000000000000000000000100F9
:204B600000010101010101010101010100000100000000000000000080402010080402012A
:204B80000102040810204080000103070F1F3F7F000000000000000000000000000000001F
:204BA0000000000000000000000000000000000000000000000000000000000000000000F5
:204BC0000000000000000000000000000000000000000000000000000000000000000000D5
:204BE0000000000048DA5AAA4A4A4A4A1820F8CB8A20F8CB7AFA6860290F0930C93A30031C
:204C00001869074CB5CE48DA5AA90D20B5CEA90A20B5CE7AFA68605ADA48A000A2FF38E8F9
:204C2000E964B0FB69642040CCA2FF38E8E90AB0FB690A2040CCAAA0012040CC68FA7A60D2
:204C400048C000D0098AA8C000D0034C54CC8A093020B5CE68604CAECD4C21CE4CAFCE4CFD
:204C6000B2CE4CB5CE4CB8CE4CB9CE4CBACE4C5ACE4C29CE4C5ECE4C66CE4CAACE4C6DCE72
:204C80004C8BCEA901604CBBCE4CBCCE08010C005E18500C1E020D0A6438383838622E20A8
:204CA000202E643838622E20202E64383838382E20202020644420202020206F6F6F6F6F6F
:204CC0000D0A38382020603844202E3850202059382E2038382020205950202020643820A7
:204CE0002020202038507E7E7E7E0D0A3838202020383820383820202020383820603862C3
:204D00006F2E202020206438202020202064500D0A383820202038382038382020202038E7
:204D200038202020605938622E206438383838622E205638383838622E0D0A0038382020B9
:204D40002E384420603862202064382720646220202038442038382020603844202020209E
:204D6000206038440D0A593838383844202020605938385020202060383838385920206031
:204D80003838383850202038386F6F62590D0A11444F532F3635204F4E20544845204E487E
:204DA000594F44594E4520332E30300D0A0078A2FF9AD8A996A0CC20BDCEA93CA0CD20BD13
:204DC000CE2006CC2075D820AFD0201ED5207DD7546E5C5E6E54794020B9D7A9448530A98E
:204DE000BF8531A94A852EA9CE852F2037CF20B9D8A2008E88DA8E89DABD1BCE9D0001E8E7
:204E0000E006D0F5A928A00120AACEAD82DAA9022029CE205ACEA9024C03B84C59CC4CFE5D
:204E2000BF78A2FF9AD84CEECD29078D82DAAD82DA0AAABD3ACEBC3BCE6012DA20DA2EDA73
:204E40003CDA4ADA58DA66DA74DA00000100300030013002300330043006A900A000188D39
:204E60008ADA8C8BDA608D8CDA8C8DDA60201BCF29F0C900D004202CD960C920D003A9FF8E
:204E800060C930D0034C70D2A9FF60201BCF29F0C900D0042060D960C920D003A9FF60C94A
:204EA00030D00420C4D260A9FF6085F484F5604C9DD04C8ED04C6FD0606060606085F084B7
:204EC000F1A000B1F0C900F00720B5CEC84CC3CE6048AD8CDA2903182AAABDF2CE85EEE8ED
:204EE000BDF2CE85EFA5F485ECA5F585ED2028CF686009E389E309E489E448AD8CDA290393
:204F0000182AAABDF2CE85ECE8BDF2CE85EDA5F485EEA5F585EF2028CF6860DAAD82DA29DB
:204F2000070AAABD4ACEFA605AA000B1EE91ECC898C980D0F67A602006CC48DA5AA200BD5B
:204F400053CFE8C924F00620B5CE4C3FCF7AFA684C67CF4469736B20436F6E666967757221
:204F60006174696F6E3A242006CCA20048DA5AA200BD85CFE8C924F00620B5CE4C71CF7A81
:204F8000FA684C8ACF20202020248A4A18694120B5CEA93A20B5CEA93D20B5CE20B4CFA9D2
:204FA0003A20B5CEE8BD4ACE2017CCE82006CCE010D0B960BD4ACE4829F0C900D01F48DA91
:204FC0005AA200BDD7CFE8C924F00620B5CE4CC3CF7AFA684CDACF4D44244C67D0C910D074
:204FE0002048DA5AA200BDFACFE8C924F00620B5CE4CE6CF7AFA684CFECF554E4B244C67C4
:20500000D0C920D01F48DA5AA200BD1ED0E8C924F00620B5CE4C0AD07AFA684C21D04644E8
:20502000244C67D0C930D02248DA5AA200BD41D0E8C924F00620B5CE4C2DD07AFA684C47CC
:20504000D05050494445244C67D048DA5AA200BD63D0E8C924F00620B5CE4C4FD07AFA68A4
:205060004C67D0554E4B2468290F2017CC606048AD6D032920C900F0F7688D680360AD6D00
:20508000032901C900F004AD680360A90060AD6D032901C900F0F7AD6803297F60AD6D0371
:2050A0002901C900F003A9FF60A9006000000048DA5AA200BDC8D0E8C924F00620B5CE4CCC
:2050C000B4D07AFA684CD0D05050494445203A242006CC2062D2D03548DA5AA200BDF1D0AD
:2050E000E8C924F00620B5CE4CDDD07AFA684CF8D020494F3D307824A90320E4CBA96020F4
:20510000E4CB20F7D2209BD1B0034C36D148DA5AA200BD26D1E8C924F00620B5CE4C12D1F6
:205120007AFA684C33D1204E4F542050524553454E54244C97D12006CC48DA5AA200BD52FA
:20514000D1E8C924F00620B5CE4C3ED17AFA684C63D1205050494445303A20426C6F636B52
:20516000733D24A90020DBD148DA5AA200BD81D1E8C924F00620B5CE4C6DD17AFA684C9207
:20518000D1205050494445313A20426C6F636B733D24A90120DBD12006CC60A9008D600301
:2051A0002022D3B034A90F20D4D48A2940C900F028A90A20D4D4E001D01FA90B20D4D4E0FB
:2051C00001D016A90C20D4D4E000D00DA90D20D4D4E000D004184CDAD1386029010A0A0A8D
:2051E0000A09E0AAA000A90E20F2D42022D3B048A90FA2EC20F2D4204AD3B03C207AD348BE
:20520000DA5AA200BD18D2E8C924F00620B5CE4C04D27AFA684C1BD2307824AD84E320E488
:20522000CBAD83E320E4CBAD82E320E4CBAD81E320E4CB2006CC186048DA5AA200BD51D298
:20524000E8C924F00620B5CE4C3DD27AFA684C5DD24E4F542050524553454E54242006CCE6
:2052600038602016D5A9008D6003AD6003C900602077D220D1CE602019D4AD90DACD95DAD1
:20528000D013AD8FDACD94DAD00BAD8EDACD93DAD003A900602022D3B02720E6D3A90FA2B5
:2052A0002020F2D4204AD3B018207AD3AD90DA8D95DAAD8EDA8D93DAAD8FDA8D94DAA9009A
:2052C00060A9FF602077D220FACE2022D3B02520E6D3A90FA23020F2D4204AD3B01620AF10
:2052E000D32022D3B00EA9FF8D95DA8D93DA8D94DAA90060A9FF60A9008D90DA8D8EDA8D3C
:205300008FDAA9FF8D95DA8D93DA8D94DAA9808D6203A200CAE000D0FBA9008D6203200A94
:20532000D660DA5A48A9008DADD08DAED0A90F20D4D48A2980F00EEEADD0D0F1EEAED0D0E4
:20534000EC384C46D318687AFA60DA5A48A9008DADD08DAED0A90F20D4D48A2988C908F0BA
:20536000142901C901F00AEEADD0D0E9EEAED0D0E4384C76D318687AFA60A2008EACD0A971
:205380000820D4D48AAEACD09D09E3E8989D09E3E8E000D0E78EACD0A90820D4D48AAEAC11
:2053A000D09D09E4E8989D09E4E8E000D0E760A2008EACD0BD0AE3A8BD09E3AAA90820F296
:2053C000D4AEACD0E8E8E000D0E7A2008EACD0BD0AE4A8BD09E4AAA90820F2D4AEACD0E86C
:2053E000E8E000D0E760201BCF29010A0A0A0A09E0AAA000A90E20F2D4AE8FDAA90D20F2C3
:20540000D4AE8EDAA90C20F2D4AE90DAA90B20F2D4A201A90A20F2D460AD8ADA290F0A0A5C
:205420000A0AAAAD8CDA4A4A290F8D90DA8A0D90DA8D90DAAD8ADA8D8EDAAD8BDA8D8FDAD2
:20544000AD8FDA4A8D8FDAAD8EDA6A8D8EDAAD8FDA4A8D8FDAAD8EDA6A8D8EDAAD8FDA4A58
:205460008D8FDAAD8EDA6A8D8EDAAD8FDA4A8D8FDAAD8EDA6A8D8EDAAD82DA29070AAAE823
:20548000BD4ACE8D98DAA9008D97DA186E98DA6E97DA6E98DA6E97DABD4ACE186D97DA8DA3
:2054A00097DA18AD97DA6D8EDA8D8EDAAD98DA6D8FDA8D8FDAAD82DA8D71D8AD8FDA8D729C
:2054C000D8AD8EDA8D73D8AD90DA8D74D82090D620C5D660200ED58D620309408D620348FE
:2054E000AE6003AC61036849408D6203A9008D6203602016D58E60038C61038D62030920A6
:205500008D620349208D6203A9008D62036048A9928D6303686048A9808D6303686020DADF
:20552000D548DA5AA200BD3AD5E8C924F00620B5CE4C26D57AFA684C40D544534B593A2421
:205540002006CC48DA5AA200BD5CD5E8C924F00620B5CE4C48D57AFA684C63D520494F3D21
:20556000307824A90320E4CBA96020E4CB48DA5AA200BD86D5E8C924F00620B5CE4C72D5D5
:205580007AFA684C8DD5204D4F44453D2448DA5AA200BDA6D5E8C924F00620B5CE4C92D564
:2055A0007AFA684CA9D54E4724AD68D8C9FFF02648DA5AA200BDC9D5E8C924F00620B5CEDA
:2055C0004CB5D57AFA684CD6D5204E4F542050524553454E54242006CC60201FD6D02A202B
:2055E00041D8A9068D620309808D6203297F8D6203200AD6A9A5A000205BD7A000206FD796
:20560000C9A5D005A9FF8D68D8602053D8A92120DBD6A9DF20DBD6A200DAFACAD0FB6020A8
:205620002AD8A9008D6003AD6003C90060AD68D8C9FFD0052014D7290F60AD68D8C9FFD0E4
:2056400024202DD6F0F4A94020DBD62019D749C048293F8D66D8A200BD74D6CD66D8F00924
:20566000E8E01CD0F368A9FF606825C08D66D88A0D66D8600D040C14030B13020A1201094C
:205680001100081005151D1C1B1A191823222120A200BD71D84A4A4A4ADAAABD56D8FADA8F
:2056A000488A0AAA689D69D8FABD71D8290FDAAABD56D8FADA488A0AAAE8689D69D8FAE80D
:2056C000E004D0CE6048DA5AA200BD69D8DA7A205BD7E8E008D0F37AFA686048A9014CE435
:2056E000D648A900202AD809068D620309188D62038D66D8688D6003AD66D829FD8D620387
:20570000EA09028D620329E78D620329E68D62032053D860A9014C1BD7A9002041D809061B
:205720008D620309188D6203297B8D62038D66D8AD600348AD66D809048D620329E78D62C2
:205740000329E68D62032053D86860A99020DBD6A210A9FF20E1D6CAD0F8605A484818986B
:205760006990A820DBD66849FF20E1D6687A6018986970A820DBD62019D749FF608E66D868
:20578000BA6885146885159AAE66D8DA5A4818E6149002E615A000B114205BD7C8C008D094
:2057A000F6687AFA8D66D81868690885149003681A48A51448AD66D8605ADA48A00F206F5F
:2057C000D70920A920A00F205BD7A28FA0FF88D0FDCAD0FAA00F206FD729DFA9DFA00F20D2
:2057E0005BD768FA7A605A48A00D206FD70920A00D205BD7687A605A48A00E206FD709203D
:20580000A00E205BD7687A605A48A00D206FD729DFA00D205BD7687A605A48A00E206FD792
:2058200029DFA00E205BD7687A6048AD67D8C982F00DA9828D63038D67D8A9068D620368AF
:205840006048AD67D8C992F008A9928D63038D67D868604C41D83F065B4F666D7D077F670E
:20586000777C395E797100000000000000000000000000000048DA5AA200BD8ED8E8C9249E
:20588000F00620B5CE4C7AD87AFA684CB6D84D443A20554E4954533D322052414D4449534E
:2058A0004B3D3235364B4220524F4D4449534B3D3338344B42242006CCA200BDC7D89D00E3
:2058C00002E8E000D0F560488415A00084148A2980C900D0388A2940C900D00DA9808D7CF1
:2058E000036809808D7803D00BA9008D780368297F8D7C03A200DA7AB1149D0004E8E000E0
:20590000D0F4A9808D7C03A98E8D7803606809808D7803A200DA7ABD00049114E8E000D002
:20592000F4A9808D7C03A98E8D7803602035D920C6D9A90060201BCF29010A0A0A0A0A0A39
:20594000297FAA2083D9E000F00CEE8EDAEE8EDAEE8EDAEE8EDAAD8EDAAC90DA2000026098
:20596000201BCF2901C900F003A9FF602035D92083D920ECD9AD8EDAAC90DAA28020000231
:20598000A90060DAAD8CDA4A291F8D90DAAD8ADA29030A0A0A0A0A09800D90DA8D90DAAD75
:2059A0008ADA4A4A8D8EDAAD82DA8D71D8A9008D72D8AD8EDA8D73D8AD90DA8D74D820900E
:2059C000D620C5D6FA6048AD8CDA2901C900D007A90085EE4CDBD9A98085EEA90485EFA539
:2059E000F485ECA5F585ED2028CF686048AD8CDA2901C900D007A90085EC4C01DAA9808543
:205A0000ECA90485EDA5F485EEA5F585EF2028CF68607F004000000001FF0099DA0089E2E5
:205A2000BF0040000000019B0097DB0089E2FF074000100002FF0195DC0089E2FF07400074
:205A4000100002FF0193DD0089E2FF074000100002FF0191DE0089E2FF074000100002FFD0
:205A6000018FDF0089E2FF074000100002FF018DE00089E2FF074000100002FF018BE10058
:205A800089E202000000000000000000000000000000000000000000000000000000000099
:205AA0000000000000000000000000000000000000000000000000000000000000000000E6
:205AC0000000000000000000000000000000000000000000000000000000000000000000C6
:205AE0000000000000000000000000000000000000000000000000000000000000000000A6
:205B0000000000000000000000000000000000000000000000000000000000000000000085
:205B2000000000000000000000000000000000000000000000000000000000000000000065
:205B4000000000000000000000000000000000000000000000000000000000000000000045
:205B6000000000000000000000000000000000000000000000000000000000000000000025
:205B8000000000000000000000000000000000000000000000000000000000000000000005
:205BA0000000000000000000000000000000000000000000000000000000000000000000E5
:205BC0000000000000000000000000000000000000000000000000000000000000000000C5
:205BE0000000000000000000000000000000000000000000000000000000000000000000A5
:205C0000000000000000000000000000000000000000000000000000000000000000000084
:205C2000000000000000000000000000000000000000000000000000000000000000000064
:205C4000000000000000000000000000000000000000000000000000000000000000000044
:205C6000000000000000000000000000000000000000000000000000000000000000000024
:205C8000000000000000000000000000000000000000000000000000000000000000000004
:205CA0000000000000000000000000000000000000000000000000000000000000000000E4
:205CC0000000000000000000000000000000000000000000000000000000000000000000C4
:205CE0000000000000000000000000000000000000000000000000000000000000000000A4
:205D0000000000000000000000000000000000000000000000000000000000000000000083
:205D2000000000000000000000000000000000000000000000000000000000000000000063
:205D4000000000000000000000000000000000000000000000000000000000000000000043
:205D6000000000000000000000000000000000000000000000000000000000000000000023
:205D8000000000000000000000000000000000000000000000000000000000000000000003
:205DA0000000000000000000000000000000000000000000000000000000000000000000E3
:205DC0000000000000000000000000000000000000000000000000000000000000000000C3
:205DE0000000000000000000000000000000000000000000000000000000000000000000A3
:205E0000000000000000000000000000000000000000000000000000000000000000000082
:205E2000000000000000000000000000000000000000000000000000000000000000000062
:205E4000000000000000000000000000000000000000000000000000000000000000000042
:205E6000000000000000000000000000000000000000000000000000000000000000000022
:205E8000000000000000000000000000000000000000000000000000000000000000000002
:205EA0000000000000000000000000000000000000000000000000000000000000000000E2
:205EC0000000000000000000000000000000000000000000000000000000000000000000C2
:205EE0000000000000000000000000000000000000000000000000000000000000000000A2
:205F0000000000000000000000000000000000000000000000000000000000000000000081
:205F2000000000000000000000000000000000000000000000000000000000000000000061
:205F4000000000000000000000000000000000000000000000000000000000000000000041
:205F6000000000000000000000000000000000000000000000000000000000000000000021
:205F8000000000000000000000000000000000000000000000000000000000000000000001
:205FA0000000000000000000000000000000000000000000000000000000000000000000E1
:205FC0000000000000000000000000000000000000000000000000000000000000000000C1
:205FE0000000000000000000000000000000000000000000000000000000000000000000A1
:205000004CA8E5D84820FCD3682000D4AD8CE44A4A4A4A8DF6D7AD43D7D03CA2FF9AD8A91E
:205020001120F0D32069D4A93E20F0D3AD8BD6AC8CD620F4D3A000AE43D7F0DFB944D7C97E
:20504000619009C97BB005295F9944D7C8CAD0EC8A9944D78DE7D720A4D5202BD48DE8D746
:2050600020A5D4D064ADE9D7F004A915D02EA900AA8DECD7A001BD1DD7F01AD9C3D7D00400
:20508000E8C8D0F2E8BD1DD7D0FAE8EEECD7ADECD7C907D0DFADECD70A6DECD7AAE8BD9624
:2050A000D6BC97D68DEAD78CEBD7AD8FD648AD8ED6486CEAD72034D420A5D4ADC4D738E94B
:2050C000200DE9D7D0034C1BD020E1D3ACEDD7B944D7F00AC920F0062072D4C8D0F1A93F11
:2050E00020F0D34C1BD020A5D420ABD5A920CDC4D7D00FCDCCD7D00AA93FA00B99C3D788B5
:20510000D0FA205FD43058ADF6D78DF5D720E1D3206CD4A93A20F0D3ADEED70A0A0A0A0A79
:205120002960A8C8A201B92801297F2072D4C8E8E00CF00CE009D0EEA92E2072D44C26D124
:2051400020F8D3D0192097D42010D48DEED7300ECEF5D7F0B220EED320EED34C10D160A031
:20516000344CC0D520A5D4D057209ED420ABD5205FD4304F20E0D5ACE7D7B944D7C920D08A
:205180003C20A5D4D037ADE9D7F012CDF2D7F00D38E901CDE8D7D025ADF2D7D020ADF2D7B2
:2051A0008DE9D7A9008DD3D720ABD5205FD4100920E0D52097D44C27D4A03ED0082034D431
:2051C0004CC9D0A0344CC0D5A900A0088DFCD78CFDD72005D6D07A8DF1D70DF1D7F0722033
:2051E000A5D4D06D20E0D5209ED42005D6AEC4D7E020F00A8DFCD78CFDD7C002905320F3DC
:20520000D520ABD52014D42097D42023D43045204AD4304418ADFDD76DF1D78DF1D7ADFC7C
:20522000D7ACFDD78DF3D78CF4D720C4E22097D4201FD4D02718ADF3D7ACF4D7698090038C
:20524000C8F005CCF1D7D0DC2097D42008D43010604CC9D0A001D00AA055D006A062D0022B
:20526000A00A4CC0D520A5D4C90BD013A01820C0D520EAD34820E1D368295FC959D0D1201A
:20528000ABD54C14D420A5D4D0302047D4303220E1D32059D4F00410203022A200BD280105
:2052A000C91AF0152072D420F8D3D008AEEFD7E810EB30DEA206200301604CC9D0A029D0CE
:2052C00002A0344CC0D520D5D520A5D4D0EC20E0D5209ED42005D6AEC4D7E020F00320D961
:2052E000D520F3D52047D430D8ADF3D7ACF4D7202FD42059D4D00620B1E24CEFD230BE4C80
:20530000A4D52005D6AEC4D7E020F0034C76D34C72D3ADC4D7C920D011ADE9D7F00938E91E
:20532000018DE8D72000D44CB8D0ADCCD7C920F0034CD9D3A202BDE4D79DCCD7CA10F720E7
:2053400047D410034CD6D320D5D5202FD42059D4D01E20B1E2CD91D69007CC92D690EBB025
:2053600007CC92D690E4F0E220A4D52059D4F06C306AA900A0088DCBD38CCCD32034D420E1
:20538000A5D4ADE9D78DC3D7A21020A7D4ADE9D78DD3D7A0008CE3D7A220BDC3D79D07016B
:2053A000CA10F7E8B944D7F007C920F003C8D0F4A9008D2801B944D79D2901F007E8C8EE72
:2053C0002801D0F120E1D320A4D5200008ADE8D72000D44C1BD02034D44CC9D0A04A4CC0B4
:2053E000D5A90D20F0D3A90AD006A201D043A920A202D03DA20AD039A20BD035A20DD0316F
:20540000A20ED02DA20FD029A210D025A211D021A212D01D2097D4A213D016A214D012A2E9
:2054200015D00EA216D00AA217D006A219D002A21A4C0301ADE9D7F01F38E901CDE8D7F0A5
:2054400017ADE8D74C00D420ABD5A9008DE3D72097D42004D48DEED7602097D44C1BD420FE
:2054600097D4200CD48DEED76020E1D3202BD41869418EEFD78CF0D720BBE0B01048AD8AB9
:20548000E420F0D368094020F0D3AD89E420F0D3ACF0D7AEEFD760AD94D6AC95D660ADE949
:2054A000D78DF2D760A2008A48A9008DE9D7ACE7D72072D58CEDD7F00D290F48C8B944D7BB
:2054C000C93AF00A6888ADE8D79DC3D71008688DE9D79DC3D7C8A9088DECD7207FD5F01DEE
:2054E000E8C92AD007A93F9DC3D7D0049DC3D7C8CEECD7D0E6207FD5F011C8D0F8E8A9200B
:205500009DC3D7CEECD7D0F5B944D748A9038DECD768C92ED023C8207FD5F01DE8C92AD0A0
:2055200007A93F9DC3D7D0049DC3D7C8CEECD7D0E6207FD5F00EC8D0F8E8A9209DC3D7CE73
:20554000ECD7D0F5A9038DECD7E8A9009DC3D7CEECD7D0F58CE7D7A9008DECD768A8A20BA9
:20556000C8B9C3D7C93FD003EEECD7CAD0F2ADECD760B944D7F007C920D003C8D0F460B9FC
:2055800044D7F01CC9209019F016C93DF012C92EF00EC93AF00AC93BF006C93CF002C93E5A
:2055A000604CC9D0A928A0014C2FD4A9008DC3D7ADE9D7F01F38E901CDE8D7F0174C00D4C4
:2055C0008CF0D720E1D3ACF0D7B9AFD6F0062072D4C8D0F560A900A0088DF3D78CF4D7604B
:2055E000A20FBDC3D7BCD3D79DD3D7989DC3D7CA10F060A20FBDD3D79DC3D7CA10F7ADF23E
:20560000D78DE9D760A9098DF7D720A5D4ADE9D7D0678DF8D78DF9D7A8B9C4D7C924D00644
:20562000A90F8DF7D7C8C8B9C3D7C920F04E209BE2900E20A5E2B041E906A20FECF7D7D050
:2056400038290F48ADF8D78DFAD7ADF9D78DFBD7AEF7D718ADF8D76DFAD78DF8D7ADF9D7B5
:205660006DFBD78DF9D7B011CAD0E9686DF8D78DF8D790B2EEF9D7D0AD4CC9D0ADCCD7C9CF
:2056800020D0F6ADF8D7ACF9D7604C42D74CB4D04C03D04CC3D74CE6D04CC8D14C65D24CDC
:2056A00085D24C64D14C02D34CC6D24C12D3FF004E4F2053504143450043414E204E4F54D1
:2056C00020434C4F534500414C4C2046494C45532028592F4E293F0052454144204552521D
:2056E0004F52004E4F5420464F554E440046494C4520455849535453004C4F414420455285
:20570000524F520043414E204E4F54204F50454E005752495445204552524F52004449524D
:205720002000534156452000455241200054595045200052454E2000474F20004C4F4144C5
:2057400020007F0000000000000000000000000000000000000000000000000000000000AA
:20576000000000000000000000000000000000000000000000000000000000000000000029
:20578000000000000000000000000000000000000000000000000000000000000000000009
:2057A0000000000000000000000000000000000000000000000000000000000000000000E9
:2057C0000000000000000000000000000000000000000000000000000000000000000000C9
:2057E00000000000434F360000000000000000000000000008000009000000000008D88D63
:2058000092E38DD6E38C93E38CD7E38E94E3E024B050BD4EE3F008A9FF8D91E320E9DAA961
:20582000008D99E3AD94E30A6D94E3AAE8BD76D8BC77D88D9AE38C9BE3ADDEE248ADDDE270
:2058400048AD92E3AC93E36C9AE38D95E38C96E3AD99E3F00DA0009102ADA3E38D92E3201B
:2058600004DB2C91E3100820E9DAA9008D91E3AC96E3AD95E3604CEAD84CDBDA4C13E14CBF
:2058800065E44C62E44C5FE44C85E04C1FD94C2AD94CCAE04C7FE14C95E04C7DE44C32DBF1
:2058A0004C04DB4CAFDD4CEADD4C0EDE4C3AD94CA2D94C42D94CC7D94CB1DE4C80D94C3223
:2058C000D94C2ED94CF9DA4C23D94C6DDD4C36D94CE2D84CE6D84CFAD84C0ED94C18D94C5A
:2058E00083E48D8FE360AD8FE3602C91E3100820E9DAA9008D91E34C53E42080E48DBFE3E8
:205900008CC0E38EC1E38A2980A8ADBFE360ADC1E3297FA8ADC0E360AD6CDBAC6DDB60AD56
:20592000060160ADCEE3ACCFE3608D060160ADA4E360ADA5E360ADA6E3602012DBA90D4C22
:205940001BDE2012DB208FDDADAFE3CDB0E39013C980F003A90160A20120EDDEC900D0F412
:205960008DAFE3207EDFADAAE30DABE3D003A902602060DE20ACDC2037E0209EDDA90060F7
:205980002012DB2014E0A90C2013DE3014A900A0109102A90CA2102080DEA90C201BDE102D
:2059A000EC602012DB2014E0A90C2013DE3017A20020E4DFACA9E3AD4DE39104203DE0A958
:2059C0000C201BDE10E9602012DB2014E0208FDDADAFE3C9809003A90160207EDFA9008DC4
:2059E000D3E3ADAAE30DABE3F0034CAADAA9028DD3E3AD8BE348C910F01AA8882CBAE3101C
:205A00000188B1028DAAE3C8A9002CBAE31002B1028DABE3ADAAE38D9FE38DA1E3ADABE381
:205A20008DA0E38DA2E3ADA1E3CDC5E3D008ACA2E3CCC6E3F012EEA1E3D003EEA2E3AD9F1A
:205A4000E30DA0E3F018D00BAD9FE30DA0E3D003A8F030AD9FE3D003CEA0E3CE9FE3AD9FA7
:205A6000E3ACA0E32051DDD009AD9FE3ACA0E34C83DAADA1E3ACA2E32051DDD0A9ADA1E38C
:205A8000ACA2E38DAAE38CABE30DABE3D00468A90260ADAAE32065DD68A8ADAAE39102AD99
:205AA000ABE3C82CBAE3100291022060DE20ACDC2043E0AEAFE3ECB0E39005E88EB0E3CAB2
:205AC000E07FD011209EDDA20020EDDEC900D00AA9FF8DAFE3209EDDA900602085E020BBF0
:205AE000E09005482013E16860A207B502BCD6E39DD6E39402CA10F360A502A403850484C4
:205B0000054C74E4AD92E3CDA4E3F0EC8DA4E34C45DBA000B102F01938E90129078D92E35A
:205B2000ADA4E38DA3E3B1028D99E39891022004DB60A9028DA4E38DA5E3A928A00185020B
:205B4000840320F9DAADA4E3C908900F2066E0ADE0E2ACE1E220CAE04CEAD8206BE48D6CA3
:205B6000DB8C6DDB0D6DDBF0E3A00DB9FFFF99C5E38810F7ADCBE3A81869038DBEE3B98527
:205B8000E38DBDE3ADCCE38DBBE3ADCDE34A6EBBE34A6EBBE38DBCE3A9008DBAE3ADC6E310
:205BA000F00588386EBAE3B982E38DD4E338A91FF982E38DD5E3AEA4E3BD7AE32DA5E3D04C
:205BC0000CBD7AE30DA5E38DA5E34CCEDB602028E0ADC5E38DC2E3ADC6E3A2034A6EC2E399
:205BE000CAD0F98DC3E3EEC2E3D003EEC3E3ADCEE3ACCFE385068407A000A9009106E60647
:205C0000D002E607ADC2E3D003CEC3E3CEC2E3ADC2E30DC3E3D0E3ADBBE38DC2E3ADBCE338
:205C2000AEBEE34A6EC2E3CAD0F98DC3E3EEC2E3D003EEC3E38EAAE38EABE3ADAAE3ACAB30
:205C4000E32065DDEEAAE3D003EEABE3ADC2E3D003CEC3E3CEC2E3ADC2E30DC3E3D0DC2058
:205C60007EDC20D8DFA2012020DF3011ACA9E3B104C9E5F0F0A20120E4DF4C65DC6020687A
:205C8000E4ADC9E3ACCAE34C6EE4ADA8E38DABE3ADA7E34EABE36A4EABE36A8DB1E38DAA62
:205CA000E3ADABE38DB2E3A9008DACE3A2008EC4E38E9CE38E9DE38E9EE3ADAAE3CD9CE358
:205CC000ADABE3ED9DE3ADACE3ED9EE3902118AD9CE36DC7E38D9CE3AD9DE36DC8E38D9DEB
:205CE000E39003EE9EE3E8D0D1EEC4E34CBADCCAE0FFD003CEC4E38A186DC9E3AAADC4E315
:205D00006DCAE3A88A206EE438AD9CE3EDC7E38D9CE3AD9DE3EDC8E38D9DE338ADAAE3ED8D
:205D20009CE3AAADABE3ED9DE3A88A2083E44C71E4488407A00346076A88D0FA186DCEE383
:205D40008506A5076DCFE38507682907AABD72E3602031DD310660E001F00A2031DD49FF97
:205D600031069106602031DD1106910660AEA4E3BD7AE30DA6E38DA6E360A900A07F18710D
:205D8000048810FA60AEA4E3BD7AE32DA6E360A020B1028DAFE3A00FB1028DB0E360AEAFD7
:205DA000E3E88AA0209102ADB0E3A00F9102602012DB2011DE3032A90C0DA9E3A8B104AA86
:205DC00098291FA88A9102980DA9E3A8C898291FD0EBA00CAD8CE3D102F00B9102A9809000
:205DE000010AA00F9102ADB3E3602012DB2011DE301B2085DDD013A00CB10248980DA9E30F
:205E0000A868D1046E8AE3207CDEADB3E3602012DBA90D4820D8DF207EDC688DADE3A20022
:205E20008EAEE32020DF3037AEADE3ACAEE3EEAEE3B102C00CD0138D8CE348980DA9E3A844
:205E40006851042DD5E3F011D0D4C93FF00B48980DA9E3A868D104D0C5CAD0CFADB3E360F9
:205E6000AEBEE30EAAE32EABE32EACE3CAD0F4ADBDE32DAFE30DAAE38DAAE360A920A200A6
:205E80008DADE3CEADE3188A6DADE3A8C00CF004C00FD0052C8AE3100DB10248ADADE30DE1
:205EA000A9E3A8689104CEADE310DB208ADC4C3DE02012DB2014E0A50248A50348ADE3E207
:205EC000ACE4E285028403A9012013DE688503688502ADB3E33015A00DA9009102C8C0218E
:205EE000D0F9386E8AE3207CDEADB3E3608E98E320EDDD302AA00CB102186901291FF0172C
:205F000091022011DE100BAD98E3D01320B4DE4C15DF20B2DD1003A90160208FDDA9006066
:205F20008A48EEA7E3D003EEA8E3ADCCE3CDA7E3ADCDE3EDA8E3B00568AA4CD8DFADA7E342
:205F400029038DB3E30A0A0A0A0A8DA9E3F00568AA4C5CDF208ADC2037E068AAADB3E360A7
:205F60002CD0E330FACAD009207ADD20C2DF910860207ADD20C2DFD108F0E44C6DDDAEBE5D
:205F8000E3ADAFE34ACAD0FC8DAAE338A908EDBEE3AAA00CB1022DD4E34A2ACAD0FC186DF2
:205FA000AAE32CBAE310010A1869108D8BE3A8B1028DAAE3C8A9002CBAE31002B1028DAB38
:205FC000E3604818ADB1E36DD1E38508ADB2E36DD2E38509A0006860A9FF8DA7E38DA8E3FE
:205FE0008DB3E36018ADA9E36910A88CB8E38A48B1048DB9E3C82078E00DB9E3F00A20785A
:00000001FF

633
Source/Images/d_dos65/u0/dos65.s19

@ -1,361 +1,274 @@
S123B7F3FD7F3ECD77DBFF0000000000004C21CED84820FCBB682000BCAD92CC4A4A4A4AB1
S123B8138DF6BFAD43BFD03CA2FF9AD8A91120F0BB2069BCA93E20F0BBAD8BBEAC8CBE2079
S123B833F4BBA000AE43BFF0DFB944BFC9619009C97BB005295F9944BFC8CAD0EC8A9944D2
S123B853BF8DE7BF20A4BD202BBC8DE8BF20A5BCD064ADE9BFF004A915D02EA900AA8DEC9D
S123B873BFA001BD1DBFF01AD9C3BFD004E8C8D0F2E8BD1DBFD0FAE8EEECBFADECBFC90719
S123B893D0DFADECBF0A6DECBFAAE8BD96BEBC97BE8DEABF8CEBBFAD8FBE48AD8EBE486C59
S123B8B3EABF2034BC20A5BCADC4BF38E9200DE9BFD0034C1BB820E1BBACEDBFB944BFF05F
S123B8D30AC920F0062072BCC8D0F1A93F20F0BB4C1BB820A5BC20ABBDA920CDC4BFD00FBE
S123B8F3CDCCBFD00AA93FA00B99C3BF88D0FA205FBC3058ADF6BF8DF5BF20E1BB206CBC95
S123B913A93A20F0BBADEEBF0A0A0A0A0A2960A8C8A201B92801297F2072BCC8E8E00CF0D6
S123B9330CE009D0EEA92E2072BC4C26B920F8BBD0192097BC2010BC8DEEBF300ECEF5BFD8
S123B953F0B220EEBB20EEBB4C10B960A0344CC0BD20A5BCD057209EBC20ABBD205FBC3075
S123B9734F20E0BDACE7BFB944BFC920D03C20A5BCD037ADE9BFF012CDF2BFF00D38E90125
S123B993CDE8BFD025ADF2BFD020ADF2BF8DE9BFA9008DD3BF20ABBD205FBC100920E0BDE5
S123B9B32097BC4C27BCA03ED0082034BC4CC9B8A0344CC0BDA900A0088DFCBF8CFDBF209D
S123B9D305BED07A8DF1BF0DF1BFF07220A5BCD06D20E0BD209EBC2005BEAEC4BFE020F0EE
S123B9F30A8DFCBF8CFDBFC002905320F3BD20ABBD2014BC2097BC2023BC3045204ABC306C
S123BA134418ADFDBF6DF1BF8DF1BFADFCBFACFDBF8DF3BF8CF4BF20CACA2097BC201FBC80
S123BA33D02718ADF3BFACF4BF69809003C8F005CCF1BFD0DC2097BC2008BC3010604CC9B5
S123BA53B8A001D00AA055D006A062D002A00A4CC0BD20A5BCC90BD013A01820C0BD20EAF3
S123BA73BB4820E1BB68295FC959D0D120ABBD4C14BC20A5BCD0302047BC303220E1BB20B7
S123BA9359BCF00410203022A200BD2801C91AF0152072BC20F8BBD008AEEFBFE810EB302C
S123BAB3DEA206200301604CC9B8A029D002A0344CC0BD20D5BD20A5BCD0EC20E0BD209EF6
S123BAD3BC2005BEAEC4BFE020F00320D9BD20F3BD2047BC30D8ADF3BFACF4BF202FBC20F2
S123BAF359BCD00620B7CA4CEFBA30BE4CA4BD2005BEAEC4BFE020F0034C76BB4C72BBAD69
S123BB13C4BFC920D011ADE9BFF00938E9018DE8BF2000BC4CB8B8ADCCBFC920F0034CD94C
S123BB33BBA202BDE4BF9DCCBFCA10F72047BC10034CD6BB20D5BD202FBC2059BCD01E2023
S123BB53B7CACD91BE9007CC92BE90EBB007CC92BE90E4F0E220A4BD2059BCF06C306AA995
S123BB7300A0088DCBBB8CCCBB2034BC20A5BCADE9BF8DC3BFA21020A7BCADE9BF8DD3BF42
S123BB93A0008CE3BFA220BDC3BF9D0701CA10F7E8B944BFF007C920F003C8D0F4A9008D10
S123BBB32801B944BF9D2901F007E8C8EE2801D0F120E1BB20A4BD200008ADE8BF2000BCAE
S123BBD34C1BB82034BC4CC9B8A04A4CC0BDA90D20F0BBA90AD006A201D043A920A202D0A2
S123BBF33DA20AD039A20BD035A20DD031A20ED02DA20FD029A210D025A211D021A212D0B4
S123BC131D2097BCA213D016A214D012A215D00EA216D00AA217D006A219D002A21A4C03FC
S123BC3301ADE9BFF01F38E901CDE8BFF017ADE8BF4C00BC20ABBDA9008DE3BF2097BC209C
S123BC5304BC8DEEBF602097BC4C1BBC2097BC200CBC8DEEBF6020E1BB202BBC1869418ED5
S123BC73EFBF8CF0BF20C1C8B01048AD90CC20F0BB68094020F0BBAD8FCC20F0BBACF0BF95
S123BC93AEEFBF60AD94BEAC95BE60ADE9BF8DF2BF60A2008A48A9008DE9BFACE7BF20724A
S123BCB3BD8CEDBFF00D290F48C8B944BFC93AF00A6888ADE8BF9DC3BF1008688DE9BF9DC5
S123BCD3C3BFC8A9088DECBF207FBDF01DE8C92AD007A93F9DC3BFD0049DC3BFC8CEECBFC4
S110BCF3D0E6207FBDF011C8D0F8E8A920EC
S123BD009DC3BFCEECBFD0F5B944BF48A9038DECBF68C92ED023C8207FBDF01DE8C92AD0AC
S123BD2007A93F9DC3BFD0049DC3BFC8CEECBFD0E6207FBDF00EC8D0F8E8A9209DC3BFCE7F
S123BD40ECBFD0F5A9038DECBFE8A9009DC3BFCEECBFD0F58CE7BFA9008DECBF68A8A20BCD
S123BD60C8B9C3BFC93FD003EEECBFCAD0F2ADECBF60B944BFF007C920D003C8D0F460B9F0
S123BD8044BFF01CC9209019F016C93DF012C92EF00EC93AF00AC93BF006C93CF002C93E06
S123BDA0604CC9B8A928A0014C2FBCA9008DC3BFADE9BFF01F38E901CDE8BFF0174C00BCE8
S123BDC08CF0BF20E1BBACF0BFB9AFBEF0062072BCC8D0F560A900A0088DF3BF8CF4BF6087
S123BDE0A20FBDC3BFBCD3BF9DD3BF989DC3BFCA10F060A20FBDD3BF9DC3BFCA10F7ADF262
S123BE00BF8DE9BF60A9098DF7BF20A5BCADE9BFD0678DF8BF8DF9BFA8B9C4BFC924D00698
S123BE20A90F8DF7BFC8C8B9C3BFC920F04E20A1CA900E20ABCAB041E906A20FECF7BFD050
S123BE4038290F48ADF8BF8DFABFADF9BF8DFBBFAEF7BF18ADF8BF6DFABF8DF8BFADF9BF21
S123BE606DFBBF8DF9BFB011CAD0E9686DF8BF8DF8BF90B2EEF9BFD0AD4CC9B8ADCCBFC90B
S123BE8020D0F6ADF8BFACF9BF604C42BF4CB4B84C03B84CC3BF4CE6B84CC8B94C65BA4C48
S123BEA085BA4C64B94C02BB4CC6BA4C12BBFF004E4F2053504143450043414E204E4F54DD
S123BEC020434C4F534500414C4C2046494C45532028592F4E293F005245414420455252B1
S123BEE04F52004E4F5420464F554E440046494C4520455849535453004C4F414420455219
S123BF00524F520043414E204E4F54204F50454E005752495445204552524F5200444952E1
S123BF202000534156452000455241200054595045200052454E2000474F20004C4F414459
S123BF4020007F00000000000000000000000000000000000000000000000000000000003E
S123BF600000000000000000000000000000000000000000000000000000000000000000BD
S123BF8000000000000000000000000000000000000000000000000000000000000000009D
S123BFA000000000000000000000000000000000000000000000000000000000000000007D
S123BFC000000000000000000000000000000000000000000000000000000000000000005D
S123BFE000000000434F360000000000000000000000000008000009000000000008D88DF7
S123C00098CB8DDCCB8C99CB8CDDCB8E9ACBE024B050BD54CBF008A9FF8D97CB20E9C2A98B
S123C020008D9FCBAD9ACB0A6D9ACBAAE8BD76C0BC77C08DA0CB8CA1CBADE4CA48ADE3CAB2
S123C04048AD98CBAC99CB6CA0CB8D9BCB8C9CCBAD9FCBF00DA0009102ADA9CB8D98CB203F
S123C06004C32C97CB100820E9C2A9008D97CBAC9CCBAD9BCB604CEAC04CDBC24C19C94C0D
S123C0806BCC4C68CC4C65CC4C8BC84C1FC14C2AC14CD0C84C85C94C9BC84C83CC4C32C35D
S123C0A04C04C34CAFC54CEAC54C0EC64C3AC14CA2C14C42C14CC7C14CB7C64C80C14C32A1
S123C0C0C14C2EC14CF9C24C23C14C6DC54C36C14CE2C04CE6C04CFAC04C0EC14C18C14CF6
S123C0E089CC8D95CB60AD95CB602C97CB100820E9C2A9008D97CB4C59CC2086CC8DC5CB24
S123C1008CC6CB8EC7CB8A2980A8ADC5CB60ADC7CB297FA8ADC6CB60AD6CC3AC6DC360AD74
S123C120060160ADD4CBACD5CB608D060160ADAACB60ADABCB60ADACCB602012C3A90D4C28
S123C1401BC62012C3208FC5ADB5CBCDB6CB9013C980F003A90160A20120F3C6C900D0F424
S123C1608DB5CB2084C7ADB0CB0DB1CBD003A902602066C620ACC4203DC8209EC5A9006027
S123C1802012C3201AC8A90C2013C63014A900A0109102A90CA2102086C6A90C201BC6102D
S123C1A0EC602012C3201AC8A90C2013C63017A20020EAC7ACAFCBAD53CB91042043C8A976
S123C1C00C201BC610E9602012C3201AC8208FC5ADB5CBC9809003A901602084C7A9008DD6
S123C1E0D9CBADB0CB0DB1CBF0034CAAC2A9028DD9CBAD91CB48C910F01AA8882CC0CB1034
S123C2000188B1028DB0CBC8A9002CC0CB1002B1028DB1CBADB0CB8DA5CB8DA7CBADB1CB93
S123C2208DA6CB8DA8CBADA7CBCDCBCBD008ACA8CBCCCCCBF012EEA7CBD003EEA8CBADA538
S123C240CB0DA6CBF018D00BADA5CB0DA6CBD003A8F030ADA5CBD003CEA6CBCEA5CBADA5B9
S123C260CBACA6CB2051C5D009ADA5CBACA6CB4C83C2ADA7CBACA8CB2051C5D0A9ADA7CBEC
S123C280ACA8CB8DB0CB8CB1CB0DB1CBD00468A90260ADB0CB2065C568A8ADB0CB9102ADB1
S123C2A0B1CBC82CC0CB100291022066C620ACC42049C8AEB5CBECB6CB9005E88EB6CBCADC
S123C2C0E07FD011209EC5A20020F3C6C900D00AA9FF8DB5CB209EC5A90060208BC820C1E4
S123C2E0C89005482019C96860A207B502BCDCCB9DDCCB9402CA10F360A502A403850484A6
S123C300054C7ACCAD98CBCDAACBF0EC8DAACB4C45C3A000B102F01938E90129078D98CB60
S123C320ADAACB8DA9CBB1028D9FCB9891022004C360A9028DAACB8DABCBA928A001850211
S123C340840320F9C2ADAACBC908900F206CC8ADE6CAACE7CA20D0C84CEAC02071CC8D6CD3
S123C360C38C6DC30D6DC3F0E3A00DB9FFFF99CBCB8810F7ADD1CBA81869038DC4CBB98B33
S123C380CB8DC3CBADD2CB8DC1CBADD3CB4A6EC1CB4A6EC1CB8DC2CBA9008DC0CBADCCCB5E
S123C3A0F00588386EC0CBB988CB8DDACB38A91FF988CB8DDBCBAEAACBBD80CB2DABCBD070
S123C3C00CBD80CB0DABCB8DABCB4CCEC360202EC8ADCBCB8DC8CBADCCCBA2034A6EC8CBD5
S123C3E0CAD0F98DC9CBEEC8CBD003EEC9CBADD4CBACD5CB85068407A000A9009106E60635
S123C400D002E607ADC8CBD003CEC9CBCEC8CBADC8CB0DC9CBD0E3ADC1CB8DC8CBADC2CB5C
S123C420AEC4CB4A6EC8CBCAD0F98DC9CBEEC8CBD003EEC9CB8EB0CB8EB1CBADB0CBACB14E
S123C440CB2065C5EEB0CBD003EEB1CBADC8CBD003CEC9CBCEC8CBADC8CB0DC9CBD0DC209A
S123C4607EC420DEC7A2012026C73011ACAFCBB104C9E5F0F0A20120EAC74C65C460206E80
S123C480CCADCFCBACD0CB4C74CCADAECB8DB1CBADADCB4EB1CB6A4EB1CB6A8DB7CB8DB0AA
S123C4A0CBADB1CB8DB8CBA9008DB2CBA2008ECACB8EA2CB8EA3CB8EA4CBADB0CBCDA2CBA6
S123C4C0ADB1CBEDA3CBADB2CBEDA4CB902118ADA2CB6DCDCB8DA2CBADA3CB6DCECB8DA31B
S123C4E0CB9003EEA4CBE8D0D1EECACB4CBAC4CAE0FFD003CECACB8A186DCFCBAAADCACB33
S123C5006DD0CBA88A2074CC38ADA2CBEDCDCB8DA2CBADA3CBEDCECB8DA3CB38ADB0CBEDC3
S123C520A2CBAAADB1CBEDA3CBA88A2089CC4C77CC488407A00346076A88D0FA186DD4CB83
S123C5408506A5076DD5CB8507682907AABD78CB602031C5310660E001F00A2031C549FF7F
S123C56031069106602031C51106910660AEAACBBD80CB0DACCB8DACCB60A900A07F187101
S123C580048810FA60AEAACBBD80CB2DACCB60A020B1028DB5CBA00FB1028DB6CB60AEB5BF
S123C5A0CBE88AA0209102ADB6CBA00F9102602012C32011C63032A90C0DAFCBA8B104AA86
S123C5C098291FA88A9102980DAFCBA8C898291FD0EBA00CAD92CBD102F00B9102A98090B8
S123C5E0010AA00F9102ADB9CB602012C32011C6301B2085C5D013A00CB10248980DAFCB0F
S123C600A868D1046E90CB2082C6ADB9CB602012C3A90D4820DEC7207EC4688DB3CBA20040
S123C6208EB4CB2026C7303DAEB3CBACB4CBEEB4CBB102C00CD0138D92CB48980DAFCBA850
S123C6406851042DDBCBF017D0D4C93FF01148980DAFCBA868851CB104297FC51CD0BFCAE3
S123C660D0C9ADB9CB60AEC4CB0EB0CB2EB1CB2EB2CBCAD0F4ADC3CB2DB5CB0DB0CB8DB036
S123C680CB60A920A2008DB3CBCEB3CB188A6DB3CBA8C00CF004C00FD0052C90CB100DB1BB
S123C6A00248ADB3CB0DAFCBA8689104CEB3CB10DB208AC44C43C82012C3201AC8A50248F3
S123C6C0A50348ADE9CAACEACA85028403A9012013C6688503688502ADB9CB3015A00DA94A
S123C6E0009102C8C021D0F9386E90CB2082C6ADB9CB608E9ECB20EDC5302AA00CB102189D
S123C7006901291FF01791022011C6100BAD9ECBD01320BAC64C1BC720B2C51003A901603C
S123C720208FC5A900608A48EEADCBD003EEAECBADD2CBCDADCBADD3CBEDAECBB00568AAFF
S123C7404CDEC7ADADCB29038DB9CB0A0A0A0A0A8DAFCBF00568AA4C62C7208AC4203DC83A
S123C76068AAADB9CB602CD6CB30FACAD009207AC520C8C7910860207AC520C8C7D108F09A
S123C780E44C6DC5AEC4CBADB5CB4ACAD0FC8DB0CB38A908EDC4CBAAA00CB1022DDACB4A57
S123C7A02ACAD0FC186DB0CB2CC0CB10010A1869108D91CBA8B1028DB0CBC8A9002CC0CBDE
S123C7C01002B1028DB1CB604818ADB7CB6DD7CB8508ADB8CB6DD8CB8509A0006860A9FF1E
S123C7E08DADCB8DAECB8DB9CB6018ADAFCB6910A88CBECB8A48B1048DBFCBC8207EC80D6B
S123C800BFCBF00A207EC8A8ADBFCB2057C568AAACBECBC898290FD0D8602085C5F01D2091
S123C8206CC8ADECCAACEDCA20D0C84CEAC0AEAACBBD80CB49FF2DACCB8DACCB60207DCC68
S123C8404C4FC8A201A901D003ADD9CB2080CCC900F0E9206CC8ADEFCAACF0CA20D0C820FA
S123C8608BC8C90DF0034CEAC04C67CAADF2CAACF3CA20D0C8ADAACB1869414C19C9A900E0
S123C8802CC0CB1005B1048CBECB60AD94CB48A9008D94CB68D003205FCC60AD94CBD020D3
S123C8A0205CCCC900F019205FCCC913D00D205FCCC903D0034CEAC0A900608D94CBA9FFD9
S123C8C060C90DF00AC90AF006C909F002C920608DD9C88CDAC8A000B9FFFFC924F00CC8EA
S123C8E08CBACB2019C9ACBACBD0ED602C95CB100A2CBCCB3005482065CC686020C1C8B08B
S123C9001848AD90CC2032C9A95E20ECC8680940202AC9AD8FCC4C32C9C909D00DA9202009
S123C9202AC9AD96CB2907D0F46048209BC86820ECC8482CBCCB30032062CC68EE96CBC99B
S123C94020B026CD8ECCF021CE96CBCD8CCCD006CE96CB300F60C90DF00ACD93CCF005CDEF
S123C96094CCD005A9008D96CB60A90D202AC9A90A20ECC8AD93CBCD96CBF0EDAD8ECC20FA
S123C98032C94C74C9A900A00191028C9DCBAD96CB8D93CB208BC8AC9DCBC90DD0034C6465
S123C9A0CAC908D05EC001F0EBB10248A00138B102E901910268CE9DCBC920B040C909D0F1
S123C9C030386EBCCBAD96CB8DBDCB206AC92071CAAD96CB4838ADBDCBED96CB8DBDCB0EF1
S123C9E0BCCB2091CACEBDCBD0F8688D96CB4C94C9AD8FCC208DCAAD90CC208DCA2091CA9A
S123CA004C94C9C910D00BAD95CB49FF8D95CB4C94C9C918D00C206AC9AD8DCC2032C94C4D
S123CA2085C9C912D009206AC92071CA4C94C9C89102488C9DCBA001981871029102682023
S123CA40FCC8AC9DCBB102C903D00BA001B102C901D0034CEAC0A001B10288D102B0034C0B
S123CA6094C9A90D4C2AC9A90D202AC9A90A4C2AC9AD9DCB8DBBCBA9014868CEBBCBD001FE
S123CA8060A8C89848B10220FCC84C7ACAC9209019AD8CCC482032C9A9202032C9684C32F7
S123CAA0C9C9309004C93A9001386020A1CA90FAC94190F5C94760ADF3BFACF4BF1869801D
S123CAC08DF3BF9004C88CF4BF60ADF3BFACF4BF8DD9CA8CDACAA200BDFFFF9D2801E810DF
S123CAE0F7604C49C04C42CB4C53CB4CF8CA4CFFCA4C32CB4CCBCBFF202D20522F4F2420F5
S123CB002D2042414420534543544F520D0A3C5245543E20544F2049474E4F5245202D2D70
S123CB20203C4F544845523E20544F2041424F5254240D0A50454D204552524F52204F4EF6
S123CB402024202D20494E56414C494420445249564524E500000000000000000000010075
S123CB600001010101010101010101010000010000000000000000008040201008040201A6
S123CB800102040810204080000103070F1F3F7F000000000000000000000000000000009B
S123CBA0000000000000000000000000000000000000000000000000000000000000000071
S123CBC0000000000000000000000000000000000000000000000000000000000000000051
S123CBE00000000048DA5AAA4A4A4A4A1820F8CB8A20F8CB7AFA6860290F0930C93A300398
S123CC001869074CB5CE48DA5AA90D20B5CEA90A20B5CE7AFA68605ADA48A000A2FF38E875
S123CC20E964B0FB69642040CCA2FF38E8E90AB0FB690A2040CCAAA0012040CC68FA7A604E
S123CC4048C000D0098AA8C000D0034C54CC8A093020B5CE68604CAECD4C21CE4CAFCE4C79
S123CC60B2CE4CB5CE4CB8CE4CB9CE4CBACE4C5ACE4C29CE4C5ECE4C66CE4CAACE4C6DCEEE
S123CC804C8BCEA901604CBBCE4CBCCE08010C005E18500C1E020D0A6438383838622E2024
S123CCA0202E643838622E20202E64383838382E20202020644420202020206F6F6F6F6FEB
S123CCC00D0A38382020603844202E3850202059382E203838202020595020202064382023
S123CCE02020202038507E7E7E7E0D0A38382020203838203838202020203838206038623F
S123CD006F2E202020206438202020202064500D0A38382020203838203838202020203863
S123CD2038202020605938622E206438383838622E205638383838622E0D0A003838202035
S123CD402E384420603862202064382720646220202038442038382020603844202020201A
S123CD60206038440D0A5938383838442020206059383850202020603838383859202060AD
S123CD803838383850202038386F6F62590D0A11444F532F3635204F4E20544845204E48FA
S123CDA0594F44594E4520332E30300D0A0078A2FF9AD8A996A0CC20BDCEA93CA0CD20BD8F
S123CDC0CE2006CC2075D820AFD0201ED5207DD7546E5C5E6E54794020B9D7A9448530A90A
S123CDE0BF8531A94A852EA9CE852F2037CF20B9D8A2008E88DA8E89DABD1BCE9D0001E863
S123CE00E006D0F5A928A00120AACEAD82DAA9022029CE205ACEA9024C03B84C59CC4CFED9
S123CE20BF78A2FF9AD84CEECD29078D82DAAD82DA0AAABD3ACEBC3BCE6012DA20DA2EDAEF
S123CE403CDA4ADA58DA66DA74DA00000100300030013002300330043006A900A000188DB5
S123CE608ADA8C8BDA608D8CDA8C8DDA60201BCF29F0C900D004202CD960C920D003A9FF0A
S123CE8060C930D0034C70D2A9FF60201BCF29F0C900D0042060D960C920D003A9FF60C9C6
S123CEA030D00420C4D260A9FF6085F484F5604C9DD04C8ED04C6FD0606060606085F08433
S123CEC0F1A000B1F0C900F00720B5CEC84CC3CE6048AD8CDA2903182AAABDF2CE85EEE869
S123CEE0BDF2CE85EFA5F485ECA5F585ED2028CF686009E389E309E489E448AD8CDA29030F
S123CF00182AAABDF2CE85ECE8BDF2CE85EDA5F485EEA5F585EF2028CF6860DAAD82DA2957
S123CF20070AAABD4ACEFA605AA000B1EE91ECC898C980D0F67A602006CC48DA5AA200BDD7
S123CF4053CFE8C924F00620B5CE4C3FCF7AFA684C67CF4469736B20436F6E66696775729D
S123CF606174696F6E3A242006CCA20048DA5AA200BD85CFE8C924F00620B5CE4C71CF7AFD
S123CF80FA684C8ACF20202020248A4A18694120B5CEA93A20B5CEA93D20B5CE20B4CFA94E
S123CFA03A20B5CEE8BD4ACE2017CCE82006CCE010D0B960BD4ACE4829F0C900D01F48DA0D
S123CFC05AA200BDD7CFE8C924F00620B5CE4CC3CF7AFA684CDACF4D44244C67D0C910D0F0
S123CFE02048DA5AA200BDFACFE8C924F00620B5CE4CE6CF7AFA684CFECF554E4B244C6740
S123D000D0C920D01F48DA5AA200BD1ED0E8C924F00620B5CE4C0AD07AFA684C21D0464464
S123D020244C67D0C930D02248DA5AA200BD41D0E8C924F00620B5CE4C2DD07AFA684C4748
S123D040D05050494445244C67D048DA5AA200BD63D0E8C924F00620B5CE4C4FD07AFA6820
S123D0604C67D0554E4B2468290F2017CC606048AD6D032920C900F0F7688D680360AD6D7C
S123D080032901C900F004AD680360A90060AD6D032901C900F0F7AD6803297F60AD6D03ED
S123D0A02901C900F003A9FF60A9006000000048DA5AA200BDC8D0E8C924F00620B5CE4C48
S123D0C0B4D07AFA684CD0D05050494445203A242006CC2062D2D03548DA5AA200BDF1D029
S123D0E0E8C924F00620B5CE4CDDD07AFA684CF8D020494F3D307824A90320E4CBA9602070
S123D100E4CB20F7D2209BD1B0034C36D148DA5AA200BD26D1E8C924F00620B5CE4C12D172
S123D1207AFA684C33D1204E4F542050524553454E54244C97D12006CC48DA5AA200BD5276
S123D140D1E8C924F00620B5CE4C3ED17AFA684C63D1205050494445303A20426C6F636BCE
S123D160733D24A90020DBD148DA5AA200BD81D1E8C924F00620B5CE4C6DD17AFA684C9283
S123D180D1205050494445313A20426C6F636B733D24A90120DBD12006CC60A9008D60037D
S123D1A02022D3B034A90F20D4D48A2940C900F028A90A20D4D4E001D01FA90B20D4D4E077
S123D1C001D016A90C20D4D4E000D00DA90D20D4D4E000D004184CDAD1386029010A0A0A09
S123D1E00A09E0AAA000A90E20F2D42022D3B048A90FA2EC20F2D4204AD3B03C207AD3483A
S123D200DA5AA200BD18D2E8C924F00620B5CE4C04D27AFA684C1BD2307824AD84E320E404
S123D220CBAD83E320E4CBAD82E320E4CBAD81E320E4CB2006CC186048DA5AA200BD51D214
S123D240E8C924F00620B5CE4C3DD27AFA684C5DD24E4F542050524553454E54242006CC62
S123D26038602016D5A9008D6003AD6003C900602077D220D1CE602019D4AD90DACD95DA4D
S123D280D013AD8FDACD94DAD00BAD8EDACD93DAD003A900602022D3B02720E6D3A90FA231
S123D2A02020F2D4204AD3B018207AD3AD90DA8D95DAAD8EDA8D93DAAD8FDA8D94DAA90016
S123D2C060A9FF602077D220FACE2022D3B02520E6D3A90FA23020F2D4204AD3B01620AF8C
S123D2E0D32022D3B00EA9FF8D95DA8D93DA8D94DAA90060A9FF60A9008D90DA8D8EDA8DB8
S123D3008FDAA9FF8D95DA8D93DA8D94DAA9808D6203A200CAE000D0FBA9008D6203200A10
S123D320D660DA5A48A9008DADD08DAED0A90F20D4D48A2980F00EEEADD0D0F1EEAED0D060
S123D340EC384C46D318687AFA60DA5A48A9008DADD08DAED0A90F20D4D48A2988C908F036
S123D360142901C901F00AEEADD0D0E9EEAED0D0E4384C76D318687AFA60A2008EACD0A9ED
S123D3800820D4D48AAEACD09D09E3E8989D09E3E8E000D0E78EACD0A90820D4D48AAEAC8D
S123D3A0D09D09E4E8989D09E4E8E000D0E760A2008EACD0BD0AE3A8BD09E3AAA90820F212
S123D3C0D4AEACD0E8E8E000D0E7A2008EACD0BD0AE4A8BD09E4AAA90820F2D4AEACD0E8E8
S123D3E0E8E000D0E760201BCF29010A0A0A0A09E0AAA000A90E20F2D4AE8FDAA90D20F23F
S123D400D4AE8EDAA90C20F2D4AE90DAA90B20F2D4A201A90A20F2D460AD8ADA290F0A0AD8
S123D4200A0AAAAD8CDA4A4A290F8D90DA8A0D90DA8D90DAAD8ADA8D8EDAAD8BDA8D8FDA4E
S123D440AD8FDA4A8D8FDAAD8EDA6A8D8EDAAD8FDA4A8D8FDAAD8EDA6A8D8EDAAD8FDA4AD4
S123D4608D8FDAAD8EDA6A8D8EDAAD8FDA4A8D8FDAAD8EDA6A8D8EDAAD82DA29070AAAE89F
S123D480BD4ACE8D98DAA9008D97DA186E98DA6E97DA6E98DA6E97DABD4ACE186D97DA8D1F
S123D4A097DA18AD97DA6D8EDA8D8EDAAD98DA6D8FDA8D8FDAAD82DA8D71D8AD8FDA8D7218
S123D4C0D8AD8EDA8D73D8AD90DA8D74D82090D620C5D660200ED58D620309408D6203487A
S123D4E0AE6003AC61036849408D6203A9008D6203602016D58E60038C61038D6203092022
S123D5008D620349208D6203A9008D62036048A9928D6303686048A9808D6303686020DA5B
S123D520D548DA5AA200BD3AD5E8C924F00620B5CE4C26D57AFA684C40D544534B593A249D
S123D5402006CC48DA5AA200BD5CD5E8C924F00620B5CE4C48D57AFA684C63D520494F3D9D
S123D560307824A90320E4CBA96020E4CB48DA5AA200BD86D5E8C924F00620B5CE4C72D551
S123D5807AFA684C8DD5204D4F44453D2448DA5AA200BDA6D5E8C924F00620B5CE4C92D5E0
S123D5A07AFA684CA9D54E4724AD68D8C9FFF02648DA5AA200BDC9D5E8C924F00620B5CE56
S123D5C04CB5D57AFA684CD6D5204E4F542050524553454E54242006CC60201FD6D02A20A7
S123D5E041D8A9068D620309808D6203297F8D6203200AD6A9A5A000205BD7A000206FD712
S123D600C9A5D005A9FF8D68D8602053D8A92120DBD6A9DF20DBD6A200DAFACAD0FB602024
S123D6202AD8A9008D6003AD6003C90060AD68D8C9FFD0052014D7290F60AD68D8C9FFD060
S123D64024202DD6F0F4A94020DBD62019D749C048293F8D66D8A200BD74D6CD66D8F009A0
S123D660E8E01CD0F368A9FF606825C08D66D88A0D66D8600D040C14030B13020A120109C8
S123D6801100081005151D1C1B1A191823222120A200BD71D84A4A4A4ADAAABD56D8FADA0B
S123D6A0488A0AAA689D69D8FABD71D8290FDAAABD56D8FADA488A0AAAE8689D69D8FAE889
S123D6C0E004D0CE6048DA5AA200BD69D8DA7A205BD7E8E008D0F37AFA686048A9014CE4B1
S123D6E0D648A900202AD809068D620309188D62038D66D8688D6003AD66D829FD8D620303
S123D700EA09028D620329E78D620329E68D62032053D860A9014C1BD7A9002041D8090697
S123D7208D620309188D6203297B8D62038D66D8AD600348AD66D809048D620329E78D623E
S123D7400329E68D62032053D86860A99020DBD6A210A9FF20E1D6CAD0F8605A48481898E7
S123D7606990A820DBD66849FF20E1D6687A6018986970A820DBD62019D749FF608E66D8E4
S123D780BA6885146885159AAE66D8DA5A4818E6149002E615A000B114205BD7C8C008D010
S123D7A0F6687AFA8D66D81868690885149003681A48A51448AD66D8605ADA48A00F206FDB
S123D7C0D70920A920A00F205BD7A28FA0FF88D0FDCAD0FAA00F206FD729DFA9DFA00F204E
S123D7E05BD768FA7A605A48A00D206FD70920A00D205BD7687A605A48A00E206FD70920B9
S123D800A00E205BD7687A605A48A00D206FD729DFA00D205BD7687A605A48A00E206FD70E
S123D82029DFA00E205BD7687A6048AD67D8C982F00DA9828D63038D67D8A9068D6203682B
S123D8406048AD67D8C992F008A9928D63038D67D868604C41D83F065B4F666D7D077F678A
S123D860777C395E797100000000000000000000000000000048DA5AA200BD8ED8E8C9241A
S123D880F00620B5CE4C7AD87AFA684CB6D84D443A20554E4954533D322052414D444953CA
S123D8A04B3D3235364B4220524F4D4449534B3D3338344B42242006CCA200BDC7D89D005F
S123D8C002E8E000D0F560488415A00084148A2980C900D0388A2940C900D00DA9808D7C6D
S123D8E0036809808D7803D00BA9008D780368297F8D7C03A200DA7AB1149D0004E8E0005C
S123D900D0F4A9808D7C03A98E8D7803606809808D7803A200DA7ABD00049114E8E000D07E
S123D920F4A9808D7C03A98E8D7803602035D920C6D9A90060201BCF29010A0A0A0A0A0AB5
S123D940297FAA2083D9E000F00CEE8EDAEE8EDAEE8EDAEE8EDAAD8EDAAC90DA2000026014
S123D960201BCF2901C900F003A9FF602035D92083D920ECD9AD8EDAAC90DAA280200002AD
S123D980A90060DAAD8CDA4A291F8D90DAAD8ADA29030A0A0A0A0A09800D90DA8D90DAADF1
S123D9A08ADA4A4A8D8EDAAD82DA8D71D8A9008D72D8AD8EDA8D73D8AD90DA8D74D820908A
S123D9C0D620C5D6FA6048AD8CDA2901C900D007A90085EE4CDBD9A98085EEA90485EFA5B5
S123D9E0F485ECA5F585ED2028CF686048AD8CDA2901C900D007A90085EC4C01DAA98085BF
S123DA00ECA90485EDA5F485EEA5F585EF2028CF68607F004000000001FF0099DA0089E261
S123DA20BF0040000000019B0097DB0089E2FF074000100002FF0195DC0089E2FF074000F0
S123DA40100002FF0193DD0089E2FF074000100002FF0191DE0089E2FF074000100002FF4C
S123DA60018FDF0089E2FF074000100002FF018DE00089E2FF074000100002FF018BE100D4
S123DA8089E202000000000000000000000000000000000000000000000000000000000015
S123DAA0000000000000000000000000000000000000000000000000000000000000000062
S123DAC0000000000000000000000000000000000000000000000000000000000000000042
S123DAE0000000000000000000000000000000000000000000000000000000000000000022
S123DB00000000000000000000000000000000000000000000000000000000000000000001
S123DB200000000000000000000000000000000000000000000000000000000000000000E1
S123DB400000000000000000000000000000000000000000000000000000000000000000C1
S123DB600000000000000000000000000000000000000000000000000000000000000000A1
S123DB80000000000000000000000000000000000000000000000000000000000000000081
S123DBA0000000000000000000000000000000000000000000000000000000000000000061
S123DBC0000000000000000000000000000000000000000000000000000000000000000041
S123DBE0000000000000000000000000000000000000000000000000000000000000000021
S123DC00000000000000000000000000000000000000000000000000000000000000000000
S123DC200000000000000000000000000000000000000000000000000000000000000000E0
S123DC400000000000000000000000000000000000000000000000000000000000000000C0
S123DC600000000000000000000000000000000000000000000000000000000000000000A0
S123DC80000000000000000000000000000000000000000000000000000000000000000080
S123DCA0000000000000000000000000000000000000000000000000000000000000000060
S123DCC0000000000000000000000000000000000000000000000000000000000000000040
S123DCE0000000000000000000000000000000000000000000000000000000000000000020
S123DD000000000000000000000000000000000000000000000000000000000000000000FF
S123DD200000000000000000000000000000000000000000000000000000000000000000DF
S123DD400000000000000000000000000000000000000000000000000000000000000000BF
S123DD6000000000000000000000000000000000000000000000000000000000000000009F
S123DD8000000000000000000000000000000000000000000000000000000000000000007F
S123DDA000000000000000000000000000000000000000000000000000000000000000005F
S123DDC000000000000000000000000000000000000000000000000000000000000000003F
S123DDE000000000000000000000000000000000000000000000000000000000000000001F
S123DE000000000000000000000000000000000000000000000000000000000000000000FE
S123DE200000000000000000000000000000000000000000000000000000000000000000DE
S123DE400000000000000000000000000000000000000000000000000000000000000000BE
S123DE6000000000000000000000000000000000000000000000000000000000000000009E
S123DE8000000000000000000000000000000000000000000000000000000000000000007E
S123DEA000000000000000000000000000000000000000000000000000000000000000005E
S123DEC000000000000000000000000000000000000000000000000000000000000000003E
S123DEE000000000000000000000000000000000000000000000000000000000000000001E
S123DF000000000000000000000000000000000000000000000000000000000000000000FD
S123DF200000000000000000000000000000000000000000000000000000000000000000DD
S123DF400000000000000000000000000000000000000000000000000000000000000000BD
S123DF6000000000000000000000000000000000000000000000000000000000000000009D
S123DF8000000000000000000000000000000000000000000000000000000000000000007D
S123DFA000000000000000000000000000000000000000000000000000000000000000005D
S123DFC000000000000000000000000000000000000000000000000000000000000000003D
S123DFE000000000000000000000000000000000000000000000000000000000000000001D
S123E0000000000000000000000000000000000000000000000000000000000000000000FC
S123E0200000000000000000000000000000000000000000000000000000000000000000DC
S123E0400000000000000000000000000000000000000000000000000000000000000000BC
S123E06000000000000000000000000000000000000000000000000000000000000000009C
S123E08000000000000000000000000000000000000000000000000000000000000000007C
S123E0A000000000000000000000000000000000000000000000000000000000000000005C
S123E0C000000000000000000000000000000000000000000000000000000000000000003C
S123E0E000000000000000000000000000000000000000000000000000000000000000001C
S123E1000000000000000000000000000000000000000000000000000000000000000000FB
S123E1200000000000000000000000000000000000000000000000000000000000000000DB
S123E1400000000000000000000000000000000000000000000000000000000000000000BB
S123E16000000000000000000000000000000000000000000000000000000000000000009B
S123E18000000000000000000000000000000000000000000000000000000000000000007B
S123E1A000000000000000000000000000000000000000000000000000000000000000005B
S123E1C000000000000000000000000000000000000000000000000000000000000000003B
S123E1E000000000000000000000000000000000000000000000000000000000000000001B
S123E2000000000000000000000000000000000000000000000000000000000000000000FA
S123E2200000000000000000000000000000000000000000000000000000000000000000DA
S123E2400000000000000000000000000000000000000000000000000000000000000000BA
S123E26000000000000000000000000000000000000000000000000000000000000000009A
S123E28000000000000000000000000000000000000000000000000000000000000000007A
S123E2A000000000000000000000000000000000000000000000000000000000000000005A
S123E2C000000000000000000000000000000000000000000000000000000000000000003A
S123E2E000000000000000000000000000000000000000000000000000000000000000001A
S123E3000000000000000000000000000000000000000000000000000000000000000000F9
S123E3200000000000000000000000000000000000000000000000000000000000000000D9
S123E3400000000000000000000000000000000000000000000000000000000000000000B9
S123E360000000000000000000000000000000000000000000000000000000000000000099
S123E380000000000000000000000000000000000000000000000000000000000000000079
S123CFF3000000000000000000000000004CA8E5D84820FCD3682000D4AD8CE44A4A4A4A91
S123D0138DF6D7AD43D7D03CA2FF9AD8A91120F0D32069D4A93E20F0D3AD8BD6AC8CD620B9
S123D033F4D3A000AE43D7F0DFB944D7C9619009C97BB005295F9944D7C8CAD0EC8A99445A
S123D053D78DE7D720A4D5202BD48DE8D720A5D4D064ADE9D7F004A915D02EA900AA8DECDD
S123D073D7A001BD1DD7F01AD9C3D7D004E8C8D0F2E8BD1DD7D0FAE8EEECD7ADECD7C90771
S123D093D0DFADECD70A6DECD7AAE8BD96D6BC97D68DEAD78CEBD7AD8FD648AD8ED6486C81
S123D0B3EAD72034D420A5D4ADC4D738E9200DE9D7D0034C1BD020E1D3ACEDD7B944D7F06F
S123D0D30AC920F0062072D4C8D0F1A93F20F0D34C1BD020A5D420ABD5A920CDC4D7D00F16
S123D0F3CDCCD7D00AA93FA00B99C3D788D0FA205FD43058ADF6D78DF5D720E1D3206CD4D5
S123D113A93A20F0D3ADEED70A0A0A0A0A2960A8C8A201B92801297F2072D4C8E8E00CF076
S123D1330CE009D0EEA92E2072D44C26D120F8D3D0192097D42010D48DEED7300ECEF5D718
S123D153F0B220EED320EED34C10D160A0344CC0D520A5D4D057209ED420ABD5205FD4309D
S123D1734F20E0D5ACE7D7B944D7C920D03C20A5D4D037ADE9D7F012CDF2D7F00D38E9017D
S123D193CDE8D7D025ADF2D7D020ADF2D78DE9D7A9008DD3D720ABD5205FD4100920E0D50D
S123D1B32097D44C27D4A03ED0082034D44CC9D0A0344CC0D5A900A0088DFCD78CFDD720DD
S123D1D305D6D07A8DF1D70DF1D7F07220A5D4D06D20E0D5209ED42005D6AEC4D7E020F016
S110D1F30A8DFCD78CFDD7C002905320F3A9
S123D200D520ABD52014D42097D42023D43045204AD4304418ADFDD76DF1D78DF1D7ADFCF8
S123D220D7ACFDD78DF3D78CF4D720C4E22097D4201FD4D02718ADF3D7ACF4D76980900308
S123D240C8F005CCF1D7D0DC2097D42008D43010604CC9D0A001D00AA055D006A062D002A7
S123D260A00A4CC0D520A5D4C90BD013A01820C0D520EAD34820E1D368295FC959D0D12096
S123D280ABD54C14D420A5D4D0302047D4303220E1D32059D4F00410203022A200BD280181
S123D2A0C91AF0152072D420F8D3D008AEEFD7E810EB30DEA206200301604CC9D0A029D04A
S123D2C002A0344CC0D520D5D520A5D4D0EC20E0D5209ED42005D6AEC4D7E020F00320D9DD
S123D2E0D520F3D52047D430D8ADF3D7ACF4D7202FD42059D4D00620B1E24CEFD230BE4CFC
S123D300A4D52005D6AEC4D7E020F0034C76D34C72D3ADC4D7C920D011ADE9D7F00938E99A
S123D320018DE8D72000D44CB8D0ADCCD7C920F0034CD9D3A202BDE4D79DCCD7CA10F72063
S123D34047D410034CD6D320D5D5202FD42059D4D01E20B1E2CD91D69007CC92D690EBB0A1
S123D36007CC92D690E4F0E220A4D52059D4F06C306AA900A0088DCBD38CCCD32034D4205D
S123D380A5D4ADE9D78DC3D7A21020A7D4ADE9D78DD3D7A0008CE3D7A220BDC3D79D0701E7
S123D3A0CA10F7E8B944D7F007C920F003C8D0F4A9008D2801B944D79D2901F007E8C8EEEE
S123D3C02801D0F120E1D320A4D5200008ADE8D72000D44C1BD02034D44CC9D0A04A4CC030
S123D3E0D5A90D20F0D3A90AD006A201D043A920A202D03DA20AD039A20BD035A20DD031EB
S123D400A20ED02DA20FD029A210D025A211D021A212D01D2097D4A213D016A214D012A265
S123D42015D00EA216D00AA217D006A219D002A21A4C0301ADE9D7F01F38E901CDE8D7F021
S123D44017ADE8D74C00D420ABD5A9008DE3D72097D42004D48DEED7602097D44C1BD4207A
S123D46097D4200CD48DEED76020E1D3202BD41869418EEFD78CF0D720BBE0B01048AD8A35
S123D480E420F0D368094020F0D3AD89E420F0D3ACF0D7AEEFD760AD94D6AC95D660ADE9C5
S123D4A0D78DF2D760A2008A48A9008DE9D7ACE7D72072D58CEDD7F00D290F48C8B944D737
S123D4C0C93AF00A6888ADE8D79DC3D71008688DE9D79DC3D7C8A9088DECD7207FD5F01D6A
S123D4E0E8C92AD007A93F9DC3D7D0049DC3D7C8CEECD7D0E6207FD5F011C8D0F8E8A92087
S123D5009DC3D7CEECD7D0F5B944D748A9038DECD768C92ED023C8207FD5F01DE8C92AD01C
S123D52007A93F9DC3D7D0049DC3D7C8CEECD7D0E6207FD5F00EC8D0F8E8A9209DC3D7CEEF
S123D540ECD7D0F5A9038DECD7E8A9009DC3D7CEECD7D0F58CE7D7A9008DECD768A8A20B25
S123D560C8B9C3D7C93FD003EEECD7CAD0F2ADECD760B944D7F007C920D003C8D0F460B978
S123D58044D7F01CC9209019F016C93DF012C92EF00EC93AF00AC93BF006C93CF002C93ED6
S123D5A0604CC9D0A928A0014C2FD4A9008DC3D7ADE9D7F01F38E901CDE8D7F0174C00D440
S123D5C08CF0D720E1D3ACF0D7B9AFD6F0062072D4C8D0F560A900A0088DF3D78CF4D760C7
S123D5E0A20FBDC3D7BCD3D79DD3D7989DC3D7CA10F060A20FBDD3D79DC3D7CA10F7ADF2BA
S123D600D78DE9D760A9098DF7D720A5D4ADE9D7D0678DF8D78DF9D7A8B9C4D7C924D006C0
S123D620A90F8DF7D7C8C8B9C3D7C920F04E209BE2900E20A5E2B041E906A20FECF7D7D0CC
S123D64038290F48ADF8D78DFAD7ADF9D78DFBD7AEF7D718ADF8D76DFAD78DF8D7ADF9D731
S123D6606DFBD78DF9D7B011CAD0E9686DF8D78DF8D790B2EEF9D7D0AD4CC9D0ADCCD7C94B
S123D68020D0F6ADF8D7ACF9D7604C42D74CB4D04C03D04CC3D74CE6D04CC8D14C65D24C58
S123D6A085D24C64D14C02D34CC6D24C12D3FF004E4F2053504143450043414E204E4F544D
S123D6C020434C4F534500414C4C2046494C45532028592F4E293F00524541442045525299
S123D6E04F52004E4F5420464F554E440046494C4520455849535453004C4F414420455201
S123D700524F520043414E204E4F54204F50454E005752495445204552524F5200444952C9
S123D7202000534156452000455241200054595045200052454E2000474F20004C4F414441
S123D74020007F000000000000000000000000000000000000000000000000000000000026
S123D7600000000000000000000000000000000000000000000000000000000000000000A5
S123D780000000000000000000000000000000000000000000000000000000000000000085
S123D7A0000000000000000000000000000000000000000000000000000000000000000065
S123D7C0000000000000000000000000000000000000000000000000000000000000000045
S123D7E000000000434F360000000000000000000000000008000009000000000008D88DDF
S123D80092E38DD6E38C93E38CD7E38E94E3E024B050BD4EE3F008A9FF8D91E320E9DAA9DD
S123D820008D99E3AD94E30A6D94E3AAE8BD76D8BC77D88D9AE38C9BE3ADDEE248ADDDE2EC
S123D84048AD92E3AC93E36C9AE38D95E38C96E3AD99E3F00DA0009102ADA3E38D92E32097
S123D86004DB2C91E3100820E9DAA9008D91E3AC96E3AD95E3604CEAD84CDBDA4C13E14C3B
S123D88065E44C62E44C5FE44C85E04C1FD94C2AD94CCAE04C7FE14C95E04C7DE44C32DB6D
S123D8A04C04DB4CAFDD4CEADD4C0EDE4C3AD94CA2D94C42D94CC7D94CB1DE4C80D94C329F
S123D8C0D94C2ED94CF9DA4C23D94C6DDD4C36D94CE2D84CE6D84CFAD84C0ED94C18D94CD6
S123D8E083E48D8FE360AD8FE3602C91E3100820E9DAA9008D91E34C53E42080E48DBFE364
S123D9008CC0E38EC1E38A2980A8ADBFE360ADC1E3297FA8ADC0E360AD6CDBAC6DDB60ADD2
S123D920060160ADCEE3ACCFE3608D060160ADA4E360ADA5E360ADA6E3602012DBA90D4C9E
S123D9401BDE2012DB208FDDADAFE3CDB0E39013C980F003A90160A20120EDDEC900D0F48E
S123D9608DAFE3207EDFADAAE30DABE3D003A902602060DE20ACDC2037E0209EDDA9006073
S123D9802012DB2014E0A90C2013DE3014A900A0109102A90CA2102080DEA90C201BDE10A9
S123D9A0EC602012DB2014E0A90C2013DE3017A20020E4DFACA9E3AD4DE39104203DE0A9D4
S123D9C00C201BDE10E9602012DB2014E0208FDDADAFE3C9809003A90160207EDFA9008D40
S123D9E0D3E3ADAAE30DABE3F0034CAADAA9028DD3E3AD8BE348C910F01AA8882CBAE31098
S123DA000188B1028DAAE3C8A9002CBAE31002B1028DABE3ADAAE38D9FE38DA1E3ADABE3FD
S123DA208DA0E38DA2E3ADA1E3CDC5E3D008ACA2E3CCC6E3F012EEA1E3D003EEA2E3AD9F96
S123DA40E30DA0E3F018D00BAD9FE30DA0E3D003A8F030AD9FE3D003CEA0E3CE9FE3AD9F23
S123DA60E3ACA0E32051DDD009AD9FE3ACA0E34C83DAADA1E3ACA2E32051DDD0A9ADA1E308
S123DA80ACA2E38DAAE38CABE30DABE3D00468A90260ADAAE32065DD68A8ADAAE39102AD15
S123DAA0ABE3C82CBAE3100291022060DE20ACDC2043E0AEAFE3ECB0E39005E88EB0E3CA2E
S123DAC0E07FD011209EDDA20020EDDEC900D00AA9FF8DAFE3209EDDA900602085E020BB6C
S123DAE0E09005482013E16860A207B502BCD6E39DD6E39402CA10F360A502A40385048440
S123DB00054C74E4AD92E3CDA4E3F0EC8DA4E34C45DBA000B102F01938E90129078D92E3D6
S123DB20ADA4E38DA3E3B1028D99E39891022004DB60A9028DA4E38DA5E3A928A001850287
S123DB40840320F9DAADA4E3C908900F2066E0ADE0E2ACE1E220CAE04CEAD8206BE48D6C1F
S123DB60DB8C6DDB0D6DDBF0E3A00DB9FFFF99C5E38810F7ADCBE3A81869038DBEE3B985A3
S123DB80E38DBDE3ADCCE38DBBE3ADCDE34A6EBBE34A6EBBE38DBCE3A9008DBAE3ADC6E38C
S123DBA0F00588386EBAE3B982E38DD4E338A91FF982E38DD5E3AEA4E3BD7AE32DA5E3D0C8
S123DBC00CBD7AE30DA5E38DA5E34CCEDB602028E0ADC5E38DC2E3ADC6E3A2034A6EC2E315
S123DBE0CAD0F98DC3E3EEC2E3D003EEC3E3ADCEE3ACCFE385068407A000A9009106E606C3
S123DC00D002E607ADC2E3D003CEC3E3CEC2E3ADC2E30DC3E3D0E3ADBBE38DC2E3ADBCE3B4
S123DC20AEBEE34A6EC2E3CAD0F98DC3E3EEC2E3D003EEC3E38EAAE38EABE3ADAAE3ACABAC
S123DC40E32065DDEEAAE3D003EEABE3ADC2E3D003CEC3E3CEC2E3ADC2E30DC3E3D0DC20D4
S123DC607EDC20D8DFA2012020DF3011ACA9E3B104C9E5F0F0A20120E4DF4C65DC602068F6
S123DC80E4ADC9E3ACCAE34C6EE4ADA8E38DABE3ADA7E34EABE36A4EABE36A8DB1E38DAADE
S123DCA0E3ADABE38DB2E3A9008DACE3A2008EC4E38E9CE38E9DE38E9EE3ADAAE3CD9CE3D4
S123DCC0ADABE3ED9DE3ADACE3ED9EE3902118AD9CE36DC7E38D9CE3AD9DE36DC8E38D9D67
S123DCE0E39003EE9EE3E8D0D1EEC4E34CBADCCAE0FFD003CEC4E38A186DC9E3AAADC4E391
S123DD006DCAE3A88A206EE438AD9CE3EDC7E38D9CE3AD9DE3EDC8E38D9DE338ADAAE3ED09
S123DD209CE3AAADABE3ED9DE3A88A2083E44C71E4488407A00346076A88D0FA186DCEE3FF
S123DD408506A5076DCFE38507682907AABD72E3602031DD310660E001F00A2031DD49FF13
S123DD6031069106602031DD1106910660AEA4E3BD7AE30DA6E38DA6E360A900A07F187189
S123DD80048810FA60AEA4E3BD7AE32DA6E360A020B1028DAFE3A00FB1028DB0E360AEAF53
S123DDA0E3E88AA0209102ADB0E3A00F9102602012DB2011DE3032A90C0DA9E3A8B104AA02
S123DDC098291FA88A9102980DA9E3A8C898291FD0EBA00CAD8CE3D102F00B9102A980907C
S123DDE0010AA00F9102ADB3E3602012DB2011DE301B2085DDD013A00CB10248980DA9E38B
S123DE00A868D1046E8AE3207CDEADB3E3602012DBA90D4820D8DF207EDC688DADE3A2009E
S123DE208EAEE32020DF3037AEADE3ACAEE3EEAEE3B102C00CD0138D8CE348980DA9E3A8C0
S123DE406851042DD5E3F011D0D4C93FF00B48980DA9E3A868D104D0C5CAD0CFADB3E36075
S123DE60AEBEE30EAAE32EABE32EACE3CAD0F4ADBDE32DAFE30DAAE38DAAE360A920A20022
S123DE808DADE3CEADE3188A6DADE3A8C00CF004C00FD0052C8AE3100DB10248ADADE30D5D
S123DEA0A9E3A8689104CEADE310DB208ADC4C3DE02012DB2014E0A50248A50348ADE3E283
S123DEC0ACE4E285028403A9012013DE688503688502ADB3E33015A00DA9009102C8C0210A
S123DEE0D0F9386E8AE3207CDEADB3E3608E98E320EDDD302AA00CB102186901291FF017A8
S123DF0091022011DE100BAD98E3D01320B4DE4C15DF20B2DD1003A90160208FDDA90060E2
S123DF208A48EEA7E3D003EEA8E3ADCCE3CDA7E3ADCDE3EDA8E3B00568AA4CD8DFADA7E3BE
S123DF4029038DB3E30A0A0A0A0A8DA9E3F00568AA4C5CDF208ADC2037E068AAADB3E36023
S123DF602CD0E330FACAD009207ADD20C2DF910860207ADD20C2DFD108F0E44C6DDDAEBED9
S123DF80E3ADAFE34ACAD0FC8DAAE338A908EDBEE3AAA00CB1022DD4E34A2ACAD0FC186D6E
S123DFA0AAE32CBAE310010A1869108D8BE3A8B1028DAAE3C8A9002CBAE31002B1028DABB4
S123DFC0E3604818ADB1E36DD1E38508ADB2E36DD2E38509A0006860A9FF8DA7E38DA8E37A
S123DFE08DB3E36018ADA9E36910A88CB8E38A48B1048DB9E3C82078E00DB9E3F00A2078D6
S123E000E0A8ADB9E32057DD68AAACB8E3C898290FD0D8602085DDF01D2066E0ADE6E2ACC8
S123E020E7E220CAE04CEAD8AEA4E3BD7AE349FF2DA6E38DA6E3602077E44C49E0A201A93C
S123E04001D003ADD3E3207AE4C900F0E92066E0ADE9E2ACEAE220CAE02085E0C90DF003F7
S123E0604CEAD84C61E2ADECE2ACEDE220CAE0ADA4E31869414C13E1A9002CBAE31005B1D1
S123E080048CB8E360AD8EE348A9008D8EE368D0032059E460AD8EE3D0202056E4C900F0CB
S123E0A0192059E4C913D00D2059E4C903D0034CEAD8A900608D8EE3A9FF60C90DF00AC97B
S123E0C00AF006C909F002C920608DD3E08CD4E0A000B9FFFFC924F00CC88CB4E32013E170
S123E0E0ACB4E3D0ED602C8FE3100A2CB6E3300548205FE4686020BBE0B01848AD8AE42091
S123E1002CE1A95E20E6E06809402024E1AD89E44C2CE1C909D00DA9202024E1AD90E329D2
S123E12007D0F460482095E06820E6E0482CB6E33003205CE468EE90E3C920B026CD88E424
S123E140F021CE90E3CD86E4D006CE90E3300F60C90DF00ACD8DE4F005CD8EE4D005A900BC
S123E1608D90E360A90D2024E1A90A20E6E0AD8DE3CD90E3F0EDAD88E4202CE14C6EE1A903
S123E18000A00191028C97E3AD90E38D8DE32085E0AC97E3C90DD0034C5EE2C908D05EC085
S123E1A001F0EBB10248A00138B102E901910268CE97E3C920B040C909D030386EB6E3AD34
S123E1C090E38DB7E32064E1206BE2AD90E34838ADB7E3ED90E38DB7E30EB6E3208BE2CE5F
S123E1E0B7E3D0F8688D90E34C8EE1AD89E42087E2AD8AE42087E2208BE24C8EE1C910D05E
S123E2000BAD8FE349FF8D8FE34C8EE1C918D00C2064E1AD87E4202CE14C7FE1C912D00907
S123E2202064E1206BE24C8EE1C89102488C97E3A0019818710291026820F6E0AC97E3B118
S123E24002C903D00BA001B102C901D0034CEAD8A001B10288D102B0034C8EE1A90D4C24CF
S123E260E1A90D2024E1A90A4C24E1AD97E38DB5E3A9014868CEB5E3D00160A8C89848B19C
S123E2800220F6E04C74E2C9209019AD86E448202CE1A920202CE1684C2CE1C9309004C9B5
S123E2A03A90013860209BE290FAC94190F5C94760ADF3D7ACF4D71869808DF3D79004C82F
S123E2C08CF4D760ADF3D7ACF4D78DD3E28CD4E2A200BDFFFF9D2801E810F7604C49D84CE6
S123E2E03CE34C4DE34CF2E24CF9E24C2CE34CC5E3FF202D20522F4F24202D204241442035
S123E300534543544F520D0A3C5245543E20544F2049474E4F5245202D2D203C4F54484500
S123E320523E20544F2041424F5254240D0A50454D204552524F52204F4E2024202D204970
S123E3404E56414C494420445249564524E500000000000000000000010000010101010152
S123E360010101010101000001000000000000000000804020100804020101020408102054
S123E3804080000103070F1F3F7F00000000000000000000000000000000000000000000C2
S123E3A0000000000000000000000000000000000000000000000000000000000000000059
S123E3C0000000000000000000000000000000000000000000000000000000000000000039
S123E3E0000000000000000000000000000000000000000000000000000000000000000019
S123E4000000000000000000000000000000000000000000000000000000000000000000F8
S123E4200000000000000000000000000000000000000000000000000000000000000000D8
S123E4400000000000000000000000000000000000000000000000000000000000000000B8
S123E460000000000000000000000000000000000000000000000000000000000000000098
S123E480000000000000000000000000000000000000000000000000000000000000000078
S123E4A0000000000000000000000000000000000000000000000000000000000000000058
S123E4C0000000000000000000000000000000000000000000000000000000000000000038
S123E4E0000000000000000000000000000000000000000000000000000000000000000018
S123E3C000000000000000000000000000000000000000000000000000000000000048DA17
S123E3E05AAA4A4A4A4A1820F2E38A20F2E37AFA6860290F0930C93A30031869074CE6E6DE
S123E40048DA5AA90D20E6E6A90A20E6E67AFA68605ADA48A000A2FF38E8E964B0FB69645D
S123E420203AE4A2FF38E8E90AB0FB690A203AE4AAA001203AE468FA7A6048C000D0098A5A
S123E440A8C000D0034C4EE48A093020E6E668604CA8E54C44E64CD8E64CDFE64CE6E64CBA
S123E460EFE64CF0E64CF1E64C6DE64C4CE64C71E64C79E64CD3E64C80E64CABE6A9016075
S123E4804CF2E64CF3E608010C005E18500C1E020D0A6438383838622E20202E6438386299
S123E4A02E20202E64383838382E20202020644420202020206F6F6F6F6F0D0A3838202090
S123E4C0603844202E3850202059382E2038382020205950202020643820202020203850CA
S123E4E07E7E7E7E0D0A38382020203838203838202020203838206038626F2E2020202012
S123E5006438202020202064500D0A38382020203838203838202020203838202020605917
S123E52038622E206438383838622E205638383838622E0D0A00383820202E38442060380C
S123E5406220206438272064622020203844203838202060384420202020206038440D0A51
S123E560593838383844202020605938385020202060383838385920206038383838502058
S123E5802038386F6F62590D0A11444F532F3635204F4E20544845204E48594F44594E455A
S123E5A020332E30300D0A0078A2FF9AD8204CE8A990A0E420F4E6A936A0E520F4E620004B
S123E5C0E4A200BD00F29D1405E8E010D0F5A9168532206A02A9048532206A02A908853255
S123E5E0206A02A200BD13E99D0005E8E008D0F5A9128532206A02A90D8532206A02A94415
S123E6008530A9D78531A914852EA905852F2015E7204CE8A2008E8EE98E8FE9BD3EE69D9E
S123E6200001E8E006D0F5A928A00120D3E6AD1305A902204CE6206DE6A9024C03D04C5359
S123E640E44CFED778A2FF9AD84C11E629078D1305AD13050AAABD5DE6BC5EE6601BE92908
S123E660E937E945E953E961E96FE97DE9A900A000188D0C058C0D05608D0E058C0F05607E
S123E6802008E729F0C900D00AA9148532206A024CD8E8C920D003A9FF60C930D00AA9055A
S123E6A08532206A024CD8E8A9FF602008E720EEE829F0C900D007A91585324C6A02C9202B
S123E6C0D003A9FF60C930D007A90685324C6A02A9FF6085F484F560A90385324C6A02A94F
S123E6E00285324C6A0248A9008532684C6A02606060606085F084F1A000B1F0C900F00712
S123E70020E6E6C84CFAE660DAAD130529070AAABD1405FA602000E448DA5AA200BD31E70B
S123E720E8C924F00620E6E64C1DE77AFA684C45E74469736B20436F6E66696775726174BD
S123E740696F6E3A242000E4A20048DA5AA200BD63E7E8C924F00620E6E64C4FE77AFA6831
S123E7604C68E720202020248A4A18694120E6E6A93A20E6E6A93D20E6E62092E7A93A2097
S123E780E6E6E8BD14052011E4E82000E4E010D0B960BD14054829F0C900D01F48DA5AA204
S123E7A000BDB5E7E8C924F00620E6E64CA1E77AFA684CB8E74D44244C45E8C910D020486B
S123E7C0DA5AA200BDD8E7E8C924F00620E6E64CC4E77AFA684CDCE7554E4B244C45E8C9F6
S123E7E020D01F48DA5AA200BDFCE7E8C924F00620E6E64CE8E77AFA684CFFE74644244C6E
S123E80045E8C930D02248DA5AA200BD1FE8E8C924F00620E6E64C0BE87AFA684C25E8507F
S123E82050494445244C45E848DA5AA200BD41E8E8C924F00620E6E64C2DE87AFA684C458C
S123E840E8554E4B2468290F2011E460A200BD5AE89D0002E8E000D0F5604884158A298064
S123E860A884148A2920C900D03D8A2940C900D00DA9808D7C036809808D7803800BA900B0
S123E8808D780368297F8D7C03A200A000B1149D0004E8C8E080D0F5A9808D7C03EAEAA921
S123E8A08C8D7803EAEA606809808D7803A200A000BD00049114E8C8E080D0F5A98C8D78DC
S123E8C003EAEA6048A98C8D7803EAEA6820008848A98E8D7803686048A90085EEA90485AF
S123E8E0EFA5F485ECA5F585ED2004E9686048A90085ECA90485EDA5F485EEA5F585EF207F
S123E90004E968605AA000B1EE91ECC898C980D0F67A60546E5C5E6E5479407F0040000029
S123E9200001FF0090E90080F1BF0040000000019B008EEA0080F1FF074000100002FF010D
S123E9408CEB0080F1FF074000100002FF018AEC0080F1FF074000100002FF0188ED00803F
S123E960F1FF074000100002FF0186EE0080F1FF074000100002FF0184EF0080F1FF0740E3
S123E98000100002FF0182F00080F10000000000000000000000000000000000000000007E
S123E9A0000000000000000000000000000000000000000000000000000000000000000053
S123E9C0000000000000000000000000000000000000000000000000000000000000000033
S123E9E0000000000000000000000000000000000000000000000000000000000000000013
S123EA000000000000000000000000000000000000000000000000000000000000000000F2
S123EA200000000000000000000000000000000000000000000000000000000000000000D2
S123EA400000000000000000000000000000000000000000000000000000000000000000B2
S123EA60000000000000000000000000000000000000000000000000000000000000000092
S123EA80000000000000000000000000000000000000000000000000000000000000000072
S123EAA0000000000000000000000000000000000000000000000000000000000000000052
S123EAC0000000000000000000000000000000000000000000000000000000000000000032
S123EAE0000000000000000000000000000000000000000000000000000000000000000012
S123EB000000000000000000000000000000000000000000000000000000000000000000F1
S123EB200000000000000000000000000000000000000000000000000000000000000000D1
S123EB400000000000000000000000000000000000000000000000000000000000000000B1
S123EB60000000000000000000000000000000000000000000000000000000000000000091
S123EB80000000000000000000000000000000000000000000000000000000000000000071
S123EBA0000000000000000000000000000000000000000000000000000000000000000051
S123EBC0000000000000000000000000000000000000000000000000000000000000000031
S123EBE0000000000000000000000000000000000000000000000000000000000000000011
S123EC000000000000000000000000000000000000000000000000000000000000000000F0
S123EC200000000000000000000000000000000000000000000000000000000000000000D0
S123EC400000000000000000000000000000000000000000000000000000000000000000B0
S123EC60000000000000000000000000000000000000000000000000000000000000000090
S123EC80000000000000000000000000000000000000000000000000000000000000000070
S123ECA0000000000000000000000000000000000000000000000000000000000000000050
S123ECC0000000000000000000000000000000000000000000000000000000000000000030
S123ECE0000000000000000000000000000000000000000000000000000000000000000010
S123ED000000000000000000000000000000000000000000000000000000000000000000EF
S123ED200000000000000000000000000000000000000000000000000000000000000000CF
S123ED400000000000000000000000000000000000000000000000000000000000000000AF
S123ED6000000000000000000000000000000000000000000000000000000000000000008F
S123ED8000000000000000000000000000000000000000000000000000000000000000006F
S123EDA000000000000000000000000000000000000000000000000000000000000000004F
S123EDC000000000000000000000000000000000000000000000000000000000000000002F
S123EDE000000000000000000000000000000000000000000000000000000000000000000F
S123EE000000000000000000000000000000000000000000000000000000000000000000EE
S123EE200000000000000000000000000000000000000000000000000000000000000000CE
S123EE400000000000000000000000000000000000000000000000000000000000000000AE
S123EE6000000000000000000000000000000000000000000000000000000000000000008E
S123EE8000000000000000000000000000000000000000000000000000000000000000006E
S123EEA000000000000000000000000000000000000000000000000000000000000000004E
S123EEC000000000000000000000000000000000000000000000000000000000000000002E
S123EEE000000000000000000000000000000000000000000000000000000000000000000E
S123EF000000000000000000000000000000000000000000000000000000000000000000ED
S123EF200000000000000000000000000000000000000000000000000000000000000000CD
S123EF400000000000000000000000000000000000000000000000000000000000000000AD
S123EF6000000000000000000000000000000000000000000000000000000000000000008D
S123EF8000000000000000000000000000000000000000000000000000000000000000006D
S123EFA000000000000000000000000000000000000000000000000000000000000000004D
S123EFC000000000000000000000000000000000000000000000000000000000000000002D
S123EFE000000000000000000000000000000000000000000000000000000000000000000D
S123F0000000000000000000000000000000000000000000000000000000000000000000EC
S123F0200000000000000000000000000000000000000000000000000000000000000000CC
S123F0400000000000000000000000000000000000000000000000000000000000000000AC
S123F06000000000000000000000000000000000000000000000000000000000000000008C
S123F08000000000000000000000000000000000000000000000000000000000000000006C
S123F0A000000000000000000000000000000000000000000000000000000000000000004C
S123F0C000000000000000000000000000000000000000000000000000000000000000002C
S123F0E000000000000000000000000000000000000000000000000000000000000000000C
S123F1000000000000000000000000000000000000000000000000000000000000000000EB
S123F1200000000000000000000000000000000000000000000000000000000000000000CB
S123F1400000000000000000000000000000000000000000000000000000000000000000AB
S123F16000000000000000000000000000000000000000000000000000000000000000008B
S123F18000000000000000000000000000000000000000000000000000000000000000006B
S123F1A000000000000000000000000000000000000000000000000000000000000000004B
S123F1C000000000000000000000000000000000000000000000000000000000000000002B
S123F1E000000000000000000000000000000000000000000000000000000000000000000B
S113F20000000100300030013002300330043006C9

BIN
Source/Images/d_dos65/u0/dos65drv.sys

Binary file not shown.

BIN
Source/Images/d_dos65/u0/sedit.co6

Binary file not shown.

20
Source/Images/d_qpm/ReadMe.txt

@ -0,0 +1,20 @@
===== QP/M Disk for RomWBW =====
This disk contains the distribution files for the QP/M Operating
System. The disk is initially set up to boot CP/M 2.2. You
must use the QINSTALL program to install QP/M on the boot
tracks and subsequently boot QP/M.
== Notes ==
By default, QP/M saves the current drive/user (2 byte value) at address 0x0008.
This is also the address of the Z80 RST 08 restart vector and conflicts with
RomWBW. When running QINSTALL, you must change the QP/M address for this value
to something else. I have been using 0x000E without issue.
RomWBW CBIOS has been modified to put the QP/M TIMDAT vector at 0x0010. The
vector points into CBIOS where the actual TIMDAT routine is located. The
TIMDAT routine reads the current date/time from HBIOS, changes the values from
BCD to binary, and rearranges some bytes for QP/M compatibilty.
--WBW 5:29 PM 6/4/2022

BIN
Source/Images/d_qpm/u0/d.com

Binary file not shown.

BIN
Source/Images/d_qpm/u0/dbginst.com

Binary file not shown.

BIN
Source/Images/d_qpm/u0/debugz.com

Binary file not shown.

1
Source/Images/d_qpm/u0/debugz.hlp

File diff suppressed because one or more lines are too long

BIN
Source/Images/d_qpm/u0/dhoriz.com

Binary file not shown.

3
Source/Images/d_qpm/u0/hello.qpm

@ -0,0 +1,3 @@
G2Welcome to QP/M 2.71G0


BIN
Source/Images/d_qpm/u0/lz.com

Binary file not shown.

BIN
Source/Images/d_qpm/u0/qbackup.com

Binary file not shown.

BIN
Source/Images/d_qpm/u0/qinstall.com

Binary file not shown.

BIN
Source/Images/d_qpm/u0/qpatch.com

Binary file not shown.

BIN
Source/Images/d_qpm/u0/qpip.com

Binary file not shown.

107
Source/Images/d_qpm/u0/qpmclk.mac

@ -0,0 +1,107 @@
.z80
;
; Clock for supplementing normal MYZ80 bios
;
;
;==========================================================================
;
;
false equ 0
true equ not false
size equ 6275 ;size in 0.01 k (e.g. 60k = 6000,
; 59.5k = 5950, 48.25k = 4825)
ioval equ 80H ;IOBYTE value on cold boot (see documentation)
;
; Lower memory stuff
;
IOBYTE EQU 3 ;IOBYTE location
DSKUSR EQU 4 ;Disk/user location
ENTRY EQU 5
WARMB EQU 0
;
; QP/M locations
;
QPMBIOS EQU size/25*256
QDOS EQU QPMBIOS-(0EA00H-0DC06H)
QCP EQU QDOS-806H
;
; MYZ80 API locations used
;
CONST EQU 0FFE1H ;Console status
CONIN EQU 0FFE2H ;Console input
CRTOUT EQU 0FFE3H ;Send char to console
LIST EQU 0FFE4H ;List character
PUNCH EQU 0FFE5H ;Punch character (auxout)
READER EQU 0FFE6H ;Reader character (auxin)
HOME EQU 0FFE7H ;Home disk
SELDSK EQU 0FFE8H ;Select disk in C-reg.
SETTRK EQU 0FFE9H ;Seek track in C-reg.
SETSEC EQU 0FFEAH ;Seek sector
SETDMA EQU 0FFEBH ;Set disk i/o address
READ EQU 0FFECH ;Read sector
WRITE EQU 0FFEDH ;Write sector
PRSTAT EQU 0FFEEH ;List status
SECTRAN EQU 0FFEFH ;Sector xlation
CONOUTS EQU 0FFF0H ;Console output status
XBIOS EQU 0FFFDH ;Extended MYZ80 functions
;
; High (MONITOR) area data locations
;
; Printer locations in high memory
;
HISTACK EQU 0FF14H ;temp
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
ASEG
ORG 100H
.phase 0fec0h
;
qpmclk::
LD A,42
LD HL,CLKBUF
PUSH HL
CALL XBIOS ; BCD hr/min/sec/century/yr/mon/day
; convert from BCD to normal -- and fix things up
POP HL
LD B,7
DEC HL
Q0: INC HL
XOR A
RRD ; rotate low nibble of A through nibbles of (HL)
LD D,A ; save low nibble
LD A,(HL) ; get high nibble
ADD A,A ; * 2
LD C,A ; save
ADD A,A ; * 4
ADD A,A ; * 8
ADD A,C ; * 10
ADD A,D ; + low digit
LD (HL),A ; set non-BCD version
DJNZ Q0
; now realign values from system call
LD C,A ; day
DEC HL
LD B,(HL) ; mon
DEC HL
LD E,(HL) ; yr
DEC HL
DEC HL ; skip century
PUSH BC
LD B,(HL) ; sec
DEC HL
LD C,(HL) ; min
DEC HL
LD D,(HL) ; hr
LD (CLKBUF+2),DE ; yrE/hrD
LD (CLKBUF+4),BC ; minC/secB
POP BC
LD (CLKBUF),BC ; dayC/monB
; did the adjustments -- return ptr to day/mon/yr/hr/min/sec
ret
CLKBUF: DB 0,0,0,0,0,0,0
.dephase
end


22
Source/Images/d_qpm/u0/qpmcmds.txt

@ -0,0 +1,22 @@
G2QPM CommandsG0
G2============G0
The QCP command processor has the following built-in commands;
afn=wildcard filename(s); ufn=filename; []=optional
G2DFD [drive[:]]G0 - Sets the default drive (A: at startup)
G2DFLTG0 - Shows the default drive and user (@=disabled)
G2DFUG0 - Sets the default user (0 at startup)
G2DIR [afn]G0 - Simple directory listing (D.COM is recommended)
G2ERA afnG0 - Erase specified file(s)
G2GET addr ufnG0 - Load file at address
G2GO [params]G0 - Reruns the program in TPA (with params)
G2JUMP addr [params]G0 - Run the program at address (with params)
G2LIST ufnG0 - Print the specified file on the LST: device
G2REN ufnnew=ufnoldG0 - Rename ufnold to ufnnew
G2SAVE n ufnG0 - Save n pages from the TPA into file
G2TIMEG0 - Display the current date and time
G2TOFG0 - Sends top-of-form character to LST: device
G2TYPE ufn [option]G0 - Display file on console, with page pauses
G2USER [n]G0 - Set user # to n (0 if no value given)


19
Source/Images/d_qpm/u0/qpmutils.txt

@ -0,0 +1,19 @@
G2QPM Utility ProgramsG0
G2====================G0
QP/M comes loaded with all utility programs for emulator use:
afn=wildcard filename(s); ufn=filename; []=optional
G2D [afn] [options]G0 - Directory listing with numerous options
G2DHORIZ [afn] [...]G0 - Same with horizontal directory listing
G2QBACKUPG0 - Backup entire disk or selected files
G2QPATCHG0 - Modify settings of D.COM
G2QPIPG0 - Copy files, peripheral interchange, etc.
G2QSTAMP(V|X)G0 - Time/date stamp disk (QSTAMPV recommended)
G2QSTATG0 - Display/change file status
G2QSUBG0 - Powerful batch processing, nesting supported
G2QSWEEPG0 - Powerful interactive file manipulation
G2TDCNFGG0 - Configure real-time clock (NOT NEEDED)
We recommend G2LinkZG0 and G2DebugZG0; get from G2http://www.microcodeconsulting.comG0.


BIN
Source/Images/d_qpm/u0/qstamp.com

Binary file not shown.

BIN
Source/Images/d_qpm/u0/qstampv.com

Binary file not shown.

BIN
Source/Images/d_qpm/u0/qstampx.com

Binary file not shown.

BIN
Source/Images/d_qpm/u0/qstat.com

Binary file not shown.

BIN
Source/Images/d_qpm/u0/qsub.com

Binary file not shown.

BIN
Source/Images/d_qpm/u0/qsweep.com

Binary file not shown.

BIN
Source/Images/d_qpm/u0/qterm.dat

Binary file not shown.

BIN
Source/Images/d_qpm/u0/qterms.lib

Binary file not shown.

BIN
Source/Images/d_qpm/u0/setqterm.com

Binary file not shown.

BIN
Source/Images/d_qpm/u0/tdcnfg.com

Binary file not shown.

159
Source/Images/diskdefs

@ -311,6 +311,7 @@ diskdef wbw_rom1024
end
# RomWBW 720K floppy media
diskdef wbw_fd720
seclen 512
tracks 160
@ -323,6 +324,7 @@ diskdef wbw_fd720
end
# RomWBW 1.44M floppy media
diskdef wbw_fd144
seclen 512
tracks 160
@ -335,6 +337,7 @@ diskdef wbw_fd144
end
# RomWBW 360K floppy media
diskdef wbw_fd360
seclen 512
tracks 80
@ -347,6 +350,7 @@ diskdef wbw_fd360
end
# RomWBW 1.20M floppy media
diskdef wbw_fd120
seclen 512
tracks 160
@ -359,7 +363,8 @@ diskdef wbw_fd120
end
# RomWBW 8320KB Hard Disk Slice (512 directory entry format)
# Legacy format, 512 dir entries, 16,630 sectors / slice
# Legacy format: 512 dir entries, 16,630 sectors / slice
diskdef wbw_hd512
seclen 512
tracks 1040
@ -372,6 +377,9 @@ diskdef wbw_hd512
end
# First 4 slices of wbw_hd512
# Assumes first slice (slice 0) starts at sector 0
# Offset of any slice (in tracks) = (1040 * <slice_num>)
diskdef wbw_hd512_0
seclen 512
tracks 1040
@ -380,45 +388,50 @@ diskdef wbw_hd512_0
maxdir 512
skew 0
boottrk 16
offset 0T
os 2.2
end
diskdef wbw_hd512_1
seclen 512
tracks 2080
tracks 1040
sectrk 16
blocksize 4096
maxdir 512
skew 0
boottrk 1056
boottrk 16
offset 1040T
os 2.2
end
diskdef wbw_hd512_2
seclen 512
tracks 3120
tracks 1040
sectrk 16
blocksize 4096
maxdir 512
skew 0
boottrk 2096
boottrk 16
offset 2080T
os 2.2
end
diskdef wbw_hd512_3
seclen 512
tracks 4160
tracks 1040
sectrk 16
blocksize 4096
maxdir 512
skew 0
boottrk 3136
boottrk 16
offset 3120T
os 2.2
end
# RomWBW 8MB Hard Disk (1024 directory entry format)
# New format, 1024 dir entries, 16,384 sectors / slice
# New format: 1024 dir entries, 16,384 sectors / slice
# Pure filesystem image, no MBR prefix
diskdef wbw_hd1024
seclen 512
tracks 1024
@ -431,110 +444,124 @@ diskdef wbw_hd1024
end
# First 4 slices of wbw_hd1024
# Assumes 1MB prefix (2048 sectors)
# Assumes standard 1MB prefix
# Offset of any slice (in tracks) = 128 + (1024 * <slice_num)
diskdef wbw_hd1024_0
seclen 512
tracks 1040
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 130
boottrk 2
offset 128T
os 2.2
end
diskdef wbw_hd1024_1
seclen 512
tracks 2064
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 1154
boottrk 2
offset 1152T
os 2.2
end
diskdef wbw_hd1024_2
seclen 512
tracks 3112
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 2178
boottrk 2
offset 2176T
os 2.2
end
diskdef wbw_hd1024_3
seclen 512
tracks 4136
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 3202
boottrk 2
offset 3200T
os 2.2
end
# SmallZ80 Hard Disk Image
# 5 slices
diskdef smz80_hd0
seclen 512
tracks 1034
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 10
boottrk 0
offset 10T
os 2.2
end
diskdef smz80_hd1
seclen 512
tracks 2058
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 1034
boottrk 0
offset 1034T
os 2.2
end
diskdef smz80_hd2
seclen 512
tracks 1034
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 2058
boottrk 0
offset 2058T
os 2.2
end
diskdef smz80_hd3
seclen 512
tracks 4106
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 3082
boottrk 0
offset 3082T
os 2.2
end
diskdef smz80_hd4
seclen 512
tracks 5130
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 4106
boottrk 0
offset 4106T
os 2.2
end
# RC2014 standard hard disk image
# RC2014 standard (Grant Searle) hard disk image
# Slices A-P
# Offset of slice (in tracks) = (512 * <slice_num>)
diskdef rc2014a
seclen 512
tracks 512
@ -542,155 +569,171 @@ diskdef rc2014a
blocksize 4096
maxdir 512
boottrk 1
offset 0T
os 2.2
end
diskdef rc2014b
seclen 512
tracks 1024
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 512
boottrk 0
offset 512T
os 2.2
end
diskdef rc2014c
seclen 512
tracks 1536
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 1024
boottrk 0
offset 1024T
os 2.2
end
diskdef rc2014d
seclen 512
tracks 2048
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 1536
boottrk 0
offset 1536T
os 2.2
end
diskdef rc2014e
seclen 512
tracks 2560
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 2048
boottrk 0
offset 2048T
os 2.2
end
diskdef rc2014f
seclen 512
tracks 3072
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 2560
boottrk 0
offset 2560T
os 2.2
end
diskdef rc2014g
seclen 512
tracks 3584
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 3072
boottrk 0
offset 3072T
os 2.2
end
diskdef rc2014h
seclen 512
tracks 4096
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 3584
boottrk 0
offset 3584T
os 2.2
end
diskdef rc2014i
seclen 512
tracks 4608
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 4096
boottrk 0
offset 4096T
os 2.2
end
diskdef rc2014j
seclen 512
tracks 5120
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 4608
boottrk 0
offset 4608T
os 2.2
end
diskdef rc2014k
seclen 512
tracks 5632
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 5120
boottrk 0
offset 5120T
os 2.2
end
diskdef rc2014l
seclen 512
tracks 6144
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 5632
boottrk 0
offset 5632T
os 2.2
end
diskdef rc2014m
seclen 512
tracks 6656
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 6144
boottrk 0
offset 6144T
os 2.2
end
diskdef rc2014n
seclen 512
tracks 7168
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 6656
boottrk 0
offset 6656T
os 2.2
end
diskdef rc2014o
seclen 512
tracks 7680
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 7168
boottrk 0
offset 7168T
os 2.2
end
diskdef rc2014p
seclen 512
tracks 7808
tracks 128
sectrk 32
blocksize 4096
maxdir 512
boottrk 7680
boottrk 0
offset 7680T
os 2.2
end

52
Source/Images/fd_qpm.txt

@ -0,0 +1,52 @@
#
# Add the ReadMe document
#
d_qpm/ReadMe.txt 0:
#
# Include CP/M 2.2 files
#
d_cpm22/u0/*.* 0:
#
# Add RomWBW utilities
#
#../../Binary/Apps/*.com 0:
../../Binary/Apps/assign.com 0:
../../Binary/Apps/cpuspd.com 0:
../../Binary/Apps/fat.com 0:
../../Binary/Apps/fdu.com 0:
../../Binary/Apps/fdu.doc 0:
../../Binary/Apps/format.com 0:
../../Binary/Apps/mode.com 0:
../../Binary/Apps/rtc.com 0:
../../Binary/Apps/survey.com 0:
../../Binary/Apps/syscopy.com 0:
../../Binary/Apps/sysgen.com 0:
../../Binary/Apps/talk.com 0:
../../Binary/Apps/tbasic.com 0:
../../Binary/Apps/timer.com 0:
../../Binary/Apps/tune.com 0:
../../Binary/Apps/xm.com 0:
../../Binary/Apps/zmp.com 0:
../../Binary/Apps/zmp.hlp 0:
../../Binary/Apps/zmp.doc 0:
../../Binary/Apps/zmxfer.ovr 0:
../../Binary/Apps/zmterm.ovr 0:
../../Binary/Apps/zminit.ovr 0:
../../Binary/Apps/zmconfig.ovr 0:
../../Binary/Apps/zmd.com 0:
../../Binary/Apps/vgmplay.com 0:
#
# Add Tune sample files
#
../../Binary/Apps/Tunes/*.pt? 3:
../../Binary/Apps/Tunes/*.mym 3:
../../Binary/Apps/Tunes/*.vgm 3:
#
# Add OS image
#
../CPM22/cpm_wbw.sys 0:cpm.sys
#
# Add Common Applications
#
Common/All/*.* 0:
Common/CPM22/*.* 0:

1
Source/Images/hd_bp.txt

@ -59,3 +59,4 @@ Common/Z/u15/*.* 15:
Common/Z3/u10/*.* 10:
Common/Z3/u14/*.* 14:
Common/Z3/u15/*.* 15:
Common/SIMH/*.* 13:

1
Source/Images/hd_cpm22.txt

@ -53,3 +53,4 @@ cpnet12/*.* 4:
#
Common/All/*.* 0:
Common/CPM22/*.* 0:
Common/SIMH/*.* 13:

1
Source/Images/hd_cpm3.txt

@ -65,3 +65,4 @@ cpnet3/*.* 4:
#
Common/All/*.* 0:
Common/CPM3/*.* 0:
Common/SIMH/*.* 13:

5
Source/Images/hd_nzcom.txt

@ -76,7 +76,4 @@ Common/Z/u15/*.* 0:
Common/Z3/u10/*.* 0:
Common/Z3/u14/*.* 0:
Common/Z3/u15/*.* 0:
#
# Temporary!!!
#
SIMH/*.* 15:
Common/SIMH/*.* 13:

60
Source/Images/hd_qpm.txt

@ -0,0 +1,60 @@
#
# Add the ReadMe document
#
d_qpm/ReadMe.txt 0:
#
# Include CP/M 2.2 files
#
d_cpm22/u0/*.* 0:
#
# Add RomWBW utilities
#
#../../Binary/Apps/*.com 0:
../../Binary/Apps/assign.com 0:
../../Binary/Apps/cpuspd.com 0:
../../Binary/Apps/fat.com 0:
../../Binary/Apps/fdu.com 0:
../../Binary/Apps/fdu.doc 0:
../../Binary/Apps/format.com 0:
../../Binary/Apps/mode.com 0:
../../Binary/Apps/rtc.com 0:
../../Binary/Apps/survey.com 0:
../../Binary/Apps/syscopy.com 0:
../../Binary/Apps/sysgen.com 0:
../../Binary/Apps/talk.com 0:
../../Binary/Apps/tbasic.com 0:
../../Binary/Apps/timer.com 0:
../../Binary/Apps/tune.com 0:
../../Binary/Apps/xm.com 0:
../../Binary/Apps/zmp.com 0:
../../Binary/Apps/zmp.hlp 0:
../../Binary/Apps/zmp.doc 0:
../../Binary/Apps/zmxfer.ovr 0:
../../Binary/Apps/zmterm.ovr 0:
../../Binary/Apps/zminit.ovr 0:
../../Binary/Apps/zmconfig.ovr 0:
../../Binary/Apps/zmd.com 0:
../../Binary/Apps/vgmplay.com 0:
#
../../Binary/Apps/Test/*.com 2:
Test/*.* 2:
#
# Add Tune sample files
#
../../Binary/Apps/Tunes/*.pt? 3:
../../Binary/Apps/Tunes/*.mym 3:
../../Binary/Apps/Tunes/*.vgm 3:
#
# Add CPNET client files
#
cpnet12/*.* 4:
#
# Add OS image
#
../CPM22/cpm_wbw.sys 0:cpm.sys
#
# Add Common Applications
#
Common/All/*.* 0:
Common/CPM22/*.* 0:
Common/SIMH/*.* 13:

1
Source/Images/hd_zpm3.txt

@ -70,3 +70,4 @@ Common/Z/u15/*.* 15:
Common/Z3/u10/*.* 10:
Common/Z3/u14/*.* 14:
Common/Z3/u15/*.* 15:
Common/SIMH/*.* 13:

1
Source/Images/hd_zsdos.txt

@ -69,3 +69,4 @@ Common/CPM22/*.* 0:
#Common/Z/u10/*.* 0:
Common/Z/u14/*.* 0:
Common/Z/u15/*.* 0:
Common/SIMH/*.* 13:

159
Source/RomDsk/diskdefs

@ -311,6 +311,7 @@ diskdef wbw_rom1024
end
# RomWBW 720K floppy media
diskdef wbw_fd720
seclen 512
tracks 160
@ -323,6 +324,7 @@ diskdef wbw_fd720
end
# RomWBW 1.44M floppy media
diskdef wbw_fd144
seclen 512
tracks 160
@ -335,6 +337,7 @@ diskdef wbw_fd144
end
# RomWBW 360K floppy media
diskdef wbw_fd360
seclen 512
tracks 80
@ -347,6 +350,7 @@ diskdef wbw_fd360
end
# RomWBW 1.20M floppy media
diskdef wbw_fd120
seclen 512
tracks 160
@ -359,7 +363,8 @@ diskdef wbw_fd120
end
# RomWBW 8320KB Hard Disk Slice (512 directory entry format)
# Legacy format, 512 dir entries, 16,630 sectors / slice
# Legacy format: 512 dir entries, 16,630 sectors / slice
diskdef wbw_hd512
seclen 512
tracks 1040
@ -372,6 +377,9 @@ diskdef wbw_hd512
end
# First 4 slices of wbw_hd512
# Assumes first slice (slice 0) starts at sector 0
# Offset of any slice (in tracks) = (1040 * <slice_num>)
diskdef wbw_hd512_0
seclen 512
tracks 1040
@ -380,45 +388,50 @@ diskdef wbw_hd512_0
maxdir 512
skew 0
boottrk 16
offset 0T
os 2.2
end
diskdef wbw_hd512_1
seclen 512
tracks 2080
tracks 1040
sectrk 16
blocksize 4096
maxdir 512
skew 0
boottrk 1056
boottrk 16
offset 1040T
os 2.2
end
diskdef wbw_hd512_2
seclen 512
tracks 3120
tracks 1040
sectrk 16
blocksize 4096
maxdir 512
skew 0
boottrk 2096
boottrk 16
offset 2080T
os 2.2
end
diskdef wbw_hd512_3
seclen 512
tracks 4160
tracks 1040
sectrk 16
blocksize 4096
maxdir 512
skew 0
boottrk 3136
boottrk 16
offset 3120T
os 2.2
end
# RomWBW 8MB Hard Disk (1024 directory entry format)
# New format, 1024 dir entries, 16,384 sectors / slice
# New format: 1024 dir entries, 16,384 sectors / slice
# Pure filesystem image, no MBR prefix
diskdef wbw_hd1024
seclen 512
tracks 1024
@ -431,110 +444,124 @@ diskdef wbw_hd1024
end
# First 4 slices of wbw_hd1024
# Assumes 1MB prefix (2048 sectors)
# Assumes standard 1MB prefix
# Offset of any slice (in tracks) = 128 + (1024 * <slice_num)
diskdef wbw_hd1024_0
seclen 512
tracks 1040
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 130
boottrk 2
offset 128T
os 2.2
end
diskdef wbw_hd1024_1
seclen 512
tracks 2064
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 1154
boottrk 2
offset 1152T
os 2.2
end
diskdef wbw_hd1024_2
seclen 512
tracks 3112
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 2178
boottrk 2
offset 2176T
os 2.2
end
diskdef wbw_hd1024_3
seclen 512
tracks 4136
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 3202
boottrk 2
offset 3200T
os 2.2
end
# SmallZ80 Hard Disk Image
# 5 slices
diskdef smz80_hd0
seclen 512
tracks 1034
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 10
boottrk 0
offset 10T
os 2.2
end
diskdef smz80_hd1
seclen 512
tracks 2058
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 1034
boottrk 0
offset 1034T
os 2.2
end
diskdef smz80_hd2
seclen 512
tracks 1034
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 2058
boottrk 0
offset 2058T
os 2.2
end
diskdef smz80_hd3
seclen 512
tracks 4106
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 3082
boottrk 0
offset 3082T
os 2.2
end
diskdef smz80_hd4
seclen 512
tracks 5130
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 4106
boottrk 0
offset 4106T
os 2.2
end
# RC2014 standard hard disk image
# RC2014 standard (Grant Searle) hard disk image
# Slices A-P
# Offset of slice (in tracks) = (512 * <slice_num>)
diskdef rc2014a
seclen 512
tracks 512
@ -542,155 +569,171 @@ diskdef rc2014a
blocksize 4096
maxdir 512
boottrk 1
offset 0T
os 2.2
end
diskdef rc2014b
seclen 512
tracks 1024
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 512
boottrk 0
offset 512T
os 2.2
end
diskdef rc2014c
seclen 512
tracks 1536
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 1024
boottrk 0
offset 1024T
os 2.2
end
diskdef rc2014d
seclen 512
tracks 2048
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 1536
boottrk 0
offset 1536T
os 2.2
end
diskdef rc2014e
seclen 512
tracks 2560
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 2048
boottrk 0
offset 2048T
os 2.2
end
diskdef rc2014f
seclen 512
tracks 3072
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 2560
boottrk 0
offset 2560T
os 2.2
end
diskdef rc2014g
seclen 512
tracks 3584
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 3072
boottrk 0
offset 3072T
os 2.2
end
diskdef rc2014h
seclen 512
tracks 4096
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 3584
boottrk 0
offset 3584T
os 2.2
end
diskdef rc2014i
seclen 512
tracks 4608
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 4096
boottrk 0
offset 4096T
os 2.2
end
diskdef rc2014j
seclen 512
tracks 5120
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 4608
boottrk 0
offset 4608T
os 2.2
end
diskdef rc2014k
seclen 512
tracks 5632
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 5120
boottrk 0
offset 5120T
os 2.2
end
diskdef rc2014l
seclen 512
tracks 6144
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 5632
boottrk 0
offset 5632T
os 2.2
end
diskdef rc2014m
seclen 512
tracks 6656
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 6144
boottrk 0
offset 6144T
os 2.2
end
diskdef rc2014n
seclen 512
tracks 7168
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 6656
boottrk 0
offset 6656T
os 2.2
end
diskdef rc2014o
seclen 512
tracks 7680
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 7168
boottrk 0
offset 7168T
os 2.2
end
diskdef rc2014p
seclen 512
tracks 7808
tracks 128
sectrk 32
blocksize 4096
maxdir 512
boottrk 7680
boottrk 0
offset 7680T
os 2.2
end

2
Source/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 1
#DEFINE RUP 1
#DEFINE RTP 0
#DEFINE BIOSVER "3.1.1-pre.170"
#DEFINE BIOSVER "3.1.1-pre.172"

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 1
rup equ 1
rtp equ 0
biosver macro
db "3.1.1-pre.170"
db "3.1.1-pre.172"
endm

159
Tools/cpmtools/diskdefs

@ -311,6 +311,7 @@ diskdef wbw_rom1024
end
# RomWBW 720K floppy media
diskdef wbw_fd720
seclen 512
tracks 160
@ -323,6 +324,7 @@ diskdef wbw_fd720
end
# RomWBW 1.44M floppy media
diskdef wbw_fd144
seclen 512
tracks 160
@ -335,6 +337,7 @@ diskdef wbw_fd144
end
# RomWBW 360K floppy media
diskdef wbw_fd360
seclen 512
tracks 80
@ -347,6 +350,7 @@ diskdef wbw_fd360
end
# RomWBW 1.20M floppy media
diskdef wbw_fd120
seclen 512
tracks 160
@ -359,7 +363,8 @@ diskdef wbw_fd120
end
# RomWBW 8320KB Hard Disk Slice (512 directory entry format)
# Legacy format, 512 dir entries, 16,630 sectors / slice
# Legacy format: 512 dir entries, 16,630 sectors / slice
diskdef wbw_hd512
seclen 512
tracks 1040
@ -372,6 +377,9 @@ diskdef wbw_hd512
end
# First 4 slices of wbw_hd512
# Assumes first slice (slice 0) starts at sector 0
# Offset of any slice (in tracks) = (1040 * <slice_num>)
diskdef wbw_hd512_0
seclen 512
tracks 1040
@ -380,45 +388,50 @@ diskdef wbw_hd512_0
maxdir 512
skew 0
boottrk 16
offset 0T
os 2.2
end
diskdef wbw_hd512_1
seclen 512
tracks 2080
tracks 1040
sectrk 16
blocksize 4096
maxdir 512
skew 0
boottrk 1056
boottrk 16
offset 1040T
os 2.2
end
diskdef wbw_hd512_2
seclen 512
tracks 3120
tracks 1040
sectrk 16
blocksize 4096
maxdir 512
skew 0
boottrk 2096
boottrk 16
offset 2080T
os 2.2
end
diskdef wbw_hd512_3
seclen 512
tracks 4160
tracks 1040
sectrk 16
blocksize 4096
maxdir 512
skew 0
boottrk 3136
boottrk 16
offset 3120T
os 2.2
end
# RomWBW 8MB Hard Disk (1024 directory entry format)
# New format, 1024 dir entries, 16,384 sectors / slice
# New format: 1024 dir entries, 16,384 sectors / slice
# Pure filesystem image, no MBR prefix
diskdef wbw_hd1024
seclen 512
tracks 1024
@ -431,110 +444,124 @@ diskdef wbw_hd1024
end
# First 4 slices of wbw_hd1024
# Assumes 1MB prefix (2048 sectors)
# Assumes standard 1MB prefix
# Offset of any slice (in tracks) = 128 + (1024 * <slice_num)
diskdef wbw_hd1024_0
seclen 512
tracks 1040
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 130
boottrk 2
offset 128T
os 2.2
end
diskdef wbw_hd1024_1
seclen 512
tracks 2064
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 1154
boottrk 2
offset 1152T
os 2.2
end
diskdef wbw_hd1024_2
seclen 512
tracks 3112
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 2178
boottrk 2
offset 2176T
os 2.2
end
diskdef wbw_hd1024_3
seclen 512
tracks 4136
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 3202
boottrk 2
offset 3200T
os 2.2
end
# SmallZ80 Hard Disk Image
# 5 slices
diskdef smz80_hd0
seclen 512
tracks 1034
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 10
boottrk 0
offset 10T
os 2.2
end
diskdef smz80_hd1
seclen 512
tracks 2058
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 1034
boottrk 0
offset 1034T
os 2.2
end
diskdef smz80_hd2
seclen 512
tracks 1034
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 2058
boottrk 0
offset 2058T
os 2.2
end
diskdef smz80_hd3
seclen 512
tracks 4106
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 3082
boottrk 0
offset 3082T
os 2.2
end
diskdef smz80_hd4
seclen 512
tracks 5130
tracks 1024
sectrk 16
blocksize 4096
maxdir 1024
skew 0
boottrk 4106
boottrk 0
offset 4106T
os 2.2
end
# RC2014 standard hard disk image
# RC2014 standard (Grant Searle) hard disk image
# Slices A-P
# Offset of slice (in tracks) = (512 * <slice_num>)
diskdef rc2014a
seclen 512
tracks 512
@ -542,155 +569,171 @@ diskdef rc2014a
blocksize 4096
maxdir 512
boottrk 1
offset 0T
os 2.2
end
diskdef rc2014b
seclen 512
tracks 1024
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 512
boottrk 0
offset 512T
os 2.2
end
diskdef rc2014c
seclen 512
tracks 1536
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 1024
boottrk 0
offset 1024T
os 2.2
end
diskdef rc2014d
seclen 512
tracks 2048
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 1536
boottrk 0
offset 1536T
os 2.2
end
diskdef rc2014e
seclen 512
tracks 2560
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 2048
boottrk 0
offset 2048T
os 2.2
end
diskdef rc2014f
seclen 512
tracks 3072
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 2560
boottrk 0
offset 2560T
os 2.2
end
diskdef rc2014g
seclen 512
tracks 3584
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 3072
boottrk 0
offset 3072T
os 2.2
end
diskdef rc2014h
seclen 512
tracks 4096
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 3584
boottrk 0
offset 3584T
os 2.2
end
diskdef rc2014i
seclen 512
tracks 4608
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 4096
boottrk 0
offset 4096T
os 2.2
end
diskdef rc2014j
seclen 512
tracks 5120
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 4608
boottrk 0
offset 4608T
os 2.2
end
diskdef rc2014k
seclen 512
tracks 5632
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 5120
boottrk 0
offset 5120T
os 2.2
end
diskdef rc2014l
seclen 512
tracks 6144
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 5632
boottrk 0
offset 5632T
os 2.2
end
diskdef rc2014m
seclen 512
tracks 6656
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 6144
boottrk 0
offset 6144T
os 2.2
end
diskdef rc2014n
seclen 512
tracks 7168
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 6656
boottrk 0
offset 6656T
os 2.2
end
diskdef rc2014o
seclen 512
tracks 7680
tracks 512
sectrk 32
blocksize 4096
maxdir 512
boottrk 7168
boottrk 0
offset 7168T
os 2.2
end
diskdef rc2014p
seclen 512
tracks 7808
tracks 128
sectrk 32
blocksize 4096
maxdir 512
boottrk 7680
boottrk 0
offset 7680T
os 2.2
end

BIN
Tools/simh/altairz80.exe

Binary file not shown.
Loading…
Cancel
Save