-
Notifications
You must be signed in to change notification settings - Fork 3
/
ccpif.s
executable file
·116 lines (89 loc) · 2.08 KB
/
ccpif.s
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
/*************************************************************************
* *
* CPM68K INTERFACE MODULE FOR *
* THE CONSOLE COMMAND PROCESSOR *
* *
* THIS IS THE DUAL-PROCESSOR,ROMABLE CP/M-68K SYSTEM *
* ================================================== *
* *
* (C) Copyright Digital Research 1983 all rights reserved *
* *
*************************************************************************/
.globl bios1
.globl _bdos
.globl load68k
.globl load_tbl
.globl init_tbl
.globl load_try
.globl autorom
.globl flags
.globl TPAB
.globl stack
.globl bdosinit
.globl main
.globl submit
.globl morecmds
.globl autost
.globl usercmd
.globl _init
.globl ccp
.globl _patch
.globl cpm
.text
cpm:
jmp.l ccpstart /* start ccp with possible initial command */
jmp.l ccpclear /* clear auto start flag */
.bss
autost: ds.b 1 /* autostart command flag */
usercmd: ds.b 130 /* user command buffer */
.text
copy: .ascii "COPYRIGHT (C) 1982, Digital Research"
.byte 0
.text
.even
ccpclear:
clr.b autost /* clear the autostart flag */
ccpstart:
lea stack,%sp /* set up the stack pointer */
clr.b autost /* clear the auto start flag */
jsr _init /* call bios init */
move.w %d0,dskuser /* save user # & disk */
/*
*
* ROM SYSTEM INITIALIZATION
* OF BSS VARIABLES
*
*
*/
clr.b load_try
clr.b submit
clr.b morecmds
move.b #1,autorom
clr.w flags
clr.w TPAB
jsr init_tbl
jsr bdosinit /* do bdos init */
move.w #32,%d0 /* get user bdos func # */
clr.l %d1 /* clear out d1 */
move.b dskuser,%d1 /* get the user # */
trap #2 /* set the user number */
clr.l %d0 /* clear d0 */
move.w #14,%d0 /* select function */
clr.l %d1 /* clear d1 */
move.w dskuser,%d1 /* get disk to be selected */
andi #0x0ff,%d1 /* mask off the user # */
trap #2 /* select the disk */
ccp:
lea stack,%sp /* set up the stack pointer */
jsr main /* call the CCP */
bra ccp
.bss
.even
dskuser: ds.w 1
.even
submit: ds.b 1
.even
morecmds: ds.b 1
.even
_patch: ds.l 25
.end