-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcpm80_test.ini
109 lines (90 loc) · 2.32 KB
/
cpm80_test.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# CompuPro CP/M-80 test for SIMH/AltairZ80
#
# Copyright (c) 2022 Howard M. Harte.
# https://github.com/hharte
#
# Boot CP/M-80 and format M-DRIVE/H.
#
set env AZ80_TEST_NAME=CompuPro CP/M-80 Test
set env AZ80_TEST_BIN=cpm86
echof "\r\n*** %SIM_NAME%: %AZ80_TEST_NAME% starting:"
echof "\r\n*** Setting initial conditions"
if not exist %AZ80_TEST_BIN%.zip curl "https://schorn.ch/cpm/zip/%AZ80_TEST_BIN%.zip" --output %AZ80_TEST_BIN%.zip
!unzip -o %AZ80_TEST_BIN%.zip ccpm22d2.imd cc20mb.dsk cc20mbd2.dsk
noexpect
set runlimit 100M instructions
set on
on error ignore
on runtime echof "\r\n*** Test Runtime Limit %SIM_RUNLIMIT% %SIM_RUNLIMIT_UNITS% Exceeded ***\n"; goto FAIL
set hdsk disable
set cpu 64k
set cpu nonbanked
set cpu itrap
set cpu z80
set cpu noaltairrom
set sio ansi
set sio nosleep
set sio port=5c/0/0/0/0/f/0/t
set sio port=5d/0/2/0/81/f/0/f
set disk1a enabled
set disk1a nodebug
set disk1a debug=error
d disk1a bootstrap 0
set disk1a0 rom
att disk1a0 ccpm22d2.imd
set mdriveh enabled
set mdriveh1 enabled
set mdriveh2 enabled
set mdriveh3 enabled
set mdriveh4 enabled
set mdriveh5 enabled
set mdriveh6 enabled
set mdriveh7 enabled
set ss1 enabled
set selchan enabled
set disk2 enabled
; share cc20mb.dsk between cp/m-80 and cp/m-86
att disk20 cc20mb.dsk
att disk21 cc20mbd2.dsk
# Boot CP/M and format M-Drive
expect "\r\nA>" ; echof "\r\n*** Formatting M-Drive..."; send "MFORM M\n"; go -q
expect "MEMORY DRIVE (Y or N)? " ; send "Y\n"; go -q
expect "\r\nA>" ; send "DIR M:\n"; go -q
expect "\r\nA>" ; send "I:STAT\n"; go -q
expect "\r\nA>" ; send "I:PIP M:=I:*.*\n"; go -q
expect "\r\nA>" ; send "DIR M:\n"; go -q
expect "\r\nA>" ; send "I:STAT\n"; go -q
expect "M: R/W, Space: 1692k" ; goto PASS
expect "CPM.SYS Not Found On This Disk" goto FAIL
reset
b disk1a0
goto FAIL
:REBOOT
echof "\n\r*** Rebooting CP/M-80"
noexpect
expect "\r\nA>" ; goto PASS
expect "CPM.SYS Not Found On This Disk" goto FAIL
reset
boot disk1a
# All test failures wind up here.
:FAIL
echof "\n\r*** FAILED - %SIM_NAME%: %AZ80_TEST_NAME%.\n"
exit 1
# Test passed.
:PASS
set sio port=5c
set sio port=5d
set i8272 disabled
det disk1a0
set disk1a disabled
set selchan disabled
det disk20
det disk21
set disk2 disabled
set mdriveh disabled
reset ss1
set ss1 disabled
rm cc20mb.dsk
rm cc20mbd2.dsk
rm ccpm22d2.imd
echof "\n\r*** PASSED - %SIM_NAME%: %AZ80_TEST_NAME%.\n"