Yikes, lots of errors on the compile. Cluso's version from 16 hours ago compiled with no errors.
C:\Propeller\zicog92\Heater 19 08 09>bstc -e -Ox zicog_demo.spin
Brads Spin Tool Compiler v0.15.3 - Copyright 2008,2009 All rights reserved
Compiled for i386 Win32 at 08:17:48 on 2009/07/20
Loading Object zicog_demo
Loading Object zicog
zicog - Error at (285,34) Symbol not defined!
call #read_memory_byte 'Read the instruction
byte there
_________________________________^
zicog - Error at (369,34) Symbol not defined!
get_memory_addr call #read_memory_byte
_________________________________^
zicog - Error at (447,33) Symbol not defined!
call #read_memory_byte
________________________________^
zicog - Error at (547,34) Symbol not defined!
call #write_memory_byte
_________________________________^
zicog - Error at (552,34) Symbol not defined!
call #read_memory_byte
_________________________________^
zicog - Error at (630,34) Symbol not defined!
put_memory_addr call #write_memory_byte
_________________________________^
zicog - Error at (769,34) Symbol not defined!
read_memory_word call #read_memory_byte 'Read the low byte
_________________________________^
zicog - Error at (773,34) Symbol not defined!
call #read_memory_byte 'Read the high byte
_________________________________^
zicog - Error at (780,34) Symbol not defined!
call #write_memory_byte 'Write the LOW byte
_________________________________^
zicog - Error at (783,34) Symbol not defined!
call #write_memory_byte
_________________________________^
zicog - Error at (1125,35) Expected Spin Method, Unique Name, Assembly Condition
al, BYTE, WORD, LONG or Assembly Instruction
long $0[noparse][[/noparse]($ - OVERLAY_START) // 2] 'fill to even nu
mber of longs (REQUIRED)
__________________________________^
Compiled 1474 Lines of Code in 0.25 Seconds
C:\Propeller\zicog92\Heater 19 08 09>pause
Press any key to continue . . .
Addit: Fixed that with
#define CPU_Z80
#define TriBladeProp
and
#define hdskenable
Looks like I need 4 hard disks - off to copy drive I to J, K and L...
Heater: Here is your code back with a few of my things removed to simplify things. I moved baud to the start of the CON section with both speed options and a comment. I left #define TriBladeProp switched on. I have also put a #ifdef TriBladeProp around the #define diskboot, cpm3 and ramdisk as this is my code specific.
Great re the 137 bytes. Yes, I just fill them in each time I do a read in case they have been corrupted. I can probably disable this bit then (less code, faster and less clutter). I have put a #define fix137 in to disable code unless selected. James, can you please check this works - if it fails, uncomment #define fix137.
James: Put a #define Dr_Acula in if you like for baud and to remove the 3 sec delay waiting for the terminal at PUB Start in the demo code. Otherwise this should run for you (except hard disk) - you will need blank files for I,J,K & L - just copy DRIVE__D.DSK although I am only enabling "I" until it works for us. #define hdskenable is commented out - you could try it - only the read would work so we will require a disk image.
Heater: Perhaps you could post a zipped version of your hard disk 32MB file for us. At least we will know the file is ok.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Links to other interesting threads:
Ok, back into Cluso's code above, still no luck with getting past the hang when type 'I:'
tried the 137 patch on and off. Maybe my disk image is not right. Using a clone of drive D
Also, the bootup is much slower than heater's version. Not sure why - checking it out now...
Crossed posts re the fast boot. Oh darn, I was getting to like that!
Ok, looks like Cluso and me are stuck getting 'I' working. We are cloning floppy drive images. But they are 128 ones, right?
Addit: I'm using the program exactly as posted at the beginning of this thread. 20k memory and all. Trying to get into drive I pauses then gives.
Write to unimplemented I/O Port &H87
Some things work though. This is the same printout for both heater and cluso's latest version (this crashed for me previously on the I/O). The bytes that are skipped eg 68 are correct ie trapped by the n8vem code. So this little program is very useful.
A>survey
*** System Survey (June 82) ***
Drive A: 480K bytes in 74 files with 392K bytes remaining
Memory map:
0816243240485664
| | | | | | | | |
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCCCBBBB
T=TPA C=CPM B=BIOS or unassigned R=ROM or bad
BIOS at F203 iobyte 00 drive 00 BDOS at E406
65535 Bytes RAM 0 Bytes ROM 58374 Bytes in TPA
0 Bytes Empty 65535 Total Active Bytes
Active I/O ports:Read from unimplemented I/O Port &H00
Read from unimplemented I/O Port &H01
01 Read from unimplemented I/O Port &H02
02 Read from unimplemented I/O Port &H03
03 Read from unimplemented I/O Port &H04
04 Read from unimplemented I/O Port &H05
05 Read from unimplemented I/O Port &H06
06 Read from unimplemented I/O Port &H07
070809 0A Read from unimplemented I/O Port &H0B
0B Read from unimplemented I/O Port &H0C
0C Read from unimplemented I/O Port &H0D
0D Read from unimplemented I/O Port &H0E
0E Read from unimplemented I/O Port &H0F
0F
10 Read from unimplemented I/O Port &H12
12 Read from unimplemented I/O Port &H13
13 Read from unimplemented I/O Port &H14
14 Read from unimplemented I/O Port &H15
15 Read from unimplemented I/O Port &H16
16 Read from unimplemented I/O Port &H17
17 Read from unimplemented I/O Port &H18
18 Read from unimplemented I/O Port &H19
19 Read from unimplemented I/O Port &H1A
1A Read from unimplemented I/O Port &H1B
1B Read from unimplemented I/O Port &H1C
1C Read from unimplemented I/O Port &H1D
1D Read from unimplemented I/O Port &H1E
1E Read from unimplemented I/O Port &H1F
1F Read from unimplemented I/O Port &H20
20 Read from unimplemented I/O Port &H21
21 Read from unimplemented I/O Port &H22
22 Read from unimplemented I/O Port &H23
23 Read from unimplemented I/O Port &H24
24 Read from unimplemented I/O Port &H25
25 Read from unimplemented I/O Port &H26
26 Read from unimplemented I/O Port &H27
27 Read from unimplemented I/O Port &H28
28 Read from unimplemented I/O Port &H29
29 Read from unimplemented I/O Port &H2A
2A Read from unimplemented I/O Port &H2B
2B Read from unimplemented I/O Port &H2C
2C Read from unimplemented I/O Port &H2D
2D Read from unimplemented I/O Port &H2E
2E Read from unimplemented I/O Port &H2F
2F Read from unimplemented I/O Port &H30
30 Read from unimplemented I/O Port &H31
31 Read from unimplemented I/O Port &H32
32 Read from unimplemented I/O Port &H33
33 Read from unimplemented I/O Port &H34
34 Read from unimplemented I/O Port &H35
35 Read from unimplemented I/O Port &H36
36 Read from unimplemented I/O Port &H37
37 Read from unimplemented I/O Port &H38
38 Read from unimplemented I/O Port &H39
39 Read from unimplemented I/O Port &H3A
3A Read from unimplemented I/O Port &H3B
3B Read from unimplemented I/O Port &H3C
3C Read from unimplemented I/O Port &H3D
3D Read from unimplemented I/O Port &H3E
3E Read from unimplemented I/O Port &H3F
3F Read from unimplemented I/O Port &H40
40 Read from unimplemented I/O Port &H41
41 Read from unimplemented I/O Port &H42
42 Read from unimplemented I/O Port &H43
43 Read from unimplemented I/O Port &H44
44 Read from unimplemented I/O Port &H45
45 Read from unimplemented I/O Port &H46
46 Read from unimplemented I/O Port &H47
47 Read from unimplemented I/O Port &H48
48 Read from unimplemented I/O Port &H49
49 Read from unimplemented I/O Port &H4A
4A Read from unimplemented I/O Port &H4B
4B Read from unimplemented I/O Port &H4C
4C Read from unimplemented I/O Port &H4D
4D Read from unimplemented I/O Port &H4E
4E Read from unimplemented I/O Port &H4F
4F Read from unimplemented I/O Port &H50
50 Read from unimplemented I/O Port &H51
51 Read from unimplemented I/O Port &H52
52 Read from unimplemented I/O Port &H53
53 Read from unimplemented I/O Port &H54
54 Read from unimplemented I/O Port &H55
55 Read from unimplemented I/O Port &H56
56 Read from unimplemented I/O Port &H57
57 Read from unimplemented I/O Port &H58
58 Read from unimplemented I/O Port &H59
59 Read from unimplemented I/O Port &H5A
5A Read from unimplemented I/O Port &H5B
5B Read from unimplemented I/O Port &H5C
5C Read from unimplemented I/O Port &H5D
5D Read from unimplemented I/O Port &H5E
5E Read from unimplemented I/O Port &H5F
5F Read from unimplemented I/O Port &H60
60 Read from unimplemented I/O Port &H61
61 Read from unimplemented I/O Port &H62
62 Read from unimplemented I/O Port &H63
63 Read from unimplemented I/O Port &H64
64 Read from unimplemented I/O Port &H65
65 Read from unimplemented I/O Port &H66
66 Read from unimplemented I/O Port &H67
6768 Read from unimplemented I/O Port &H69
69 Read from unimplemented I/O Port &H6A
6A Read from unimplemented I/O Port &H6B
6B Read from unimplemented I/O Port &H6C
6C 6D Read from unimplemented I/O Port &H6E
6E Read from unimplemented I/O Port &H6F
6F Read from unimplemented I/O Port &H70
70 Read from unimplemented I/O Port &H71
71 Read from unimplemented I/O Port &H72
72 Read from unimplemented I/O Port &H73
73 Read from unimplemented I/O Port &H74
74 Read from unimplemented I/O Port &H75
75 Read from unimplemented I/O Port &H76
76 Read from unimplemented I/O Port &H77
77 Read from unimplemented I/O Port &H78
78 Read from unimplemented I/O Port &H79
79 Read from unimplemented I/O Port &H7A
7A Read from unimplemented I/O Port &H7B
7B Read from unimplemented I/O Port &H7C
7C Read from unimplemented I/O Port &H7D
7D Read from unimplemented I/O Port &H7E
7E Read from unimplemented I/O Port &H7F
7F Read from unimplemented I/O Port &H80
80 Read from unimplemented I/O Port &H81
81 Read from unimplemented I/O Port &H82
82 Read from unimplemented I/O Port &H83
83 Read from unimplemented I/O Port &H84
84 Read from unimplemented I/O Port &H85
85 Read from unimplemented I/O Port &H86
86 Read from unimplemented I/O Port &H87
87 Read from unimplemented I/O Port &H88
88 Read from unimplemented I/O Port &H89
89 Read from unimplemented I/O Port &H8A
8A Read from unimplemented I/O Port &H8B
8B Read from unimplemented I/O Port &H8C
8C Read from unimplemented I/O Port &H8D
8D Read from unimplemented I/O Port &H8E
8E Read from unimplemented I/O Port &H8F
8F Read from unimplemented I/O Port &H90
90 Read from unimplemented I/O Port &H91
91 Read from unimplemented I/O Port &H92
92 Read from unimplemented I/O Port &H93
93 Read from unimplemented I/O Port &H94
94 Read from unimplemented I/O Port &H95
95 Read from unimplemented I/O Port &H96
96 Read from unimplemented I/O Port &H97
97 Read from unimplemented I/O Port &H98
98 Read from unimplemented I/O Port &H99
99 Read from unimplemented I/O Port &H9A
9A Read from unimplemented I/O Port &H9B
9B Read from unimplemented I/O Port &H9C
9C Read from unimplemented I/O Port &H9D
9D Read from unimplemented I/O Port &H9E
9E Read from unimplemented I/O Port &H9F
9F Read from unimplemented I/O Port &HA0
A0 Read from unimplemented I/O Port &HA1
A1 Read from unimplemented I/O Port &HA2
A2 Read from unimplemented I/O Port &HA3
A3 Read from unimplemented I/O Port &HA4
A4 Read from unimplemented I/O Port &HA5
A5 Read from unimplemented I/O Port &HA6
A6 Read from unimplemented I/O Port &HA7
A7 Read from unimplemented I/O Port &HA8
A8 Read from unimplemented I/O Port &HA9
A9 Read from unimplemented I/O Port &HAA
AA Read from unimplemented I/O Port &HAB
AB Read from unimplemented I/O Port &HAC
AC Read from unimplemented I/O Port &HAD
AD Read from unimplemented I/O Port &HAE
AE Read from unimplemented I/O Port &HAF
AF Read from unimplemented I/O Port &HB0
B0 Read from unimplemented I/O Port &HB1
B1 Read from unimplemented I/O Port &HB2
B2 Read from unimplemented I/O Port &HB3
B3 Read from unimplemented I/O Port &HB4
B4 Read from unimplemented I/O Port &HB5
B5 Read from unimplemented I/O Port &HB6
B6 Read from unimplemented I/O Port &HB7
B7 Read from unimplemented I/O Port &HB8
B8 Read from unimplemented I/O Port &HB9
B9 Read from unimplemented I/O Port &HBA
BA Read from unimplemented I/O Port &HBB
BB Read from unimplemented I/O Port &HBC
BC Read from unimplemented I/O Port &HBD
BD Read from unimplemented I/O Port &HBE
BE Read from unimplemented I/O Port &HBF
BF Read from unimplemented I/O Port &HC0
C0 Read from unimplemented I/O Port &HC1
C1 Read from unimplemented I/O Port &HC2
C2 Read from unimplemented I/O Port &HC3
C3 Read from unimplemented I/O Port &HC4
C4 Read from unimplemented I/O Port &HC5
C5 Read from unimplemented I/O Port &HC6
C6 Read from unimplemented I/O Port &HC7
C7 Read from unimplemented I/O Port &HC8
C8 Read from unimplemented I/O Port &HC9
C9 Read from unimplemented I/O Port &HCA
CA Read from unimplemented I/O Port &HCB
CB Read from unimplemented I/O Port &HCC
CC Read from unimplemented I/O Port &HCD
CD Read from unimplemented I/O Port &HCE
CE Read from unimplemented I/O Port &HCF
CF Read from unimplemented I/O Port &HD0
D0 Read from unimplemented I/O Port &HD1
D1 Read from unimplemented I/O Port &HD2
D2 Read from unimplemented I/O Port &HD3
D3 Read from unimplemented I/O Port &HD4
D4 Read from unimplemented I/O Port &HD5
D5 Read from unimplemented I/O Port &HD6
D6 Read from unimplemented I/O Port &HD7
D7 Read from unimplemented I/O Port &HD8
D8 Read from unimplemented I/O Port &HD9
D9 Read from unimplemented I/O Port &HDA
DA Read from unimplemented I/O Port &HDB
DB Read from unimplemented I/O Port &HDC
DC Read from unimplemented I/O Port &HDD
DD Read from unimplemented I/O Port &HDE
DE Read from unimplemented I/O Port &HDF
DF Read from unimplemented I/O Port &HE0
E0 Read from unimplemented I/O Port &HE1
E1 Read from unimplemented I/O Port &HE2
E2 Read from unimplemented I/O Port &HE3
E3 Read from unimplemented I/O Port &HE4
E4 Read from unimplemented I/O Port &HE5
E5 Read from unimplemented I/O Port &HE6
E6 Read from unimplemented I/O Port &HE7
E7 Read from unimplemented I/O Port &HE8
E8 Read from unimplemented I/O Port &HE9
E9 Read from unimplemented I/O Port &HEA
EA Read from unimplemented I/O Port &HEB
EB Read from unimplemented I/O Port &HEC
EC Read from unimplemented I/O Port &HED
ED Read from unimplemented I/O Port &HEE
EE Read from unimplemented I/O Port &HEF
EF Read from unimplemented I/O Port &HF0
F0 Read from unimplemented I/O Port &HF1
F1 Read from unimplemented I/O Port &HF2
F2 Read from unimplemented I/O Port &HF3
F3 Read from unimplemented I/O Port &HF4
F4 Read from unimplemented I/O Port &HF5
F5 Read from unimplemented I/O Port &HF6
F6 Read from unimplemented I/O Port &HF7
F7 Read from unimplemented I/O Port &HF8
F8 Read from unimplemented I/O Port &HF9
F9 Read from unimplemented I/O Port &HFA
FA Read from unimplemented I/O Port &HFB
FB Read from unimplemented I/O Port &HFC
FC HDSK ERROR 5
FD FE SR port read
FF
254 Ports active
A>
James: Our SD is different to heaters. He has no FAT16, just a contiguous clump of data. Secondly, the floppy will be formatted incorrectly so it will not work :-(. Need either heaters formatted file or we need to get it running blind.
From what I recall (havent had time to check) the code should read the hdisk correctly but writes should be disabled.
Can you compile with #define hdskenable commented out and see if CPM boots and reads and writes correctly? If so, I know I don't have to worry about the fudging the extra 9 bytes (128 -> 137).
I will look at the hdisk shortly
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Links to other interesting threads:
#ifdef TriBladeProp
#define fix137 'fudge in the pre and post bytes for the 137Byte SIMH sectors
#define diskboot 'boot using cleared ram and $FF00 dskboot.com
'#define RamDisk 'use Ram Disk, else SD Card for CPM disk
'#define cpm3 'Uncomment for CPM3 else CPM2.2
#endif
#define hdskenable 'Uncomment for hard disk support
is my combo at the moment. Working fine with booting and xmodem transfers. What combinations of fix137 and hdskenable would you like tested?
tried commenting out fix137. That works fine with xmodem too.
What does the fix137 do? Does it enable reading of disk images without pre-processing by the vb6 program?
'#define fix137 ' disable fudge
'#define hdskenable 'no hard disk
thanks
Sorry, fix137 just puts the extra 9 bytes into the sector buffer after a read of a 128 byte sector from the sd card (floppy). I am thinking/hoping this kludge is not required. Previously, it was always done.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Links to other interesting threads:
Re heater I have a feeling cloning a floppy does not give what we want. Sectors per track is wrong or something.
What about getting the file i.dsk that comes up in the simh in many packages? No, wait, that is 8mb and we want 32mb. Hmm, so all files need some sort of pre-processing.
Yes - this combo works too with xmodem etc
#ifdef TriBladeProp
'#define fix137 'fudge in the pre and post bytes for the 137Byte SIMH sectors
#define diskboot 'boot using cleared ram and $FF00 dskboot.com
'#define RamDisk 'use Ram Disk, else SD Card for CPM disk
'#define cpm3 'Uncomment for CPM3 else CPM2.2
#endif
'#define hdskenable 'Uncomment for hard disk support
I'm looking at a simh i.dsk at the moment. Has a few files on it. Seems to be 128 bytes as they all line up neatly when viewed in groups of 16. E5 to 5FFF. Then filenames, then lots of E5s to DFFF. Then the data starts at E000.
James: You should be able to make a file with the VB6 program I sent. Just remove the section to skip the 9 bytes and all will work fine - IIRC there are 4 at the start and 5 at the end. This will be in the reading section. VB will read any length file < 32MB but outputs a fixed zero filled 32MB file.
If not email me the file and I will create it.
What you are seeing is the FAT style structure (whatever they used)
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Links to other interesting threads:
You just have to stretch it. 128 bytes into 512. I thought you had some VB program that did that for you.
Or you can use the mk_zicog_img.py program that is included in the last ZiCog release.
You would have to hack it a bit as not to put the 8 floppy images into the output file. Python is easy to read.
I'd make the disk myself for you but I'm away from home at the moment.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
Then rename it as DRIVE__B.DSK, overwrite the old file and indeed it comes up with no files as a floppy drive. Then tried copying MBASIC over with PIP and that works too. It is a bit cheeky just filling a file up with E5 but someone suggested it recently over on the vintage computer forum.
So, will this work for drive I? So far, no luck. It still just hangs when going to drive I. But that is with Cluso's code. I'm going to try yours in a sec.
Addit - same result - just hangs. So I guess need to trace what happens when you type I:
Post Edited (Dr_Acula) : 8/19/2009 10:11:33 AM GMT
I don't think there is one, or at least there might be an empty one that comes with the cpm2 download.
But either way, if you don't have one and SIMH is configured to use one, then it will create a blank I: disk for you automatically when you start CP/M 2.
I forget now if having an I: disk is the default configuration or if you have to tweek the cpm2 command file.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
Below is the content of my cpm2 command file for altairz80, you need to have the line "attach hdsk0 i.dsk" in yours.
Probably ignore the rest of it.
d tracks[noparse][[/noparse]0-7] 254
attach dsk0 cpm2.dsk
attach dsk1 app.dsk
attach hdsk0 i.dsk
;demo how to use other disk formats in CP/M 2
attach hdsk1 appleiicpm.dsk
set hdsk1 format=apple-d2
set cpu 19k
set cpu noitrap
set cpu z80
set cpu altairrom
set cpu nonbanked
reset cpu
set sio ansiset sio nosleep
boot dsk
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
Yes very similar to mine. Just the size of memory is different
d tracks[noparse][[/noparse]0-7] 254attach dsk cpm2.dsk
attach dsk1 basic.dsk
attach dsk2 games.dsk
attach dsk3 sbasic.dsk
attach dsk4 bdsc160.dsk
attach dsk5 tools.dsk
attach dsk6 wordstar.dsk
attach hdsk i.dsk
set cpu 64k
set cpu noitrap
set cpu z80set cpu altairrom
set cpu nonbanked
reset cpu
set sio ansi
set sio nosleep
boot dsk
bye
That sits in a program called all and there is no extension
Then I have a batch file called AltairAll.bat which contains one line
altairz80 all
And so you can double click on AltairAll.bat and it runs the emulation.
re heater Dr_A: What's that? Is it really possible for CP/M to write a file to an unformatted floppy?
This is from the FORMAT program in the N8VEM:
; Formatting the ram is simple as clearing the directory area
; to a value of E5h (the first 8k of track 1 or the ramdisk).
LDHL,$0000 ; starting memory address of track 1, sector 0inHLLDBC,$1FFF ; 8K of directory sectors reserved (length inBC)
LDA,$E5 ; initializing value inA
ld e,l ; fill memory
ld d,h
inc de
ld (hl),A
ldir
Even less E5s there, just to the first 8k. But it is simpler to fill the entire thing with E5 as then you don't have to worry about the varying size of the dpb etc.
'Formatting', in CP/M, means erasing to E5. Easy, huh?
I can also report from experience that on a N8VEM with a brand new ram chip where all the bytes are zero, you cannot read/write properly. I think E5 is used as the 'end of filename list' marker, so if there is no E5 then it keeps trying to read filenames where they don't exist.
This is a fragment of CP/M code:
CALL FCB2HL ; YES, GET ITS ADDRESS.
LD A,0E5H
CP (HL) ; EMPTY FILE ENTRY?
Post Edited (Dr_Acula) : 8/19/2009 10:36:08 AM GMT
Yes that looks right Cluso. Viewed that as a binary file. First 128 bytes of 512 are E5. Rest are zero but you never read them, so it is the same as 32mb of E5.
I am only reading 128 bytes where I think heater you are reading the 512 bytes. Is it possible that the sectors on your disk is still 137 ??? If so, I need to offset like I do in the floppy reads.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Links to other interesting threads:
Comments
Downloading the new code now...
And I think it should be 115k - no need for everyone to be slow just coz of my setup.
C:\Propeller\zicog92\Heater 19 08 09>bstc -e -Ox zicog_demo.spin
Brads Spin Tool Compiler v0.15.3 - Copyright 2008,2009 All rights reserved
Compiled for i386 Win32 at 08:17:48 on 2009/07/20
Loading Object zicog_demo
Loading Object zicog
zicog - Error at (285,34) Symbol not defined!
call #read_memory_byte 'Read the instruction
byte there
_________________________________^
zicog - Error at (369,34) Symbol not defined!
get_memory_addr call #read_memory_byte
_________________________________^
zicog - Error at (447,33) Symbol not defined!
call #read_memory_byte
________________________________^
zicog - Error at (547,34) Symbol not defined!
call #write_memory_byte
_________________________________^
zicog - Error at (552,34) Symbol not defined!
call #read_memory_byte
_________________________________^
zicog - Error at (630,34) Symbol not defined!
put_memory_addr call #write_memory_byte
_________________________________^
zicog - Error at (769,34) Symbol not defined!
read_memory_word call #read_memory_byte 'Read the low byte
_________________________________^
zicog - Error at (773,34) Symbol not defined!
call #read_memory_byte 'Read the high byte
_________________________________^
zicog - Error at (780,34) Symbol not defined!
call #write_memory_byte 'Write the LOW byte
_________________________________^
zicog - Error at (783,34) Symbol not defined!
call #write_memory_byte
_________________________________^
zicog - Error at (1125,35) Expected Spin Method, Unique Name, Assembly Condition
al, BYTE, WORD, LONG or Assembly Instruction
long $0[noparse][[/noparse]($ - OVERLAY_START) // 2] 'fill to even nu
mber of longs (REQUIRED)
__________________________________^
Compiled 1474 Lines of Code in 0.25 Seconds
C:\Propeller\zicog92\Heater 19 08 09>pause
Press any key to continue . . .
Addit: Fixed that with
#define CPU_Z80
#define TriBladeProp
and
#define hdskenable
Looks like I need 4 hard disks - off to copy drive I to J, K and L...
Post Edited (Dr_Acula) : 8/19/2009 7:43:49 AM GMT
Great re the 137 bytes. Yes, I just fill them in each time I do a read in case they have been corrupted. I can probably disable this bit then (less code, faster and less clutter). I have put a #define fix137 in to disable code unless selected. James, can you please check this works - if it fails, uncomment #define fix137.
James: Put a #define Dr_Acula in if you like for baud and to remove the 3 sec delay waiting for the terminal at PUB Start in the demo code. Otherwise this should run for you (except hard disk) - you will need blank files for I,J,K & L - just copy DRIVE__D.DSK although I am only enabling "I" until it works for us. #define hdskenable is commented out - you could try it - only the read would work so we will require a disk image.
Heater: Perhaps you could post a zipped version of your hard disk 32MB file for us. At least we will know the file is ok.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
BTW, the bootup is 10x faster now with CP/M included. I *like* that!
Getting a hang on drive I (which is a clone of drive D) Working through solutions now...
You don't want that fast boot. It means you are ending up in the 23K RAM CP/M version carried in the zicog_demo.spin and running from HUB memory!!!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
tried the 137 patch on and off. Maybe my disk image is not right. Using a clone of drive D
Also, the bootup is much slower than heater's version. Not sure why - checking it out now...
Ok, looks like Cluso and me are stuck getting 'I' working. We are cloning floppy drive images. But they are 128 ones, right?
Addit: I'm using the program exactly as posted at the beginning of this thread. 20k memory and all. Trying to get into drive I pauses then gives.
Write to unimplemented I/O Port &H87
Some things work though. This is the same printout for both heater and cluso's latest version (this crashed for me previously on the I/O). The bytes that are skipped eg 68 are correct ie trapped by the n8vem code. So this little program is very useful.
A>survey *** System Survey (June 82) *** Drive A: 480K bytes in 74 files with 392K bytes remaining Memory map: 0 8 16 24 32 40 48 56 64 | | | | | | | | | TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCCCBBBB T=TPA C=CPM B=BIOS or unassigned R=ROM or bad BIOS at F203 iobyte 00 drive 00 BDOS at E406 65535 Bytes RAM 0 Bytes ROM 58374 Bytes in TPA 0 Bytes Empty 65535 Total Active Bytes Active I/O ports:Read from unimplemented I/O Port &H00 Read from unimplemented I/O Port &H01 01 Read from unimplemented I/O Port &H02 02 Read from unimplemented I/O Port &H03 03 Read from unimplemented I/O Port &H04 04 Read from unimplemented I/O Port &H05 05 Read from unimplemented I/O Port &H06 06 Read from unimplemented I/O Port &H07 07 08 09 0A Read from unimplemented I/O Port &H0B 0B Read from unimplemented I/O Port &H0C 0C Read from unimplemented I/O Port &H0D 0D Read from unimplemented I/O Port &H0E 0E Read from unimplemented I/O Port &H0F 0F 10 Read from unimplemented I/O Port &H12 12 Read from unimplemented I/O Port &H13 13 Read from unimplemented I/O Port &H14 14 Read from unimplemented I/O Port &H15 15 Read from unimplemented I/O Port &H16 16 Read from unimplemented I/O Port &H17 17 Read from unimplemented I/O Port &H18 18 Read from unimplemented I/O Port &H19 19 Read from unimplemented I/O Port &H1A 1A Read from unimplemented I/O Port &H1B 1B Read from unimplemented I/O Port &H1C 1C Read from unimplemented I/O Port &H1D 1D Read from unimplemented I/O Port &H1E 1E Read from unimplemented I/O Port &H1F 1F Read from unimplemented I/O Port &H20 20 Read from unimplemented I/O Port &H21 21 Read from unimplemented I/O Port &H22 22 Read from unimplemented I/O Port &H23 23 Read from unimplemented I/O Port &H24 24 Read from unimplemented I/O Port &H25 25 Read from unimplemented I/O Port &H26 26 Read from unimplemented I/O Port &H27 27 Read from unimplemented I/O Port &H28 28 Read from unimplemented I/O Port &H29 29 Read from unimplemented I/O Port &H2A 2A Read from unimplemented I/O Port &H2B 2B Read from unimplemented I/O Port &H2C 2C Read from unimplemented I/O Port &H2D 2D Read from unimplemented I/O Port &H2E 2E Read from unimplemented I/O Port &H2F 2F Read from unimplemented I/O Port &H30 30 Read from unimplemented I/O Port &H31 31 Read from unimplemented I/O Port &H32 32 Read from unimplemented I/O Port &H33 33 Read from unimplemented I/O Port &H34 34 Read from unimplemented I/O Port &H35 35 Read from unimplemented I/O Port &H36 36 Read from unimplemented I/O Port &H37 37 Read from unimplemented I/O Port &H38 38 Read from unimplemented I/O Port &H39 39 Read from unimplemented I/O Port &H3A 3A Read from unimplemented I/O Port &H3B 3B Read from unimplemented I/O Port &H3C 3C Read from unimplemented I/O Port &H3D 3D Read from unimplemented I/O Port &H3E 3E Read from unimplemented I/O Port &H3F 3F Read from unimplemented I/O Port &H40 40 Read from unimplemented I/O Port &H41 41 Read from unimplemented I/O Port &H42 42 Read from unimplemented I/O Port &H43 43 Read from unimplemented I/O Port &H44 44 Read from unimplemented I/O Port &H45 45 Read from unimplemented I/O Port &H46 46 Read from unimplemented I/O Port &H47 47 Read from unimplemented I/O Port &H48 48 Read from unimplemented I/O Port &H49 49 Read from unimplemented I/O Port &H4A 4A Read from unimplemented I/O Port &H4B 4B Read from unimplemented I/O Port &H4C 4C Read from unimplemented I/O Port &H4D 4D Read from unimplemented I/O Port &H4E 4E Read from unimplemented I/O Port &H4F 4F Read from unimplemented I/O Port &H50 50 Read from unimplemented I/O Port &H51 51 Read from unimplemented I/O Port &H52 52 Read from unimplemented I/O Port &H53 53 Read from unimplemented I/O Port &H54 54 Read from unimplemented I/O Port &H55 55 Read from unimplemented I/O Port &H56 56 Read from unimplemented I/O Port &H57 57 Read from unimplemented I/O Port &H58 58 Read from unimplemented I/O Port &H59 59 Read from unimplemented I/O Port &H5A 5A Read from unimplemented I/O Port &H5B 5B Read from unimplemented I/O Port &H5C 5C Read from unimplemented I/O Port &H5D 5D Read from unimplemented I/O Port &H5E 5E Read from unimplemented I/O Port &H5F 5F Read from unimplemented I/O Port &H60 60 Read from unimplemented I/O Port &H61 61 Read from unimplemented I/O Port &H62 62 Read from unimplemented I/O Port &H63 63 Read from unimplemented I/O Port &H64 64 Read from unimplemented I/O Port &H65 65 Read from unimplemented I/O Port &H66 66 Read from unimplemented I/O Port &H67 67 68 Read from unimplemented I/O Port &H69 69 Read from unimplemented I/O Port &H6A 6A Read from unimplemented I/O Port &H6B 6B Read from unimplemented I/O Port &H6C 6C 6D Read from unimplemented I/O Port &H6E 6E Read from unimplemented I/O Port &H6F 6F Read from unimplemented I/O Port &H70 70 Read from unimplemented I/O Port &H71 71 Read from unimplemented I/O Port &H72 72 Read from unimplemented I/O Port &H73 73 Read from unimplemented I/O Port &H74 74 Read from unimplemented I/O Port &H75 75 Read from unimplemented I/O Port &H76 76 Read from unimplemented I/O Port &H77 77 Read from unimplemented I/O Port &H78 78 Read from unimplemented I/O Port &H79 79 Read from unimplemented I/O Port &H7A 7A Read from unimplemented I/O Port &H7B 7B Read from unimplemented I/O Port &H7C 7C Read from unimplemented I/O Port &H7D 7D Read from unimplemented I/O Port &H7E 7E Read from unimplemented I/O Port &H7F 7F Read from unimplemented I/O Port &H80 80 Read from unimplemented I/O Port &H81 81 Read from unimplemented I/O Port &H82 82 Read from unimplemented I/O Port &H83 83 Read from unimplemented I/O Port &H84 84 Read from unimplemented I/O Port &H85 85 Read from unimplemented I/O Port &H86 86 Read from unimplemented I/O Port &H87 87 Read from unimplemented I/O Port &H88 88 Read from unimplemented I/O Port &H89 89 Read from unimplemented I/O Port &H8A 8A Read from unimplemented I/O Port &H8B 8B Read from unimplemented I/O Port &H8C 8C Read from unimplemented I/O Port &H8D 8D Read from unimplemented I/O Port &H8E 8E Read from unimplemented I/O Port &H8F 8F Read from unimplemented I/O Port &H90 90 Read from unimplemented I/O Port &H91 91 Read from unimplemented I/O Port &H92 92 Read from unimplemented I/O Port &H93 93 Read from unimplemented I/O Port &H94 94 Read from unimplemented I/O Port &H95 95 Read from unimplemented I/O Port &H96 96 Read from unimplemented I/O Port &H97 97 Read from unimplemented I/O Port &H98 98 Read from unimplemented I/O Port &H99 99 Read from unimplemented I/O Port &H9A 9A Read from unimplemented I/O Port &H9B 9B Read from unimplemented I/O Port &H9C 9C Read from unimplemented I/O Port &H9D 9D Read from unimplemented I/O Port &H9E 9E Read from unimplemented I/O Port &H9F 9F Read from unimplemented I/O Port &HA0 A0 Read from unimplemented I/O Port &HA1 A1 Read from unimplemented I/O Port &HA2 A2 Read from unimplemented I/O Port &HA3 A3 Read from unimplemented I/O Port &HA4 A4 Read from unimplemented I/O Port &HA5 A5 Read from unimplemented I/O Port &HA6 A6 Read from unimplemented I/O Port &HA7 A7 Read from unimplemented I/O Port &HA8 A8 Read from unimplemented I/O Port &HA9 A9 Read from unimplemented I/O Port &HAA AA Read from unimplemented I/O Port &HAB AB Read from unimplemented I/O Port &HAC AC Read from unimplemented I/O Port &HAD AD Read from unimplemented I/O Port &HAE AE Read from unimplemented I/O Port &HAF AF Read from unimplemented I/O Port &HB0 B0 Read from unimplemented I/O Port &HB1 B1 Read from unimplemented I/O Port &HB2 B2 Read from unimplemented I/O Port &HB3 B3 Read from unimplemented I/O Port &HB4 B4 Read from unimplemented I/O Port &HB5 B5 Read from unimplemented I/O Port &HB6 B6 Read from unimplemented I/O Port &HB7 B7 Read from unimplemented I/O Port &HB8 B8 Read from unimplemented I/O Port &HB9 B9 Read from unimplemented I/O Port &HBA BA Read from unimplemented I/O Port &HBB BB Read from unimplemented I/O Port &HBC BC Read from unimplemented I/O Port &HBD BD Read from unimplemented I/O Port &HBE BE Read from unimplemented I/O Port &HBF BF Read from unimplemented I/O Port &HC0 C0 Read from unimplemented I/O Port &HC1 C1 Read from unimplemented I/O Port &HC2 C2 Read from unimplemented I/O Port &HC3 C3 Read from unimplemented I/O Port &HC4 C4 Read from unimplemented I/O Port &HC5 C5 Read from unimplemented I/O Port &HC6 C6 Read from unimplemented I/O Port &HC7 C7 Read from unimplemented I/O Port &HC8 C8 Read from unimplemented I/O Port &HC9 C9 Read from unimplemented I/O Port &HCA CA Read from unimplemented I/O Port &HCB CB Read from unimplemented I/O Port &HCC CC Read from unimplemented I/O Port &HCD CD Read from unimplemented I/O Port &HCE CE Read from unimplemented I/O Port &HCF CF Read from unimplemented I/O Port &HD0 D0 Read from unimplemented I/O Port &HD1 D1 Read from unimplemented I/O Port &HD2 D2 Read from unimplemented I/O Port &HD3 D3 Read from unimplemented I/O Port &HD4 D4 Read from unimplemented I/O Port &HD5 D5 Read from unimplemented I/O Port &HD6 D6 Read from unimplemented I/O Port &HD7 D7 Read from unimplemented I/O Port &HD8 D8 Read from unimplemented I/O Port &HD9 D9 Read from unimplemented I/O Port &HDA DA Read from unimplemented I/O Port &HDB DB Read from unimplemented I/O Port &HDC DC Read from unimplemented I/O Port &HDD DD Read from unimplemented I/O Port &HDE DE Read from unimplemented I/O Port &HDF DF Read from unimplemented I/O Port &HE0 E0 Read from unimplemented I/O Port &HE1 E1 Read from unimplemented I/O Port &HE2 E2 Read from unimplemented I/O Port &HE3 E3 Read from unimplemented I/O Port &HE4 E4 Read from unimplemented I/O Port &HE5 E5 Read from unimplemented I/O Port &HE6 E6 Read from unimplemented I/O Port &HE7 E7 Read from unimplemented I/O Port &HE8 E8 Read from unimplemented I/O Port &HE9 E9 Read from unimplemented I/O Port &HEA EA Read from unimplemented I/O Port &HEB EB Read from unimplemented I/O Port &HEC EC Read from unimplemented I/O Port &HED ED Read from unimplemented I/O Port &HEE EE Read from unimplemented I/O Port &HEF EF Read from unimplemented I/O Port &HF0 F0 Read from unimplemented I/O Port &HF1 F1 Read from unimplemented I/O Port &HF2 F2 Read from unimplemented I/O Port &HF3 F3 Read from unimplemented I/O Port &HF4 F4 Read from unimplemented I/O Port &HF5 F5 Read from unimplemented I/O Port &HF6 F6 Read from unimplemented I/O Port &HF7 F7 Read from unimplemented I/O Port &HF8 F8 Read from unimplemented I/O Port &HF9 F9 Read from unimplemented I/O Port &HFA FA Read from unimplemented I/O Port &HFB FB Read from unimplemented I/O Port &HFC FC HDSK ERROR 5 FD FE SR port read FF 254 Ports active A>
Post Edited (Dr_Acula) : 8/19/2009 8:32:20 AM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
From what I recall (havent had time to check) the code should read the hdisk correctly but writes should be disabled.
Can you compile with #define hdskenable commented out and see if CPM boots and reads and writes correctly? If so, I know I don't have to worry about the fudging the extra 9 bytes (128 -> 137).
I will look at the hdisk shortly
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
#define fix137 'fudge in the pre and post bytes for the 137Byte SIMH sectors
#define diskboot 'boot using cleared ram and $FF00 dskboot.com
'#define RamDisk 'use Ram Disk, else SD Card for CPM disk
'#define cpm3 'Uncomment for CPM3 else CPM2.2
#endif
#define hdskenable 'Uncomment for hard disk support
is my combo at the moment. Working fine with booting and xmodem transfers. What combinations of fix137 and hdskenable would you like tested?
tried commenting out fix137. That works fine with xmodem too.
What does the fix137 do? Does it enable reading of disk images without pre-processing by the vb6 program?
Post Edited (Dr_Acula) : 8/19/2009 8:48:46 AM GMT
'#define hdskenable 'no hard disk
thanks
Sorry, fix137 just puts the extra 9 bytes into the sector buffer after a read of a 128 byte sector from the sd card (floppy). I am thinking/hoping this kludge is not required. Previously, it was always done.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
Post Edited (Cluso99) : 8/19/2009 8:58:11 AM GMT
What about getting the file i.dsk that comes up in the simh in many packages? No, wait, that is 8mb and we want 32mb. Hmm, so all files need some sort of pre-processing.
Yes - this combo works too with xmodem etc
#ifdef TriBladeProp
'#define fix137 'fudge in the pre and post bytes for the 137Byte SIMH sectors
#define diskboot 'boot using cleared ram and $FF00 dskboot.com
'#define RamDisk 'use Ram Disk, else SD Card for CPM disk
'#define cpm3 'Uncomment for CPM3 else CPM2.2
#endif
'#define hdskenable 'Uncomment for hard disk support
Post Edited (Dr_Acula) : 8/19/2009 8:56:08 AM GMT
If not email me the file and I will create it.
What you are seeing is the FAT style structure (whatever they used)
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
You just have to stretch it. 128 bytes into 512. I thought you had some VB program that did that for you.
Or you can use the mk_zicog_img.py program that is included in the last ZiCog release.
You would have to hack it a bit as not to put the 8 floppy images into the output file. Python is easy to read.
I'd make the disk myself for you but I'm away from home at the moment.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
Private Sub Blank32E5() Dim FileNo As Integer Dim FileName As String Dim FileSize As String Dim i, j As Long Dim bytes() As Byte ' clear the output buffer txtStatus.Text = "Clearing 32MB buffer" txtStatus.Refresh FileSize = 33554432 ' 32MBytes ReDim bytes(0 To FileSize - 1) For j = 0 To FileSize - 1 bytes(j) = &HE5 Next j FileName = "HARD_E5.DSK" txtStatus.Text = "Opening..." & FileName txtStatus.Refresh FileNo = FreeFile Open FileName For Binary As FileNo Put FileNo, , bytes ' writes complete binary file Close FileNo txtStatus.Text = FileName & " Saved" txtStatus.Refresh End Sub
Then rename it as DRIVE__B.DSK, overwrite the old file and indeed it comes up with no files as a floppy drive. Then tried copying MBASIC over with PIP and that works too. It is a bit cheeky just filling a file up with E5 but someone suggested it recently over on the vintage computer forum.
So, will this work for drive I? So far, no luck. It still just hangs when going to drive I. But that is with Cluso's code. I'm going to try yours in a sec.
Addit - same result - just hangs. So I guess need to trace what happens when you type I:
Post Edited (Dr_Acula) : 8/19/2009 10:11:33 AM GMT
http://www.schorn.ch/cpm/intro.php
go down to cpm2.2 get the package, and i.dsk is part of that package.
But either way, if you don't have one and SIMH is configured to use one, then it will create a blank I: disk for you automatically when you start CP/M 2.
I forget now if having an I: disk is the default configuration or if you have to tweek the cpm2 command file.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
Below is the content of my cpm2 command file for altairz80, you need to have the line "attach hdsk0 i.dsk" in yours.
Probably ignore the rest of it.
d tracks[noparse][[/noparse]0-7] 254 attach dsk0 cpm2.dsk attach dsk1 app.dsk attach hdsk0 i.dsk ;demo how to use other disk formats in CP/M 2 attach hdsk1 appleiicpm.dsk set hdsk1 format=apple-d2 set cpu 19k set cpu noitrap set cpu z80 set cpu altairrom set cpu nonbanked reset cpu set sio ansi set sio nosleep boot dsk
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
d tracks[noparse][[/noparse]0-7] 254 attach dsk cpm2.dsk attach dsk1 basic.dsk attach dsk2 games.dsk attach dsk3 sbasic.dsk attach dsk4 bdsc160.dsk attach dsk5 tools.dsk attach dsk6 wordstar.dsk attach hdsk i.dsk set cpu 64k set cpu noitrap set cpu z80 set cpu altairrom set cpu nonbanked reset cpu set sio ansi set sio nosleep boot dsk bye
That sits in a program called all and there is no extension
Then I have a batch file called AltairAll.bat which contains one line
altairz80 all
And so you can double click on AltairAll.bat and it runs the emulation.
I guess it is over to the Great Cluso now?
This is from the FORMAT program in the N8VEM:
; Formatting the ram is simple as clearing the directory area ; to a value of E5h (the first 8k of track 1 or the ramdisk). LD HL,$0000 ; starting memory address of track 1, sector 0 in HL LD BC,$1FFF ; 8K of directory sectors reserved (length in BC) LD A,$E5 ; initializing value in A ld e,l ; fill memory ld d,h inc de ld (hl),A ldir
Even less E5s there, just to the first 8k. But it is simpler to fill the entire thing with E5 as then you don't have to worry about the varying size of the dpb etc.
'Formatting', in CP/M, means erasing to E5. Easy, huh?
I can also report from experience that on a N8VEM with a brand new ram chip where all the bytes are zero, you cannot read/write properly. I think E5 is used as the 'end of filename list' marker, so if there is no E5 then it keeps trying to read filenames where they don't exist.
This is a fragment of CP/M code:
CALL FCB2HL ; YES, GET ITS ADDRESS. LD A,0E5H CP (HL) ; EMPTY FILE ENTRY?
Post Edited (Dr_Acula) : 8/19/2009 10:36:08 AM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
Ok, so how do we talk to this?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm