-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcpm86_test.ini
More file actions
107 lines (86 loc) · 2.2 KB
/
cpm86_test.ini
File metadata and controls
107 lines (86 loc) · 2.2 KB
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
# CompuPro CP/M-86 test for SIMH/AltairZ80
#
# Copyright (c) 2022 Howard M. Harte.
# https://github.com/hharte
#
# Boot CP/M-86 and build CPM.SYS and loader.
#
set env AZ80_TEST_NAME=CompuPro CP/M-86 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 disk1d.imd cc20mb.dsk cc20mbd2.dsk
noexpect
set runlimit 300M 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 8086
set cpu itrap
set cpu noaltairrom
set cpu memory=1024k
reset cpu
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 i8272 enabled
set disk1a enabled
att disk1a0 disk1d.imd
set disk1a0 rom
d disk1a bootstrap 4
set ss1 enabled
set selchan enabled
set disk2 enabled
att disk20 cc20mb.dsk
att disk21 cc20mbd2.dsk
set mdriveh enabled
set mdriveh1 enabled
set mdriveh2 enabled
set mdriveh3 enabled
set mdriveh4 enabled
set mdriveh5 enabled
set mdriveh6 enabled
set mdriveh7 enabled
reset cpu
# Boot CP/M and run EXZ80ALL
expect "\r\nA>" ; send "ERA I:CPM.SYS\n"; go -q
expect "\r\nA>" ; echof "\r\n*** Building code..."; send "SUBMIT BIOS\n"; go -q
expect "PIP I:CPM.SYS=CPMX.CMD\r\n\r\nA>" ; send "SUBMIT MAKLDR\n"; go -q
expect "LDR88.CMD\r\nA>" ; send "SUBMIT MAKSYS\n"; go -q
expect "PIP CPM.SYS=CPMX.CMD\r\n\r\nA>" ; goto REBOOT
expect "CPM.SYS Not Found On This Disk" goto FAIL
reset
boot disk1a
goto FAIL
:REBOOT
echof "\n\r*** Rebooting CP/M-86"
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 disk1d.imd
echof "\n\r*** PASSED - %SIM_NAME%: %AZ80_TEST_NAME%.\n"