📄 ghdd.lst
字号:
C51 COMPILER V7.50 GHDD 12/14/2005 10:05:11 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE GHDD
OBJECT MODULE PLACED IN .\OBJ\ghdd.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ghdd.c LARGE OPTIMIZE(9,SIZE) BROWSE PRINT(.\LST\ghdd.lst) OBJECT(.\OBJ\ghd
-d.obj)
line level source
1 /*
2 ********************************************************************************
3 *
4 * (c) Copyright 2002, Vineyard Technologies, Inc.
5 *
6 * Filename : ghdd.c
7 * Programmer(s): Steve KyeongHyeon Lee
8 * Created : 2003/05/07
9 * Modified :
10 *
11 * Description :
12 ********************************************************************************
13 */
14
15 //######################################################################
16 //
17 //######################################################################
18
19 #include "types.h"
20
21
22 #include "8052reg.h"
23 #include <stdio.h>
24 #include <absacc.h>
25 #include "eprom.h"
26 #include "gio.h"
27 #include "hdd_if.h"
28 #include "types.h"
29 #include "ghdd.h"
30 #include "lib.h"
31 #include "gosd.h"
32 #ifdef TMP_DEL
#ifdef LANIF
#include "lan.h"
#endif
#endif
37
38 #include "key.h"
39
40 //######################################################################
41 //
42 //######################################################################
43 extern xdata u8 gv_time_data[6];
44 extern xdata u8 osdgv_menu_base;
45 extern xdata u16 gv_hdd_write_interrupt_cnt;
46
47 //######################################################################
48 //
49 //######################################################################
50 extern void LBA_write(u8 hddIndex);
51 extern u32 mktime(u8 timedate[]);
52 extern void real_time_read(u8 option);
53 extern u8 get_front_key(void);
54
C51 COMPILER V7.50 GHDD 12/14/2005 10:05:11 PAGE 2
55 //######################################################################
56 //
57 //######################################################################
58 // CB(Control Block) unit is 512
59 #define HDD_CB_LOH_SIZE 1 // LOG Header structure
60 #ifdef MORE_EVENT
#define HDD_CB_LOG_SIZE 64 // LOG Body structure
#else
63 #define HDD_CB_LOG_SIZE 4 // LOG Body structure
64 #endif
65 #define HDD_CB_LBA_SIZE 1 // WCurrent pointer
66 #define HDD_CB_SIG_SIZE 1 // Signature structure
67
68 #define HDD_SECT_CNT_SZ1 1
69 #define HDD_SECT_CNT_SZ8 8
70
71 #define BLKEVTCNT 32 // event count for one LBA
72 #define MAXEVTCNT (HDD_CB_LOG_SIZE*BLKEVTCNT) // one LBA(512) include 32 events
73
74 #define HDD_ACCESS_TIMEOUT 30000 // 6 sec
75 #define HDD_TMPBUFSIZE 4096
76
77 //######################################################################
78 //
79 //######################################################################
80 #ifdef DEBUG_HDD_DUMP
xdata u32 gv_HDD_NumOfLBA[2] = {0,0};
#endif
83 xdata u32 gv_HDD_LastLBA[2] = {0,0}; // Addressable Last LBA
84 xdata u32 gv_HDD_LogHeadLBA[2] = {0,0}; // Log Head LBA
85 xdata u32 gv_HDD_LogBodyLBA[2] = {0,0}; // Log Body LBA
86 xdata u32 gv_HDD_CWLBA[2] = {0,0}; // Current Writting LBA
87 xdata u32 gv_HDD_EOVLBA[2] = {0,0}; // EOV [End Of Video] LBA
88
89 xdata u32 gv_HDD_size[2];
90 xdata u32 gv_WCurrent_LBA[2];
91 xdata u32 gv_RCurrent_LBA[2];
92 xdata u8 gv_HDD_play_hdd_index;
93 xdata u8 gv_hdd_count = 0;
94
95 xdata u8 *gv_hdd_signature = SIGNATURE;
96 xdata u8 *gv_hdd_rom_ver_name = ROM_VERSION_NAME;
97 xdata u8 gv_hdd_error_flag = 0;
98 xdata u8 gv_HDD_format_index;
99 xdata u8 gv_hdd_tmp_buf[HDD_TMPBUFSIZE];
100 xdata u8 gv_HDD_usage[2];
101 xdata u8 gv_HDD_exist[2];
102 xdata u8 gv_evt_msg2read = FALSE;
103 xdata EvtHead gv_evt_head;
104 xdata EvtNode gv_evt_buf[MAXEVTCNT];
105 xdata u8 gv_HDD_48bit_address[2]={0,0};
106
107 xdata u8 gv_hdd_cache_disable_data = 0;
108
109 //######################################################################
110 //
111 //######################################################################
112 #ifndef PWRCV2
u8 hdd_check_signature(u8 hddIndex, u8* disk_id);
#endif
115 void hdd_write_root_sector(u8 hddIndex);
116 void hdd_sector_read(u8 hddIndex, u32 lba, u8 size, u8* buf);
C51 COMPILER V7.50 GHDD 12/14/2005 10:05:11 PAGE 3
117 void hdd_sector_write(u8 hddIndex, u32 lba, u8 size, u8* buf);
118 void hdd_sector_set(u8 hddIndex, u32 Lba, u8 sector_counter);
119 //void hdd_cache(u8 hddIndex, u8 enable_flag );
120 void hdd_cmd(u8 hddIndex, u8 Command_Id );
121 char hdd_select(u8 hddIndex);
122 char hdd_wait_busy_free(void);
123 char hdd_wait_dev_ready(void);
124 char hdd_wait_rw_ready(void);
125
126 static u8 hdd_evt_check2(u32 elba_s, u32 elba_e, u32 plba_s, u32 plba_e, u32 EndOfDisk);
127 static u8 hdd_evt_check(u32 elba_s, u32 elba_e, u32 lba);
128
129 //xdata u8 temp_arr[44];
130 /*===============================================================================
131
132 Checking HDD
133 MASTER ...
134 MASTER [NONE]
135 MASTER [123456789012345678]
136 MASTER [123456789012345678]-USED
137 MASTER [123456789012345678]-NEW
138 DVR NEEDS TO FORMAT HDD
139 ALL DATA WILL BE LOST
140 [(SELECT)FORMAT/(MENU)CANCEL]?
141 FORMAT COMPLETED
142 FORMAT CANCELED - HDD IGNORED
143
144
145 //===============================================================================*/
146 char HDD_Initial(void)
147 {
148 1 xdata u8 j;
149 1 xdata u16 i;
150 1 xdata u16 tdata;
151 1 xdata u16 tdata_l;
152 1 xdata u32 temp;
153 1 xdata u8 dsp_offset = 1 + osdgv_menu_base;
154 1 xdata u8 model[25];
155 1 #ifdef FONT_SC
156 1 xdata u8 *hdd_id_str[2]={"rs-1 ", "rs-2 " };//祑絃-1 祑絃-2
157 1 #else
xdata u8 *hdd_id_str[2]={"MASTER", "SLAVE " };
#endif
160 1
161 1 #ifdef DEBUG_HDD_DUMP
gv_HDD_NumOfLBA[0] = gv_HDD_NumOfLBA[1] = 0;
#endif
164 1
165 1 gv_HDD_LogHeadLBA[0]= gv_HDD_LogHeadLBA[1] = 0;
166 1 gv_HDD_LogBodyLBA[0]= gv_HDD_LogBodyLBA[1] = 0;
167 1 gv_HDD_CWLBA[0] = gv_HDD_CWLBA[1] = 0;
168 1 gv_HDD_EOVLBA[0] = gv_HDD_EOVLBA[1] = 0;
169 1 gv_HDD_LastLBA[0] = gv_HDD_LastLBA[1] = 0;
170 1 gv_HDD_size[0] = gv_HDD_size[1] = 0;
171 1 gv_WCurrent_LBA[0] = gv_WCurrent_LBA[1] = 0;
172 1 gv_RCurrent_LBA[0] = gv_RCurrent_LBA[1] = 0;
173 1 gv_HDD_usage[0] = gv_HDD_usage[1] = 0;
174 1 gv_HDD_exist[0] = gv_HDD_exist[1] = 0;
175 1 gv_hdd_count = 0;
176 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -