\r
public f_cpu\r
\r
- extrn ?boot,?pmsg,?conin\r
+ extrn ?boot,?conin\r
+ extrn pr.inln,pr.crlf,pr.dec,pr.decl\r
extrn ioini1l,msginit,mmuinit,intinit,cpu_frq\r
extrn @civec,@covec,@aivec,@aovec,@lovec\r
extrn @cbnk,?bnksl\r
ld (@aovec),hl\r
\r
\r
- call intinit ; setup interrupts and vectors\r
+ call intinit ; setup interrupts and vectors\r
\r
xor a\r
- ld (@cbnk),a ; right now in bank 0\r
+ ld (@cbnk),a ; right now in bank 0\r
\r
- ld hl,signon$msg\r
- call ?pmsg ; print signon message\r
+ call pr.inln ; print signon message\r
+ db 13,10,13,10,'CP/M Version 3.0, Z180-Stamp BIOS',13,10,0\r
+\r
+ call pr.inln\r
+ db 'CPU clock [Hz]: ',0\r
+\r
+ ld de,(f_cpu)\r
+ ld hl,(f_cpu+2)\r
+ call pr.decl\r
+ call pr.crlf\r
ret\r
\r
\r
- cseg ; boot loading most be done from resident memory\r
+ cseg ; boot loading must be done from resident memory\r
\r
; This version of the boot loader loads the CCP from a file\r
; called CCP.COM on the system drive (A:).\r
\r
?ldccp:\r
; First time, load the A:CCP.COM file into TPA\r
+ call resetdsk\r
xor a\r
ld (ccp$fcb+15),a ; zero extent\r
ld hl,0\r
ret\r
\r
no$ccp: ; here if we couldn't find the file\r
- ld hl,ccp$msg\r
- call ?pmsg ; report this...\r
+ call pr.inln ; report this...\r
+ db 13,10,'BIOS Err on A: No CCP.COM file',0\r
+\r
call ?conin ; get a response\r
jp ?ldccp ; and try again\r
\r
\r
; CP/M BDOS Function Interfaces\r
\r
+resetdsk:\r
+ ld c,13\r
+ jp bdos ; reset disk system\r
+\r
open:\r
ld c,15\r
jp bdos ; open file control block\r
jp bdos ; read records\r
\r
\r
-signon$msg:\r
- db 13,10,13,10,'CP/M Version 3.0, Z180-Stamp BIOS',13,10,0\r
-\r
-ccp$msg:db 13,10,'BIOS Err on A: No CCP.COM file',0\r
-\r
\r
ccp$fcb:db 1,'CCP ','COM',0,0,0,0\r
ds 16\r