forked from hharte/altairz80-tests
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path86dos_test.ini
77 lines (66 loc) · 1.9 KB
/
86dos_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
# 86DOS CPU test for SIMH/AltairZ80
#
# Copyright (c) 2022 Howard M. Harte.
# https://github.com/hharte
#
# Boot 86DOS, assemble the SCP monitor.
#
set env AZ80_TEST_NAME=86DOS Test
set env AZ80_TEST_BIN=86dos
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 %AZ80_TEST_BIN%.imd 86mon.bin
d sleep 0
noexpect
set runlimit 50M instructions
set on
on error ignore
on runtime echof "\r\n*** Test Runtime Limit %SIM_RUNLIMIT% %SIM_RUNLIMIT_UNITS% Exceeded ***\n"; goto FAIL
# Some kind of strange interaction between SIMH restore and banked/memory size.
# Chanking back to CPU, setting banked, then memory size, then 8086 works around
# it, but need to dig into this more.
set cpu z80
set cpu banked
set cpu memory=1024k
set cpu 8086
set scp300f enabled
set scp300f ROM=CROMEMCO
; Set serial port for SCP
set sio port=f6/0/0/0/0/F/0/T
set sio port=f7/0/2/0/1/F/0/F
set sio ansi
; Set up Cromemco 4FDC disk controller, with RDOS ROM disabled.
set cromfdc norom
set cromfdc en
set wd179x en
d cromfdc fdctype 4
att cromfdc0 86dos.imd
; Start monitor, press enter to get '>' prompt.
; and boot 86DOS
expect "Monitor 1.5" ; send "B\r\n"; go -q
expect "(m-d-y): "; send "11-01-81\r\n"; go -q
expect "A:"; send "ASM MON\r\n"; go -q
expect "Error Count = 0"; send "HEX2BIN MON\r\n"; go -q
expect "A:"; send "DIR\r\n"; go -q
expect "MON COM 2047 04-28-81"; goto PASS
reset
send " \r\n"
go ffff0
# All test failures wind up here.
:FAIL
echof "\n\r*** FAILED - %SIM_NAME%: %AZ80_TEST_NAME%.\n"
exit 1
# Test passed.
:PASS
detach cromfdc0
# Unmap SIO ports
set sio port=f6
set sio port=f7
# Disable disk controllers
set cromfdc dis
set wd179x dis
rm 86dos.imd
rm 86mon.bin
echof "\n\r*** PASSED - %SIM_NAME%: %AZ80_TEST_NAME%.\n"
:DONE