mirror of
https://github.com/callapple/GBBS.git
synced 2024-06-19 17:29:41 +00:00
Refresh all Files
All files refreshed. Config now shows uppercase when using a ][+ Minor bug fixes in logon.seg.s Newer XDOS external with bug fixes
This commit is contained in:
parent
c07cb2062b
commit
caf6ddd745
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Distribution/GBBS.SYSTEM/XDOS#069e00
Normal file
BIN
Distribution/GBBS.SYSTEM/XDOS#069e00
Normal file
Binary file not shown.
|
@ -161,7 +161,7 @@ INIT_2 LDA #0 ; reset screen
|
|||
ASC '########################################' ; 1
|
||||
ASC '# ACOS LOADER V2.2N # ACOS FILES #' ; 2
|
||||
ASC '# COPYRIGHT 86-2019 ####################' ; 3
|
||||
ASC '# Kevin Smallwood # #' ; 4
|
||||
ASC '# KEVIN SMALLWOOD # #' ; 4
|
||||
ASC '##################### #' ; 5
|
||||
ASC '# FILENAMES # #' ; 6
|
||||
ASC '##################### #' ; 7
|
||||
|
@ -199,7 +199,7 @@ INIT_2 LDA #0 ; reset screen
|
|||
LDA PREFIX+1 ; get rid of drive specifier
|
||||
AND #$F
|
||||
TAX
|
||||
INX ; add 1 for '/'
|
||||
INX ; add 1 for '/'
|
||||
STX PREFIX
|
||||
|
||||
LDA #'/' ; put in leading slash
|
||||
|
@ -289,7 +289,7 @@ SNAME3 LDA LNBUF-1,Y ; copy filename
|
|||
DEY
|
||||
BNE SNAME3
|
||||
|
||||
TXA ; save length
|
||||
TXA ; save length
|
||||
STA (TEMP),Y
|
||||
JMP SNAME ; go back
|
||||
|
||||
|
@ -314,7 +314,7 @@ CHKPRG JSR MLI
|
|||
JMP CHKPRG
|
||||
|
||||
; get a directory and look for ".s" files.
|
||||
; if any exist, check to see if they have
|
||||
; if any exist, check to see if they have
|
||||
; been changed. If so, kill the ".c" file.
|
||||
|
||||
DOCHECK JSR PRSTAT
|
||||
|
@ -403,7 +403,7 @@ RDLOOP4 LDX TEMP
|
|||
|
||||
LDY DRIVEA ; get length of path
|
||||
TYA
|
||||
TAX ; save length
|
||||
TAX ; save length
|
||||
MVPATH LDA DRIVEA,Y
|
||||
STA FLNAME,Y ; move pathname
|
||||
DEY
|
||||
|
@ -485,7 +485,7 @@ RDLOOP4C LDX TEMP
|
|||
|
||||
LDY #0
|
||||
LDA (TEMP),Y
|
||||
TAY ; change file back to .S
|
||||
TAY ; change file back to .S
|
||||
LDA #'S'
|
||||
STA (TEMP),Y
|
||||
|
||||
|
@ -552,7 +552,7 @@ WAIT2C LDA #1
|
|||
|
||||
LDY LNBUF ; get pathname length
|
||||
INY
|
||||
SHOW2 DEY ; count down
|
||||
SHOW2 DEY ; count down
|
||||
BMI SHOW3 ; they match
|
||||
|
||||
LDA LNBUF,Y
|
||||
|
@ -649,7 +649,7 @@ PRSTAT LDA #2
|
|||
STA $23
|
||||
JSR HOME ; clear window
|
||||
|
||||
PR PLA ; point to string
|
||||
PR PLA ; point to string
|
||||
STA PRN
|
||||
PLA
|
||||
STA PRN+1
|
||||
|
@ -697,7 +697,7 @@ PRWIND STX PRN ; point to filename
|
|||
STA $22
|
||||
LDA WNDBTM,Y
|
||||
STA $23
|
||||
SEC ; make into vtab
|
||||
SEC ; make into vtab
|
||||
SBC #1
|
||||
STA $25
|
||||
JSR VTAB ; vtab down
|
||||
|
@ -725,7 +725,7 @@ WNDBTM DB 19,08,15,19
|
|||
PRSTR STX PRN
|
||||
STA PRN+1 ; point at string
|
||||
TYA
|
||||
TAX ; save length
|
||||
TAX ; save length
|
||||
LDY #0
|
||||
PRSTR2 LDA (PRN),Y ; get data
|
||||
ORA #$80
|
||||
|
@ -741,7 +741,7 @@ MOVPATH STX TEMP ; point to buffer
|
|||
STA TEMP+1
|
||||
|
||||
LDX #0
|
||||
MOVE2 DEY ; count down
|
||||
MOVE2 DEY ; count down
|
||||
BMI MOVE3 ; all finished
|
||||
|
||||
TXA
|
||||
|
@ -774,7 +774,7 @@ FLCOPY JSR MLI
|
|||
JSR MLI ; close compiled file
|
||||
DB $CC
|
||||
DA P_CLOSE
|
||||
FLCOPY2 RTS ; all is well
|
||||
FLCOPY2 RTS ; all is well
|
||||
|
||||
FLCOPY1 LDX FLNAME ; change '.c' back to '.s'
|
||||
LDA #'S'
|
||||
|
@ -820,7 +820,7 @@ FLCOPY1 LDX FLNAME ; change '.c' back to '.s'
|
|||
JSR MLI ; close file 2
|
||||
DB $CC
|
||||
DA P_CLOSE
|
||||
RTS ; we are done
|
||||
RTS ; we are done
|
||||
|
||||
|
||||
; prodos parmlist
|
||||
|
|
|
@ -1 +1,52 @@
|
|||
犜覎犜覡聊覎<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 獚<EFBFBD> 锹掠 序<EFBFBD> 皱蝮轱<EFBFBD> 伯舶 獚<EFBFBD> 獚<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓<EFBFBD> 蔑瘗蜷玷<EFBFBD> 惫付<EFBFBD>氨<EFBFBD> 怡 隋鲩<EFBFBD> 禹犰祺镲鋶崰逃誀掀茘螤綘皪顮綘皪贍綘睄鶢綘睄嵦哂险颐艩寺臓⑻轶<EFBFBD> 翳轶 狍箦礅禊<EFBFBD> ㄙ<EFBFBD><EFBFBD>崓犇铀犃孟赢下蕧崰南犔哂险颐艒犔釉崰粕螎崰姓誀叛樟耘訊崰弦菭じ鞍崓犘赵犇抑有琶崰姓誀囊芍乓訊犘赵犛粤以崰姓誀蚁赵晌艒犘赵犞烈崰姓誀土匀崰姓誀纳铀崰姓誀囊芍艒犘赵犇捎松蠉犘赵犔狭膷犘赵犆湍崰姓誀猛牟崰姓誀拍稍崓犇訝軤骈祆崓犘赵犉商耘覎孟呐文牻牚崓犘赵犐紊詬崰挠藸盼孟呐崓犘赵犈蚊夏艒
|
||||
TR
|
||||
TR ADR
|
||||
********************************
|
||||
* *
|
||||
* GBBS Pro Version 2.20 *
|
||||
* *
|
||||
********************************
|
||||
|
||||
* Copyright 1986-2019 by Kevin Smallwood
|
||||
|
||||
LST OFF
|
||||
N = 0
|
||||
n = 0
|
||||
Y = 1
|
||||
y = 1
|
||||
|
||||
L_SOURCE KBD "List this assembly? (Y/N)"
|
||||
|
||||
DSK ACOS.OBJ
|
||||
|
||||
DO L_SOURCE
|
||||
LST
|
||||
FIN
|
||||
|
||||
PUT EQUATES
|
||||
|
||||
ORG $800
|
||||
|
||||
PUT DRVSPEC
|
||||
PUT DRIVERS
|
||||
PUT START
|
||||
PUT ROUTINE
|
||||
PUT VAR
|
||||
PUT MATH
|
||||
PUT DISK
|
||||
PUT DRIVE
|
||||
PUT DISKIO
|
||||
PUT LOAD
|
||||
PUT CMD
|
||||
PUT CMD2
|
||||
PUT EDIT
|
||||
|
||||
DS \ fill
|
||||
|
||||
PUT FILTER
|
||||
CODEND = *
|
||||
|
||||
PUT INIT
|
||||
|
||||
DSK ENCODE
|
||||
|
||||
PUT ENCODE
|
||||
|
|
1411
Source/Acos/CMD.S
1411
Source/Acos/CMD.S
File diff suppressed because one or more lines are too long
1873
Source/Acos/DISK.S
1873
Source/Acos/DISK.S
File diff suppressed because one or more lines are too long
|
@ -1 +1,349 @@
|
|||
犘燎崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>獚<EFBFBD> 獚<EFBFBD> 撩嫌<EFBFBD>率 <EFBFBD> 序锬嫌 溟箅 莎<EFBFBD> 獚<EFBFBD> 獚<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崰牧耘崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵜遗猎艩釉贍羞靡帕垣礌惑狯<EFBFBD> 骈戾豉疱崰釉翣羞靡帕垣秿犛载犘呙遗猎<EFBFBD>崰视覡吞蓫犇聽じ矋犇翣皪犔牧犕躺牧耘崰釉翣羞靡帕垣笉犔牧犕躺牧耘<EFBFBD>崰釉翣羞靡帕垣箥犔牧犕躺陨团崰釉翣羞靡帕垣卑崰棠翣吞稍赏奴睄犛粤犘呙遗猎<EFBFBD>睄犑右犕躺崰穆牑冒崰牧犘呙遗猎崰以訊嵪信螤棠贍0嵚葡信螤棠翣抡屏囊<EFBFBD>牷痫轭<EFBFBD> 狒 怩骀弪崰釉翣羞闲盼<EFBFBD>崓犑右犕躺崰穆牑酶崰牧犘呦信螎犅闻牶闲盼矋崰棠翣羞闲盼<EFBFBD>牷筢鲥 蝈骖蹴崰釉翣遗莆胀崰锰脥犚杂崓合信尾犔牧牐<EFBFBD>牷磲脲 篚蝈 蝈骖蹴 轶 殪戾玑鞃犛粤犚牌握蛵犛琶崰以訊嵚掌聊覡穆牼坡掌爆酒抡撇<EFBFBD>陀锹掌崓锰嫌艩棠翣遗莆胀崰釉翣羞锰嫌奴睄犑右犕躺崰穆牑妹崰牧犘呙滔优崰以訊嵠陶尤犔牧犚牌握蛵犛粤犘呙滔优<EFBFBD>崰视覡吞蓫犇聽っ膷犇翣羞锰嫌艒犚杂崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 箦趱<EFBFBD> 骘<EFBFBD> 箝铉戾 扉铄 蝈徜崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵰奶斡旁犔牧犚牌握蛵犛粤犘呶抛鲍睜惑狯<EFBFBD> 蝈骖蹴崰釉翣羞夷涛<EFBFBD>崰视覡吞蓫犇聽っ箥犇翣羞闻妆牷孱徕戾 铄黛轭鍗犚杂崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 蝈徜 <EFBFBD> 扉铄 骝镯 <EFBFBD> 骈戾崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵰奶晌艩视覡吞蓫犇聽っ翇犇翣羞夷涛崰挛艩阂奶晌挪牷蝈徜 弪蝻驆崰棠貭羞夷涛<EFBFBD>牷轶 翳弪<EFBFBD> <EFBFBD> 泸 狒 孱<EFBFBD> 镦 扉铄繊犔牧犔温掌<EFBFBD><EFBFBD>崰廖臓c祢栝崰猛袪c驆犅闻牶夷躺闻矤活<EFBFBD> 盹蝈 篝蹑鎹犆堂崰以訊嵑夷躺闻矤棠翣0崰釉翣涛抡茽活<EFBFBD> 溽翎 轭 扉铄崰优脿牷屣鎹犚杂崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 蝈徜 <EFBFBD> 箝铉戾 怡翦崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵰穆僭艩棠翣遗莆胀牷筢鲥 蝈骖蹴崰屡褷阂穆僭挪崓犛粤犘咭沦垣睄犑右犕躺崰穆牑昧崰牧犘咭沦誀或遽<EFBFBD> <EFBFBD> 怡翦崰挛艩阂穆僭挪崓犔牧犘呗僭艩荤弭 怡翦崰锰脿牷麇蝈 滹铄崰以訊嵑夷沦耘矤棠翣0牷驷脲 溽翎崰优脥犚杂崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 黩轸<EFBFBD> <EFBFBD> 忪镢<EFBFBD> 骘<EFBFBD> 翳<EFBFBD> 眢<EFBFBD> 蝻豸轭弩崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵶衣趟犘攘崰棠翣¥寐崰釉翣易再信崰刑翇犑托犚茁趟牷躞<EFBFBD> 黩轸<EFBFBD> 汜祆崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 蝈徜 <EFBFBD> 忪镢<EFBFBD> 骘<EFBFBD> 翳<EFBFBD> 眢<EFBFBD> 蝻豸轭弩崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵰穆趟犘攘崰棠翣¥昧崰釉翣易再信牷躞<EFBFBD> 蝈徜 汜祆崰刑翇嵰茁趟犛载犘咭穆趟<EFBFBD>牷筢鲥 蝈徜 徜潋弩髰犛粤犘咭穆趟<EFBFBD>崓犔牧牐皪犛粤犘咭穆趟<EFBFBD>牷筢鲥 铛礅弪 镦 忪镢塍 麸 蝈徜崰釉贍羞夷绿双祶崰逃覡羞夷绿双禒讳轹殇<EFBFBD> 怡 矋犚弦犘咭穆趟<EFBFBD>崓犔牧犚牌握蛵犛粤犘咭穆趟<EFBFBD>牷珏<EFBFBD> 蝈骖蹴崓犑右犕躺牷汜祆 盱閸易再信犇聽っ翣华<EFBFBD> 盹溟骈邃 <EFBFBD>獚犇翣羞夷绿藣犚杂崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 黩轸<EFBFBD> <EFBFBD> 怡翦 镦 溽翎崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵶衣僭艩釉翣羞沦耘牷筢鲥 溽翎崰腥翇犔牧犚牌握蛵犅叛牶滓沦耘矤婚<EFBFBD> 铒 蝈骖蹴崓犛粤犘咭沦垣睄犑右犕躺崰穆牑寐崰牧犘咭沦誀击蜷翦 怡翦崰锰脥犅叛牶滓沦耘碃会祆 轶 麇祆崓鹤衣僭挪犛琶牋伙痧蟋 痱镡戾韻鹤衣僭懦犘塘牋荤弭 忉汶 溽翎崰以訊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 痫箝糸镱 骈戾崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵭嫌陀菭棠贍陀且牌崰釉贍遗莆胀牷筢鲥 蝈骖蹴崓犔右牋惑弭躔 佻连<EFBFBD> 鳢屮徙<EFBFBD> 怡翦崰粤賺犜亓崰蚁覎犘攘崰棠翣¥卑崰蚁覎犜霖崰刑翇犑托犛旁邢訊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 骈钿 翳<EFBFBD> 孱<EFBFBD> 镦 骈戾崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵡旁畔茽棠翣遗莆胀崰釉翣羞土宜<EFBFBD>牷筢鲥 蝈骖蹴崰视覡吞蓫犇聽つ睄犇翣羞土宜牷珏<EFBFBD> 屣鎹犔呢犘咄烈双矤荤弭 戾铉翳崰棠翣羞土宜<EFBFBD>崰棠贍羞土宜<EFBFBD>崰以訊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 汨邈<EFBFBD> 骘<EFBFBD> 孱<EFBFBD> 镦 骈戾崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵜人畔茽视覡桥酝烈藸荤弭 翳<EFBFBD> 沲蝌孱<EFBFBD> 痨徙鍗犘攘崰载翇犘攘崰视覡桥耘掀牷珏<EFBFBD> 翳<EFBFBD> 孱<EFBFBD> 镦 骈戾崰刑翇犜临崓犘塘崰棠貭0崰眯贍羞土宜<EFBFBD>崰挛艩好人畔撇牷狎<EFBFBD> 翳妁 翳<EFBFBD> 筢礤楷 铒疱崰猛袪羞土宜<EFBFBD>崰挛艩好人畔撇牷铒疱崰晌貭牷<EFBFBD>瓞 磲螂 轸嵑萌伺掀矤以訊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 汨邈<EFBFBD> 孱<EFBFBD> 镦 骈戾崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵡旁由跔视覡桥耘掀牷珏<EFBFBD> 翳<EFBFBD> 孱<EFBFBD> 镦 骈戾崰棠貭羞土宜<EFBFBD>牷珏<EFBFBD> <EFBFBD> 镦 箦泗矧髰犔牧犘咄烈双磵犚杂崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 狃疱钿 溽翎 麸 骈戾崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵙行盼臓视覡桥耘掀牷珏<EFBFBD> 孱<EFBFBD> 镦 骈戾崰释袪优孕嫌牷狃疱钿崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 箦<EFBFBD> <EFBFBD> 磲螂 轭麸 <EFBFBD> 骈戾崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵱旁土宜犔馁牐盃讳<EFBFBD> 徙趱犰 痫箝糸镱 箦<EFBFBD> 鏖翳轭 骈戾嵱旁邢訝釉貭羞土宜<EFBFBD>牷痫轭<EFBFBD> 麸 铄<EFBFBD> 祜汜糸镱崰釉翣羞土宜<EFBFBD>崰釉贍羞土宜<EFBFBD>崓犔牧犚牌握蛵犛粤犘咄烈双睜惑狯<EFBFBD> 蝈骖蹴崓优孕嫌矤视覡吞蓫犇聽っ艒犇翣羞土宜牷箦<EFBFBD> 磲螂崰猛袪¥茨崰挛艩河旁邢映牷汨邈<EFBFBD> 骘<EFBFBD> 秕舡镦<EFBFBD>犷珏崓犑右犕躺崰穆牑陌崰牧犘咄烈藸惑弭 屣鎹犅叛犛旁邢硬牷痫箝糸镱 徵衢顛嵑优孕嫌碃以訊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 珏<EFBFBD> 沲蝌孱<EFBFBD> 骈戾 磲螂弪崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵡旁土宜犔牧犚牌握蛵犛粤犘咄烈双睜惑狯<EFBFBD> 蝈骖蹴崰视覡吞蓫犇聽っ茘犇翣羞土宜牷珏<EFBFBD> 磲螂崰优脥犅闻牶桥酝宜矤伙痧蟋 弪蝻驆崰锰脥犔呢犘咄烈双矤会祆 轶 麇祆崰棠翣羞土宜<EFBFBD>嵑桥酝宜矤以訊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 溴戾翦 骈戾崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵞盘粕膛犑右犕躺崰穆牑帽崰牧犘吣盘牷溴戾翦 骈戾崰以訊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> 疳蝽<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵭呦信螤穆牫崰牧犉涛镣艒犇翣坡掌睄犇聽皪嵭呙滔优犇聽睄犇聽皪嵭咭沦誀穆牬崰穆牥崰牧犘呗僭艒犇翣睄犇翣皪嵭呗僭艩穆牥崓羞土宜犇聽矋犇聽皪犇訝硩嵭呶抛睜穆牫崰穆牥崰穆犮祢栝崰穆犮驆嵭咭奶螤穆牬崰穆牥崰牧犔温掌崰牧牪档崰牧牥崓羞夷绿藸穆牬崰穆牥崰牧牥崰牧牨哺崰牧牥崓羞呐虪穆牨崰牧犉涛镣艒嵭呙遗猎犇聽穽犇翣铺瘟团崰扰貭懦崰穆牥崰牧牥崰穆牨崰牧牥崰牧牥崓<EFBFBD>
|
||||
PAG
|
||||
********************************
|
||||
* *
|
||||
* ACOS.OBJ - ProDOS disk I/O *
|
||||
* *
|
||||
********************************
|
||||
DATE
|
||||
*-------------------------------
|
||||
|
||||
CREATE STY P_CREAT+4 ;save filetype
|
||||
STA P_CREAT+6
|
||||
STX P_CREAT+5
|
||||
JSR MLI
|
||||
DB $82
|
||||
DA 0
|
||||
LDA MLIDATE
|
||||
STA P_CREAT+8
|
||||
LDA MLIDATE+1
|
||||
STA P_CREAT+9
|
||||
LDA MLITIME
|
||||
STA P_CREAT+10
|
||||
LDA MLITIME+1
|
||||
STA P_CREAT+11
|
||||
JSR MLI
|
||||
DB $C0
|
||||
DA P_CREAT
|
||||
RTS
|
||||
|
||||
OPEN LDY #0
|
||||
BFOPEN LDA BUFADR,Y ;point at buffer
|
||||
STA P_OPEN+4
|
||||
|
||||
JSR MLI
|
||||
DB $C8
|
||||
DA P_OPEN
|
||||
BNE :OPEN2
|
||||
|
||||
LDA P_OPEN+5 ;save refnum
|
||||
STA REFNUM
|
||||
CLC
|
||||
RTS
|
||||
|
||||
:OPEN2 LDA #-1 ;make sure refnum is illegal
|
||||
STA REFNUM
|
||||
SEC
|
||||
RTS
|
||||
|
||||
BUFADR DB >FBUF1,>FBUF2,>MSGBUF
|
||||
|
||||
CLOSE LDA REFNUM
|
||||
STA P_CLOSE+1
|
||||
JSR MLI
|
||||
DB $CC
|
||||
DA P_CLOSE
|
||||
RTS
|
||||
|
||||
FLUSH LDA REFNUM
|
||||
STA P_CLOSE+1
|
||||
JSR MLI
|
||||
DB $CD
|
||||
DA P_CLOSE
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* setup for single line read
|
||||
*-------------------------------
|
||||
|
||||
RDLNSET LDA REFNUM
|
||||
STA P_NEW1+1 ;save refnum
|
||||
STA P_RDLN+1
|
||||
JSR MLI
|
||||
DB $C9
|
||||
DA P_NEW1 ;enable newline
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* read a line from a file
|
||||
*-------------------------------
|
||||
|
||||
RDLINE JSR MLI
|
||||
DB $CA
|
||||
DA P_RDLN
|
||||
BNE :RDLINE2 ;read error
|
||||
|
||||
LDX P_RDLN+6 ;is there a cr at end of line?
|
||||
LDA LNBUF-1,X
|
||||
AND #clrhi
|
||||
CMP #cr
|
||||
BNE :RDLINE2 ;no more stuff
|
||||
CLC
|
||||
RTS
|
||||
|
||||
:RDLINE2 LDA #0
|
||||
STA LNBUF ;no data in line
|
||||
SEC ;eof
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* read a single byte
|
||||
*-------------------------------
|
||||
|
||||
RDBYTE LDA REFNUM ;save refnum
|
||||
BEQ :RDBYTE2
|
||||
|
||||
STA P_RBYT+1
|
||||
JSR MLI
|
||||
DB $CA
|
||||
DA P_RBYT ;read 1 byte
|
||||
BNE :RDBYTE2
|
||||
|
||||
LDA P_BYTE ;get byte
|
||||
CLC ;were done
|
||||
RTS
|
||||
|
||||
:RDBYTE2 LDA #0 ;fake data
|
||||
SEC
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* write a block for the msg routines
|
||||
*-------------------------------
|
||||
|
||||
WRBLK PHA
|
||||
LDA #$CB
|
||||
STA RWTYPE
|
||||
PLA
|
||||
JMP RWBLK ;use write call
|
||||
|
||||
*-------------------------------
|
||||
* read a block for the msg routines
|
||||
*-------------------------------
|
||||
|
||||
RDBLK PHA
|
||||
LDA #$CA
|
||||
STA RWTYPE ;use read call
|
||||
PLA
|
||||
|
||||
RWBLK STX P_RDBLK+2 ;save read address
|
||||
STA P_RDBLK+3
|
||||
|
||||
LDA #0
|
||||
STA P_RDBLK+4 ;save number of blocks to read
|
||||
STY P_RDBLK+5
|
||||
|
||||
LSR P_RDBLK+5 ;divide by 2
|
||||
ROR P_RDBLK+4
|
||||
|
||||
LDA REFNUM
|
||||
STA P_RDBLK+1 ;get refnum
|
||||
|
||||
JSR MLI ;call mli
|
||||
RWTYPE DB $CA ;*** modified ***
|
||||
DA P_RDBLK
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* write a byte of data
|
||||
*-------------------------------
|
||||
|
||||
WRBYTE STA P_BYTE ;save data
|
||||
PHA
|
||||
LDA REFNUM
|
||||
BEQ :WRBYTE2 ;if no refnum
|
||||
|
||||
STA P_RBYT+1
|
||||
JSR MLI
|
||||
DB $CB
|
||||
DA P_RBYT ;write byte
|
||||
CLC
|
||||
BEQ :WRBYTE3 ;all is well
|
||||
|
||||
:WRBYTE2 SEC ;opps, problem
|
||||
:WRBYTE3 PLA ;get back data
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* position file
|
||||
*-------------------------------
|
||||
|
||||
POSMSG LDY MSGREF
|
||||
STY REFNUM ;save refnum
|
||||
|
||||
LSR ;setup Y,A,X w/exact byte
|
||||
TAY
|
||||
TXA
|
||||
ROR
|
||||
PHA
|
||||
LDA #$10
|
||||
ROR
|
||||
TAX
|
||||
PLA
|
||||
JMP SETPOS
|
||||
|
||||
*-------------------------------
|
||||
* find the end of file
|
||||
*-------------------------------
|
||||
|
||||
GETEOF LDA REFNUM
|
||||
STA P_MARK+1 ;save refnum
|
||||
JSR MLI
|
||||
DB $D1
|
||||
DA P_MARK ;get eof
|
||||
LDX P_MARK+2 ;get length
|
||||
LDA P_MARK+3
|
||||
LDY P_MARK+4
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* check for end of file
|
||||
*-------------------------------
|
||||
|
||||
CHKEOF JSR GETMARK ;get the current place
|
||||
PHA
|
||||
TXA
|
||||
PHA
|
||||
JSR GETEOF ;get the end of file
|
||||
PLA
|
||||
TAY
|
||||
|
||||
PLA
|
||||
LDX #0
|
||||
CPY P_MARK+2
|
||||
BNE :CHKEOF2 ;are they the same?, nope
|
||||
CMP P_MARK+3
|
||||
BNE :CHKEOF2 ;nope
|
||||
INX ;yep, mark it
|
||||
:CHKEOF2 RTS
|
||||
|
||||
*-------------------------------
|
||||
* check end of file
|
||||
*-------------------------------
|
||||
|
||||
GETSIZ JSR GETEOF ;get the end of file
|
||||
LDX P_MARK+3 ;get # of sectors
|
||||
LDA P_MARK+4
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* append data to file
|
||||
*-------------------------------
|
||||
|
||||
APPEND JSR GETEOF ;get end of file
|
||||
JMP SETPOS ;append
|
||||
|
||||
*-------------------------------
|
||||
* set a mark into a file
|
||||
*-------------------------------
|
||||
|
||||
SETMARK LDY #0 ;do actual position set within file
|
||||
SETPOS STX P_MARK+2 ;point to new location
|
||||
STA P_MARK+3
|
||||
STY P_MARK+4
|
||||
|
||||
LDA REFNUM
|
||||
STA P_MARK+1 ;save refnum
|
||||
|
||||
SETPOS2 JSR MLI
|
||||
DB $CE
|
||||
DA P_MARK ;set mark
|
||||
CMP #$4D
|
||||
BNE :SETPOS3 ;check for out-of-range
|
||||
|
||||
JSR MLI
|
||||
DB $D0
|
||||
DA P_MARK ;set eof
|
||||
BEQ SETPOS2 ;position again
|
||||
|
||||
:SETPOS3 RTS
|
||||
|
||||
*-------------------------------
|
||||
* get current file marker
|
||||
*-------------------------------
|
||||
|
||||
GETMARK LDA REFNUM
|
||||
STA P_MARK+1 ;save refnum
|
||||
JSR MLI
|
||||
DB $CF
|
||||
DA P_MARK ;get mark
|
||||
SEC
|
||||
BNE :GETMRK2 ;opps, error
|
||||
|
||||
CLC
|
||||
LDX P_MARK+2 ;all is well
|
||||
LDA P_MARK+3
|
||||
:GETMRK2 RTS
|
||||
|
||||
*-------------------------------
|
||||
* delete file
|
||||
*-------------------------------
|
||||
|
||||
DELFILE JSR MLI
|
||||
DB $C1
|
||||
DA P_DEL ;delete file
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* ------ parms ------
|
||||
*-------------------------------
|
||||
|
||||
P_OPEN DB 3
|
||||
DA FLNAME
|
||||
DA FBUF1
|
||||
DB 0
|
||||
|
||||
P_CLOSE DB 1
|
||||
DB 0
|
||||
|
||||
P_RBYT DB 4
|
||||
DB 0
|
||||
DA P_BYTE
|
||||
DA 1
|
||||
DA 0
|
||||
|
||||
P_BYTE DB 0
|
||||
|
||||
P_MARK DB 2
|
||||
DB 0
|
||||
DS 3
|
||||
|
||||
P_NEW1 DB 3
|
||||
DB 0
|
||||
DB clrhi
|
||||
DB cr
|
||||
|
||||
P_RDLN DB 4
|
||||
DB 0
|
||||
DA LNBUF
|
||||
DA 255
|
||||
DA 0
|
||||
|
||||
P_RDBLK DB 4
|
||||
DB 0
|
||||
DA 0
|
||||
DA 128
|
||||
DA 0
|
||||
|
||||
P_DEL DB 1
|
||||
DA FLNAME
|
||||
|
||||
P_CREAT DB 7
|
||||
DA FLNAME
|
||||
HEX E3
|
||||
DB 0
|
||||
DA 0
|
||||
DB 1
|
||||
DA 0
|
||||
DA 0
|
||||
|
||||
|
||||
|
|
|
@ -1 +1,189 @@
|
|||
═паг█╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙█╙ ╙█╙ ацос╝обй ╜ пРОдос дРИЖЕ ╙█╙ ╙█╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙█═дате█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ МОЖЕ ТХЕ НАМЕ ИНТО ТХЕ ФИЛЕНАМЕ ФИЕЛД█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██можнаме═йср═инстр╡═╩ГЕТ НАМЕ ╗ДОНТ УСЕ МЕМОРЫ╘█можнм╟═лда═стрлен█═бея═╨можнам╢██═лды═ё╟█═сты═држцхд═╩ИНИТ ЦХАНГЕ ДРИЖЕ СТРИНГ█═сты═држофф╟█═сты═држофф╠██═лда═╗стрлоц╘╛ы═╩ГЕТ ФИРСТ БЫТЕ█═йср═цонж█═ста═држнум═╩САЖЕ ИТ АС А ДРИЖЕ СПЕЦ█═цмп═ё╖л╖╚╠█═бге═╨можнам╡═НОТ██═йср═тстъалф█═бцс═╨можнам╡═╩ОППС╛ НОТ ЛЕГАЛ██═ины█═лда═╗стрлоц╘╛ы═╩АРЕ ВЕ ДОНЕ©█═цмп═ё╖╨╖█═бея═╨можнамЁ═╩ЫЕП╛ ГЕТ ФИЛЕНАМЕ██═йср═тстънум═╩ИС ИТ А ЛЕГАЛ СУБ╜ДРИЖЕ©█═бцс═╨можнам╡═╩НОПЕ██═ста═држофф╟═╩САЖЕ СУБ╜ДРИЖЕ БЫТЕ ╠█═ины█═лда═╗стрлоц╘╛ы═╩АРЕ ВЕ ДОНЕ©█═цмп═ё╖╨╖█═бея═╨можнамЁ═╩ЫЕП╛ ГЕТ ФИЛЕНАМЕ██═йср═тстънум═╩ИС ИТ А ЛЕГАЛ СУБ╜ДРИЖЕ©█═бцс═╨можнам╡═╩НОПЕ██═ста═држофф╠═╩САЖЕ СУБ╜ДРИЖЕ БЫТЕ ╡█═ины█═лда═╗стрлоц╘╛ы═╩ИС ТХЕРЕ А ТЕРМИНАТОР©█═цмп═ё╖╨╖█═бея═╨можнамЁ═╩ЫЕП╛ ГЕТ ФИЛЕНАМЕ██╨можнам╡═лды═ё╓фф═╩НО ДРИЖЕ ПАРМ╛ ЙУСТ ГЕТ НАМЕ█═сты═држцхд═╩ИНИТ ЦХАНГЕ ДРИЖЕ ФЛАГ██╨можнамЁ═ины█═лдь═ё╟█═цпы═стрлен█═бея═╨можнам╣═╩ИС ТХЕРЕ АНЫ ДАТА©╛ ХМММ██╨можнам╢═лда═╗стрлоц╘╛ы═╩ЦОПЫ ФИЛЕНАМЕ█═йср═цонж═╩ЦОНЖЕРТ ТО УППЕР█═цмп═ё╖╝╖█═блт═╨можнам╣═╩ВЕ АРЕ ДОНЕ шАНЫТХИНГ ЛЕСС╛ ИЛЛЕГАЛщ██═ста═флнаме╚╠╛ь═╩САЖЕ НАМЕ█═инь█═ины█═цпы═стрлен█═бея═╨можнам╣═╩ДОНЕ ЫЕТ©██═цпь═ё╠╣█═бне═╨можнам╢═╩ХАЖЕ ВЕ ДОНЕ ╠╣ ЦХАРС ╗ТХЕ МАЬ╘╛ НОПЕ██╨можнам╣═сть═флнаме═╩САЖЕ ЛЕНГТХ█═лда═држцхд═╩ЦХАНГЕ ДРИЖЕ ФИРСТ©█═бпл═сетдрж═╩ЫЕП█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ЛОГ ТО ДРИЖЕ а╛ ОФФСЕТ ь█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██логспец═лды═ё╟═╩РЕСЕТ ОФФСЕТС█═сты═држофф╟█═сты═држофф╠██═ста═држнум═╩САЖЕ ДРИЖЕ НУМБЕР ша╜лщ█═тьа█═бея═сетдрж═╩НО ОФФСЕТ██═йср═биндец╦═╩ТРАНСЛАТЕ ТО ТВО╜БЫТЕ НУМБЕР█═сть═држофф╟═╩САЖЕ ОФФСЕТ█═цмп═ё╖╟╖█═бея═сетдрж═╩╠ БЫТЕ ОФФСЕТ©╛ ЫЕП█═ста═држофф╟█═сть═држофф╠═╩САЖЕ ОФФСЕТ██сетдрж═лда═ё╪дежнам═╩ПОИНТ ТО ПАТХНАМЕС█═ста═темп█═лда═ё╬дежнам█═ста═темп╚╠██═лда═држнум═╩ТУРН ДРИЖЕ НУМ ИНТО ОФФСЕТ█═анд═ё╓ф█═ста═лнбуф██╨сетдрж╟═дец═лнбуф█═бея═╨сетдрж╠═╩ЦОУНТ ДОВН ДРИЖЕС██═лды═ё╟█═лда═╗темп╘╛ы═╩ГЕТ ЛЕНГТХ ОФ ПАТХНАМЕ██═сец█═адц═темп█═ста═темп═╩ПОИНТ ТО НЕЬТ ЕНТРЫ█═лда═ё╟█═адц═темп╚╠█═ста═темп╚╠█═ймп═╨сетдрж╟═╩СЕТ ДРИЖЕ НУМБЕР██╨сетдрж╠═лды═ё╟█═лда═╗темп╘╛ы═╩ГЕТ ЛЕНГТХ ОФ СТРИНГ█═бея═╨можнам╥═╩ПАТХНАМЕ НОТ ИН УСЕ██═таы█═таь══╩САЖЕ ЛЕНГТХ██╨сетдрж╡═лда═╗темп╘╛ы█═ста═лнбуф╛ы═╩МОЖЕ ПАТХНАМЕ ТО ЛНБУФ█═деы█═бпл═╨сетдрж╡██═лда═држофф╟═╩ВАС ТХЕРЕ АН ОФФСЕТ©█═бея═╨сетдрж╢═НОПЕ██═инь═ИНЦРЕАСЕ═ЛЕНГТХ█═ста═лнбуф╛ь═САЖЕ██═лда═држофф╠═ВАС█═бея═╨сетдрж╢═╩НОПЕ██═инь══╩ИНЦРЕАСЕ ЛЕНГТХ█═ста═лнбуф╛ь═╩САЖЕ ОФФСЕТ██╨сетдрж╢═инь█═лда═ё╖╞╖█═ста═лнбуф╛ь═╩АДД ╖╞╖ ТО ЕНД ОФ СТРИНГ█═сть═лнбуф═╩УПДАТЕ ЛЕНГТХ██═йср═мли═╩ГЕТ ЦУРРЕНТ ПРЕФИЬ█═дб═╓ц╥█═да═гетпфь██═лдь═лнбуф═╩АРЕ ТХЕ ЛЕНГТХ╖С ТХЕ САМЕ©█═цмп═лнбуф╚╤╢█═бне═╨сетдрж╤═╩НОПЕ╛ ЦХАНГЕ ТО НЕВ ПРЕФИЬ██╨сетдрж╣═лда═лнбуф╛ь═╩ИС ДАТА ТХЕ САМЕ©█═цмп═лнбуф╚╤╢╛ь█═бне═╨сетдрж╤═╩НОПЕ╛ ЦХАНГЕ ТО НЕВ ПРЕФИЬ██═деь█═бпл═╨сетдрж╣█═ртс══╩ТХЕЫ АРЕ ТХЕ САМЕ╛ ЙУСТ РЕТУРН██╨сетдрж╤═йср═мли═╩СЕТ ТО ТХЕ НЕВ ПРЕФИЬ█═дб═╓ц╤█═да═сетпфь█═бне═╨можнам╥═╩ОППС╛ ЕРРОР█═ртс██╨можнам╥═лдь═ёБАДДРИЖЕ═╩БАД ДРИЖЕ СПЕЦИФИЕР█═ймп═бадерр██држцхд═дб═╟█држнум═дб═╟█држофф╟═дб═╟█држофф╠═дб═╟██флнаме═дс═╠╤██гетпфь═дб═╠█═да═лнбуф╚╤╢██сетпфь═дб═╠█═да═лнбуф███
|
||||
PAG
|
||||
********************************
|
||||
* *
|
||||
* ACOS.OBJ - ProDOS Drive *
|
||||
* *
|
||||
********************************
|
||||
DATE
|
||||
*-------------------------------
|
||||
* move the name into the filename field
|
||||
*-------------------------------
|
||||
|
||||
MOVNAME JSR INSTR2 ;get name (dont use memory)
|
||||
MOVNM0 LDA STRLEN
|
||||
BEQ :MOVNAM4
|
||||
|
||||
LDY #0
|
||||
STY DRVCHD ;init change drive string
|
||||
STY DRVOFF0
|
||||
STY DRVOFF1
|
||||
|
||||
LDA (STRLOC),Y ;get first byte
|
||||
JSR CONV
|
||||
STA DRVNUM ;save it as a drive spec
|
||||
CMP #'L'+1
|
||||
BGE :MOVNAM2 not
|
||||
|
||||
JSR TST_ALF
|
||||
BCS :MOVNAM2 ;opps, not legal
|
||||
|
||||
INY
|
||||
LDA (STRLOC),Y ;are we done?
|
||||
CMP #':'
|
||||
BEQ :MOVNAM3 ;yep, get filename
|
||||
|
||||
JSR TST_NUM ;is it a legal sub-drive?
|
||||
BCS :MOVNAM2 ;nope
|
||||
|
||||
STA DRVOFF0 ;save sub-drive byte 1
|
||||
INY
|
||||
LDA (STRLOC),Y ;are we done?
|
||||
CMP #':'
|
||||
BEQ :MOVNAM3 ;yep, get filename
|
||||
|
||||
JSR TST_NUM ;is it a legal sub-drive?
|
||||
BCS :MOVNAM2 ;nope
|
||||
|
||||
STA DRVOFF1 ;save sub-drive byte 2
|
||||
INY
|
||||
LDA (STRLOC),Y ;is there a terminator?
|
||||
CMP #':'
|
||||
BEQ :MOVNAM3 ;yep, get filename
|
||||
|
||||
:MOVNAM2 LDY #$FF ;no drive parm, just get name
|
||||
STY DRVCHD ;init change drive flag
|
||||
|
||||
:MOVNAM3 INY
|
||||
LDX #0
|
||||
CPY STRLEN
|
||||
BEQ :MOVNAM5 ;is there any data?, hmmm
|
||||
|
||||
:MOVNAM4 LDA (STRLOC),Y ;copy filename
|
||||
JSR CONV ;convert to upper
|
||||
CMP #'.'
|
||||
BLT :MOVNAM5 ;we are done [anything less, illegal]
|
||||
|
||||
STA FLNAME+1,X ;save name
|
||||
INX
|
||||
INY
|
||||
CPY STRLEN
|
||||
BEQ :MOVNAM5 ;done yet?
|
||||
|
||||
CPX #15
|
||||
BNE :MOVNAM4 ;have we done 15 chars (the max), nope
|
||||
|
||||
:MOVNAM5 STX FLNAME ;save length
|
||||
LDA DRVCHD ;change drive first?
|
||||
BPL SETDRV ;yep
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* log to drive A, offset X
|
||||
*-------------------------------
|
||||
|
||||
LOGSPEC LDY #0 ;reset offsets
|
||||
STY DRVOFF0
|
||||
STY DRVOFF1
|
||||
|
||||
STA DRVNUM ;save drive number [A-L]
|
||||
TXA
|
||||
BEQ SETDRV ;no offset
|
||||
|
||||
JSR BINDEC8 ;translate to two-byte number
|
||||
STX DRVOFF0 ;save offset
|
||||
CMP #'0'
|
||||
BEQ SETDRV ;1 byte offset?, yep
|
||||
STA DRVOFF0
|
||||
STX DRVOFF1 ;save offset
|
||||
|
||||
SETDRV LDA #<DEVNAM ;point to pathnames
|
||||
STA TEMP
|
||||
LDA #>DEVNAM
|
||||
STA TEMP+1
|
||||
|
||||
LDA DRVNUM ;turn drive num into offset
|
||||
AND #$F
|
||||
STA LNBUF
|
||||
|
||||
:SETDRV0 DEC LNBUF
|
||||
BEQ :SETDRV1 ;count down drives
|
||||
|
||||
LDY #0
|
||||
LDA (TEMP),Y ;get length of pathname
|
||||
|
||||
SEC
|
||||
ADC TEMP
|
||||
STA TEMP ;point to next entry
|
||||
LDA #0
|
||||
ADC TEMP+1
|
||||
STA TEMP+1
|
||||
JMP :SETDRV0 ;set drive number
|
||||
|
||||
:SETDRV1 LDY #0
|
||||
LDA (TEMP),Y ;get length of string
|
||||
BEQ :MOVNAM7 ;pathname not in use
|
||||
|
||||
TAY
|
||||
TAX ;save length
|
||||
|
||||
:SETDRV2 LDA (TEMP),Y
|
||||
STA LNBUF,Y ;move pathname to lnbuf
|
||||
DEY
|
||||
BPL :SETDRV2
|
||||
|
||||
LDA DRVOFF0 ;was there an offset?
|
||||
BEQ :SETDRV4 nope
|
||||
|
||||
INX increase length
|
||||
STA LNBUF,X save
|
||||
|
||||
LDA DRVOFF1 was
|
||||
BEQ :SETDRV4 ;nope
|
||||
|
||||
INX ;increase length
|
||||
STA LNBUF,X ;save offset
|
||||
|
||||
:SETDRV4 INX
|
||||
LDA #'/'
|
||||
STA LNBUF,X ;add '/' to end of string
|
||||
STX LNBUF ;update length
|
||||
|
||||
JSR MLI ;get current prefix
|
||||
DB $C7
|
||||
DA GETPFX
|
||||
|
||||
LDX LNBUF ;are the length's the same?
|
||||
CMP LNBUF+64
|
||||
BNE :SETDRV6 ;nope, change to new prefix
|
||||
|
||||
:SETDRV5 LDA LNBUF,X ;is data the same?
|
||||
CMP LNBUF+64,X
|
||||
BNE :SETDRV6 ;nope, change to new prefix
|
||||
|
||||
DEX
|
||||
BPL :SETDRV5
|
||||
RTS ;they are the same, just return
|
||||
|
||||
:SETDRV6 JSR MLI ;set to the new prefix
|
||||
DB $C6
|
||||
DA SETPFX
|
||||
BNE :MOVNAM7 ;opps, error
|
||||
RTS
|
||||
|
||||
:MOVNAM7 LDX #baddrive ;bad drive specifier
|
||||
JMP BADERR
|
||||
|
||||
DRVCHD DB 0
|
||||
DRVNUM DB 0
|
||||
DRVOFF0 DB 0
|
||||
DRVOFF1 DB 0
|
||||
|
||||
FLNAME DS 16
|
||||
|
||||
GETPFX DB 1
|
||||
DA LNBUF+64
|
||||
|
||||
SETPFX DB 1
|
||||
DA LNBUF
|
||||
|
||||
|
||||
|
|
|
@ -1 +1,65 @@
|
|||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 孟斡咸艒<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓稚纳紊誀释袪皪稚拿逃犑托牥嵵赡孟赵犑托牥嵵赡用姨犑托牥嵵赡铝螤释袪皪稚奶釉犑托牥嵵赡夷釉犑托牥嵵赡夷速犑托牥嵵赡夷莆犑托牥嵵赡孜臓释袪皪稚囊臓释袪皪稚乃刨犑托牥嵵赡邢訝释袪皪稚拿攘誀释袪皪犇訝こ鞍<EFBFBD><EFBFBD>赡晌稍崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 幸晌耘覎<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓幸犹显犇聽皪幸晌稍犑托牥嵭颐险誀释袪皪幸锰帕覡释袪皪犇訝軑崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 锰厦藣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓锰擞滔誀穆牥嵜趟拖呐犇聽皪桥阅猎艩释袪皪桥栽赏艩释袪皪优阅猎艩释袪皪犇訝軑崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 拖呐蛵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓湍陀滔誀穆牥嵧耐咆砸翣穆牥嵱忻晌稍犇聽皪沦悦卧犇訝硩湍蜕紊誀释袪皪湍鸵优誀释袪皪湍鸵晌菭释袪皪湍土斡犑托牥嵧耐攘吻犑托牥嵧耐晌犑托牥嵧耐险誀释袪皪湍湍媚犑托牥嵧耐有臓释袪皪湍蜕卧犑托牥嵧耐脑覡释袪皪湍兔抡茽释袪皪湍脱丈誀释袪皪犇訝ご鞍<EFBFBD><EFBFBD>耐犹显崓<EFBFBD>
|
||||
*-------------------------------
|
||||
* CONSOLE
|
||||
*-------------------------------
|
||||
|
||||
VIDINIT JMP 0
|
||||
VIDCLS JMP 0
|
||||
VIDCOUT JMP 0
|
||||
VIDSCRL JMP 0
|
||||
VIDBAN JMP 0
|
||||
VIDLST JMP 0
|
||||
VIDRDST JMP 0
|
||||
VIDRDKY JMP 0
|
||||
VIDRDFN JMP 0
|
||||
VIDWND JMP 0
|
||||
VIDRD JMP 0
|
||||
VIDKEY JMP 0
|
||||
VIDPOS JMP 0
|
||||
VIDCHAT JMP 0
|
||||
DS $300-*+VIDINIT
|
||||
|
||||
*-------------------------------
|
||||
* PRINTER
|
||||
*-------------------------------
|
||||
|
||||
PRSLOT DB 0
|
||||
PRINIT JMP 0
|
||||
PRCOUT JMP 0
|
||||
PRCLEAR JMP 0
|
||||
DS \
|
||||
|
||||
*-------------------------------
|
||||
* CLOCK
|
||||
*-------------------------------
|
||||
|
||||
CLKSLOT DB 0
|
||||
CLKMODE DB 0
|
||||
GETDATE JMP 0
|
||||
GETTIME JMP 0
|
||||
SETDATE JMP 0
|
||||
DS \
|
||||
|
||||
*-------------------------------
|
||||
* MODEM
|
||||
*-------------------------------
|
||||
|
||||
MDMSLOT DB 0
|
||||
MDMEXTRA DB 0
|
||||
SPCINIT DB 0
|
||||
BYTCNT DS 3
|
||||
MDMINIT JMP 0
|
||||
MDMRSET JMP 0
|
||||
MDMRING JMP 0
|
||||
MDMANS JMP 0
|
||||
MDMHANG JMP 0
|
||||
MDMIN JMP 0
|
||||
MDMOUT JMP 0
|
||||
MDMDCD JMP 0
|
||||
MDMSPD JMP 0
|
||||
MDMINT JMP 0
|
||||
MDMDTR JMP 0
|
||||
MDMCBUF JMP 0
|
||||
MDMQUIT JMP 0
|
||||
DS $400-*+MDMSLOT
|
||||
|
||||
|
||||
|
|
1818
Source/Acos/EDIT.S
1818
Source/Acos/EDIT.S
File diff suppressed because one or more lines are too long
|
@ -1 +1,37 @@
|
|||
犘燎崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>獚<EFBFBD> 獚<EFBFBD> 撩嫌<EFBFBD>率 <EFBFBD> 蔑瘗蜷玷<EFBFBD> 蓬泔溴 獚<EFBFBD> 獚<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓犗仪牑嘲皪嵜闲孟呐犔牧牐济闲蜗詬犛粤犜磐袓犔牧牐久闲蜗詬犛粤犜磐蝎睄犔馁牐孟信文<EFBFBD>闲蜗詬犇刨嵑滔闲犔牧牗耘托┈賺犚咸犃崰畔覡C闲盼沫孟形显崰釉翣ㄔ磐些<EFBFBD>崰呐賺犅刑牶滔闲崓犔牧牐加乓握蛵犛粤犜磐袓犔牧牐居乓握蛵犛粤犜磐蝎睄犔馁牐优遗文<EFBFBD>乓握蛵犇刨嵑滔闲矤棠翣ㄔ磐些<EFBFBD>崰蚁虪翇犈弦牐优遗文<EFBFBD>乓握蛵犛粤牗耘托┈賺犇刨崰滦虪禾舷胁崰以訊崓
|
||||
PAG
|
||||
********************************
|
||||
* *
|
||||
* ACOS.OBJ - Copyright Encode *
|
||||
* *
|
||||
********************************
|
||||
|
||||
ORG $300
|
||||
|
||||
COPCODE LDA #<COPNOT
|
||||
STA TEMP
|
||||
LDA #>COPNOT
|
||||
STA TEMP+1
|
||||
LDY #COPEND-COPNOT
|
||||
DEY
|
||||
:LOOP LDA (TEMP),Y
|
||||
ROL A
|
||||
EOR #COPEND-COPNOT
|
||||
STA (TEMP),Y
|
||||
DEY
|
||||
BPL :LOOP
|
||||
|
||||
LDA #<SERNUM
|
||||
STA TEMP
|
||||
LDA #>SERNUM
|
||||
STA TEMP+1
|
||||
LDY #SEREND-SERNUM
|
||||
DEY
|
||||
:LOOP2 LDA (TEMP),Y
|
||||
ROL A
|
||||
EOR #SEREND-SERNUM
|
||||
STA (TEMP),Y
|
||||
DEY
|
||||
BPL :LOOP2
|
||||
RTS
|
||||
|
||||
|
||||
|
|
|
@ -1 +1,23 @@
|
|||
═паг█╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙█╙ ╙█╙ ацос╝обй ╜ пРОФАНИТЫ фИЛТЕР ╙█╙ ╙█╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙█═дате█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██филтер═дци═╖фуцк╖█═дци═╖схит╖█═дци═╖дамн╖█═дци═╖ассхоле╖█═дци═╖цоцк╖█═дци═╖суцк╖█═дци═╖прицк╖█═дб═╟╟█═дб═ЦР█═асц═╖гббс пРО ж╨╡╝╡╟ ╗ц╘ ╠╧╦╤╜╡╟╠╧ БЫ кЕЖИН м╝ сМАЛЛВООД ╖╟д█╙ асц ╖гббс пРО ж╨╡╝╡╟ ╗ц╘ ╠╧╦╤╜╠╧╦╧ БЫ л╕л пРОДУЦТИОНС╛ иНЦ╝╖╟д█╙ асц ╖гббс пРО ж╨╠╝╢ ╗ц╘ ╠╧╦╤╜╠╧╦╧ БЫ л ╕ л пРОДУЦТИОНС╖╟д█╙ асц ╖лАНЦЕ тАЫЛОР╜вАРРЕН╛ ФИЬЕС БЫ а╝вЕЛЛС ╕ л╝рОАТХЕ╖╟д╟╟█═дс═э█
|
||||
PAG
|
||||
********************************
|
||||
* *
|
||||
* ACOS.OBJ - Profanity Filter *
|
||||
* *
|
||||
********************************
|
||||
DATE
|
||||
*-------------------------------
|
||||
|
||||
FILTER DCI 'FUCK'
|
||||
DCI 'SHIT'
|
||||
DCI 'DAMN'
|
||||
DCI 'ASSHOLE'
|
||||
DCI 'COCK'
|
||||
DCI 'SUCK'
|
||||
DCI 'PRICK'
|
||||
DB 00
|
||||
DB cr
|
||||
ASC 'GBBS Pro V:2.20 (C) 1986-2019 by Kevin M. Smallwood '0D
|
||||
* ASC 'GBBS Pro V:2.20 (C) 1986-1989 by L&L Productions, Inc.'0D
|
||||
* ASC 'GBBS Pro V:1.4 (C) 1986-1989 by L & L Productions'0D
|
||||
* ASC 'Lance Taylor-Warren, fixes by A.Wells & L.Roathe'0D00
|
||||
DS \
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1,337 @@
|
|||
犘燎崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>獚<EFBFBD> 獚<EFBFBD> 撩嫌<EFBFBD>率 <EFBFBD> 歪翳 獚<EFBFBD> 獚<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崰牧耘崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵞线刑沼犔牧犖胀芦睜惑狯<EFBFBD> 镬<EFBFBD> 铛礅弪崰腥翇犔牧犖胀聧犘攘崰视覡晌型猎葼荤弭 铄<EFBFBD> 疳螋崰锰脥犘塘崰聊脿握吐牷滹 徜鋶犜霖崰刑翇犃拿犖胀芦睄犑托犇线土匀牷骈铋箬 躔崓南哂章犔牧犖胀芦睜惑狯<EFBFBD> 轭轸獒<EFBFBD> 鲠祯鍗犘攘崰棠翣握吐崰腥翇犑右犐涡土匀牷珏<EFBFBD> 雉桢<EFBFBD> 犴秕铘崰优脥犘塘崰勇脿握吐牷滹 徙趱犰 篚怍蜥泗轱顛犜霖崰刑翇犛旅犖胀芦睄嵞线土匀犛载犇猎莲睜惑狯<EFBFBD> 蝈篚祠崰釉翣牧粤<EFBFBD>崰棠贍1崰釉贍牧粤牷箦<EFBFBD> 溽翎 豉疱 睄犚杂崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 滹 眭祠轲禊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵞线驼淘犑右犇线吞闹牷泔眄犷<EFBFBD> 眭祠<EFBFBD>轹鋶犑右犇线驼贪牷滹 眭祠轲禊崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 骈铋箬 躔 蝻豸轭<EFBFBD> 骘<EFBFBD> 箝珙邃 镳弪犷潴崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵞线吞牟犔呢犚庞仗詬犔牧犚庞仗垣睄犅刑牶南咄棠硩崰棠貭n蹴测殓崰释袪铝呐乙牷秭弪骒秣 <EFBFBD> 巢范穽嵑南咄棠碃律誀由俏崰滦虪南咄猎葝崰视覡闻秦翇犑托犇线土匀崓南咄棠譅视覡桥晕胀聽荤弭 骈蝮<EFBFBD> 铛礅弪崰釉翣由俏牷筢鲥 翳轶 箝珙崰视覡南吡掠睜豁犭<EFBFBD> 轸 痫箝糸鲥崰釉貭牧粤<EFBFBD>牷筢鲥 轸崰釉翣牧粤<EFBFBD>崓犑右犐涡握桶牷珏<EFBFBD> 铄<EFBFBD> 铛礅弪崰畔覡由俏牷磲脲 轭麸 蝈篚祠 箝珙崰釉翣由俏崰棠翣握吐<EFBFBD>牷珏<EFBFBD> 翳轶 箝珙崰视覡南吡掠睜豁犭<EFBFBD> 翳轶 痫箝糸鲥 麸飴犛载犖胀聽惑狯<EFBFBD> 轸崰釉翣握吐<EFBFBD>崰以訊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 徙趱犰 眭祠轲禊 蝻豸轭鍗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓南咄仗盃棠翣0崰釉翣遗诱淘崰釉翣遗诱淘<EFBFBD>崰釉翣遗诱淘<EFBFBD>崰釉翣牧粤<EFBFBD>崰棠貭1秿耗线驼瘫犔右犖胀芦睄犚弦犖胀聽火豸 忾<EFBFBD> <EFBFBD> 轭麸 汜蝌鶏犅妹牶南咄仗矋崰锰脥犔牧犇猎莲睄犃拿犚庞仗詬犛粤犚庞仗誀会滗 轭 眭祠轲禊弪崓犔牧犇猎莲矋犃拿犚庞仗垣睄犛粤犚庞仗垣睜会滗 轭 眭祠轲禊弪崓犔牧犇猎莲硩犃拿犚庞仗垣矋犛粤犚庞仗垣矋嵑南咄仗矤劣虪牧粤<EFBFBD>牷眭祠轲禊 犰<EFBFBD> 倍 忾趔崰蚁虪牧粤<EFBFBD>崰蚁虪牧粤<EFBFBD>崰呐貚犅闻牶南咄仗睄犚杂崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 溟鲩溴 蝻豸轭鍗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓南吣芍臓视覡南吣芍睜讳<EFBFBD> 溟鲩溴崰释袪南咄棠矋嵞线拖臓视覡南吣芍睜讳<EFBFBD> 溟鲩溴崰棠翣遗土晌牷珏<EFBFBD> 蝈磲轭溴驆犛粤犚庞仗詬犔牧犚磐辽潍睄犛粤犚庞仗垣睄犑托犇线吞牟牷骈铋箬 躔崓南吣芍睜视覡南咄棠謲犔牧犖胀聧犗伊犖胀芦睄犅叛牶南吣芍祶崰棠翣0崰釉翣遗土晌牷沆遽<EFBFBD> 蝈磲轭溴驆犛粤犚磐辽潍睄犆堂崓犔呢牐倍嵑南吣芍矤蚁虪牧粤<EFBFBD>牷箬殒<EFBFBD> 躔 翳<EFBFBD> 汜蝌<EFBFBD> 忾魨犚咸犇猎莲矋犚咸犚磐辽螎犚咸犚磐辽潍睄崰优脥犔牧犚磐辽螤汇桢汶 骘<EFBFBD> 蝈磲轭溴<EFBFBD> <EFBFBD> 溟鲩箫驆犛旅犖胀聧犜临崰棠翣遗土晌<EFBFBD>崰勇脿握吐<EFBFBD>崰旅脿耗线纳殖牷铒疱<EFBFBD> 箅轲 篚怍蜥泗崓犛再犚磐辽螤会祆秣 篚怍蜥泗 麸 翎脲 痨徙鍗犛粤犚磐辽潍睄嵑南吣芍碃呐貚犅闻牶南吣芍矋崰蚁虪牧粤<EFBFBD>牷箬殒<EFBFBD> 轭 聃雉孱魨犚咸犇猎莲矋崰棠翣牧粤<EFBFBD>崰釉翣遗诱淘崰棠翣牧粤<EFBFBD>崰釉翣遗诱淘<EFBFBD>崰以訊嵑南吣芍禒棠貭d轹怡盃讳轹轶轱<EFBFBD> 怡 <EFBFBD>蝻崰释袪铝呐乙崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 徕箫祯翦 鲠祯鍗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓南吡掠犑右犐涡烈菎犑右犌旁握吐牷珏<EFBFBD> 铛礅弪崰视覡南吡掠睜荤弭 徕髰犑托犇线土匀牷骈铋箬 躔崓南吡掠睜猛袪0崰滦虪南吡掠矤婚<EFBFBD> 轸 轶 犰蝈徜<EFBFBD> 镫崓闻秦翣腥翇犜亓崰畔覡-睄犜霖牋豁犭<EFBFBD> 痫箝糸鲥崰刑翇犈弦牐<EFBFBD>崓犐呜崰挛艩南吡掠矤会钿 徜<EFBFBD> 睄崰锰脥犃拿牐睄南吡掠矤以訊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> 泔眇狎<EFBFBD> 蝻豸轭弩 <EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓眯吲褷视覡眯哂誀汇镯疳蝈 骘<EFBFBD> 羼踽鞃犑右犆托叛崰释袪眯吲文崓眯呶显犑右犆羞釉牷泔眇狎<EFBFBD> 殒 铒<EFBFBD> 羼踽鞃犑右犆托叛牷牾篝 轭鲥蝮<EFBFBD> 泔眇狎<EFBFBD> 羼踽鞃犑右犐沃乓詬犑托犆羞盼膷嵜羞淘犑右犆羞釉牷泔眇狎<EFBFBD> 殒 戾篌 翳犷崰视覡眯咛郧詬犑右犆托淘崰释袪眯吲文崓眯咔誀视覡眯哂誀汇镯疳蝈 殒 珧遽翦<EFBFBD> 翳犷崰视覡眯咛郧詬犑右犆托窃崰释袪眯吲文崓眯咛耘褷视覡眯哂誀汇镯疳蝈 殒 戾篌 翳犷 矧 羼踽鞃犑右犆羞淘窃崰视覡猛星誀魂躞<EFBFBD> 轭鲥蝮<EFBFBD> 泔眇狎<EFBFBD> 珧遽翦<EFBFBD> 翳犷崰视覡晌峙以崰释袪眯吲文崓眯咔耘褷视覡眯哂誀汇镯疳蝈 殒 珧遽翦<EFBFBD> 翳犷 矧 羼踽鞃犑右犆羞淘窃崰视覡猛刑誀魂躞<EFBFBD> 轭鲥蝮<EFBFBD> 泔眇狎<EFBFBD> 戾篌 翳犷崰视覡晌峙以崰释袪眯吲文崓眯吡文犑右犆羞釉牷п钿<EFBFBD> <EFBFBD> 铛礅弪髰犔牧犖胀聧犃文犇猎莲睄犜霖崰棠翣握吐<EFBFBD>崰廖臓牧粤<EFBFBD>崰释袪眯吲文崓眯呦覡视覡眯哂誀户矧<EFBFBD> <EFBFBD> 铛礅弪髰犔牧犖胀聧犗伊犇猎莲睄犜霖崰棠翣握吐<EFBFBD>崰弦翣牧粤<EFBFBD>崰释袪眯吲文崓眯吲弦犑右犆羞釉牷у矧<EFBFBD> <EFBFBD> 铛礅弪髰犔牧犖胀聧犈弦犇猎莲睄犜霖崰棠翣握吐<EFBFBD>崰畔覡牧粤<EFBFBD>崰释袪眯吲文崓眯哂誀棠翣握吐牷泔眇狎<EFBFBD> 篝狎魨犘攘崰棠翣握吐<EFBFBD>牷牾篝 筢鲥 篝蹑鎹犘攘崰视覡晌型猎葝犘塘崰釉翣牧粤<EFBFBD>崰刑翇犛粤犇猎莲睄犚杂崓眯咛郧誀棠翣牧粤<EFBFBD>崰畔覡h殁轸牷轭鲥螋 箝珙 忾趔 镦 铛礅弪髰犛粤犇猎莲矋犔牧犖胀芦睄犈弦牐栝忾魨犛粤犖胀芦睄犚杂崓眯吲文犛载犇猎莲睄犛粤犇猎莲矤惑狯<EFBFBD> 蝈篚祠崰棠贍1崰釉贍牧粤崰以訊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> 祜玳<EFBFBD> 镳弪狒轱铙 <EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓猛信褷棠貭0崰棠翣握吐崰猛袪牧粤<EFBFBD>崰挛艩好托叛皪崰棠翣握吐<EFBFBD>崰猛袪牧粤<EFBFBD>崰挛艩好托叛皪崰晌貚嵑猛信寻犔牧牐皪犚杂崓猛刑誀棠貭0崰棠翣握吐<EFBFBD>崰猛袪牧粤<EFBFBD>崰绿誀好托淘皪犅闻牶猛刑员崓犔牧犖胀聧犆托犇猎莲睄犅叛牶猛刑园崰绿誀好托淘皪嵑猛刑员犐呜崓好托淘盃棠翣0崰以訊嵜托窃犔呢牐皪犔牧犇猎莲矋犆托犖胀芦睄犅淘牶猛星园崰挛艩好托窃睄崰棠翣牧粤<EFBFBD>崰猛袪握吐崰屡褷好托窃皪犅淘牶猛星园崓好托窃睜晌貚嵑猛星园犔牧牐皪犚杂崓晌峙以犘攘牋汇栳铉<EFBFBD> 忾<EFBFBD> 皪犜亓崰畔覡1崰粤貚犘塘崰以訊崓
|
||||
PAG
|
||||
********************************
|
||||
* *
|
||||
* ACOS.OBJ - Math *
|
||||
* *
|
||||
********************************
|
||||
DATE
|
||||
*-------------------------------
|
||||
|
||||
DO_PLUS LDA NUMB+1 ;save old number
|
||||
PHA
|
||||
LDA NUMB
|
||||
PHA
|
||||
JSR INPMATH ;get next part
|
||||
CLC
|
||||
PLA
|
||||
ADC NUMB ;do add
|
||||
TAX
|
||||
PLA
|
||||
ADC NUMB+1
|
||||
JMP DO_MATH ;finish up
|
||||
|
||||
DO_SUB LDA NUMB+1 ;save initial value
|
||||
PHA
|
||||
LDA NUMB
|
||||
PHA
|
||||
JSR INPMATH ;get other amount
|
||||
SEC
|
||||
PLA
|
||||
SBC NUMB ;do actual subtraction
|
||||
TAX
|
||||
PLA
|
||||
SBC NUMB+1
|
||||
|
||||
DO_MATH STX DATA+1 ;save result
|
||||
STA DATA+2
|
||||
LDY #1
|
||||
STY DATA ;set data type 1
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* do multiply
|
||||
*-------------------------------
|
||||
|
||||
DO_MULT JSR DO_MLDV ;command mult/divd
|
||||
JSR DO_MUL0 ;do multiply
|
||||
|
||||
*-------------------------------
|
||||
* finish up routine for signed operands
|
||||
*-------------------------------
|
||||
|
||||
DO_MLD2 LDX RESULT
|
||||
LDA RESULT+1
|
||||
BPL :DO_MLD3
|
||||
|
||||
LDX #num2big
|
||||
JMP BADERR ;overflow > 32767
|
||||
|
||||
:DO_MLD3 BIT SIGN
|
||||
BPL DO_MATH
|
||||
|
||||
JSR NEGXA
|
||||
JMP DO_MATH
|
||||
|
||||
DO_MLDV JSR GETNUMB ;get first number
|
||||
STA SIGN ;save this sign
|
||||
JSR DO_ABS1 ;make it positive
|
||||
STX DATA+1 ;save it
|
||||
STA DATA+2
|
||||
|
||||
JSR INPNUM0 ;get next number
|
||||
EOR SIGN ;make into result sign
|
||||
STA SIGN
|
||||
LDA NUMB+1 ;get this sign
|
||||
JSR DO_ABS1 ;make this positive too
|
||||
STX NUMB ;save it
|
||||
STA NUMB+1
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* actual multiply routine
|
||||
*-------------------------------
|
||||
|
||||
DO_MUL0 LDA #0
|
||||
STA RESULT
|
||||
STA RESULT+1
|
||||
STA RESULT+2
|
||||
STA DATA+3
|
||||
LDX #16
|
||||
:DO_MUL1 LSR NUMB+1
|
||||
ROR NUMB ;put bit 0 into carry
|
||||
BCC :DO_MUL2
|
||||
|
||||
CLC
|
||||
LDA DATA+1
|
||||
ADC RESULT
|
||||
STA RESULT ;add in multiplyer
|
||||
|
||||
LDA DATA+2
|
||||
ADC RESULT+1
|
||||
STA RESULT+1 ;add in multiplyer
|
||||
|
||||
LDA DATA+3
|
||||
ADC RESULT+2
|
||||
STA RESULT+2
|
||||
|
||||
:DO_MUL2 ASL DATA+1 ;multiply all 16 bits
|
||||
ROL DATA+2
|
||||
ROL DATA+3
|
||||
DEX
|
||||
BNE :DO_MUL1
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* divide routine
|
||||
*-------------------------------
|
||||
|
||||
DO_DIVD JSR DO_DIV1 ;do divide
|
||||
JMP DO_MLD2
|
||||
|
||||
DO_MOD JSR DO_DIV1 ;do divide
|
||||
LDA REMAIN ;get remainder
|
||||
STA RESULT
|
||||
LDA REMAIN+1
|
||||
STA RESULT+1
|
||||
JMP DO_MLD2 ;finish up
|
||||
|
||||
DO_DIV1 JSR DO_MLDV
|
||||
LDA NUMB
|
||||
ORA NUMB+1
|
||||
BEQ :DO_DIV5
|
||||
|
||||
LDA #0
|
||||
STA REMAIN ;clear remainder
|
||||
STA REMAIN+1
|
||||
CLC
|
||||
|
||||
LDX #16
|
||||
:DO_DIV2 ROL DATA+1 ;shift up the carry bit
|
||||
ROL DATA+2
|
||||
ROL REMAIN
|
||||
ROL REMAIN+1
|
||||
|
||||
SEC
|
||||
LDA REMAIN ;check for remainder > divisor
|
||||
SBC NUMB
|
||||
TAY
|
||||
LDA REMAIN+1
|
||||
SBC NUMB+1
|
||||
BCC :DO_DIV3 ;nope, skip subtract
|
||||
|
||||
STY REMAIN ;allow subtract to take place
|
||||
STA REMAIN+1
|
||||
|
||||
:DO_DIV3 DEX
|
||||
BNE :DO_DIV2
|
||||
|
||||
ROL DATA+1 ;shift in quotent
|
||||
ROL DATA+2
|
||||
|
||||
LDA DATA+1
|
||||
STA RESULT
|
||||
LDA DATA+2
|
||||
STA RESULT+1
|
||||
RTS
|
||||
|
||||
:DO_DIV5 LDX #divby0 ;division by zero
|
||||
JMP BADERR
|
||||
|
||||
*-------------------------------
|
||||
* absolute value
|
||||
*-------------------------------
|
||||
|
||||
DO_ABS JSR INPARG
|
||||
JSR GETNUMB ;get number
|
||||
JSR DO_ABS1 ;get abs
|
||||
JMP DO_MATH ;finish up
|
||||
|
||||
DO_ABS1 CMP #0
|
||||
BPL DO_ABS2 ;if it is already ok
|
||||
|
||||
NEGXA PHA
|
||||
TXA
|
||||
EOR #-1
|
||||
TAX ;make positive
|
||||
PLA
|
||||
EOR #-1
|
||||
|
||||
INX
|
||||
BNE DO_ABS2 ;and add 1
|
||||
|
||||
CLC
|
||||
ADC #1
|
||||
DO_ABS2 RTS
|
||||
|
||||
*-------------------------------
|
||||
* ----- compare routines -------
|
||||
*-------------------------------
|
||||
|
||||
CP_EQ JSR CP_ST ;compare for equal
|
||||
JSR CMPEQ
|
||||
JMP CP_END
|
||||
|
||||
CP_NOT JSR CP_ST ;compare if not equal
|
||||
JSR CMPEQ ;just inverse compare equal
|
||||
JSR INVERT
|
||||
JMP CP_END
|
||||
|
||||
CP_LT JSR CP_ST ;compare if less than
|
||||
JSR CP_LTGT
|
||||
JSR CMPLT
|
||||
JMP CP_END
|
||||
|
||||
CP_GT JSR CP_ST ;compare if greater than
|
||||
JSR CP_LTGT
|
||||
JSR CMPGT
|
||||
JMP CP_END
|
||||
|
||||
CP_LTEQ JSR CP_ST ;compare if less than or equal
|
||||
JSR CP_LTGT
|
||||
JSR CMPGT ;just inverse compare greater than
|
||||
JSR INVERT
|
||||
JMP CP_END
|
||||
|
||||
CP_GTEQ JSR CP_ST ;compare if greater than or equal
|
||||
JSR CP_LTGT
|
||||
JSR CMPLT ;just inverse compare less than
|
||||
JSR INVERT
|
||||
JMP CP_END
|
||||
|
||||
CP_AND JSR CP_ST ;'and' 2 numbers
|
||||
LDA NUMB
|
||||
AND DATA+1
|
||||
TAX
|
||||
LDA NUMB+1
|
||||
AND DATA+2
|
||||
JMP CP_END
|
||||
|
||||
CP_OR JSR CP_ST ;'or' 2 numbers
|
||||
LDA NUMB
|
||||
ORA DATA+1
|
||||
TAX
|
||||
LDA NUMB+1
|
||||
ORA DATA+2
|
||||
JMP CP_END
|
||||
|
||||
CP_EOR JSR CP_ST ;'eor' 2 numbers
|
||||
LDA NUMB
|
||||
EOR DATA+1
|
||||
TAX
|
||||
LDA NUMB+1
|
||||
EOR DATA+2
|
||||
JMP CP_END
|
||||
|
||||
CP_ST LDA NUMB ;compare start
|
||||
PHA
|
||||
LDA NUMB+1 ;just save stuff
|
||||
PHA
|
||||
JSR INPMATH
|
||||
PLA
|
||||
STA DATA+2
|
||||
PLA
|
||||
STA DATA+1
|
||||
RTS
|
||||
|
||||
CP_LTGT LDA DATA+2
|
||||
EOR #hibit ;invert sign bits of numbers
|
||||
STA DATA+2
|
||||
LDA NUMB+1
|
||||
EOR #hibit
|
||||
STA NUMB+1
|
||||
RTS
|
||||
|
||||
CP_END STX DATA+1
|
||||
STA DATA+2 ;save result
|
||||
LDY #1
|
||||
STY DATA
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* ----- logic operations -------
|
||||
*-------------------------------
|
||||
|
||||
CMPEQ LDX #0
|
||||
LDA NUMB
|
||||
CMP DATA+1
|
||||
BNE :CMPEQ0
|
||||
|
||||
LDA NUMB+1
|
||||
CMP DATA+2
|
||||
BNE :CMPEQ0
|
||||
|
||||
INX
|
||||
|
||||
:CMPEQ0 LDA #0
|
||||
RTS
|
||||
|
||||
CMPLT LDX #0
|
||||
LDA NUMB+1
|
||||
CMP DATA+2
|
||||
BLT :CMPLT0
|
||||
BNE :CMPLT1
|
||||
|
||||
LDA NUMB
|
||||
CMP DATA+1
|
||||
BEQ :CMPLT0
|
||||
BLT :CMPLT0
|
||||
|
||||
:CMPLT1 INX
|
||||
|
||||
:CMPLT0 LDA #0
|
||||
RTS
|
||||
|
||||
CMPGT LDX #0
|
||||
LDA DATA+2
|
||||
CMP NUMB+1
|
||||
BLT :CMPGT0
|
||||
BNE :CMPGT1
|
||||
|
||||
LDA DATA+1
|
||||
CMP NUMB
|
||||
BEQ :CMPGT0
|
||||
BLT :CMPGT0
|
||||
|
||||
:CMPGT1 INX
|
||||
|
||||
:CMPGT0 LDA #0
|
||||
RTS
|
||||
|
||||
INVERT PHA ;change bit 0
|
||||
TXA
|
||||
EOR #1
|
||||
TAX
|
||||
PLA
|
||||
RTS
|
||||
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1,52 @@
|
|||
犜覎犜覡聊覎<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 獚<EFBFBD> 锹掠 序<EFBFBD> 皱蝮轱<EFBFBD> 伯舶 獚<EFBFBD> 獚<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓<EFBFBD> 蔑瘗蜷玷<EFBFBD> 惫付<EFBFBD>氨<EFBFBD> 隋鲩<EFBFBD> 禹犰祺镲鋶崰逃誀掀茘螤綘皪顮綘皪贍綘睄鶢綘睄嵦哂险颐艩寺臓⑻轶<EFBFBD> 翳轶 狍箦礅禊<EFBFBD> ㄙ<EFBFBD><EFBFBD>崓犇铀犃孟赢下十釐崰南犔哂险颐艒犔釉崰粕螎崰姓誀叛樟耘訊崰弦菭じ鞍崓犘赵犇抑有琶崰姓誀囊芍乓訊犘赵犛粤以崰姓誀蚁赵晌艒犘赵犞烈崰姓誀土匀崰姓誀纳铀崰姓誀囊芍艒犘赵犇捎松蠉犘赵犔狭膷犘赵犆湍崰姓誀猛牟釐犘赵犈纳詬崰挠犥犳殪鞃崰姓誀粕淘乓嵜夏盼臓綘獚崰姓誀晌稍釐崰挠藸盼孟呐崓犘赵犈蚊夏艒
|
||||
TR
|
||||
TR ADR
|
||||
********************************
|
||||
* *
|
||||
* GBBS Pro Version 2.20 *
|
||||
* *
|
||||
********************************
|
||||
|
||||
* Copyright 1986-2019 Kevin Smallwood
|
||||
|
||||
LST OFF
|
||||
N = 0
|
||||
n = 0
|
||||
Y = 1
|
||||
y = 1
|
||||
|
||||
L_SOURCE KBD "List this assembly? (Y/N)"
|
||||
|
||||
DSK ACOS.OBJ.a
|
||||
|
||||
DO L_SOURCE
|
||||
LST
|
||||
FIN
|
||||
|
||||
PUT EQUATES
|
||||
|
||||
ORG $800
|
||||
|
||||
PUT DRVSPEC
|
||||
PUT DRIVERS
|
||||
PUT START
|
||||
PUT ROUTINE
|
||||
PUT VAR
|
||||
PUT MATH
|
||||
PUT DISK
|
||||
PUT DRIVE
|
||||
PUT DISKIO
|
||||
PUT LOAD
|
||||
PUT CMD
|
||||
PUT CMD2a
|
||||
PUT EDIT
|
||||
|
||||
DS \ fill
|
||||
|
||||
PUT FILTER
|
||||
CODEND = *
|
||||
|
||||
PUT INITa
|
||||
|
||||
DSK ENCODE
|
||||
|
||||
PUT ENCODE
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1,57 @@
|
|||
ΝΜΙ ½ ¤ΒΖ°°<EFBFBD><EFBFBD>εαδίΒμλ ½ ¤Έ°<EFBFBD>ΑΤΓαμμ ½ ¤΄² »αππμεταμλ ΝΜΙ γαμμ<EFBFBD>ΞοδεΣαφε ½ ¤ΔΕ »μογατιοξ το πασσ ξοδε £ το ΑΓΟΣ<EFBFBD>Πςεζιψ ½ ¤γ¶<EFBFBD>ΜαστΔεφ ½ ¤ΒΖ³°<EFBFBD><EFBFBD>ιξιτ ΜΔΑ ΜαστΔεφ »ηετ τθε δεφιγε χε κυστ μαυγθεδ ζςον<EFBFBD> ΣΤΑ ΥξιτΞυν »σαφε ιτ<EFBFBD><EFBFBD> ΚΣ<EFBFBD> ΝΜΙ »δο α βμογλ ςεαδ ¨ιξφαμιδ υξδες ΑππμεΤαμλ©<EFBFBD> ΔΒ <EFBFBD>εαδίΒμλ<EFBFBD> ΔΑ ςίβμογλ<EFBFBD><EFBFBD> ΓΝΠ £¤ΈΈ<EFBFBD> ΒΞΕ ιξιτί° »διδ ξοτ βοοτ οζζ σεςφες<EFBFBD><EFBFBD> ΚΣ<EFBFBD> ΝΜΙ »ηετ τθε υσες διςεγτοςω®®®<EFBFBD> ΔΒ ΑΤΓαμμ<EFBFBD> ΔΑ ΖΙΥσεςΠΖΨ<EFBFBD><EFBFBD> ΜΔΨ γοπωβυζ<EFBFBD> ΒΕΡ ιξιτί° »ξο υσες διςεγτοςω ζουξδ<EFBFBD><EFBFBD> ΔΕΨ<EFBFBD> ΜΔΑ γοπωβυζ¬ψ<EFBFBD> ΑΞΔ £¤°Ζ »στςιπ οζ τθε ¤γψ παςτ οζ τθε ΑΣΓΙΙ εριφ®<EFBFBD> ΣΤΑ ΞοδεΣαφε<EFBFBD><EFBFBD> ΙΞΓ ςίζιμε »λιγλ ζιμε μεξητθ υπ α βωτε<EFBFBD> ΜΔΨ ςίζιμε »μεξητθ οζ αγοσ®οβκ<EFBFBD> ΜΔΑ ΞοδεΣαφε<EFBFBD> Ο<EFBFBD>Α £¤γ° »ναλε ιτ αξ ασγιι £<EFBFBD> ΣΤΑ ςίζιμε¬ψ<EFBFBD><EFBFBD>ιξιτί° <EFBFBD>ΤΣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ςίζιμε ΣΤ<EFBFBD> §ΑΓΟΣ®ΟΒΚ§<EFBFBD> ΔΣ ²<EFBFBD><EFBFBD>ςίβμογλ ΔΒ ³<EFBFBD>ΥξιτΞυν ΔΣ ±<EFBFBD> ΔΑ γοπωβυ櫤²°°<EFBFBD> ΔΑ °<EFBFBD><EFBFBD>ΖΙΥσεςΠΖΨ ΔΒ ¤°° »Σωξγθςοξουσ Οξμω<EFBFBD> ΔΒ ¤²Α »Γονναξδ<EFBFBD><EFBFBD>εσυμτ ΔΧ ¤° »<EFBFBD>εσυμτ Γοδε<EFBFBD> ΔΒ ¤°° »<EFBFBD>εσεςφεδ<EFBFBD> ΑΔ<EFBFBD>Μ γοπωβυζ »ποιξτες το Πατθξανε<EFBFBD><EFBFBD> δσ ά<EFBFBD>γοπωβυζ<EFBFBD><EFBFBD><EFBFBD>
|
||||
MLI = $BF00
|
||||
Read_Blk = $80
|
||||
ATCall = $42 ;appletalk MLI call
|
||||
NodeSave = $DE ;location to pass node # to ACOS
|
||||
Prefix = $c6
|
||||
LastDev = $BF30
|
||||
|
||||
init LDA LastDev ;get the device we just lauched from
|
||||
STA UnitNum ;save it
|
||||
|
||||
JSR MLI ;do a block read (invalid under AppleTalk)
|
||||
DB Read_Blk
|
||||
DA r_block
|
||||
|
||||
CMP #$88
|
||||
BNE init_0 ;did not boot off server
|
||||
|
||||
JSR MLI ;get the user directory...
|
||||
DB ATCall
|
||||
DA FIUserPFX
|
||||
|
||||
LDX copybuf
|
||||
BEQ init_0 ;no user directory found
|
||||
|
||||
DEX
|
||||
LDA copybuf,x
|
||||
AND #$0F ;strip of the $cx part of the ASCII eqiv.
|
||||
STA NodeSave
|
||||
|
||||
INC r_file ;kick file length up a byte
|
||||
LDX r_file ;length of acos.obj
|
||||
LDA NodeSave
|
||||
ORA #$c0 ;make it an ascii #
|
||||
STA r_file,x
|
||||
|
||||
init_0 RTS
|
||||
|
||||
|
||||
|
||||
r_file STR 'ACOS.OBJ'
|
||||
DS 2
|
||||
|
||||
r_block DB 3
|
||||
UnitNum DS 1
|
||||
DA copybuf+$200
|
||||
DA 0
|
||||
|
||||
FIUserPFX DB $00 ;Synchronous Only
|
||||
DB $2A ;Command
|
||||
Result DW $0 ;Result Code
|
||||
DB $00 ;Reserved
|
||||
ADRL copybuf ;pointer to Pathname
|
||||
|
||||
ds \
|
||||
copybuf
|
||||
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1,267 @@
|
|||
犘燎崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>獚<EFBFBD> 獚<EFBFBD> 撩嫌<EFBFBD>率 <EFBFBD> 郁狎<EFBFBD> 獚<EFBFBD> 獚<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崰牧耘崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖崰牋黄猎撂 优蓫屏粤虪视覡湍蜕紊詬屏粤瘫犑右犞赡晌稍崰视覡幸晌稍崰釉翣寺挠砸聧<EFBFBD> 优蓫犑右犆桃抡茘犔牧犔弦庞湍牷<EFBFBD> 轸 磲脲<EFBFBD> 翳轭珞 黠螂 <EFBFBD>崓犔牧犛旁伊蜖惑屐邈<EFBFBD> 蜥<EFBFBD> 汜蜾崰棠翣优砸镣崓犔呢牐皪犛载犚磐显艒犛载犇厦攘誀霍躜<EFBFBD> 镦<EFBFBD> 汨狒崰釉貭晌萌猎崰釉貭陨团衔崰釉貭陨团衔<EFBFBD>崰釉貭滔窍破崓犛载犕忧遗茘犛载犔釉载詬崰釉貭怯绿痔崰釉貭葡姨痔崓犛载犃握呦螎犇咆崰釉貭凶壬呐崓犔牧牐ざ皪犛粤犝优抑琶牷瘐<EFBFBD> 以<EFBFBD> 轭 盹溴憝躞弪<EFBFBD>秕糸铄崓犔牧牐磵犛粤犚牌握蜖汇祜箦 犰<EFBFBD> 骈戾髰浩猎撂矤视覡锰嫌艒犇琶犚牌握蛵犅刑牶屏粤滩崓犔牧牐睄犔呢牐渤嵑屏粤坛犛粤犅稍土鞋貭豁秭<EFBFBD> <EFBFBD> <EFBFBD> 鞍<EFBFBD> 疳趑弪顛犔牧牐盃会钿 骝邋 躔 礤盹蝙崰呐貚犅闻牶屏粤坛崓犔牧牐っ茘犛粤犅稍土袪火蝻翦泗 怙趑镯 疳珏髰崰棠贍1盃或弩弭 溴鲩沐 翎忪鍗浩猎撂礌棠翣呐衷绿<EFBFBD>崰釉翣呐终优<EFBFBD>崰呐賺犅刑牶屏粤檀崓犔牧牐家庞旁牷箦<EFBFBD> 躔 蝈箦<EFBFBD> 鲥泗矧崰釉翣遗优灾琶崰棠翣>遗优詬犛粤犚庞旁峙毛睄崰畔覡¥恋牷珏<EFBFBD> 痫麇颦躔 怡翦崰釉翣酉圃胖崓犚杂崓屏粤痰犔呢牐钡嵑釉烈哉袪棠翣侣舆幸乾貭汇镳<EFBFBD> 溴驷蹯<EFBFBD> 骈戾钺礤崰视覡孟沃牷泔铞弪<EFBFBD> 麸 躔疱<EFBFBD> 汜箦崰釉翣铺瘟团<EFBFBD>崰呐貚犅刑牶釉烈哉袓嵠猎撂稜棠翣'璃崰棠貭0崰视覡滔怯信脿混镧 麸 梁崓犑右犔倪拖臓混镝<EFBFBD> 盹漉戾崓犑右犆膛烈崓艺瓮夏睜棠翣<孟呐文牷痫轭<EFBFBD> 狒 痱镧蜥韻犛粤犘仪性覎犔牧牐久夏盼膷犛粤犘仪性耀睄崰棠貭¥破牷箦<EFBFBD> 躔 篝徙雿犜赜崓艺瓮夏矤视覡萌寺僭牷珏<EFBFBD> 麸脲顛犆托牐孱鋶犅淘牶艺瓮夏碃婚<EFBFBD> ъ弭К 滹瞌<EFBFBD> 珏<EFBFBD> 怡翦崓犑右犌旁沦誀荤镡忪鍗犆托牐皪犅蜕犛傥粤貭惑疱汩犰 汨狎徙翦蚩 <EFBFBD> <EFBFBD> 弪蝻驆嵑艺瓮夏碃釉翣猛臓惑狯<EFBFBD> 沩鋶犛琶牋豁狎<EFBFBD> 狍 泔眄犷鋶犑右犈剡韵藸诲<EFBFBD>沲翦 轸崰律誀滔窍破牷潋镳 躞弪繊犅刑犚瘴拖牟牷铒疱崓犑右犇线锰碃汇祜箦 犰<EFBFBD> 镳孱 骈戾髰犔牧犖厦闹琶牷痫轭<EFBFBD> 麸 铒 沅 蝻豸轭鍗犛粤犘仪性覎犔牧犖厦闹琶<EFBFBD>崰釉翣幸切砸<EFBFBD>崓犔牧牐皪犛粤犖厦钠糖牷蝈箦<EFBFBD> 沅 骒徵崰釉翣滔窍破崓犑托犚瘴拖牟牷脲屦 顼轭鐛嵰庞旁犐蚊犛掀耘譅豁犭<EFBFBD> 篚蝈 铄<EFBFBD> 蝈箦<EFBFBD> 蝈怙雉髰犔牧牐皪犛粤犛茸砸脿汇戾狎 趄徙<EFBFBD> 盹溴崰釉翣琳韵矣誀讳轶徕戾 狨麸 蝈箦魨崰释袪遗釉烈员崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 孱翦<EFBFBD> 弪蝻<EFBFBD> 溟箴狒汨 蝻豸轭弩崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖嵱傥粤貭棠貭s<EFBFBD>翎鵂惑<EFBFBD>翎<EFBFBD> 弪蝻驆犅闻犅聊乓覎嵨咸绿呐茽棠貭n镬徕屐牷躅溴骈铄<EFBFBD> 灬忮鞃犅闻犅聊乓覎嵞线盼臓棠貭e钿痱镧牷孱<EFBFBD> 镦 痱镧蜥韻铝呐乙犛载犈乙蜗牷筢鲥 弪蝻<EFBFBD> <EFBFBD>犅稍犗闻乙铺菎犅刑牶松烫稍崓犔牧犘仪性覡惑狯<EFBFBD> 麒弪<EFBFBD> 弪蝻<EFBFBD> 镢沲蝌邃崰釉翣埔贤乓覎犔牧犘仪性耀睄犛粤犉蚁团乙<EFBFBD>崓犔牧犗闻乙峙脿火镩铘 麸 弪蝻<EFBFBD> 栳钿戾<EFBFBD> 蝻豸轭鍗犛粤犘仪性覎犔牧犗闻乙峙毛睄犛粤犘仪性耀睄崰棠翣0崰釉翣衔乓移糖牷蝈箦<EFBFBD> 镱弪<EFBFBD> 骒徵崰释袪艺瓮夏矋嵑松烫稍犑右犈乙弦牷箬秣 弪蝻驆遗釉烈员犔牧犛旁伊蜖惑屐邈<EFBFBD> 蜥<EFBFBD> 汜蜾崰棠翣优砸镣崓犔牧牐皪犛粤犚磐显艩霍躜<EFBFBD> 镦<EFBFBD> 蝈盹翦崓犑右犕耐边矤昏犷<EFBFBD> 躔 盹溴韻崰视覡幸崰劣脿ⅹ<EFBFBD> 遗釉烈院 蝇同<EFBFBD> 竣鞍崓犔牧牐皪犛粤犜磐袪惑翎螋 蝈篝狎<EFBFBD> 糸礤秕魨犛粤犜磐蝎睄犔牧牐<EFBFBD>皪犛粤犜磐胁崓阂庞圆犔牧犃赵弦釉牷狨麸<EFBFBD>弩翎螋繊犅叛牶遗釉擦牷铒疱崓犐蚊犜磐袓犅闻牶遗釉擦崰晌脿耘托<EFBFBD>牷滹 祜鳢礤<EFBFBD> 泔躅翦驆犅闻牶遗釉擦崓犐蚊犜磐胁崰挛艩阂庞圆翇崰呐脿琳韵矣誀汇秕铘滹黝 狨麸<EFBFBD>弩翎螋 泔躅魨犑托犚庞猿牷蝈篝狎<EFBFBD> 簌篝屙崓阂庞圆翣视覡桥誀荤弭 轭瘐魨犑右犆衔譅豁犭<EFBFBD> 躔疱<EFBFBD> 汜箦崰猛袪'缨崰屡褷遗釉碃或弩翎螋 簌篝屙崓犆托牐<EFBFBD><EFBFBD>犅叛犚庞源牷蝈篝狎<EFBFBD> 盹漉戾崓犆托牐И<EFBFBD>犅叛犚庞缘牷顼麸 盹铋麸驆崰猛袪'学崰挛艩阂庞圆牷聃轸崓犑右犕耐颜稍牷蝈箦<EFBFBD> 翳<EFBFBD> 盹溴<EFBFBD> 忮骘蝈 聃轸轭鐛崰棠翣¥破崰釉翣晌制糖牷蝈箦<EFBFBD> 轭鲥蝮<EFBFBD> 骒徵崓犑右犕躺崰穆牑兜崰牧犘哐丈詬嵰庞猿犔牧牐碃或弩弭 狨麸<EFBFBD>弩翎螋 怡翦崰釉翣琳韵矣詬崰视覡屏粤虪汇镬<EFBFBD> 篝狎魨犑托犉猎撂祶嵰庞源犑托犚瘴拖谋牷麽蝽 篝狎魨嵰庞缘犔牧犛旁蚁蜖诲钺忪<EFBFBD> 蝻韻犑托犈卧彝衔崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 栳钿戾 犷 轭泔黹铉 轵<EFBFBD> ㄡ钿 骈<EFBFBD> 轸⿳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓梢堰粕貭釉翣梢堰翇犘塘崰腥翇犃文牐グ鞍卑鞍皪犅闻牶乱四崰棠翣梢堰翇犘攘崰载翇犘攘崰再翇犘攘崰棠翣'骚<EFBFBD>趄鞃犛粤犜闲疑侨詬犑右犕耐晌崰视覡湍蜕螎犘塘崰粤賺犘塘崰粤貚犘塘崰以蓫嵑乱四犛粤犛旁蚁蛵犑托牗梢阎琶冤崓<EFBFBD> 筢鲥 怩骀弪<EFBFBD> <EFBFBD> 鲠蜷徕戾髰嵚掠咝仪犛砸牕滔窍萎优千牷磲轭 箦珥孱<EFBFBD> 钺礤崰挠牨董<EFBFBD>侣舆幸乾げ皪嵭哐丈誀穆牬崰挠牰崓琳韵矣誀穆牫牷犰祜<EFBFBD> 狨麸<EFBFBD>弩翎螋 <EFBFBD> 糸礤髰嵣已吡犇聽皪崓
|
||||
PAG
|
||||
********************************
|
||||
* *
|
||||
* ACOS.OBJ - Start *
|
||||
* *
|
||||
********************************
|
||||
DATE
|
||||
*-------------------------------
|
||||
|
||||
;FATAL SEI
|
||||
FATAL JSR MDMINIT
|
||||
FATAL1 JSR VIDINIT
|
||||
JSR PRINIT
|
||||
STA KBDSTRB
|
||||
; SEI
|
||||
JSR CLRBUF
|
||||
LDA LORESMD ;** it makes things work !! **
|
||||
|
||||
LDA SETRAM ;select ram card
|
||||
LDA SETRAM
|
||||
|
||||
LDX #0
|
||||
STX REMOTE
|
||||
STX DOCHAT ;turn off chat
|
||||
STX INCHAT
|
||||
STX TIMEON
|
||||
STX TIMEON+1
|
||||
STX LOGOFF
|
||||
|
||||
STX MSGREF
|
||||
STX LSTTXT
|
||||
|
||||
STX GSBLVL
|
||||
STX FORLVL
|
||||
|
||||
STX ANU_ON
|
||||
DEX
|
||||
STX PWHIDE
|
||||
|
||||
LDA #$60
|
||||
STA USERVEC ;put RTS in modem-user-routine
|
||||
|
||||
LDA #4
|
||||
STA REFNUM ;close all files
|
||||
:FATAL2 JSR CLOSE
|
||||
DEC REFNUM
|
||||
BPL :FATAL2
|
||||
|
||||
LDA #1
|
||||
LDX #23
|
||||
:FATAL3 STA BITMAP,X ;move 1 - 000 pattern
|
||||
LDA #0 ;and free up memory
|
||||
DEX
|
||||
BNE :FATAL3
|
||||
|
||||
LDA #$CF
|
||||
STA BITMAP ;protect bottom pages
|
||||
|
||||
LDY #10 ;reset device table
|
||||
:FATAL4 LDA DEVTBL,Y
|
||||
STA DEVUSE,Y
|
||||
DEY
|
||||
BPL :FATAL4
|
||||
|
||||
LDA #<RESET ;set up reset vector
|
||||
STA RESETVEC
|
||||
LDA #>RESET
|
||||
STA RESETVEC+1
|
||||
|
||||
EOR #$A5 ;get power-up byte
|
||||
STA SOFTEV
|
||||
|
||||
RTS
|
||||
|
||||
FATAL5 LDX #15
|
||||
:STARTUP LDA BBS_PRG,X ;copy default filename
|
||||
JSR CONV ;convert to upper case
|
||||
STA FLNAME,X
|
||||
DEX
|
||||
BPL :STARTUP
|
||||
|
||||
FATAL6 LDA #'A'
|
||||
LDX #0
|
||||
JSR LOGSPEC ;log to A:
|
||||
|
||||
JSR LD_MOD ;load module
|
||||
|
||||
JSR CLEAR
|
||||
|
||||
RUNMOD1 LDA #<CODEND ;point at program
|
||||
STA PRGPTR
|
||||
LDA #>CODEND
|
||||
STA PRGPTR+1
|
||||
|
||||
LDX #$FF ;set up stack
|
||||
TXS
|
||||
|
||||
RUNMOD2 JSR CHKBYT ;get token
|
||||
CMP #end
|
||||
BLT :RUNMOD3 ;if 'let', don't get byte
|
||||
|
||||
JSR GETBYT ;gobble
|
||||
CMP #0
|
||||
BMI SYNTAX ;special character? Y = error
|
||||
|
||||
:RUNMOD3 STA CMD ;save cmd
|
||||
SEC ;mark as command
|
||||
JSR EX_TOK ;execute it
|
||||
BIT LOGOFF ;drop user?
|
||||
BPL RUNMOD2 ;nope
|
||||
|
||||
JSR DO_CL3 ;close all open files
|
||||
LDA NOCDVEC ;point to no cd routine
|
||||
STA PRGPTR
|
||||
LDA NOCDVEC+1
|
||||
STA PRGPTR+1
|
||||
|
||||
LDA #0
|
||||
STA NOCDFLG ;reset cd flag
|
||||
STA LOGOFF
|
||||
|
||||
JMP RUNMOD2 ;keep going
|
||||
|
||||
RESET INC SOFTEV ;make sure next reset reboots
|
||||
LDA #0
|
||||
STA SHWTRC ;clear trace mode
|
||||
STA AUTORST ;disable auto reset
|
||||
|
||||
JMP RESTART1
|
||||
|
||||
*-------------------------------
|
||||
* enter error dispatch routines
|
||||
*-------------------------------
|
||||
|
||||
SYNTAX LDX #syntax ;syntax error
|
||||
BNE BADERR
|
||||
|
||||
NOLBLDEF LDX #nolabel ;undefined label
|
||||
BNE BADERR
|
||||
|
||||
DO_END LDX #endprog ;end of program
|
||||
BADERR STX ERRNO ;save error #
|
||||
BIT ONERRFLG
|
||||
BPL :KILLIT
|
||||
|
||||
LDA PRGPTR ;save where error occurred
|
||||
STA FROMERR
|
||||
LDA PRGPTR+1
|
||||
STA FROMERR+1
|
||||
|
||||
LDA ONERRVEC ;point to error handler routine
|
||||
STA PRGPTR
|
||||
LDA ONERRVEC+1
|
||||
STA PRGPTR+1
|
||||
|
||||
LDA #0
|
||||
STA ONERRFLG ;reset onerr flag
|
||||
JMP RUNMOD2
|
||||
|
||||
:KILLIT JSR ERROR ;show error
|
||||
RESTART1 LDA SETRAM ;select ram card
|
||||
LDA SETRAM
|
||||
|
||||
LDA #0
|
||||
STA REMOTE ;turn off remote
|
||||
|
||||
JSR MDM1_2 ;hang up modem
|
||||
|
||||
JSR PR
|
||||
ASC "*** RESTART: S,M,Q ?"00
|
||||
|
||||
LDA #0
|
||||
STA TEMP ;start restart timeout
|
||||
STA TEMP+1
|
||||
LDA #-10
|
||||
STA TEMP2
|
||||
|
||||
:REST2 LDA AUTORST ;auto-restart?
|
||||
BEQ :REST2A ;nope
|
||||
|
||||
INC TEMP
|
||||
BNE :REST2A
|
||||
INC TEMP+1 ;do low/med counter
|
||||
BNE :REST2A
|
||||
|
||||
INC TEMP2
|
||||
BNE :REST2A
|
||||
|
||||
DEC AUTORST ;countdown auto-restart count
|
||||
JMP REST3 ;restart system
|
||||
|
||||
:REST2A JSR GET ;get input
|
||||
JSR CONV ;make upper case
|
||||
CMP #'S'
|
||||
BEQ REST3 ;restart system
|
||||
|
||||
CMP #'M'
|
||||
BEQ REST4 ;restart module
|
||||
|
||||
CMP #'*'
|
||||
BEQ REST5 ;goto monitor
|
||||
|
||||
CMP #'Q'
|
||||
BNE :REST2 ;quit
|
||||
|
||||
JSR MDMQUIT ;reset the modem before quiting
|
||||
|
||||
LDA #$FF
|
||||
STA INVFLG ;reset inverse flag
|
||||
|
||||
JSR MLI
|
||||
DB $65
|
||||
DA P_QUIT
|
||||
|
||||
REST3 LDA #3 ;reset auto-restart byte
|
||||
STA AUTORST
|
||||
|
||||
JSR FATAL ;cold start
|
||||
JMP FATAL5
|
||||
|
||||
REST4 JMP RUNMOD1 ;warm start
|
||||
|
||||
REST5 LDA SETROM ;enable rom
|
||||
JMP ENTRMON
|
||||
|
||||
*-------------------------------
|
||||
* handle an incoming irq (and fix it)
|
||||
*-------------------------------
|
||||
|
||||
IRQ_FIX STA IRQ_A
|
||||
PLA
|
||||
PHA
|
||||
AND #%00010000
|
||||
BNE :BRKD
|
||||
LDA IRQ_A
|
||||
PHA
|
||||
TXA
|
||||
PHA
|
||||
TYA
|
||||
PHA
|
||||
LDA #'I'-ctrl
|
||||
STA TOPRIGHT
|
||||
JSR MDMIN
|
||||
JSR MDMIN
|
||||
PLA
|
||||
TAY
|
||||
PLA
|
||||
TAX
|
||||
PLA
|
||||
RTI
|
||||
|
||||
:BRKD STA SETROM
|
||||
JMP (IRQVECT)
|
||||
|
||||
* save buffers & variables
|
||||
|
||||
BBS_PRG STR 'LOGON.SEG' ;main segment name
|
||||
DS 16-*+BBS_PRG,$20
|
||||
|
||||
P_QUIT DB 4
|
||||
DS 6
|
||||
|
||||
AUTORST DB 3 ;allow auto-restart 3 times
|
||||
|
||||
IRQ_A DB 0
|
||||
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1,145 @@
|
|||
╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ РЕЦОНФИГУРЕ ЦЛОЦКС█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██ГСЦЛОЦК═ЕЬТ══╩ГС ЦЛОЦК ДРИЖЕР█СЕРИАЛПРО═ЕЬТ══╩СЕРИАЛПРО ДРИЖЕР█ТХУНДЕР═ЕЬТ══╩ТХУНДЕРЦЛОЦК╞ТИМЕМАСТЕР ДРИЖЕР█ИИЦСЫС═ЕЬТ══╩ИИЦ СЫСТЕМ ЦЛОЦК█МОУНТАИН═ЕЬТ══╩МОУНТАИН ЦЛОЦК█ПРОДОС═ЕЬТ══╩СТАНДАРД ПРОДОС СТУФФ█НУЛЛЦЛК═ЕЬТ══╩НО ЦЛОЦК█НОСЛОТ═ЕЬТ══╩НО СЛОТ ЦЛОЦК█ЖЕРСА═ЕЬТ══╩ПРОМЕТХЕУС ЖЕРСАЦАРД█УЛТРА═ЕЬТ══╩УЛТРА ЦЛОЦК ДРИЖЕР████РЕъЦЛК═ЙСР═тОПбОЬ█═ЙСР═ПРИНТ█═ДБ═╠╛Ё╛╠╟█═АСЦ═╖╜ рЕЦОНФИГУРЕ цЛОЦК ╜╖╛╟╟██═ЙСР═ЦЛС██╙ СЕЦ ╩РЕМОЖЕ АСТЕРИКС ТО МАКЕ ииГС█╙ ЙСР ╓ФЕ╠Ф ╩ЦЛОЦК СЕЛФ╜ИНСТАЛЛИНГ█╙ БЦС ииЕцЛК█╙ ЙМП ГСЦЛК██ииЕцЛК═ЙСР═ПРИНТ█═ДБ═╠╛╥╛╟█═АСЦ═╖ ╠ ╜ тХУНДЕРЦЛОЦК цОМПАТИБЛЕ╖╛╟Д█═АСЦ═╖ ╡ ╜ а╝е╝ тИМЕМАСТЕР ии х╝о╝╖╛╟Д█═АСЦ═╖ Ё ╜ а╝е╝ сЕРИАЛ пРО╖╛╟Д█═АСЦ═╖ ╢ ╜ а╝е╝ уЛТРА цЛОЦК╖╛╟Д█═АСЦ═╖ ╣ ╜ а╝е╝ ╞╞Ц сЫСТЕМ цЛОЦК╖╛╟Д█═АСЦ═╖ ╤ ╜ смт нО╜сЛОТ цЛОЦК╖╛╟Д█═АСЦ═╖ ╥ ╜ пРОдос цОМПАТИБЛЕ цЛОЦК╖╛╟Д█═АСЦ═╖ ╦ ╜ мОУНТАИН хАРДВАРЕ цЛОЦК╖╛╟Д█═АСЦ═╖ ╧ ╜ пРОМЕТХЕУС жЕРСАЦАРД╖╛╟Д█═АСЦ═╖╠╟ ╜ ииГС бУИЛТ╜ИН цЛОЦК╖╛╟Д█═АСЦ═╖╠╠ ╜ нО цЛОЦК ИН сЫСТЕМ╖╛╟Д╛╟Д█═АСЦ═╖вХИЦХ© ш╠╜╠╠щ ╖╛╟╟██═ЛДЬ═ё╠╠█═ЙСР═ИНПНУМ██═ПХА█═АСЛ═А█═ТАЬ█═ЛДА═╨ЦЛКТАБЛЕ╛Ь█═СТА═ПОИНТ╟█═ИНЬ█═ЛДА═╨ЦЛКТАБЛЕ╛Ь█═СТА═ПОИНТ╟╚╠██═ПЛА█═ЦМП═ё╢═╩УЛТРА█═БЕЯ═╨НОСЛОТ█═ЦМП═ё╤═╩НО СЛОТ ЦЛОЦК█═БЕЯ═╨НОСЛОТ█═ЦМП═ё╥═╩ПРОДОС ЦОМПАТАБЛЕ█═БЕЯ═╨НОСЛОТ█═ЦМП═ё╠╟═╩ИИГС БУИЛТ ИН█═БЕЯ═╨НОСЛОТ█═ЦМП═ё╠╠═╩НО ЦЛОЦК█═БЕЯ═╨НОСЛОТ██═ЙСР═ПРИНТ█═ДБ═╠╛╡╠╛╟█═АСЦ═╖вХИЦХ СЛОТ╞ПОРТ ДОЕС ТХЕ ЦЛОЦК УСЕ©╖╟Д█═АСЦ═╖ш╠╜╥щ ╖╟╟██═ЛДЬ═ё╥═╩ ГЕТ СЛОТ█═ЙСР═ИНПНУМ█═АСЛ═А█═АСЛ═А█═АСЛ═А█═АСЛ═А█╨НОСЛОТ═ПХА══╩САЖЕ СЛОТ██═ЙСР═ЦЛС█═ЙСР═ПРИНТ█═ДБ═╠╛╥╛╟█═АСЦ═╖вХАТ ТИМЕ ФОРМАТ ДО ЫОУ ВАНТ©╖╛╟Д╛╟Д█═АСЦ═╖ ╠ ╜ ╠╡ ХОУР╖╛╟Д█═АСЦ═╖ ╡ ╜ ╡╢ ХОУР╖╛╟Д╛╟Д█═АСЦ═╖вХИЦХ© ш╠╜╡щ╨ ╖╛╟╟██═ЛДЬ═ё╡═╩ ГЕТ МОДЕ█═ЙСР═ИНПНУМ█═ЛДЬ═ё╓╦╟█═ЦМП═ё╠█═БЕЯ═╨╡╢ХР█═ЛДЬ═ё╓╟╟██╨╡╢ХР═ТЬА══╩ПУТ МОДЕ ИН АЦЦУМ╝█═ПХА══╩САЖЕ МОДЕ███═ЛДЫ═ё╟═╩МОЖЕ ТХЕ СИНГЛЕ ПАГЕ█╨ЛООП═ЛДА═╗ПОИНТ╟╘╛Ы═╩СОУРЦЕ█═СТА═ЦЛКДРЖ╛Ы═╩ДЕСТИНАТИОН█═ИНЫ█═БНЕ═╨ЛООП██═ПЛА══╩ГЕТ ТХЕ МОДЕ БАЦК█═СТА═ЦЛКДРЖ╚╠█═ПЛА══╩ГЕТ ТХЕ СЛОТ БАЦК█═СТА═ЦЛКДРЖ██═ЙСР═ЦХИНИТ═╩ ЦХЕЦК ФОР ИНИТ█═ЙМП═ВРТЦХГ═╩ ВРИТЕ ТХЕ ЦХАНГЕС██╨ЦЛКТАБЛЕ═ДВ═╟█═ДА═ТХУНДЕР█═ДА═ТХУНДЕР█═ДА═СЕРИАЛПРО█═ДА═УЛТРА█═ДА═ИИЦСЫС█═ДА═НОСЛОТ█═ДА═ПРОДОС█═ДА═МОУНТАИН█═ДА═ЖЕРСА█═ДА═ГСЦЛОЦК█═ДА═НУЛЛЦЛК██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ииГС ЦЛОЦК ИС ИНСТАЛЛЕД БЫ ИТСЕЛФ██ГСЦЛК═ЙСР═ПРИНТ█═ДБ═╠╛╥╛╟█═АСЦ═╖ииГС цЛОЦК ИНСТАЛЛЕД АУТОМАТИЦАЛЛЫ╝╝╝╖╛╟╟█═ЙСР═ГЕТЦР██═ЛДЫ═ё╟█╨ЛООП═ЛДА═ГСЦЛОЦК╛Ы█═СТА═ЦЛКДРЖ╛Ы█═ИНЫ█═БНЕ═╨ЛООП██═ЙСР═ЦХИНИТ█═ЙМП═ВРТЦХГ███
|
||||
*-------------------------------
|
||||
* reconfigure clocks
|
||||
*-------------------------------
|
||||
|
||||
gsclock ext ;gs clock driver
|
||||
serialpro ext ;serialpro driver
|
||||
thunder ext ;thunderclock/timemaster driver
|
||||
iicsys ext ;iic system clock
|
||||
mountain ext ;mountain clock
|
||||
prodos ext ;standard prodos stuff
|
||||
nullclk ext ;no clock
|
||||
noslot ext ;no slot clock
|
||||
versa ext ;prometheus versacard
|
||||
ultra ext ;ultra clock driver
|
||||
|
||||
|
||||
|
||||
re_clk jsr TopBox
|
||||
jsr print
|
||||
db 1,3,10
|
||||
asc '- Reconfigure Clock -',00
|
||||
|
||||
jsr cls
|
||||
|
||||
* sec ;remove asteriks to make IIgs
|
||||
* jsr $fe1f ;clock self-installing
|
||||
* bcs IIeClk
|
||||
* jmp gsclk
|
||||
|
||||
IIeClk jsr print
|
||||
db 1,7,0
|
||||
asc ' 1 - Thunderclock Compatible',0d
|
||||
asc ' 2 - A.E. Timemaster II H.O.',0d
|
||||
asc ' 3 - A.E. Serial Pro',0d
|
||||
asc ' 4 - A.E. Ultra Clock',0d
|
||||
asc ' 5 - A.E. //c System Clock',0d
|
||||
asc ' 6 - SMT No-Slot Clock',0d
|
||||
asc ' 7 - ProDOS Compatible Clock',0d
|
||||
asc ' 8 - Mountain Hardware Clock',0d
|
||||
asc ' 9 - Prometheus Versacard',0d
|
||||
asc '10 - IIgs Built-in Clock',0d
|
||||
asc '11 - No Clock in System',0d,0d
|
||||
asc 'Which? [1-11] ',00
|
||||
|
||||
ldx #11
|
||||
jsr inpnum
|
||||
|
||||
pha
|
||||
asl a
|
||||
tax
|
||||
lda :clktable,x
|
||||
sta point0
|
||||
inx
|
||||
lda :clktable,x
|
||||
sta point0+1
|
||||
|
||||
pla
|
||||
cmp #4 ;ultra
|
||||
beq :noslot
|
||||
cmp #6 ;no slot clock
|
||||
beq :noslot
|
||||
cmp #7 ;prodos compatable
|
||||
beq :noslot
|
||||
cmp #10 ;iigs built in
|
||||
beq :noslot
|
||||
cmp #11 ;no clock
|
||||
beq :noslot
|
||||
|
||||
jsr print
|
||||
db 1,21,0
|
||||
asc 'Which slot/port does the clock use?'0d
|
||||
asc '[1-7] '00
|
||||
|
||||
ldx #7 ; get slot
|
||||
jsr inpnum
|
||||
asl a
|
||||
asl a
|
||||
asl a
|
||||
asl a
|
||||
:noslot pha ;save slot
|
||||
|
||||
jsr cls
|
||||
jsr print
|
||||
db 1,7,0
|
||||
asc 'What time format do you want?',0d,0d
|
||||
asc ' 1 - 12 hour',0d
|
||||
asc ' 2 - 24 hour',0d,0d
|
||||
asc 'Which? [1-2]: ',00
|
||||
|
||||
ldx #2 ; get mode
|
||||
jsr inpnum
|
||||
ldx #$80
|
||||
cmp #1
|
||||
beq :24hr
|
||||
ldx #$00
|
||||
|
||||
:24hr txa ;put mode in accum.
|
||||
pha ;save mode
|
||||
|
||||
|
||||
ldy #0 ;move the single page
|
||||
:loop lda (point0),y ;source
|
||||
sta clkdrv,y ;destination
|
||||
iny
|
||||
bne :loop
|
||||
|
||||
pla ;get the mode back
|
||||
sta clkdrv+1
|
||||
pla ;get the slot back
|
||||
sta clkdrv
|
||||
|
||||
jsr chinit ; check for init
|
||||
jmp wrtchg ; write the changes
|
||||
|
||||
:clktable dw 0
|
||||
da thunder
|
||||
da thunder
|
||||
da serialpro
|
||||
da ultra
|
||||
da iicsys
|
||||
da noslot
|
||||
da prodos
|
||||
da mountain
|
||||
da versa
|
||||
da gsclock
|
||||
da nullclk
|
||||
|
||||
*-------------------------------
|
||||
* IIgs clock is installed by itself
|
||||
|
||||
gsclk jsr print
|
||||
db 1,7,0
|
||||
asc 'IIgs Clock installed automatically...',00
|
||||
jsr getcr
|
||||
|
||||
ldy #0
|
||||
:loop lda gsclock,y
|
||||
sta clkdrv,y
|
||||
iny
|
||||
bne :loop
|
||||
|
||||
jsr chinit
|
||||
jmp wrtchg
|
||||
|
||||
|
||||
|
|
|
@ -1 +1,202 @@
|
|||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 <EFBFBD><EFBFBD> 御篝屙 渺镢<EFBFBD> <EFBFBD> 泊 栩崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 义鲩箦<EFBFBD> 尼翦<EFBFBD> 案<EFBFBD>帛阜崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖崰祗魻镦鎹崰<EFBFBD>崰蝈鞃犱箅狉屐<EFBFBD>殂簌髰嶉殂簌鬆孱魨崰矧鐮ぐ浒皪嶌钼蹑犲聃牑舶皪嵹抡茽叛諣ご睄性覡叛諣ご矋嶓翎舯犲聃牑惆构嶃镯肀犲聃牑惆贯嶓翎舨犲聃牑惆峁嶃镯聿犲聃牑惆後崓怡翥铘犲聃牑板俺嶎蹯祓趄犲聃牑搬崓盱闋羼鯛も姘皪溽翦犲聃牑怄拱嶔轫鍫羼鯛も婀矋珏暨糸礤犲聃牑覆崓嶓祜魻桢鵂舶嶍镤鍫溻牥崓犫蜥犵弭溽翦嶔轫弪犱鉅鞍崰觏馉珏趑轫鍗狉趔牋<EFBFBD> 觏<EFBFBD> 箦翡狒鍗崻 珏<EFBFBD> 翳<EFBFBD> 溽翦 轭 痱镤矬 玮怏 骘蝽狒崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖珏翡狒鍫牦驙盱闋<EFBFBD> 盱<EFBFBD> 汜祆崰溻犵弭唪轫鍫<EFBFBD> 珏暨糸礤崰桢鵂鞍鞍牷 铒 痱犴狒弪 翎忪鍗崰熹鵂溽翦崰熹釥溽翦<EFBFBD>嶓弭溽翦狉趔崓<EFBFBD> 珏<EFBFBD> 翳<EFBFBD> 沲蝌孱<EFBFBD> 糸礤崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖珏趑轫鍫牦驙蜾糸礤崰忾魻盹溴崰怵鞝玺轫灞崰牦驙泔铞弪魨嶇糸礤睜熹鵂<糸礤篝驙<EFBFBD> 痫轭<EFBFBD> 麸 篝蜷铉崰熹釥>糸礤篝驆狉趔崓<EFBFBD> 蝈徜 糸礤 骝镯 沆镢雿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嶒漪轫鍫熹釥6礌<EFBFBD> 蝈徜 翳<EFBFBD> 溽翦 犷<EFBFBD> 糸礤 骝镯 沆镢雿轭轸边睜痂釐轭轸边矤筲銧1崰忸鍫轭轸边矋狆灬崰筲銧1牷 玳鲥 痨孱豉 镦 箦趱<EFBFBD> 溴灬鶏犫铄犻铋舯弑崓狆桊崰箦閸轭轸边碃熹釥泔眄睜<EFBFBD> 珏<EFBFBD> 沲蝌孱<EFBFBD> 箦趑轭鐛狆栳崓犾澌牐硩犾澍牐膊崰熹釥8嶉铋舨狊翎犮镯肀牷 箦钿 轭轸 箦聃孱沐 麸 沆镢雿嶉铋舨弑犱屮牋<EFBFBD> 轭趄岘忾<EFBFBD> 溴灬鶏犫铄犻铋舨弑崓犲矧牐ぐ釥<EFBFBD> 麸珑戾 忉汶 犷<EFBFBD> 骘螋鑽犾澍牐北崰溴鶏犫铄犻铋舨牷 脲屦 祜镳轭鐛崰熹鶢4崰熹鵂8崰忸鍫轭轸尺矤<EFBFBD> 箅轲 轭轸獒<EFBFBD> 溴灬鶏嶉铋舫犾溽牐こ磵狊翎狋轫弪牷 溴灬<EFBFBD> 麒殪<EFBFBD> 沆镢<EFBFBD> 箦趔 躔嶉铋舫弑犱邈狋轫弪牷 麸 箦钿 翳<EFBFBD> 溽翦<EFBFBD>轫鍗犫铄犻铋舫弑崓轭轸尺矤熹釥篝狒睜<EFBFBD> 箬殒<EFBFBD> 忾<EFBFBD> 溽翎 轭麸 铋忖戾崰蝻鞃狉镬崰蝻鞃狉矧犱狒弩趄崰溴鴯犫铄犻铋舫牷 顼 忉汶 麸 溴灬鶏崰熹釥溽翦篝驆犲矧牐盃<EFBFBD> 筢鲥 翳<EFBFBD> 铋忖戾崰篝釥溽翦篝颥鶏崰熹鵂8崰溴鶏犫痨犻铋舫崓狆灬嶉铋舫叱狊翎犮镯肀牷 蝈麸蝈 踽螋 麸 轭轸獒<EFBFBD> 箦趑轭珞崓犾澌牐钡崰熹鵂4崓轭轸礌熹釥溽翦篝颥鴯狆栳崰犷錉¥版牷 痱镢弩<EFBFBD> 溟玳<EFBFBD> <EFBFBD>犭<EFBFBD> 轭麸 狍汩椹崰矧釥¥嘲崰篝釥溽翦篝颥鶏崰溴鶏狆灬崰祗驆犾篁崰祗驙牷 痱镢弩<EFBFBD> 麸<EFBFBD> 镦 铋忖戾崰祗驆狅蜥牐こ盃<EFBFBD> 趱蝾 轭麸 狍汩閸狊翎犱狒弩趄<EFBFBD>崓犱妁崰溴鶏犱屮崰怵鞝轭轸磵狆祓崓犾溽牐Ш<EFBFBD>狊翎狋轫弩趄<EFBFBD>牷 瘐<EFBFBD> 糸礤 溟鲩溴蝮 轭崰篝釥糸礤篝颢祶崰熹鵂<糸礤篝驙<EFBFBD> 痫轭<EFBFBD> 麸 篝蜷铉崰熹釥>糸礤篝驆狉趔崓<EFBFBD> 泔铞弪<EFBFBD> 糸礤 麸 辈栩 骘蝽狒崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嶃镱鲥螋犾溽狋轫弩趄牷泔铞弪<EFBFBD> 麸 辈 栾躜崰熹鵂糸礤篝颢睄崰犷錉¥版崰翎鶏狋<EFBFBD>崰犷錉¥版崓犱妁崰忭闋泔铞矋犮煦崰徜銧1皪犱妁崰忭闋泔铞矋犪溷牐卑崓泔铞矤沩馉1矋犫铄犮镱霾釐犾溽牐泊嶃镱霾釥翎鶏犫铄犮镱龀崰熹釥1矋嶃镱龀犾澍牐Я<EFBFBD>犮眇牐背崰忏銧泔铞磵崰筲銧1矋犾澍牐<EFBFBD><EFBFBD>嶃镱龃犾澌牐О<EFBFBD>泔铞禒沩馉1皪犫沣犮镱龆崓狊忏牐卑崰轭鶏犫铄犮镱龅崓泔铞稜矧釥'哀崰篝釥糸礤篝颢睄狊豉狋轫弩趄崰篝鵂糸礤篝颢箥犾澍牐<EFBFBD><EFBFBD>狊豇狋轫弩趄<EFBFBD>皪狉趔崓溽翦篝驙狍銧О<EFBFBD> 鞍 鞍<EFBFBD>糸礤篝驙狍銧О昂鞍喊<EFBFBD> <EFBFBD>
|
||||
*-------------------------------
|
||||
* //c System Clock - 24 hr
|
||||
*-------------------------------
|
||||
* Revised Date: 08/02/87
|
||||
*-------------------------------
|
||||
|
||||
lst off
|
||||
|
||||
xc
|
||||
rel
|
||||
dsk rel/iicsys
|
||||
|
||||
iicsys ent
|
||||
|
||||
org $0d00
|
||||
|
||||
lnbuf equ $200
|
||||
|
||||
ZBUF EQU $41
|
||||
PTR EQU $42
|
||||
|
||||
stat1 equ $c099
|
||||
comm1 equ $c09a
|
||||
stat2 equ $c0a9
|
||||
comm2 equ $c0aa
|
||||
|
||||
bytcnt equ $0e03
|
||||
nullptr equ $0a
|
||||
|
||||
mli equ $bf00
|
||||
date equ $bf90
|
||||
time equ $bf92
|
||||
get_time equ $82
|
||||
|
||||
|
||||
slot hex 20
|
||||
mode db 0
|
||||
|
||||
bra getdate
|
||||
timer db 00
|
||||
jmp gettime
|
||||
rts ; jmp setdate
|
||||
|
||||
* get the date in prodos gbbs format
|
||||
*-------------------------------
|
||||
getdate jsr mli ; mli call
|
||||
db get_time ; get_time
|
||||
hex 0000 ; no pramater table
|
||||
|
||||
ldx date
|
||||
lda date+1
|
||||
setdate rts
|
||||
|
||||
* get the current time
|
||||
*-------------------------------
|
||||
gettime jsr rdtime
|
||||
bit mode
|
||||
bpl gtime1
|
||||
jsr convert
|
||||
|
||||
gtime1 ldx #<timestr ; point to string
|
||||
lda #>timestr
|
||||
rts
|
||||
|
||||
* read time from clock
|
||||
*-------------------------------
|
||||
rdtime lda #64 ; read the date and time from clock
|
||||
init1_1 pha
|
||||
init1_2 sbc #1
|
||||
bne init1_2
|
||||
pla
|
||||
sbc #1 ; give plenty of setup delay
|
||||
bne init1_1
|
||||
|
||||
php
|
||||
sei
|
||||
init1_3 lda comm1 ; get current setting
|
||||
pha
|
||||
|
||||
ldy #3
|
||||
ldx #22
|
||||
lda #8
|
||||
init2 sta comm1 ; send init sequence to clock
|
||||
|
||||
init2_1 dex ; intra-bit delay
|
||||
bne init2_1
|
||||
|
||||
eor #$0a ; toggle back and forth
|
||||
ldx #11
|
||||
dey
|
||||
bne init2 ; keep looping
|
||||
|
||||
ldy #4
|
||||
ldx #8
|
||||
bne init3_2 ; skip initial delay
|
||||
|
||||
init3 lda #$34
|
||||
sta timer ; delay while clock sets up
|
||||
init3_1 dec timer ; to send the date/time
|
||||
bne init3_1
|
||||
|
||||
init3_2 lda stat1 ; shift bit data into nibble
|
||||
rol
|
||||
rol
|
||||
rol
|
||||
ror datestr
|
||||
dex
|
||||
bne init3 ; go back to delay
|
||||
|
||||
lda datestr
|
||||
eor #0 ; save the nibble
|
||||
sta datestr,y
|
||||
|
||||
ldx #8
|
||||
dey
|
||||
bpl init3
|
||||
|
||||
pla
|
||||
init3_3 sta comm1 ; retore uart to initial settings
|
||||
|
||||
ldy #15
|
||||
ldx #4
|
||||
|
||||
init4 lda datestr,x
|
||||
pha
|
||||
and #$0f ; process digit (make into ascii)
|
||||
ora #$30
|
||||
sta datestr,y
|
||||
|
||||
dey
|
||||
pla
|
||||
lsr
|
||||
lsr
|
||||
lsr ; process top of nibble
|
||||
lsr
|
||||
ora #$30 ; turn into ascii
|
||||
sta datestr,y
|
||||
|
||||
dey
|
||||
dey
|
||||
dex
|
||||
bpl init4
|
||||
plp
|
||||
|
||||
lda #':'
|
||||
sta timestr+2 ; put time dividers in
|
||||
sta timestr+5
|
||||
|
||||
ldx #<timestr ; point to string
|
||||
lda #>timestr
|
||||
rts
|
||||
|
||||
* convert time to 12hr format
|
||||
*----------------------------
|
||||
convert lda timestr ;convert to 12 hour
|
||||
ldx timestr+1
|
||||
|
||||
and #$0f
|
||||
tay
|
||||
txa
|
||||
and #$0f
|
||||
|
||||
dey
|
||||
bmi conv2
|
||||
clc
|
||||
adc #10
|
||||
dey
|
||||
bmi conv2
|
||||
adc #10
|
||||
|
||||
conv2 cmp #12
|
||||
bne conv2a
|
||||
lda #24
|
||||
conv2a tay
|
||||
bne conv3
|
||||
lda #12
|
||||
|
||||
conv3 ldx #'A'
|
||||
cmp #13
|
||||
bcc conv4
|
||||
|
||||
sbc #12
|
||||
ldx #'P'
|
||||
|
||||
conv4 ldy #'0'
|
||||
conv5 cmp #10
|
||||
bcc conv6
|
||||
|
||||
sbc #10
|
||||
iny
|
||||
bne conv5
|
||||
|
||||
conv6 ora #'0'
|
||||
sta timestr+1
|
||||
sty timestr
|
||||
stx timestr+9
|
||||
ldx #'M'
|
||||
stx timestr+10
|
||||
rts
|
||||
|
||||
datestr asc '00 00 00'
|
||||
timestr asc '00:00:00 '
|
||||
|
|
|
@ -1 +1,166 @@
|
|||
█╙ гс цЛОЦК ДРИЖЕР БИОС█╙ вРИТТЕН БЫ аНДЫ нИЦХОЛАС ╜ ╟╥╞Ё╟╞╦╥█╙ РЕВРИТТЕН БЫ аНДЫ Ё╞╠╠╞╦╦█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██═ЛСТ═ОФФ██═ЬЦ█═ЬЦ══╩ ГОТО ╤╣╦╠╤ МОДЕ██═РЕЛ█═ДСК═РЕЛ╞ГСЦЛОЦК██ГСЦЛОЦК═ЕНТ██═ОРГ═╓Д╟╟██╙ йУМП тАБЛЕ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██ДОВ═ДБ═╟█МОДЕ═ДБ═╟██═ЙМП═ГЕТДАТЕ═╩ЦАЛЛ ТО ГЕТ ТХЕ ДАТЕ█═ЙМП═ГЕТТИМЕ═╩ЦАЛЛ ТО ГЕТ ТХЕ ТИМЕ ╗ФОРМАТТЕД╘█═ЙМП═СЕТДАТЕ═╩КНОВН РЕТУРН ПОИНТ██╙ рЕАД цЛОЦК ФРОМ пРОдос█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██МЛИ═ЕЯУ═╓БФ╟╟█ДАТЕ═ЕЯУ═╓БФ╧╟██ГЕТДАТЕ═ЙСР═МЛИ═╩РЕАД ТХЕ ЦЛОЦК ИНТО█═ХЕЬ═╦╡═╩БУФФЕР АТ ╓╡╟╟█═ДА═╟██═ЛДЬ═ДАТЕ═╩РЕАД ДАТЕ ИН ЦОМПРЕССЕД ФОРМ█═ЛДА═ДАТЕ╚╠═╩ИНТО а ╕ ь█СЕТДАТЕ═РТС██╙ ГЕТ ТХЕ ЦУРРЕНТ ТИМЕ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ГЕТТИМЕ═ЙСР═РДТИМЕ█═БИТ═МОДЕ█═БПЛ═ГТИМЕ╠█═ЙСР═ЦОНЖЕРТ██ГТИМЕ╠═ЛДЬ═ё╪ТИМЕСТР═╩ ПОИНТ ТО СТРИНГ█═ЛДА═ё╬ТИМЕСТР█═РТС██╙ РЕАД ТИМЕ ФРОМ ЦЛОЦК█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█РДТИМЕ═ЦЛЦ══╩ГО ТО НАТИЖЕ МОДЕ█═ЬЦЕ█═РЕП═ё╓Ё╟═╩АНД ╠╤ БИТ а╛ ь╛ АНД ы█═МЬ═╔╟╟██═ПХА══╩СТАЦК СПАЦЕ ФОР РЕСУЛТС█═ПХА█═ПХА█═ПХА█═ЛДЬ═ё╓╟Д╟Ё═╩рЕАДтИМЕхЕЬ█═ЙСЛ═╓Е╠╟╟╟╟═╩тООЛ лОЦАТЕР█═СЕЦ█═ЬЦЕ══╩ЕМУЛАТИОН МОДЕ█═МЬ═╔╠╠██═ПЛА══╩ СЕЦОНДС█═ЙСР═БИНДЕЦ╦═╩ ЦОНЖЕРТ ТО ТВО БЫТЕ█═СТА═ТИМЕСТР╚╤█═СТЬ═ТИМЕСТР╚╥█═ПЛА══╩ МИНУТЕС█═ЙСР═БИНДЕЦ╦═╩ ЦОНЖЕРТ ТО ТВО БЫТЕ█═СТА═ТИМЕСТР╚Ё█═СТЬ═ТИМЕСТР╚╢█═ПЛА══╩ ХОУР█═ЙСР═БИНДЕЦ╦═╩ ЦОНЖЕРТ ТО ТВО БЫТЕ█═СТА═ТИМЕСТР█═СТЬ═ТИМЕСТР╚╠█═ПЛА══╩ ЫЕАР█═ПЛА══╩ ДАЫ ОФ МОНТХ█═ПЛА══╩ МОНТХ█═ПЛА══╩ УНУСЕД БЫТЕ█═ПЛА══╩ ДАЫ ОФ ТХЕ ВЕЕК█═СТА═ДОВ██═ЛДА═ё╖ ╖█═СТА═ТИМЕСТР╚╧█═СТА═ТИМЕСТР╚╠╟██═РТС══╩БЫЕ╝╝███╙ ЦОНЖЕРТ ТИМЕ ТО ╠╡ХР ФОРМАТ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ЦОНЖЕРТ═ЛДА═ТИМЕСТР═╩ЦОНЖЕРТ ТО ╠╡ ХОУР█═ЛДЬ═ТИМЕСТР╚╠██═АНД═ё╓╟Ф█═ТАЫ█═ТЬА█═АНД═ё╓╟Ф██═ДЕЫ█═БМИ═ЦОНЖ╡█═ЦЛЦ█═АДЦ═ё╠╟█═ДЕЫ█═БМИ═ЦОНЖ╡█═АДЦ═ё╠╟██ЦОНЖ╡═ЦМП═ё╠╡█═БНЕ═ЦОНЖ╡А█═ЛДА═ё╡╢█ЦОНЖ╡А═ТАЫ█═БНЕ═ЦОНЖЁ█═ЛДА═ё╠╡██ЦОНЖЁ═ЛДЬ═ё╖а╖█═ЦМП═ё╠Ё█═БЦЦ═ЦОНЖ╢██═СБЦ═ё╠╡█═ЛДЬ═ё╖п╖██ЦОНЖ╢═ЛДЫ═ё╖╟╖█ЦОНЖ╣═ЦМП═ё╠╟█═БЦЦ═ЦОНЖ╤██═СБЦ═ё╠╟█═ИНЫ█═БНЕ═ЦОНЖ╣██ЦОНЖ╤═ОРА═ё╖╟╖█═СТА═ТИМЕСТР╚╠█═СТЫ═ТИМЕСТР█═СТЬ═ТИМЕСТР╚╧█═ЛДЬ═ё╖м╖█═СТЬ═ТИМЕСТР╚╠╟█═РТС██╙ ТРАНСЛАТЕ А БИНАРЫ ТО ТЕЬТ ш╟╜╧╧щ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█БИНДЕЦ╦═ЦМП═ё╤╟═╩ ПУТ ЛИМИТ ОФ ╣╧█═БЦЦ═БИН╦█═ЛДА═ё╣╧██БИН╦═ЛДЫ═ё╟═╩ СТАРТ ╠╟╖С ЦОУНТЕР█БИН╦А═ЦМП═ё╠╟█═БЦЦ═БИН╦Б═╩ ЛЕСС ТХАН ╠╟╛ ВЕРЕ ДОНЕ██═СБЦ═ё╠╟═╩ МИНУС ╠╟█═ИНЫ══╩ АДД ╠ ТО ТХЕ ╠╟╖С ЦОУНТЕР█═БНЕ═БИН╦А═╩ ЛООП██БИН╦Б═АДЦ═ё╖╟╖═╩ МАКЕ ╠╖С ИНТО ТЕЬТ█═ТАЬ══╩ САЖЕ█═ТЫА█═АДЦ═ё╖╟╖═╩ МАКЕ ╠╟╖С ИНТО ТЕЬТ█═РТС══╩ ВЕРЕ ДОНЕ██╙ ╖╟╠╡Ё╢╣╤╥╦╧╟█ТИМЕСТР═АСЦ═╖╠╡╨╟╟╨╟╟ ╖█
|
||||
*-------------------------------
|
||||
* GS Clock driver bios
|
||||
* Written by Andy Nicholas - 07/30/87
|
||||
* rewritten by Andy 3/11/88
|
||||
*-------------------------------
|
||||
|
||||
lst off
|
||||
|
||||
xc
|
||||
xc ; goto 65816 mode
|
||||
|
||||
rel
|
||||
dsk rel/gsclock
|
||||
|
||||
gsclock ent
|
||||
|
||||
org $d00
|
||||
|
||||
* Jump Table
|
||||
*-------------------------------
|
||||
|
||||
dow db 0
|
||||
mode db 0
|
||||
|
||||
jmp getdate ;call to get the date
|
||||
jmp gettime ;call to get the time (formatted)
|
||||
jmp setdate ;known return point
|
||||
|
||||
* Read Clock from ProDOS
|
||||
*-------------------------------
|
||||
|
||||
mli equ $bf00
|
||||
date equ $bf90
|
||||
|
||||
getdate jsr mli ;read the clock into
|
||||
hex 82 ;buffer at $200
|
||||
da 0
|
||||
|
||||
ldx date ;read date in compressed form
|
||||
lda date+1 ;into A & X
|
||||
setdate rts
|
||||
|
||||
* get the current time
|
||||
*-------------------------------
|
||||
gettime jsr rdtime
|
||||
bit mode
|
||||
bpl gtime1
|
||||
jsr convert
|
||||
|
||||
gtime1 ldx #<timestr ; point to string
|
||||
lda #>timestr
|
||||
rts
|
||||
|
||||
* read time from clock
|
||||
*-------------------------------
|
||||
rdtime clc ;go to native mode
|
||||
xce
|
||||
rep #$30 ;and 16 bit A, X, and Y
|
||||
mx %00
|
||||
|
||||
pha ;stack space for results
|
||||
pha
|
||||
pha
|
||||
pha
|
||||
ldx #$0d03 ;ReadTimeHex
|
||||
jsl $e10000 ;Tool Locater
|
||||
sec
|
||||
xce ;emulation mode
|
||||
mx %11
|
||||
|
||||
pla ; seconds
|
||||
jsr bindec8 ; convert to two byte
|
||||
sta timestr+6
|
||||
stx timestr+7
|
||||
pla ; minutes
|
||||
jsr bindec8 ; convert to two byte
|
||||
sta timestr+3
|
||||
stx timestr+4
|
||||
pla ; hour
|
||||
jsr bindec8 ; convert to two byte
|
||||
sta timestr
|
||||
stx timestr+1
|
||||
pla ; year
|
||||
pla ; day of month
|
||||
pla ; month
|
||||
pla ; unused byte
|
||||
pla ; day of the week
|
||||
sta dow
|
||||
|
||||
lda #' '
|
||||
sta timestr+9
|
||||
sta timestr+10
|
||||
|
||||
rts ;bye..
|
||||
|
||||
|
||||
* convert time to 12hr format
|
||||
*----------------------------
|
||||
convert lda timestr ;convert to 12 hour
|
||||
ldx timestr+1
|
||||
|
||||
and #$0f
|
||||
tay
|
||||
txa
|
||||
and #$0f
|
||||
|
||||
dey
|
||||
bmi conv2
|
||||
clc
|
||||
adc #10
|
||||
dey
|
||||
bmi conv2
|
||||
adc #10
|
||||
|
||||
conv2 cmp #12
|
||||
bne conv2a
|
||||
lda #24
|
||||
conv2a tay
|
||||
bne conv3
|
||||
lda #12
|
||||
|
||||
conv3 ldx #'A'
|
||||
cmp #13
|
||||
bcc conv4
|
||||
|
||||
sbc #12
|
||||
ldx #'P'
|
||||
|
||||
conv4 ldy #'0'
|
||||
conv5 cmp #10
|
||||
bcc conv6
|
||||
|
||||
sbc #10
|
||||
iny
|
||||
bne conv5
|
||||
|
||||
conv6 ora #'0'
|
||||
sta timestr+1
|
||||
sty timestr
|
||||
stx timestr+9
|
||||
ldx #'M'
|
||||
stx timestr+10
|
||||
rts
|
||||
|
||||
* translate a binary to text [0-99]
|
||||
*-------------------------------
|
||||
bindec8 cmp #60 ; put limit of 59
|
||||
bcc bin8
|
||||
lda #59
|
||||
|
||||
bin8 ldy #0 ; start 10's counter
|
||||
bin8a cmp #10
|
||||
bcc bin8b ; less than 10, were done
|
||||
|
||||
sbc #10 ; minus 10
|
||||
iny ; add 1 to the 10's counter
|
||||
bne bin8a ; loop
|
||||
|
||||
bin8b adc #'0' ; make 1's into text
|
||||
tax ; save
|
||||
tya
|
||||
adc #'0' ; make 10's into text
|
||||
rts ; were done
|
||||
|
||||
* '01234567890
|
||||
timestr asc '12:00:00 '
|
||||
|
|
|
@ -1 +1,155 @@
|
|||
╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ мОУНТИАН хАРДВАРЕ дРИЖЕР█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ рЕЖИСЕД дАТЕ╨ ╟╦╞╟╡╞╦╥█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██═ЛСТ═ОФФ██═РЕЛ█═ДСК═РЕЛ╞МОУНТАИН██МОУНТАИН═ЕНТ██═ОРГ═╓╟Д╟╟██МЛИ═ЕЯУ═╓БФ╟╟█ДАТЕ═ЕЯУ═╓БФ╧╟█ТИМЕ═ЕЯУ═╓БФ╧╡█ГЕТъТИМЕ═ЕЯУ═╓╦╡███СЛОТ═ХЕЬ═╢╟█МОДЕ═ДБ═╟██═ЙМП═ГЕТДАТЕ█═ЙМП═ГЕТТИМЕ█═ЙМП═СЕТДАТЕ██╙ ГЕТ ТХЕ ДАТЕ ИН ПРОДОС ГББС ФОРМАТ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ГЕТДАТЕ═ЙСР═МЛИ═╩ МЛИ ЦАЛЛ█═ДБ═ГЕТъТИМЕ═╩ ГЕТъТИМЕ█═ХЕЬ═╟╟╟╟═╩ НО ПРАМАТЕР ТАБЛЕ██═ЛДЬ═ДАТЕ█═ЛДА═ДАТЕ╚╠█СЕТДАТЕ═РТС██╙ ГЕТ ТХЕ ЦУРРЕНТ ТИМЕ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ГЕТТИМЕ═ЙСР═РДТИМЕ█═БИТ═МОДЕ█═БПЛ═ГТИМЕ╠█═ЙСР═ЦОНЖЕРТ██ГТИМЕ╠═ЛДЬ═ё╪ТИМЕСТР═╩ ПОИНТ ТО СТРИНГ█═ЛДА═ё╬ТИМЕСТР█═РТС██╙ ГЕТ ТИМЕ РОУТИНЕ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█РДТИМЕ═ЙСР═РДЦЛОЦК█═ЛДА═ё╖╨╖═╩ ЦЛЕАН УП ФОРМАТ█═СТА═ТИМЕСТР╚╡█═СТА═ТИМЕСТР╚╣█═РТС██╙ РЕАД ТИМЕ ФРОМ ЦЛОЦК█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█РДЦЛОЦК═ЛДА═╓Ё╦█═ПХА█═ЛДА═╓Ё╧═╩ САЖЕ ЗП АДДРЕССЕС█═ПХА█═ЛДА═СЛОТ█═ЛСР█═ЛСР█═ЛСР█═ЛСР█═ОРА═ё╓Ц╟█═СТА═╓Ё╧═╩ ПОИНТ ТО ЦЛОЦК ЕНТРЫ█═СТА═ЦАЛЛЦЛК╚╡█ЦАЛЛЦЛК═ЙСР═╓Ц╟╟╟═╩ ЦАЛЛ ЦЛОЦК█═ПЛА█═СТА═╓Ё╧█═ПЛА══╩ РЕСТОРЕ ЗП█═СТА═╓Ё╦██═ЛДЬ═ё╓╟Д█═ЛДЫ═ё╟█МОЖТИМЕ═ЛДА═╓╡╦╤╛Ь═╩ МОЖЕ РЕТУРНЕД СТРИНГ█═АНД═ё╓╥Ф█═СТА═ДАТЕСТР╛Ы█═ИНЫ█═ДЕЬ█═БПЛ═МОЖТИМЕ█═РТС██╙ ЦОНЖЕРТ ТИМЕ ТО ╠╡ХР ФОРМАТ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ЦОНЖЕРТ═ЛДА═ТИМЕСТР═╩ЦОНЖЕРТ ТО ╠╡ ХОУР█═ЛДЬ═ТИМЕСТР╚╠██═АНД═ё╓╟Ф█═ТАЫ█═ТЬА█═АНД═ё╓╟Ф██═ДЕЫ█═БМИ═ЦОНЖ╡█═ЦЛЦ█═АДЦ═ё╠╟█═ДЕЫ█═БМИ═ЦОНЖ╡█═АДЦ═ё╠╟██ЦОНЖ╡═ЦМП═ё╠╡█═БНЕ═ЦОНЖ╡А█═ЛДА═ё╡╢█ЦОНЖ╡А═ТАЫ█═БНЕ═ЦОНЖЁ█═ЛДА═ё╠╡██ЦОНЖЁ═ЛДЬ═ё╖а╖█═ЦМП═ё╠Ё█═БЦЦ═ЦОНЖ╢██═СБЦ═ё╠╡█═ЛДЬ═ё╖п╖██ЦОНЖ╢═ЛДЫ═ё╖╟╖█ЦОНЖ╣═ЦМП═ё╠╟█═БЦЦ═ЦОНЖ╤██═СБЦ═ё╠╟█═ИНЫ█═БНЕ═ЦОНЖ╣██ЦОНЖ╤═ОРА═ё╖╟╖█═СТА═ТИМЕСТР╚╠█═СТЫ═ТИМЕСТР█═СТЬ═ТИМЕСТР╚╧█═ЛДЬ═ё╖м╖█═СТЬ═ТИМЕСТР╚╠╟█═РТС██╩ ЦОНЖЕРТ А ╡ БЫТЕ ДЕЦИМАЛ НУМБЕР ТО БИНАРЫ█ДЕЦБИН╦═АНД═ё╓╥Ф█═СЕЦ█═СБЦ═ё╖╟╖█═СТА═ДЕЦБЫТЕ═╩ САЖЕ ╠╟╖С ДИГИТ█═ТЬА══╩ МОЖЕ ╠╖С ИНТО а█═АНД═ё╓╥Ф█═СЕЦ█═СБЦ═ё╖╟╖██═ЛДЫ═ё╠╟█ДЕЦ╦А═ЦЛЦ█═АДЦ═ДЕЦБЫТЕ═╩ АДД ТХЕ ╠╟╖С ДИГИТ╛ ╠╟ ТИМЕС█═ДЕЫ█═БНЕ═ДЕЦ╦А█═РТС══╩ РЕТУРН ВИТХ РЕСУЛТ██ДЕЦБЫТЕ═ХЕЬ═╟╟█ДАТЕСТР═АСЦ═╖╟╟╞╟╟╞╟╟╖█ТИМЕСТР═АСЦ═╖╟╟╨╟╟╨╟╟ ╖█
|
||||
*-------------------------------
|
||||
* Mountian Hardware Driver
|
||||
*-------------------------------
|
||||
* Revised Date: 08/02/87
|
||||
*-------------------------------
|
||||
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/mountain
|
||||
|
||||
mountain ent
|
||||
|
||||
org $0d00
|
||||
|
||||
mli equ $bf00
|
||||
date equ $bf90
|
||||
time equ $bf92
|
||||
get_time equ $82
|
||||
|
||||
|
||||
slot hex 40
|
||||
mode db 0
|
||||
|
||||
jmp getdate
|
||||
jmp gettime
|
||||
jmp setdate
|
||||
|
||||
* get the date in prodos gbbs format
|
||||
*-------------------------------
|
||||
getdate jsr mli ; mli call
|
||||
db get_time ; get_time
|
||||
hex 0000 ; no pramater table
|
||||
|
||||
ldx date
|
||||
lda date+1
|
||||
setdate rts
|
||||
|
||||
* get the current time
|
||||
*-------------------------------
|
||||
gettime jsr rdtime
|
||||
bit mode
|
||||
bpl gtime1
|
||||
jsr convert
|
||||
|
||||
gtime1 ldx #<timestr ; point to string
|
||||
lda #>timestr
|
||||
rts
|
||||
|
||||
* get time routine
|
||||
*-------------------
|
||||
rdtime jsr rdclock
|
||||
lda #':' ; clean up format
|
||||
sta timestr+2
|
||||
sta timestr+5
|
||||
rts
|
||||
|
||||
* read time from clock
|
||||
*----------------------
|
||||
rdclock lda $38
|
||||
pha
|
||||
lda $39 ; save zp addresses
|
||||
pha
|
||||
lda slot
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
ora #$c0
|
||||
sta $39 ; point to clock entry
|
||||
sta callclk+2
|
||||
callclk jsr $c000 ; call clock
|
||||
pla
|
||||
sta $39
|
||||
pla ; restore zp
|
||||
sta $38
|
||||
|
||||
ldx #$0d
|
||||
ldy #0
|
||||
movtime lda $286,x ; move returned string
|
||||
and #$7f
|
||||
sta datestr,y
|
||||
iny
|
||||
dex
|
||||
bpl movtime
|
||||
rts
|
||||
|
||||
* convert time to 12hr format
|
||||
*----------------------------
|
||||
convert lda timestr ;convert to 12 hour
|
||||
ldx timestr+1
|
||||
|
||||
and #$0f
|
||||
tay
|
||||
txa
|
||||
and #$0f
|
||||
|
||||
dey
|
||||
bmi conv2
|
||||
clc
|
||||
adc #10
|
||||
dey
|
||||
bmi conv2
|
||||
adc #10
|
||||
|
||||
conv2 cmp #12
|
||||
bne conv2a
|
||||
lda #24
|
||||
conv2a tay
|
||||
bne conv3
|
||||
lda #12
|
||||
|
||||
conv3 ldx #'A'
|
||||
cmp #13
|
||||
bcc conv4
|
||||
|
||||
sbc #12
|
||||
ldx #'P'
|
||||
|
||||
conv4 ldy #'0'
|
||||
conv5 cmp #10
|
||||
bcc conv6
|
||||
|
||||
sbc #10
|
||||
iny
|
||||
bne conv5
|
||||
|
||||
conv6 ora #'0'
|
||||
sta timestr+1
|
||||
sty timestr
|
||||
stx timestr+9
|
||||
ldx #'M'
|
||||
stx timestr+10
|
||||
rts
|
||||
|
||||
; convert a 2 byte decimal number to binary
|
||||
decbin8 and #$7f
|
||||
sec
|
||||
sbc #'0'
|
||||
sta decbyte ; save 10's digit
|
||||
txa ; move 1's into A
|
||||
and #$7f
|
||||
sec
|
||||
sbc #'0'
|
||||
|
||||
ldy #10
|
||||
dec8a clc
|
||||
adc decbyte ; add the 10's digit, 10 times
|
||||
dey
|
||||
bne dec8a
|
||||
rts ; return with result
|
||||
|
||||
decbyte hex 00
|
||||
datestr asc '00/00/00'
|
||||
timestr asc '00:00:00 '
|
||||
|
|
|
@ -1 +1,189 @@
|
|||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 物 屿雉 渺镢<EFBFBD> <EFBFBD> 泊 栩崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 义鲩箦<EFBFBD> 尼翦<EFBFBD> 案<EFBFBD>帛阜崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖崰祗魻镦鎹崰蝈鞃犱箅狉屐<EFBFBD>矬祜魨崓诼掌犈颜牑幢嵭砸犈颜牑床崓倥烈犈颜牑创嵧衔匀犈颜牑吹嵞猎艩叛諣ご秿牧贍叛諣ご穽认找訝叛諣ご笉蜕握耘訝叛諣ご箥优孟文訝叛諣ご翇陀琶衔挠犈颜牑绰嵲磐袪叛諣げ瓢崓铒箪雉犲铘崰矧鐮ぐ浒皪崰溻牥嵑拖呐犱鉅盃徊<EFBFBD> 栾躜 骘蝽狒嵑桥阅猎艩释袪浩驮牧耘嵑桥栽赏艩释袪浩驮陨团嵑优悦趟犚杂崻崻 葡彝猎 蜗<EFBFBD>滔<EFBFBD> 锰厦<EFBFBD> 牧耘崻嵑仆阅猎艩视覡阂拿滔盟崰棠翣拖卧葝犃犹崰劣虓犃犹崰劣虓犃犹崰蚁虪倥烈崰弦翣牧耘崰粤貚犔牧犢帕覎犘攘崰视覡黑遗昧烫崰刑翇河旁以螤以訊獚<EFBFBD> 葡彝猎 蜗<EFBFBD>滔<EFBFBD> 锰厦<EFBFBD> 陨团崻嵑仆栽赏艩视覡阂拿滔盟崰棠贍认找訊犅稍牶拖呐崰滦虪浩驮泊崰棠翣'艇崰釉翣涸赏奴卑崰棠貭'璃崰优膷犛琶崰再翇犛旅牐け矋犆棠崰旅脿河旁认找崰粤賺犅闻牶蜗晕舷螎犔馁牐け矋何显蜗衔犔呢牐<EFBFBD><EFBFBD>河旁认找犛载牶陨团<EFBFBD>崰再翇犅闻牶仆圆磵犔馁牐け矋浩驮泊犜倭崰棠贍¥鞍崰棠貭¥鞍嵑仆誀腥翇犃文牐て皪犔右崰逃覎犔右崰逃覎犆堂崰聊脿¥嘲崰釉翣涸赏努賺犐钨崰刑翇犃文牐ぐ茘犃拿牐こ皪犛粤牶陨团<EFBFBD>崰晌賺犐钨崰晌貚犔牧犎险矣<EFBFBD>崰眯貭¥俺崰挛艩浩驮崰视覡黑遗昧烫崻崰棠貭<涸赏艒犔牧牐竞陨团崰以訊獚<EFBFBD> 遗昧烫 星 谂蚁 抡破乓 <EFBFBD>妹庞<EFBFBD> 稚<EFBFBD> 释些崻嵑谝琶撂虪棠贍¥傲嵑谝琶撂瘫犔牧犜磐鞋賺犛粤犘砸<EFBFBD>崰呐賺犅闻牶谝琶撂瘫崰以訊獚<EFBFBD> 遗聊 匀<EFBFBD> 蜗<EFBFBD>滔<EFBFBD> 锰厦<EFBFBD> 廖<EFBFBD> 遗砸膳峙 牧耘<EFBFBD>赏艒獚阂拿滔盟犔馁牐ぐ翇河韵衣掌犔牧犣抡片賺犛粤犜磐鞋賺犇刨崰挛艩河韵衣掌崰腥袓犛派崰棠翣っ氨祶犘攘崰釉翣っ鞍穽犔牧牑酶按崰棠翣<阂琶优褝犛粤犘砸崰棠翣>阂琶优褝犛粤犘砸<EFBFBD>崰棠贍¥胺嵑遗孟潜犔牧牗性药<EFBFBD>崰优脥犚弦嵑遗孟遣犘攘崰棠翣¥鞍崰蚁虓犜霖崰棠翣っ赴艾貚犘塘崰逃覎犅闻牶遗孟遣崰呐賺犅刑牶遗孟潜崰棠貭¥胺嵑闻卦遗聊犔馁牐ぐ穽阂帕穆稍犔牧牑酶按崰蚁覎犚弦犢帕椰貚犇刨崰滦虪阂帕穆稍崰眯貭¥俺崰滦虪河韵夷猎艒犔牧犢帕椰貚犘攘崰廖臓¥捌崰釉翣倥烈<EFBFBD>崰刑翇犃文牐て皪犔右崰逃覎犔右崰逃覎犜临崰屡褷河韵夷猎艒犔牧牐ぐ皪毫哪耘斡犃拿牐ぐ翇犇刨崰挛艩毫哪耘斡嵑釉弦禒聊脿倥烈<EFBFBD>崰釉翣倥烈<EFBFBD>嵑釉弦牧耘犇咆崰滦虪何咆砸帕膷犘塘崰蚁虓犅糜牶夷盼膷犛粤牑冒岸崰刑袓阂呐文犚杂崻崻 呐粕闻 遗孟俏稍上<EFBFBD> 优颜盼门 葡<EFBFBD> 蜗<EFBFBD>滔<EFBFBD> 锰厦藣獚阂琶优褷滏鉅さ矛ち超こ连っ惮さ矛ち超こ连っ祶獚<EFBFBD> 陨团 险孕赵 抡破乓崻嵑陨团犱驸牑嘲<EFBFBD>嘲<EFBFBD>沉崰滏鉅こ艾こ艾こ翇犱驸牑嘲<EFBFBD>嘲<EFBFBD>舶<EFBFBD>舶<EFBFBD>舶<EFBFBD>
|
||||
*-------------------------------
|
||||
* No Slot Clock - 24 hr
|
||||
*-------------------------------
|
||||
* Revised Date: 08/02/87
|
||||
*-------------------------------
|
||||
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/noslot
|
||||
|
||||
|
||||
ZBUF EQU $41
|
||||
PTR EQU $42
|
||||
|
||||
YEAR EQU $44
|
||||
MONTH EQU $45
|
||||
DATE EQU $46
|
||||
DAY EQU $47
|
||||
HOURS EQU $48
|
||||
MINUTES EQU $49
|
||||
SECONDS EQU $4A
|
||||
MSECONDS EQU $4B
|
||||
TEMP EQU $2F0
|
||||
|
||||
noslot ent
|
||||
org $0d00
|
||||
|
||||
db 0
|
||||
:MODE db 0 ;24 hour format
|
||||
:GETDATE JMP :FMTDATE
|
||||
:GETTIME JMP :FMTTIME
|
||||
:SETCLK RTS
|
||||
*
|
||||
* FORMAT NO-SLOT CLOCK DATE
|
||||
*
|
||||
:FMTDATE JSR :RDCLOCK
|
||||
LDA MONTH
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ROL YEAR
|
||||
ORA DATE
|
||||
TAX
|
||||
LDA YEAR
|
||||
PHA
|
||||
JSR :ZRECALL
|
||||
PLA
|
||||
:SETRTN RTS
|
||||
*
|
||||
* FORMAT NO-SLOT CLOCK TIME
|
||||
*
|
||||
:FMTTIME JSR :RDCLOCK
|
||||
LDY HOURS
|
||||
BIT :MODE
|
||||
BPL :FMT24
|
||||
LDA #'M'
|
||||
STA :TIME+10
|
||||
LDX #'A'
|
||||
SED
|
||||
SEC
|
||||
TYA
|
||||
SBC #$12
|
||||
CLD
|
||||
BCC :SETHOUR
|
||||
TAY
|
||||
BNE :NOTNOON
|
||||
LDY #$12
|
||||
:NOTNOON LDX #'P'
|
||||
:SETHOUR STX :TIME+9
|
||||
TYA
|
||||
BNE :FMT24
|
||||
LDY #$12
|
||||
:FMT24 TYA
|
||||
LDY #$00
|
||||
LDX #$00
|
||||
:FMT PHA
|
||||
AND #$F0
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
CLC
|
||||
ADC #$30
|
||||
STA :TIME,Y
|
||||
INY
|
||||
PLA
|
||||
AND #$0F
|
||||
ADC #$30
|
||||
STA :TIME,Y
|
||||
INY
|
||||
INY
|
||||
INX
|
||||
LDA HOURS,X
|
||||
CPX #$03
|
||||
BNE :FMT
|
||||
JSR :ZRECALL
|
||||
*
|
||||
LDX #<:TIME
|
||||
LDA #>:TIME
|
||||
RTS
|
||||
*
|
||||
* RECALL PG ZERO BUFFER (ACCESS VIA JMP)
|
||||
*
|
||||
:ZRECALL LDY #$0A
|
||||
:ZRECALL1 LDA TEMP,Y
|
||||
STA PTR,Y
|
||||
DEY
|
||||
BNE :ZRECALL1
|
||||
RTS
|
||||
*
|
||||
* READ THE NO-SLOT CLOCK AND RETRIEVE DATE/TIME
|
||||
*
|
||||
:RDCLOCK LDY #$0A
|
||||
:STORBUF LDA ZBUF,Y
|
||||
STA TEMP,Y
|
||||
DEY
|
||||
BNE :STORBUF
|
||||
PHP
|
||||
SEI
|
||||
LDA $C015
|
||||
PHA
|
||||
STA $C007
|
||||
LDA $C804
|
||||
LDA #<:RECSEQ
|
||||
STA PTR
|
||||
LDA #>:RECSEQ
|
||||
STA PTR+1
|
||||
LDY #$07
|
||||
:RECOG1 LDA (PTR),Y
|
||||
SEC
|
||||
ROR
|
||||
:RECOG2 PHA
|
||||
LDA #$00
|
||||
ROL
|
||||
TAX
|
||||
LDA $C800,X
|
||||
PLA
|
||||
LSR
|
||||
BNE :RECOG2
|
||||
DEY
|
||||
BPL :RECOG1
|
||||
LDX #$07
|
||||
:NEXTREAD LDY #$07
|
||||
:READBIT LDA $C804
|
||||
ROR
|
||||
ROR YEAR,X
|
||||
DEY
|
||||
BPL :READBIT
|
||||
CPX #$03
|
||||
BPL :STORDATE
|
||||
LDA YEAR,X
|
||||
PHA
|
||||
AND #$0F
|
||||
STA YEAR,X
|
||||
PLA
|
||||
AND #$F0
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
TAY
|
||||
BEQ :STORDATE
|
||||
LDA #$00
|
||||
:ADDTENS ADC #$0A
|
||||
DEY
|
||||
BNE :ADDTENS
|
||||
:STOR5 ADC YEAR,X
|
||||
STA YEAR,X
|
||||
:STORDATE DEX
|
||||
BPL :NEXTREAD
|
||||
PLA
|
||||
ROL
|
||||
BCS :RDEND
|
||||
STA $C006
|
||||
PLP
|
||||
:RDEND RTS
|
||||
*
|
||||
* DEFINE RECOGNITION SEQUENCE FOR NO-SLOT CLOCK
|
||||
*
|
||||
:RECSEQ dfb $5C,$A3,$3A,$C5,$5C,$A3,$3A,$C5
|
||||
*
|
||||
* TIME OUTPUT BUFFER
|
||||
*
|
||||
:TIME dfb $30,$30,$3A
|
||||
dfb $30,$30,$3A
|
||||
dfb $30,$30,$20,$20,$20
|
||||
|
|
|
@ -1 +1,144 @@
|
|||
╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ нО цЛОЦК дРИЖЕР█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ рЕЖИСЕД дАТЕ╨ ╟╦╞╟╡╞╦╥█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██═ЛСТ═ОФФ██═РЕЛ█═ДСК═РЕЛ╞НУЛЛ██БЫТЦНТ═ЕЯУ═╓╟Е╟Ё█НУЛЛПТР═ЕЯУ═╓╟А███НУЛЛЦЛК═ЕНТ██═ОРГ═╓╟Д╟╟██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██СЛОТ═ХЕЬ═╟╟█МОДЕ═ДБ═╟██═ЙМП═ГЕТДАТЕ█═ЙМП═ГЕТТИМЕ█═ЙМП═СЕТДАТЕ██╙ ГЕТ ТХЕ ДАТЕ ИН ПРОДОС╞ГББС ФОРМАТ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██ГЕТДАТЕ═ЛДЬ═ДАТЕ█═ЛДА═ДАТЕ╚╠█═РТС██╙ СЕТ ТХЕ ДАТЕ МАНУАЛЛЫ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██СЕТДАТЕ═ЦПЫ═ё╦═╩ ИС ИТ ╦ ЦХАРС ЛОНГ©█═БНЕ═СЕТДТ╡═╩ НОПЕ██═СТЬ═НУЛЛПТР═╩ ПОИНТ ТО СТРИНГ█═СТА═НУЛЛПТР╚╠██═ЛДЫ═ё╥█═ЛДА═╗НУЛЛПТР╘╛Ы█═ТАЬ══╩ ПРОЦЕСС ЫЕАР█═ДЕЫ█═ЛДА═╗НУЛЛПТР╘╛Ы█═ЙСР═ДЕЦБИН╦█═СТА═ДАТЕ╚╠═╩ САЖЕ ЫЕАР██═ЛДЫ═ё╢█═ЛДА═╗НУЛЛПТР╘╛Ы█═ТАЬ══╩ ПРОЦЕСС ДАЫ█═ДЕЫ█═ЛДА═╗НУЛЛПТР╘╛Ы█═ЙСР═ДЕЦБИН╦█═АНД═ё╔╟╟╟╠╠╠╠╠█═СТА═ДАТЕ═╩ САЖЕ ДАЫ██═ЛДЫ═ё╠█═ЛДА═╗НУЛЛПТР╘╛Ы█═ТАЬ══╩ ПРОЦЕСС МОНТХ█═ДЕЫ█═ЛДА═╗НУЛЛПТР╘╛Ы█═ЙСР═ДЕЦБИН╦█═АНД═ё╔╟╟╟╟╠╠╠╠═╩ ГЕТ РИД ОФ ЕЬТРА ЙУНК█═АСЛ█═АСЛ█═АСЛ█═АСЛ█═АСЛ█═РОЛ═ДАТЕ╚╠═╩ ПУТ БИТ ИНТО ЫЕАР ФИЕЛД█═ОРА═ДАТЕ█═СТА═ДАТЕ═╩ ПУТ РЕСТ ИНТО ДАЫ ФИЕЛД█СЕТДТ╡═РТС██╙ ГЕТ ТХЕ ЦУРРЕНТ ЕСТИМАТЕД ТИМЕ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██ГЕТТИМЕ═ЛДА═БЫТЦНТ╚╡═╩ СХОВ ХОУРС█═ЙСР═БИНДЕЦ╦█═СТА═ТИМЕСТР█═СТЬ═ТИМЕСТР╚╠██═ЛДА═БЫТЦНТ╚╠═╩ СХОВ МИНУТЕС█═ЙСР═БИНДЕЦ╦█═СТА═ТИМЕСТР╚Ё█═СТЬ═ТИМЕСТР╚╢██═ЛДА═БЫТЦНТ╚╟═╩ СХОВ СЕЦОНДС█═ЙСР═БИНДЕЦ╦█═СТА═ТИМЕСТР╚╤█═СТЬ═ТИМЕСТР╚╥██═ЛДЬ═ё╪ТИМЕСТР═╩ ПОИНТ ТО СТРИНГ█═ЛДА═ё╬ТИМЕСТР█═РТС██╙ ЦОНЖЕРТ А ╡ БЫТЕ ДЕЦИМАЛ НУМБЕР ТО БИНАРЫ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██ДЕЦБИН╦═АНД═ё╓╥Ф█═СЕЦ█═СБЦ═ё╖╟╖█═СТА═ДЕЦБЫТЕ═╩ САЖЕ ╠╟╖С ДИГИТ█═ТЬА══╩ МОЖЕ ╠╖С ИНТО а█═АНД═ё╓╥Ф█═СЕЦ█═СБЦ═ё╖╟╖██═ЛДЫ═ё╠╟█ДЕЦ╦А═ЦЛЦ█═АДЦ═ДЕЦБЫТЕ═╩ АДД ТХЕ ╠╟╖С ДИГИТ╛ ╠╟ ТИМЕС█═ДЕЫ█═БНЕ═ДЕЦ╦А█═РТС══╩ РЕТУРН ВИТХ РЕСУЛТ██ДЕЦБЫТЕ═ХЕЬ═╟╟██╙ ТРАНСЛАТЕ А БИНАРЫ ТО ТЕЬТ ш╟╜╧╧щ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██БИНДЕЦ╦═ЦМП═ё╤╟═╩ ПУТ ЛИМИТ ОФ ╣╧█═БЦЦ═БИН╦█═ЛДА═ё╣╧██БИН╦═ЛДЫ═ё╟═╩ СТАРТ ╠╟╖С ЦОУНТЕР█БИН╦А═ЦМП═ё╠╟█═БЦЦ═БИН╦Б═╩ ЛЕСС ТХАН ╠╟╛ ВЕРЕ ДОНЕ██═СБЦ═ё╠╟═╩ МИНУС ╠╟█═ИНЫ══╩ АДД ╠ ТО ТХЕ ╠╟╖С ЦОУНТЕР█═БНЕ═БИН╦А═╩ ЛООП██БИН╦Б═АДЦ═ё╖╟╖═╩ МАКЕ ╠╖С ИНТО ТЕЬТ█═ТАЬ══╩ САЖЕ█═ТЫА█═АДЦ═ё╖╟╖═╩ МАКЕ ╠╟╖С ИНТО ТЕЬТ█═РТС══╩ ВЕРЕ ДОНЕ██ТИМЕСТР═АСЦ═╖╟╟╨╟╟╨╟╟ ет╖█ДАТЕ═ХЕЬ═╟╟╟╟█
|
||||
*-------------------------------
|
||||
* No Clock Driver
|
||||
*-------------------------------
|
||||
* Revised Date: 08/02/87
|
||||
*-------------------------------
|
||||
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/null
|
||||
|
||||
bytcnt equ $0e03
|
||||
nullptr equ $0a
|
||||
|
||||
|
||||
nullclk ent
|
||||
|
||||
org $0d00
|
||||
|
||||
*-------------------------------
|
||||
|
||||
slot hex 00
|
||||
mode db 0
|
||||
|
||||
jmp getdate
|
||||
jmp gettime
|
||||
jmp setdate
|
||||
|
||||
* get the date in prodos/gbbs format
|
||||
*-------------------------------
|
||||
|
||||
getdate ldx date
|
||||
lda date+1
|
||||
rts
|
||||
|
||||
* set the date manually
|
||||
*-------------------------------
|
||||
|
||||
setdate cpy #8 ; is it 8 chars long?
|
||||
bne setdt2 ; nope
|
||||
|
||||
stx nullptr ; point to string
|
||||
sta nullptr+1
|
||||
|
||||
ldy #7
|
||||
lda (nullptr),y
|
||||
tax ; process year
|
||||
dey
|
||||
lda (nullptr),y
|
||||
jsr decbin8
|
||||
sta date+1 ; save year
|
||||
|
||||
ldy #4
|
||||
lda (nullptr),y
|
||||
tax ; process day
|
||||
dey
|
||||
lda (nullptr),y
|
||||
jsr decbin8
|
||||
and #%00011111
|
||||
sta date ; save day
|
||||
|
||||
ldy #1
|
||||
lda (nullptr),y
|
||||
tax ; process month
|
||||
dey
|
||||
lda (nullptr),y
|
||||
jsr decbin8
|
||||
and #%00001111 ; get rid of extra junk
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
rol date+1 ; put bit into year field
|
||||
ora date
|
||||
sta date ; put rest into day field
|
||||
setdt2 rts
|
||||
|
||||
* get the current estimated time
|
||||
*-------------------------------
|
||||
|
||||
gettime lda bytcnt+2 ; show hours
|
||||
jsr bindec8
|
||||
sta timestr
|
||||
stx timestr+1
|
||||
|
||||
lda bytcnt+1 ; show minutes
|
||||
jsr bindec8
|
||||
sta timestr+3
|
||||
stx timestr+4
|
||||
|
||||
lda bytcnt+0 ; show seconds
|
||||
jsr bindec8
|
||||
sta timestr+6
|
||||
stx timestr+7
|
||||
|
||||
ldx #<timestr ; point to string
|
||||
lda #>timestr
|
||||
rts
|
||||
|
||||
* convert a 2 byte decimal number to binary
|
||||
*-------------------------------
|
||||
|
||||
decbin8 and #$7f
|
||||
sec
|
||||
sbc #'0'
|
||||
sta decbyte ; save 10's digit
|
||||
txa ; move 1's into A
|
||||
and #$7f
|
||||
sec
|
||||
sbc #'0'
|
||||
|
||||
ldy #10
|
||||
dec8a clc
|
||||
adc decbyte ; add the 10's digit, 10 times
|
||||
dey
|
||||
bne dec8a
|
||||
rts ; return with result
|
||||
|
||||
decbyte hex 00
|
||||
|
||||
* translate a binary to text [0-99]
|
||||
*-------------------------------
|
||||
|
||||
bindec8 cmp #60 ; put limit of 59
|
||||
bcc bin8
|
||||
lda #59
|
||||
|
||||
bin8 ldy #0 ; start 10's counter
|
||||
bin8a cmp #10
|
||||
bcc bin8b ; less than 10, were done
|
||||
|
||||
sbc #10 ; minus 10
|
||||
iny ; add 1 to the 10's counter
|
||||
bne bin8a ; loop
|
||||
|
||||
bin8b adc #'0' ; make 1's into text
|
||||
tax ; save
|
||||
tya
|
||||
adc #'0' ; make 10's into text
|
||||
rts ; were done
|
||||
|
||||
timestr asc '00:00:00 ET'
|
||||
date hex 0000
|
||||
|
|
|
@ -1 +1,153 @@
|
|||
╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ╞╞Ц сЫСТЕМ цЛОЦК ╜ ╡╢ ХР█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ рЕЖИСЕД дАТЕ╨ ╟╦╞╟╡╞╦╥█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██═РЕЛ█═ДСК═РЕЛ╞ИИЦСЫС██ЛНБУФ═ЕЯУ═╓╡╟╟██збуф═еяу═╓╢╠█птр═еяу═╓╢╡██СТАТ╠═ЕЯУ═╓Ц╟╧╧█ЦОММ╠═ЕЯУ═╓Ц╟╧А█СТАТ╡═ЕЯУ═╓Ц╟А╧█ЦОММ╡═ЕЯУ═╓Ц╟АА██БЫТЦНТ═ЕЯУ═╓╟Е╟Ё█НУЛЛПТР═ЕЯУ═╓╟А███ИИЦСЫС═ЕНТ██═ОРГ═╓╟Д╟╟██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██СЛОТ═ХЕЬ═╡╟██═ЙМП═ГЕТДАТЕ█═ЙМП═ГЕТТИМЕ█═ЙМП═СЕТДАТЕ██╩ ГЕТ ТХЕ ДАТЕ ИН ПРОДОС╞ГББС ФОРМАТ█ГЕТДАТЕ═ЙСР═╓БФ╟╟═╩ РЕАД ДАТЕ ФРОМ мли█═ХЕЬ═╦╡█═ХЕЬ═╟╟╟╟██═ЛДЬ═╓БФ╧╟█═ЛДА═╓БФ╧╠██СЕТДАТЕ═РТС██╩ ГЕТ ТХЕ ЦУРРЕНТ ТИМЕ█ГЕТТИМЕ═ЙСР═РДЦЛОЦК═╩ РЕАД ТХЕ ЦЛОЦК██═ЛДА═ё╖╨╖█═СТА═ТИМЕСТР╚╡═╩ ПУТ ТИМЕ ДИЖИДЕРС ИН█═СТА═ТИМЕСТР╚╣██═ЛДЬ═ё╪ТИМЕСТР═╩ ПОИНТ ТО СТРИНГ█═ЛДА═ё╬ТИМЕСТР█═РТС██╩ РЕАД ТХЕ ДАТЕ ТИМЕ ФРОМ ЦЛОЦК█РДЦЛОЦК═ЛДА═СЛОТ█═ЦМП═ё╓╠╟█═БЕЯ═ИНИТ╠██═ЛДА═ё╪СТАТ╡═╩ СЕТ СТАТУС ПОРТ ТО СЛОТ ╡█═СТА═ИНИТЁъ╡╚╠█═ЛДА═ё╪ЦОММ╡═╩ СЕТ ЦОММ ПОРТ ТО СЛОТ ╡█═СТА═ИНИТ╠ъЁ╚╠█═СТА═ИНИТ╡╚╠█═СТА═ИНИТЁъЁ╚╠██ИНИТ╠═ЛДА═ё╤╢█ИНИТ╠ъ╠═ПХА█ИНИТ╠ъ╡═СБЦ═ё╠█═БНЕ═ИНИТ╠ъ╡█═ПЛА█═СБЦ═ё╠═╩ ГИЖЕ ПЛЕНТЫ ОФ СЕТУП ДЕЛАЫ█═БНЕ═ИНИТ╠ъ╠██═ПХП█═СЕИ█ИНИТ╠ъЁ═ЛДА═ЦОММ╠═╩ ГЕТ ЦУРРЕНТ СЕТТИНГ█═ПХА██═ЛДЫ═ёЁ█═ЛДЬ═ё╡╡█═ЛДА═ё╦█ИНИТ╡═СТА═ЦОММ╠═╩ СЕНД ИНИТ СЕЯУЕНЦЕ ТО ЦЛОЦК██ИНИТ╡ъ╠═ДЕЬ══╩ ИНТРА╜БИТ ДЕЛАЫ█═БНЕ═ИНИТ╡ъ╠██═ЕОР═ё╓╟А═╩ ТОГГЛЕ БАЦК АНД ФОРТХ█═ЛДЬ═ё╠╠█═ДЕЫ█═БНЕ═ИНИТ╡═╩ КЕЕП ЛООПИНГ██═ЛДЫ═ё╢█═ЛДЬ═ё╦█═БНЕ═ИНИТЁъ╡═╩ СКИП ИНИТИАЛ ДЕЛАЫ██ИНИТЁ═ЛДА═ё╓Ё╢█═СТА═ТИМЕР═╩ ДЕЛАЫ ВХИЛЕ ЦЛОЦК СЕТС УП█ИНИТЁъ╠═ДЕЦ═ТИМЕР═╩ ТО СЕНД ТХЕ ДАТЕ╞ТИМЕ█═БНЕ═ИНИТЁъ╠██ИНИТЁъ╡═ЛДА═СТАТ╠═╩ СХИФТ БИТ ДАТА ИНТО НИББЛЕ█═РОЛ█═РОЛ█═РОЛ█═РОР═ДАТЕСТР█═ДЕЬ█═БНЕ═ИНИТЁ═╩ ГО БАЦК ТО ДЕЛАЫ██═ЛДА═ДАТЕСТР█═ЕОР═ё╟═╩ САЖЕ ТХЕ НИББЛЕ█═СТА═ДАТЕСТР╛Ы██═ЛДЬ═ё╦█═ДЕЫ█═БПЛ═ИНИТЁ██═ПЛА█ИНИТЁъЁ═СТА═ЦОММ╠═╩ РЕТОРЕ УАРТ ТО ИНИТИАЛ СЕТТИНГС██═ЛДЫ═ё╠╣█═ЛДЬ═ё╢██ИНИТ╢═ЛДА═ДАТЕСТР╛Ь█═ПХА█═АНД═ё╓╟Ф═╩ ПРОЦЕСС ДИГИТ ╗МАКЕ ИНТО АСЦИИ╘█═ОРА═ё╓Ё╟█═СТА═ДАТЕСТР╛Ы██═ДЕЫ█═ПЛА█═ЛСР█═ЛСР█═ЛСР══╩ ПРОЦЕСС ТОП ОФ НИББЛЕ█═ЛСР█═ОРА═ё╓Ё╟═╩ ТУРН ИНТО АСЦИИ█═СТА═ДАТЕСТР╛Ы██═ДЕЫ█═ДЕЫ█═ДЕЬ█═БПЛ═ИНИТ╢█═ПЛП█═РТС██ТИМЕР═ХЕЬ═╟╟█ДАТЕСТР═АСЦ═╖╟╟ ╟╟ ╟╟╖█ТИМЕСТР═АСЦ═╖╟╟╨╟╟╨╟╟ ╖█ДАТЕ═ХЕЬ═╟╟╟╟███
|
||||
*-------------------------------
|
||||
* //c System Clock - 24 hr
|
||||
*-------------------------------
|
||||
* Revised Date: 08/02/87
|
||||
*-------------------------------
|
||||
|
||||
rel
|
||||
dsk rel/iicsys
|
||||
|
||||
lnbuf equ $200
|
||||
|
||||
ZBUF EQU $41
|
||||
PTR EQU $42
|
||||
|
||||
stat1 equ $c099
|
||||
comm1 equ $c09a
|
||||
stat2 equ $c0a9
|
||||
comm2 equ $c0aa
|
||||
|
||||
bytcnt equ $0e03
|
||||
nullptr equ $0a
|
||||
|
||||
|
||||
iicsys ent
|
||||
|
||||
org $0d00
|
||||
|
||||
*-------------------------------
|
||||
|
||||
slot hex 20
|
||||
|
||||
jmp getdate
|
||||
jmp gettime
|
||||
jmp setdate
|
||||
|
||||
; get the date in prodos/gbbs format
|
||||
getdate jsr $bf00 ; read date from MLI
|
||||
hex 82
|
||||
hex 0000
|
||||
|
||||
ldx $bf90
|
||||
lda $bf91
|
||||
|
||||
setdate rts
|
||||
|
||||
; get the current time
|
||||
gettime jsr rdclock ; read the clock
|
||||
|
||||
lda #':'
|
||||
sta timestr+2 ; put time dividers in
|
||||
sta timestr+5
|
||||
|
||||
ldx #<timestr ; point to string
|
||||
lda #>timestr
|
||||
rts
|
||||
|
||||
; read the date time from clock
|
||||
rdclock lda slot
|
||||
cmp #$10
|
||||
beq init1
|
||||
|
||||
lda #<stat2 ; set status port to slot 2
|
||||
sta init3_2+1
|
||||
lda #<comm2 ; set comm port to slot 2
|
||||
sta init1_3+1
|
||||
sta init2+1
|
||||
sta init3_3+1
|
||||
|
||||
init1 lda #64
|
||||
init1_1 pha
|
||||
init1_2 sbc #1
|
||||
bne init1_2
|
||||
pla
|
||||
sbc #1 ; give plenty of setup delay
|
||||
bne init1_1
|
||||
|
||||
php
|
||||
sei
|
||||
init1_3 lda comm1 ; get current setting
|
||||
pha
|
||||
|
||||
ldy #3
|
||||
ldx #22
|
||||
lda #8
|
||||
init2 sta comm1 ; send init sequence to clock
|
||||
|
||||
init2_1 dex ; intra-bit delay
|
||||
bne init2_1
|
||||
|
||||
eor #$0a ; toggle back and forth
|
||||
ldx #11
|
||||
dey
|
||||
bne init2 ; keep looping
|
||||
|
||||
ldy #4
|
||||
ldx #8
|
||||
bne init3_2 ; skip initial delay
|
||||
|
||||
init3 lda #$34
|
||||
sta timer ; delay while clock sets up
|
||||
init3_1 dec timer ; to send the date/time
|
||||
bne init3_1
|
||||
|
||||
init3_2 lda stat1 ; shift bit data into nibble
|
||||
rol
|
||||
rol
|
||||
rol
|
||||
ror datestr
|
||||
dex
|
||||
bne init3 ; go back to delay
|
||||
|
||||
lda datestr
|
||||
eor #0 ; save the nibble
|
||||
sta datestr,y
|
||||
|
||||
ldx #8
|
||||
dey
|
||||
bpl init3
|
||||
|
||||
pla
|
||||
init3_3 sta comm1 ; retore uart to initial settings
|
||||
|
||||
ldy #15
|
||||
ldx #4
|
||||
|
||||
init4 lda datestr,x
|
||||
pha
|
||||
and #$0f ; process digit (make into ascii)
|
||||
ora #$30
|
||||
sta datestr,y
|
||||
|
||||
dey
|
||||
pla
|
||||
lsr
|
||||
lsr
|
||||
lsr ; process top of nibble
|
||||
lsr
|
||||
ora #$30 ; turn into ascii
|
||||
sta datestr,y
|
||||
|
||||
dey
|
||||
dey
|
||||
dex
|
||||
bpl init4
|
||||
plp
|
||||
rts
|
||||
|
||||
timer hex 00
|
||||
datestr asc '00 00 00'
|
||||
timestr asc '00:00:00 '
|
||||
date hex 0000
|
||||
|
||||
|
||||
|
|
|
@ -1 +1,52 @@
|
|||
×<EFBFBD>× ֳלןדכ ִעיצוע ָובהוע ֲלןדכ<EFBFBD>×<EFBFBD>× ׂוציףוה ִבפו÷ ±±¯°¸¯¸¹<EFBFBD>×<EFBFBD>×<EFBFBD>× העיצוע לןבה ימזן<EFBFBD>×<EFBFBD>× ₪°¸°° ½ טובהוע גלןדכ »ןזזףופ<EFBFBD>× ₪°ב°° ½ װטץמהוע¯װיםוםבףפוע »²<EFBFBD>× ₪°ג°° ½ ֱ®ֵ® ׃ועיבל ׀ען »³<EFBFBD>× ₪°ד°° ½ ׃ֽװ ־ן ׃לןפ דלןדכ »´<EFBFBD>× ₪°ה°° ½ ֱננלו ¯¯חף ֳלןדכ »µ<EFBFBD>× ₪°ו°° ½ ֱ®ֵ® ױלפעב ֳלןדכ »¶<EFBFBD>× ₪°ז°° ½ נעןהןף דןםנבפיגלו »·<EFBFBD>× ₪±°°° ½ ֽןץמפבימ ֳלןדכ »¸<EFBFBD>× ₪±±°° ½ ײועףבדבעה »¹<EFBFBD>× ₪±²°° ½ מן דלןדכ ימ ףשףפום »ב<EFBFBD>× ₪±³°° ½ ¯¯ד ׃שףפום ֳלןדכ »ג<EFBFBD><EFBFBD> עול<EFBFBD> הףכ עול¯טובהוע<EFBFBD><EFBFBD> ןעח ₪°¸°°<EFBFBD><EFBFBD>דלןדכף טור °²°±<EFBFBD> בףד §װטץמהועדלןדכ ֳןםנבפבגלו §<EFBFBD> טור °²°±<EFBFBD> בףד §ֱ®ֵ® װיםוםבףפוע ֹֹ ָ®ֿ® §<EFBFBD> טור °³°±<EFBFBD> בףד §ֱ®ֵ® ׃ועיבל ׀ען §<EFBFBD> טור ¸´°±<EFBFBD> בףד §׃ֽװ ־ן ׃לןפ ֳלןדכ §<EFBFBD> טור ¸µ°±<EFBFBD> בףד §ֱננלו ¯¯ַ׃ גץילפימ דלןדכ §<EFBFBD> טור ¸¶°±<EFBFBD> בףד §ֱ®ֵ® ױלפעב ֳלןדכ §<EFBFBD> טור ¸·°±<EFBFBD> בףד §׀עןִֿ׃ ֳןםנבפיגלו ֳלןדכ §<EFBFBD> טור °¸°±<EFBFBD> בףד §ֽןץמפבימ ָבעהקבעו ֳלןדכ §<EFBFBD> טור °¹°±<EFBFBD> בףד §׀עןםופטוץף ײועףבדבעה §<EFBFBD> טור ¸ב°±<EFBFBD> בףד §־ן ֳלןדכ ימ ׃שףפום §<EFBFBD> טור °ג°±<EFBFBD> בףד §ֱ®ֵ® ¯¯ד ׃שףפום ֳלןדכ §<EFBFBD><EFBFBD> טור °°°°<EFBFBD> הף <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*-------------------------------
|
||||
* Clock Driver Header Block
|
||||
*-------------------------------
|
||||
* Revised Date: 11/08/89
|
||||
*-------------------------------
|
||||
*
|
||||
* driver load info
|
||||
*
|
||||
* $0800 = header block ;offset
|
||||
* $0a00 = Thunder/Timemaster ;2
|
||||
* $0b00 = A.E. Serial Pro ;3
|
||||
* $0c00 = SMT No Slot clock ;4
|
||||
* $0d00 = Apple //gs Clock ;5
|
||||
* $0e00 = A.E. Ultra Clock ;6
|
||||
* $0f00 = prodos compatible ;7
|
||||
* $1000 = Mountain Clock ;8
|
||||
* $1100 = Versacard ;9
|
||||
* $1200 = no clock in system ;a
|
||||
* $1300 = //c System Clock ;b
|
||||
|
||||
rel
|
||||
dsk rel/header
|
||||
|
||||
org $0800
|
||||
|
||||
clocks hex 0201
|
||||
asc 'Thunderclock Compatable '
|
||||
hex 0201
|
||||
asc 'A.E. Timemaster II H.O. '
|
||||
hex 0301
|
||||
asc 'A.E. Serial Pro '
|
||||
hex 8401
|
||||
asc 'SMT No Slot Clock '
|
||||
hex 8501
|
||||
asc 'Apple //GS built-in clock '
|
||||
hex 8601
|
||||
asc 'A.E. Ultra Clock '
|
||||
hex 8701
|
||||
asc 'ProDOS Compatible Clock '
|
||||
hex 0801
|
||||
asc 'Mountain Hardware Clock '
|
||||
hex 0901
|
||||
asc 'Prometheus Versacard '
|
||||
hex 8a01
|
||||
asc 'No Clock in System '
|
||||
hex 0b01
|
||||
asc 'A.E. //c System Clock '
|
||||
|
||||
hex 0000
|
||||
ds \
|
||||
|
||||
|
||||
|
|
|
@ -1 +1,179 @@
|
|||
═ттл═╒ацос ╡╝Ь╜нсц ДРИЖЕР╒██═РЕЛ█═ДСК═РЕЛ╞НОСЛОТ██╙ ацос ╡╝Ь╜нсц цЛОЦК ДРИЖЕР ╗МОДИФИЕД ╧╟╞╟╡╞╠╟╜йаб╘█═думмы═╓╢╡█нсцъВОРК█нсцъпТР═дс═╡═╩пОИНТЕР ТО нсц иНИТ СТРИНГ█нсцОУТПТ█ыЕАР═дс═╠█мОНТХ═дс═╠█дАТЕ═дс═╠█═дс═╠═╩╪дАЫ ОФ ВЕЕК╬█хОУР═дс═╠█═дс═╠═╩╪мИНУТЕС╬█═дс═╡═╩╪сЕЦОНДС╞ ╝╟╠ сЕЦОНДС╬█═денд█═думмы═╓╡ф╟█нсцъСАЖЕ═дс═╠╟═╩зЕРО╜пАГЕ САЖЕ АРЕА ДУРНИНГ нсц АЦЦЕСС█═денд██цлрцьром═╫═╓ц╟╟╤█сетцьром═╫═╓ц╟╟╥█рдцьром═╫═╓ц╟╠╣██нсцъДАТА═╫═╓ц╦╟╟█нсцъИНИТ═╫═╓ц╦╟╢██═тр═адр█НОСЛОТ═ЕНТ█═орг═╓╟д╟╟█═хеь═╠╟═╩цЛОЦК СЛОТ ё ╪нОТ УСЕД БЫ нсц ДРИЖЕР╬█хРфОРМАТ═хеь═╦╟═╩иФ ╜╩ ╠╡ хР ФОРМАТ ╞ иФ ╚╩ ╡╢ хОУР ФОРМАТ█═ймп═╨гЕТдАТЕ═╩гетдате█═ймп═╨гЕТтИМЕ═╩геттиме█═ртс══╩сетдате██╨гЕТдАТЕ═йср═╨рЕАДцЛК═╩рЕАД ТХЕ ЦЛОЦК█═лда═мОНТХ═╩цОНЖЕРТ дАТЕ╞мОНТХ╞ыЕАР ИНТО пРОдос█═асл══╩сТРИНГС█═асл█═асл█═асл█═асл█═рол═ыЕАР█═ора═дАТЕ█═таь█═лда═ыЕАР█═пха█═йср═╨рЕСТзпГ═╩рЕСТОРЕ зЕРО╜пАГЕ█═пла█═ртс██╨гЕТтИМЕ═йср═╨рЕАДцЛК═╩рЕАД ТХЕ ЦЛОЦК█═лды═хОУР█═бит═хРфОРМАТ═╩╡╢ ХОУР ТИМЕ ФОРМАТ ©█═бпл═╨цНЖтИМЕ═╩ыЕС█═лда═ё╖м╖═╩нО ╨ сЕТУП ТИМЕ СТИНГ ФОР ╠╡ ХОУР ФОРМАТ█═ста═╨тИМЕсТР╚╠╟█═лдь═ё╖а╖═╩╪аССУМЕ ам╬█═сед█═сец█═тыа══╩иС ИТ аФТЕРНООН╞еЖЕНИНГ ©█═сбц═ё╓╠╡█═цлд█═бцц═╨сЕТампм═╩нО█═таы══╩ыЕС╨ сАЖЕ ╒РЕСУЛТ╒ ХОУР█═бне═╨мАКЕпм█═лды═ё╓╠╡═╩╝╝╝╝иТ╖С ТХЕ нООН ХОУР╝╝╝╝█╨мАКЕпм═лдь═ё╖п╖█╨сЕТампм═сть═╨тИМЕсТР╚╧█═тыа══╩иС ИТ ТХЕ ╠╡ ам ХОУР ©█═бне═╨цНЖтИМЕ█═лды═ё╓╠╡═╩ыЕС█╨цНЖтИМЕ═тыа══╩сЕТУП ТИМЕ СТРИНГ█═лды═ё╟█═лдь═ё╟█╨нЬТбЫТЕ═пха══╩сПЛИТ БЫТЕ ИНТО НИББЛЕС█═анд═ё╓ф╟█═лср█═лср█═лср█═лср█═цлц█═адц═ё╖╟╖═╩сЕТУП ╖тЕНС╖ ДИГИТ█═ста═╨тИМЕсТР╛ы█═ины══╩сЕТУП ╖оНЕС╖ ДИГИТ█═пла█═анд═ё╓╟ф█═адц═ё╖╟╖█═ста═╨тИМЕсТР╛ы█═ины█═ины█═инь══╩аРЕ ВЕ ФИНИСХЕД ╗ТХРУ сЕЦОНДС╘ ©█═лда═хОУР╛ь█═цпь═ё╢╜╠█═бне═╨нЬТбЫТЕ═╩нО█═йср═╨рЕСТзпГ═╩ыЕС╨ рЕСТОРЕ зЕРО╜пАГЕ█═лдь═ё╪╨тИМЕсТР═╩АНД РЕТУРН ВИТХ ПОИНТЕР ТО ТИМЕ СТРИНГ█═лда═ё╬╨тИМЕсТР█═ртс██╨рЕСТзпГ═лды═ё╠╟═╩рЕСТОРЕ зЕРО ПАГЕ█╨рЕСТзп╠═лда═нсцъСАЖЕ╛ы█═ста═нсцъВОРК╜╠╛ы█═деы█═бне═╨рЕСТзп╠█═ртс██╙ рЕАДцЛК ╜ рЕАД ТХЕ ЖАЛУЕС ФРОМ ТХЕ нсц╖С МЕМОРЫ█╨рЕАДцЛК═лды═ё╠╟═╩сАЖЕ ОФФ зЕРО ПАГЕ ТХАТ ВЕ АРЕ УСИНГ█╨сАЖЕзпГ═лда═нсцъВОРК╜╠╛ы█═ста═нсцъСАЖЕ╛ы█═деы█═бне═╨сАЖЕзпГ█═сеи══╩дОН╖Т АЛЛОВ иНТЕРРУПТС ДУРНИНГ нсц АЦЦЕСС█═лда═рдцьром═╩сАЖЕ ць╜ром СТАТЕ█═пха█═ста═сетцьром█═лда═нсцъИНИТ═╩еНАБЛЕ нсц ФОР ИНИТ СТРИНГ█═лда═ё╪╨иНИТсТР═╩сЕТУП ПОИНТЕР ТО ИНИТ СТРИНГ█═ста═нсцъпТР█═лда═ё╬╨иНИТсТР█═ста═нсцъпТР╚╠█═лды═ё╥═╩сЕНД ИНИТ СТРИНГ█╨иНТнбЫТ═лда═╗нсцъпТР╘╛ы═╩гЕТ НЕЬТ нсц ИНТИ БЫТЕ█═сец█═рор█╨иНТнбИТ═пха══╩сЕНД ТХЕ БИТС╝╝╝█═лда═ё╟█═рол█═таь█═лда═нсцъДАТА╛ь█═пла█═лср█═бне═╨иНТнбИТ█═деы█═бпл═╨иНТнбЫТ█═лдь═ё╥═╩рЕАД ИН ТХЕ ТИМЕ ФРОМ ТХЕ нсц ЦХИП█╨нЬТобЫТ═лды═ё╥█╨нЬТобИТ═лда═нсцъИНИТ█═рор█═рор═нсцОУТПТ╛ь█═деы══╩мОРЕ БИТС ТО РЕЦЕИЖЕ ©█═бпл═╨нЬТобИТ═╩ыЕС█═цпь═ёЁ═╩аРЕ ВЕ ДОВН ТО ╒дАЫ ОФ вЕЕК╒ ©█═бпл═╨мОРЕо©═╩ыЕС╨ иГНОРЕ дов╛ дАТЕ╛ мОНТХ╛ АНД ыЕАР█═лда═нсцОУТПТ╛ь═╩нО ╨ цОНЖЕРТ бцд ТО хЕЬ█═пха█═анд═ё╓╟ф█═ста═нсцОУТПТ╛ь█═пла█═анд═ё╓ф╟█═лср█═лср█═лср█═лср█═таы█═бея═╨мОРЕо©█═лда═ё╟█╨цНЖ╡хЕЬ═адц═ё╠╟█═деы█═бне═╨цНЖ╡хЕЬ█═адц═нсцОУТПТ╛ь█═ста═нсцОУТПТ╛ь█╨мОРЕо©═деь══╩мОРЕ БЫТЕС ТО РЕАД ФРОМ нсц ©█═бпл═╨нЬТобЫТ═╩ыЕС█═пла══╩нО ╨ рЕСТОРЕ ць╜ром СЕТТИНГ ╪ИФ НЕЦЕССАРЫ╬█═рол█═бцс═╨рЕАДдОН█═ста═цлрцьром█╨рЕАДдОН═ртс██╨иНИТсТР═хеь═╣ц╛аЁ╛Ёа╛ц╣╛╣ц╛аЁ╛Ёа╛ц╣█╨тИМЕсТР═асц═╖╟╟╨╟╟╨╟╟ ╖█═хеь═╟╟╛╟╟███
|
||||
TTL "ACOS 2.x-NSC driver"
|
||||
|
||||
rel
|
||||
dsk rel/noslot
|
||||
|
||||
* ACOS 2.x-NSC Clock driver (modified 90/02/10-JAB)
|
||||
DUMMY $42
|
||||
NSC_work
|
||||
NSC_Ptr DS 2 ;Pointer to NSC Init string
|
||||
NSCoutpt
|
||||
Year DS 1
|
||||
Month DS 1
|
||||
Date DS 1
|
||||
DS 1 ;<Day of week>
|
||||
Hour DS 1
|
||||
DS 1 ;<Minutes>
|
||||
DS 2 ;<Seconds/ .01 Seconds>
|
||||
DEND
|
||||
DUMMY $2F0
|
||||
NSC_save DS 10 ;Zero-Page save area durning NSC access
|
||||
DEND
|
||||
|
||||
CLRCXROM = $C006
|
||||
SETCXROM = $C007
|
||||
RDCXROM = $C015
|
||||
|
||||
NSC_data = $C800
|
||||
NSC_init = $C804
|
||||
|
||||
TR ADR
|
||||
noslot ent
|
||||
ORG $0D00
|
||||
HEX 10 ;Clock slot # <Not used by NSC driver>
|
||||
HrFormat HEX 80 ;If -; 12 Hr format / If +; 24 Hour format
|
||||
JMP :GetDate ;GETDATE
|
||||
JMP :GetTime ;GETTIME
|
||||
RTS ;SETDATE
|
||||
|
||||
:GetDate JSR :ReadClk ;Read the clock
|
||||
LDA Month ;Convert Date/Month/Year into ProDOS
|
||||
ASL ;Strings
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ROL Year
|
||||
ORA Date
|
||||
TAX
|
||||
LDA Year
|
||||
PHA
|
||||
JSR :RestZPg ;Restore Zero-Page
|
||||
PLA
|
||||
RTS
|
||||
|
||||
:GetTime JSR :ReadClk ;Read the clock
|
||||
LDY Hour
|
||||
BIT HrFormat ;24 hour time format ?
|
||||
BPL :CnvTime ;Yes
|
||||
LDA #'M' ;No : Setup time sting for 12 hour format
|
||||
STA :TimeStr+10
|
||||
LDX #'A' ;<Assume AM>
|
||||
SED
|
||||
SEC
|
||||
TYA ;Is it Afternoon/Evening ?
|
||||
SBC #$12
|
||||
CLD
|
||||
BCC :SetAMPM ;No
|
||||
TAY ;Yes: Save "result" hour
|
||||
BNE :MakePM
|
||||
LDY #$12 ;....It's the Noon hour....
|
||||
:MakePM LDX #'P'
|
||||
:SetAMPM STX :TimeStr+9
|
||||
TYA ;Is it the 12 AM hour ?
|
||||
BNE :CnvTime
|
||||
LDY #$12 ;Yes
|
||||
:CnvTime TYA ;Setup time string
|
||||
LDY #0
|
||||
LDX #0
|
||||
:NxtByte PHA ;Split byte into nibbles
|
||||
AND #$F0
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
CLC
|
||||
ADC #'0' ;Setup 'Tens' digit
|
||||
STA :TimeStr,Y
|
||||
INY ;Setup 'Ones' digit
|
||||
PLA
|
||||
AND #$0F
|
||||
ADC #'0'
|
||||
STA :TimeStr,Y
|
||||
INY
|
||||
INY
|
||||
INX ;Are we finished (thru Seconds) ?
|
||||
LDA Hour,X
|
||||
CPX #4-1
|
||||
BNE :NxtByte ;No
|
||||
JSR :RestZPg ;Yes: Restore Zero-Page
|
||||
LDX #<:TimeStr ;and return with pointer to time string
|
||||
LDA #>:TimeStr
|
||||
RTS
|
||||
|
||||
:RestZPg LDY #10 ;Restore Zero page
|
||||
:RestZP1 LDA NSC_save,Y
|
||||
STA NSC_work-1,Y
|
||||
DEY
|
||||
BNE :RestZP1
|
||||
RTS
|
||||
|
||||
* ReadClk - Read the values from the NSC's memory
|
||||
:ReadClk LDY #10 ;Save off Zero page that we are using
|
||||
:SaveZPg LDA NSC_work-1,Y
|
||||
STA NSC_save,Y
|
||||
DEY
|
||||
BNE :SaveZPg
|
||||
SEI ;Don't allow Interrupts durning NSC access
|
||||
LDA RDCXROM ;Save CX-ROM state
|
||||
PHA
|
||||
STA SETCXROM
|
||||
LDA NSC_init ;Enable NSC for init string
|
||||
LDA #<:InitStr ;Setup pointer to init string
|
||||
STA NSC_Ptr
|
||||
LDA #>:InitStr
|
||||
STA NSC_Ptr+1
|
||||
LDY #7 ;Send init string
|
||||
:IntNByt LDA (NSC_Ptr),Y ;Get next NSC inti byte
|
||||
SEC
|
||||
ROR
|
||||
:IntNBit PHA ;Send the bits...
|
||||
LDA #0
|
||||
ROL
|
||||
TAX
|
||||
LDA NSC_data,X
|
||||
PLA
|
||||
LSR
|
||||
BNE :IntNBit
|
||||
DEY
|
||||
BPL :IntNByt
|
||||
LDX #7 ;Read in the time from the NSC chip
|
||||
:NxtOByt LDY #7
|
||||
:NxtOBit LDA NSC_init
|
||||
ROR
|
||||
ROR NSCoutpt,X
|
||||
DEY ;More bits to receive ?
|
||||
BPL :NxtOBit ;Yes
|
||||
CPX #3 ;Are we down to "Day of Week" ?
|
||||
BPL :MoreO? ;Yes: Ignore DOW, Date, Month, and Year
|
||||
LDA NSCoutpt,X ;No : Convert BCD to Hex
|
||||
PHA
|
||||
AND #$0F
|
||||
STA NSCoutpt,X
|
||||
PLA
|
||||
AND #$F0
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
TAY
|
||||
BEQ :MoreO?
|
||||
LDA #0
|
||||
:Cnv2Hex ADC #10
|
||||
DEY
|
||||
BNE :Cnv2Hex
|
||||
ADC NSCoutpt,X
|
||||
STA NSCoutpt,X
|
||||
:MoreO? DEX ;More bytes to read from NSC ?
|
||||
BPL :NxtOByt ;Yes
|
||||
PLA ;No : Restore CX-ROM setting <if necessary>
|
||||
ROL
|
||||
BCS :ReadDon
|
||||
STA CLRCXROM
|
||||
:ReadDon RTS
|
||||
|
||||
:InitStr HEX 5C,A3,3A,C5,5C,A3,3A,C5
|
||||
:TimeStr ASC '00:00:00 '
|
||||
HEX 00,00
|
||||
|
||||
|
||||
|
|
|
@ -1 +1,139 @@
|
|||
╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ пРОдос цЛОЦК дРИЖЕР█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ рЕЖИСЕД дАТЕ╨ ╟╦╞╟╡╞╦╥█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██═ЛСТ═ОФФ██═РЕЛ█═ДСК═РЕЛ╞ПРОДОС██МЛИ═ЕЯУ═╓БФ╟╟█ДАТЕ═ЕЯУ═╓БФ╧╟█ТИМЕ═ЕЯУ═╓БФ╧╡█ГЕТъТИМЕ═ЕЯУ═╓╦╡██ПРОДОС═ЕНТ█═ОРГ═╓╟Д╟╟██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██═ДБ═╟█МОДЕ═ДБ═╟██═ЙМП═ГЕТДАТЕ█═ЙМП═ГЕТТИМЕ█═ЙМП═СЕТДАТЕ██╙ ГЕТ ТХЕ ДАТЕ ИН ПРОДОС ГББС ФОРМАТ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ГЕТДАТЕ═ЙСР═МЛИ═╩ МЛИ ЦАЛЛ█═ДБ═ГЕТъТИМЕ█═ХЕЬ═╟╟╟╟═╩ НО ПРАМАТЕР ТАБЛЕ██═ЛДЬ═ДАТЕ█═ЛДА═ДАТЕ╚╠█СЕТДАТЕ═РТС██╙ ГЕТ ТХЕ ЦУРРЕНТ ТИМЕ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ГЕТТИМЕ═ЙСР═РДТИМЕ█═БИТ═МОДЕ█═БПЛ═ГТИМЕ╠█═ЙСР═ЦОНЖЕРТ██ГТИМЕ╠═ЛДЬ═ё╪ТИМЕСТР═╩ ПОИНТ ТО СТРИНГ█═ЛДА═ё╬ТИМЕСТР█═РТС██╙ РЕАД ТИМЕ ФРОМ ПРОДОС█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█РДТИМЕ═ЙСР═ГЕТДАТЕ═╩ УПДАТЕ ТИМЕ██═ЛДА═ТИМЕ╚╠═╩ ГЕТ ЦУРРЕНТ ХОУР█═ЙСР═БИНДЕЦ╦═╩ ТРАНСЛАТЕ ТО АСЦИИ█═СТА═ТИМЕСТР═╩ САЖЕ ХОУР█═СТЬ═ТИМЕСТР╚╠██═ЛДА═ТИМЕ═╩ ГЕТ МИНУТЕС█═ЙСР═БИНДЕЦ╦═╩ ТРАНСЛАТЕ ТО АСЦИИ█═СТА═ТИМЕСТР╚Ё═╩ САЖЕ МИНУТЕ█═СТЬ═ТИМЕСТР╚╢██═ЛДА═ё╖ ╖═╩ ЦЛЕАР ОУТ АНЫ ПОССИБЛЕ АМ╞ПМ█═СТА═ТИМЕСТР╚╧█═СТА═ТИМЕСТР╚╠╟██═РТС██╙ ЦОНЖЕРТ ТИМЕ ТО ╠╡ХР ФОРМАТ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ЦОНЖЕРТ═ЛДА═ТИМЕСТР═╩ЦОНЖЕРТ ТО ╠╡ ХОУР█═ЛДЬ═ТИМЕСТР╚╠██═АНД═ё╓╟Ф█═ТАЫ█═ТЬА█═АНД═ё╓╟Ф██═ДЕЫ█═БМИ═ЦОНЖ╡█═ЦЛЦ█═АДЦ═ё╠╟█═ДЕЫ█═БМИ═ЦОНЖ╡█═АДЦ═ё╠╟██ЦОНЖ╡═ЦМП═ё╠╡█═БНЕ═ЦОНЖ╡А█═ЛДА═ё╡╢█ЦОНЖ╡А═ТАЫ█═БНЕ═ЦОНЖЁ█═ЛДА═ё╠╡██ЦОНЖЁ═ЛДЬ═ё╖а╖█═ЦМП═ё╠Ё█═БЦЦ═ЦОНЖ╢██═СБЦ═ё╠╡█═ЛДЬ═ё╖п╖██ЦОНЖ╢═ЛДЫ═ё╖╟╖█ЦОНЖ╣═ЦМП═ё╠╟█═БЦЦ═ЦОНЖ╤██═СБЦ═ё╠╟█═ИНЫ█═БНЕ═ЦОНЖ╣██ЦОНЖ╤═ОРА═ё╖╟╖█═СТА═ТИМЕСТР╚╠█═СТЫ═ТИМЕСТР█═СТЬ═ТИМЕСТР╚╧█═ЛДЬ═ё╖м╖█═СТЬ═ТИМЕСТР╚╠╟█═РТС██╙ ТРАНСЛАТЕ А БИНАРЫ ТО ТЕЬТ ш╟╜╧╧щ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█БИНДЕЦ╦═ЦМП═ё╤╟═╩ ПУТ ЛИМИТ ОФ ╣╧█═БЦЦ═БИН╦█═ЛДА═ё╣╧██БИН╦═ЛДЫ═ё╟═╩ СТАРТ ╠╟╖С ЦОУНТЕР█БИН╦А═ЦМП═ё╠╟█═БЦЦ═БИН╦Б═╩ ЛЕСС ТХАН ╠╟╛ ВЕРЕ ДОНЕ██═СБЦ═ё╠╟═╩ МИНУС ╠╟█═ИНЫ══╩ АДД ╠ ТО ТХЕ ╠╟╖С ЦОУНТЕР█═БНЕ═БИН╦А═╩ ЛООП██БИН╦Б═АДЦ═ё╖╟╖═╩ МАКЕ ╠╖С ИНТО ТЕЬТ█═ТАЬ══╩ САЖЕ█═ТЫА█═АДЦ═ё╖╟╖═╩ МАКЕ ╠╟╖С ИНТО ТЕЬТ█═РТС══╩ ВЕРЕ ДОНЕ██╙ ╖╟╠╡Ё╢╣╤╥╦╧╟█ТИМЕСТР═АСЦ═╖╠╡╨╟╟╨╟╟ ╖█
|
||||
*-------------------------------
|
||||
* ProDOS Clock Driver
|
||||
*-------------------------------
|
||||
* Revised Date: 08/02/87
|
||||
*-------------------------------
|
||||
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/prodos
|
||||
|
||||
mli equ $bf00
|
||||
date equ $bf90
|
||||
time equ $bf92
|
||||
get_time equ $82
|
||||
|
||||
prodos ent
|
||||
org $0d00
|
||||
|
||||
*-------------------------------
|
||||
|
||||
db 0
|
||||
mode db 0
|
||||
|
||||
jmp getdate
|
||||
jmp gettime
|
||||
jmp setdate
|
||||
|
||||
* get the date in prodos gbbs format
|
||||
*-------------------------------
|
||||
getdate jsr mli ; mli call
|
||||
db get_time
|
||||
hex 0000 ; no pramater table
|
||||
|
||||
ldx date
|
||||
lda date+1
|
||||
setdate rts
|
||||
|
||||
* get the current time
|
||||
*-------------------------------
|
||||
gettime jsr rdtime
|
||||
bit mode
|
||||
bpl gtime1
|
||||
jsr convert
|
||||
|
||||
gtime1 ldx #<timestr ; point to string
|
||||
lda #>timestr
|
||||
rts
|
||||
|
||||
* read time from prodos
|
||||
*-------------------------------
|
||||
rdtime jsr getdate ; update time
|
||||
|
||||
lda time+1 ; get current hour
|
||||
jsr bindec8 ; translate to ascii
|
||||
sta timestr ; save hour
|
||||
stx timestr+1
|
||||
|
||||
lda time ; get minutes
|
||||
jsr bindec8 ; translate to ascii
|
||||
sta timestr+3 ; save minute
|
||||
stx timestr+4
|
||||
|
||||
lda #' ' ; clear out any possible am/pm
|
||||
sta timestr+9
|
||||
sta timestr+10
|
||||
|
||||
rts
|
||||
|
||||
* convert time to 12hr format
|
||||
*----------------------------
|
||||
convert lda timestr ;convert to 12 hour
|
||||
ldx timestr+1
|
||||
|
||||
and #$0f
|
||||
tay
|
||||
txa
|
||||
and #$0f
|
||||
|
||||
dey
|
||||
bmi conv2
|
||||
clc
|
||||
adc #10
|
||||
dey
|
||||
bmi conv2
|
||||
adc #10
|
||||
|
||||
conv2 cmp #12
|
||||
bne conv2a
|
||||
lda #24
|
||||
conv2a tay
|
||||
bne conv3
|
||||
lda #12
|
||||
|
||||
conv3 ldx #'A'
|
||||
cmp #13
|
||||
bcc conv4
|
||||
|
||||
sbc #12
|
||||
ldx #'P'
|
||||
|
||||
conv4 ldy #'0'
|
||||
conv5 cmp #10
|
||||
bcc conv6
|
||||
|
||||
sbc #10
|
||||
iny
|
||||
bne conv5
|
||||
|
||||
conv6 ora #'0'
|
||||
sta timestr+1
|
||||
sty timestr
|
||||
stx timestr+9
|
||||
ldx #'M'
|
||||
stx timestr+10
|
||||
rts
|
||||
|
||||
* translate a binary to text [0-99]
|
||||
*-------------------------------
|
||||
bindec8 cmp #60 ; put limit of 59
|
||||
bcc bin8
|
||||
lda #59
|
||||
|
||||
bin8 ldy #0 ; start 10's counter
|
||||
bin8a cmp #10
|
||||
bcc bin8b ; less than 10, were done
|
||||
|
||||
sbc #10 ; minus 10
|
||||
iny ; add 1 to the 10's counter
|
||||
bne bin8a ; loop
|
||||
|
||||
bin8b adc #'0' ; make 1's into text
|
||||
tax ; save
|
||||
tya
|
||||
adc #'0' ; make 10's into text
|
||||
rts ; were done
|
||||
|
||||
* '01234567890
|
||||
timestr asc '12:00:00 '
|
||||
|
|
|
@ -1 +1,130 @@
|
|||
╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ сЕРИАЛ пРО дРИЖЕР ╜ ╠╡ ХРС█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██═ЛСТ═ОФФ██═РЕЛ█═ДСК═РЕЛ╞СЕРИАЛПРО██ЛНБУФ═ЕЯУ═╓╡╟╟█МЛИ═ЕЯУ═╓БФ╟╟█ДАТЕ═ЕЯУ═╓БФ╧╟█ГЕТъТИМЕ═ЕЯУ═╓╦╡███СЕРИАЛПРО═ЕНТ██═ОРГ═╓╟Д╟╟██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██СЛОТ═ХЕЬ═╢╟█МОДЕ═ДБ═╟██═ЙМП═ГЕТДАТЕ█═ЙМП═ГЕТТИМЕ█═ЙМП═СЕТДАТЕ██╙ ГЕТ ТХЕ ДАТЕ ИН ПРОДОС ГББС ФОРМАТ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ГЕТДАТЕ═ЙСР═╓БФ╟╟═╩ МЛИ ЦАЛЛ█═ДБ═ГЕТъТИМЕ█═ХЕЬ═╟╟╟╟═╩ НО ПРАМАТЕР ТАБЛЕ██═ЛДЬ═ДАТЕ█═ЛДА═ДАТЕ╚╠█СЕТДАТЕ═РТС██╙ ГЕТ ТХЕ ЦУРРЕНТ ТИМЕ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ГЕТТИМЕ═ЙСР═РДТИМЕ█═БИТ═МОДЕ█═БПЛ═ГТИМЕ╠█═ЙСР═ЦОНЖЕРТ██ГТИМЕ╠═ЛДЬ═ё╪ТИМЕСТР═╩ ПОИНТ ТО СТРИНГ█═ЛДА═ё╬ТИМЕСТР█═РТС██╙ РЕАД ТХЕ ЦУРРЕНТ ТИМЕ ФРОМ ЦЛОЦК█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█РДТИМЕ═БИТ═ИНИТБЫТ═╩ ХАС РОУТИНЕ БЕЕН ЦАЛЛЕД БЕФОРЕ©█═БМИ═ЦЛОЦК╠═╩ ЫЕП██═ЛДА═СЛОТ═╩ ГЕТ ЦЛОЦК СЛОТ█═ЛСР█═ЛСР█═ЛСР█═ЛСР█═ОРА═ё╓Ц╟═╩ МАКЕ ИНТО ╓цН ФОРМ██═СТА═ЦЛОЦК╡╚╡═╩ МОДИФЫ ЦОДЕ ФОР СЛОТ█═СТА═ЦЛОЦКЁ╚╡█═ДЕЦ═ИНИТБЫТ═╩ СХОВ РОУТИНЕ ХАС БЕЕН ИНИТ╖ЕД██ЦЛОЦК╠═ЛДА═ё╓А╤═╩ УСЕ ╒╕╒ МОДЕ█ЦЛОЦК╡═ЙСР═╓Ц╟╡╟═╩ МОДИФИЕД ╗╓Ц╢╡╟╘█ЦЛОЦКЁ═ЙСР═╓Ц╟╠Д═╩ МОДИФИЕД ╗╓Ц╢ЛД╘██═ЛДЫ═ё╠╡█═ЛДЬ═ё╟█ЦЛОЦК╢═ЛДА═ЛНБУФ╛Ы█═СТА═ТИМЕСТР╛Ь█═ИНЫ█═ИНЬ█═ЦПЬ═ё╦█═БНЕ═ЦЛОЦК╢█═РТС██╙ ЦОНЖЕРТ ТИМЕ ТО ╠╡ ХОУР ФОРМАТ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ЦОНЖЕРТ═ЛДА═ТИМЕСТР═╩ЦОНЖЕРТ ТО ╠╡ ХОУР█═ЛДЬ═ТИМЕСТР╚╠██ЦОНЖ═АНД═ё╓╟Ф█═ТАЫ█═ТЬА█═АНД═ё╓╟Ф██═ДЕЫ█═БМИ═ЦОНЖ╡█═ЦЛЦ█═АДЦ═ё╠╟█═ДЕЫ█═БМИ═ЦОНЖ╡█═АДЦ═ё╠╟██ЦОНЖ╡═ЦМП═ё╠╡█═БНЕ═ЦОНЖ╡А█═ЛДА═ё╡╢█ЦОНЖ╡А═ТАЫ█═БНЕ═ЦОНЖЁ█═ЛДА═ё╠╡██ЦОНЖЁ═ЛДЬ═ё╖а╖█═ЦМП═ё╠Ё█═БЦЦ═ЦОНЖ╢██═СБЦ═ё╠╡█═ЛДЬ═ё╖п╖██ЦОНЖ╢═ЛДЫ═ё╖╟╖█ЦОНЖ╣═ЦМП═ё╠╟█═БЦЦ═ЦОНЖ╤██═СБЦ═ё╠╟█═ИНЫ█═БНЕ═ЦОНЖ╣██ЦОНЖ╤═ОРА═ё╖╟╖█═СТА═ТИМЕСТР╚╠█═СТЫ═ТИМЕСТР█═СТЬ═ТИМЕСТР╚╧██═ЛДЬ═ё╖м╖█═СТЬ═ТИМЕСТР╚╠╟█═РТС██ИНИТБЫТ═ХЕЬ═╟╟█ТИМЕСТР═АСЦ═╖╟╟╨╟╟╨╟╟ ам╖╛╟╟█
|
||||
*-------------------------------
|
||||
* Serial Pro Driver - 12 hrs
|
||||
*-------------------------------
|
||||
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/serialpro
|
||||
|
||||
lnbuf equ $200
|
||||
mli equ $bf00
|
||||
date equ $bf90
|
||||
get_time equ $82
|
||||
|
||||
|
||||
serialpro ent
|
||||
|
||||
org $0d00
|
||||
|
||||
*-------------------------------
|
||||
|
||||
slot hex 40
|
||||
mode db 0
|
||||
|
||||
jmp getdate
|
||||
jmp gettime
|
||||
jmp setdate
|
||||
|
||||
* get the date in prodos gbbs format
|
||||
*-------------------------------
|
||||
getdate jsr $bf00 ; mli call
|
||||
db get_time
|
||||
hex 0000 ; no pramater table
|
||||
|
||||
ldx date
|
||||
lda date+1
|
||||
setdate rts
|
||||
|
||||
* get the current time
|
||||
*-------------------------------
|
||||
gettime jsr rdtime
|
||||
bit mode
|
||||
bpl gtime1
|
||||
jsr convert
|
||||
|
||||
gtime1 ldx #<timestr ; point to string
|
||||
lda #>timestr
|
||||
rts
|
||||
|
||||
* read the current time from clock
|
||||
*-------------------------------
|
||||
rdtime bit initbyt ; has routine been called before?
|
||||
bmi clock1 ; yep
|
||||
|
||||
lda slot ; get clock slot
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
ora #$c0 ; make into $Cn form
|
||||
|
||||
sta clock2+2 ; modify code for slot
|
||||
sta clock3+2
|
||||
dec initbyt ; show routine has been init'ed
|
||||
|
||||
clock1 lda #$a6 ; use "&" mode
|
||||
clock2 jsr $c020 ; modified ($c420)
|
||||
clock3 jsr $c01d ; modified ($c4ld)
|
||||
|
||||
ldy #12
|
||||
ldx #0
|
||||
clock4 lda lnbuf,y
|
||||
sta timestr,x
|
||||
iny
|
||||
inx
|
||||
cpx #8
|
||||
bne clock4
|
||||
rts
|
||||
|
||||
* convert time to 12 hour format
|
||||
*-------------------------------
|
||||
convert lda timestr ;convert to 12 hour
|
||||
ldx timestr+1
|
||||
|
||||
conv and #$0f
|
||||
tay
|
||||
txa
|
||||
and #$0f
|
||||
|
||||
dey
|
||||
bmi conv2
|
||||
clc
|
||||
adc #10
|
||||
dey
|
||||
bmi conv2
|
||||
adc #10
|
||||
|
||||
conv2 cmp #12
|
||||
bne conv2a
|
||||
lda #24
|
||||
conv2a tay
|
||||
bne conv3
|
||||
lda #12
|
||||
|
||||
conv3 ldx #'A'
|
||||
cmp #13
|
||||
bcc conv4
|
||||
|
||||
sbc #12
|
||||
ldx #'P'
|
||||
|
||||
conv4 ldy #'0'
|
||||
conv5 cmp #10
|
||||
bcc conv6
|
||||
|
||||
sbc #10
|
||||
iny
|
||||
bne conv5
|
||||
|
||||
conv6 ora #'0'
|
||||
sta timestr+1
|
||||
sty timestr
|
||||
stx timestr+9
|
||||
|
||||
ldx #'M'
|
||||
stx timestr+10
|
||||
rts
|
||||
|
||||
initbyt hex 00
|
||||
timestr asc '00:00:00 AM',00
|
||||
|
|
|
@ -1 +1,131 @@
|
|||
╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ тХУНДЕРЦЛОЦК дРИЖЕР ╜ ╡╢ ХРС█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ дАТЕ рЕЖИСЕД╨ ╟╦╞╟╢╞╦╥█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██═ЛСТ═ОФФ██═РЕЛ█═ДСК═РЕЛ╞ТХУНДЕР██ЛНБУФ═ЕЯУ═╓╡╟╟█ДАТЕ═ЕЯУ═╓БФ╧╟██ТХУНДЕР═ЕНТ█═ОРГ═╓Д╟╟██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██СЛОТ═ХЕЬ═╢╟█МОДЕ═ДБ═╟██═ЙМП═ГЕТДАТЕ█═ЙМП═ГЕТТИМЕ█═ЙМП═СЕТДАТЕ██╩ ГЕТ ТХЕ ДАТЕ ИН ПРОДОС╞ГББС ФОРМАТ█ГЕТДАТЕ═ЙСР═╓БФ╟╟█═ХЕЬ═╦╡█═ХЕЬ═╟╟╟╟██═ЛДЬ═ДАТЕ█═ЛДА═ДАТЕ╚╠█СЕТДАТЕ═РТС██╙ ГЕТ ТХЕ ЦУРРЕНТ ТИМЕ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ГЕТТИМЕ═ЙСР═РДТИМЕ█═БИТ═МОДЕ█═БПЛ═ГТИМЕ╠█═ЙСР═ЦОНЖЕРТ██ГТИМЕ╠═ЛДЬ═ё╪ТИМЕСТР═╩ ПОИНТ ТО СТРИНГ█═ЛДА═ё╬ТИМЕСТР█═РТС██╙ РЕАД ТИМЕ ФРОМ ЦЛОЦК█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█РДТИМЕ═БИТ═ИНИТБЫТ═╩ ХАС РОУТИНЕ БЕЕН ЦАЛЛЕД БЕФОРЕ©█═БМИ═ЦЛОЦК╠═╩ ЫЕП██═ЛДА═СЛОТ═╩ ГЕТ ЦЛОЦК СЛОТ█═ЛУП═╢█═ЛСР█═╜╜ч█═ОРА═ё╓Ц╟═╩ МАКЕ ИНТО ╓цН ФОРМ██═СТА═ЦЛОЦК╡╚╡═╩ МОДИФЫ ЦОДЕ ФОР СЛОТ█═СТА═ЦЛОЦКЁ╚╡█═ДЕЦ═ИНИТБЫТ═╩ СХОВ РОУТИНЕ ХАС БЕЕН ИНИТ╖ЕД██ЦЛОЦК╠═ЛДА═ё╒ё╒═╩ УСЕ ╒╕╒ МОДЕ ╗╡╢ ХОУР╘█ЦЛОЦК╡═ЙСР═╓Ц╟╟Б═╩ МОДИФИЕД ╗╓Ц╢╟Б╘█ЦЛОЦКЁ═ЙСР═╓Ц╟╟╦═╩ МОДИФИЕД ╗╓Ц╢╟╦╘██═ЛДЫ═ё╟█ЦЛОЦК╢═ЛДА═ЛНБУФ╚╧╛Ы═╩ ГЕТ ТИМЕ ФРОМ ИНПУТ БУФФЕР█═СТА═ТИМЕСТР╛Ы█═ИНЫ█═ЦПЫ═ё╦█═БНЕ═ЦЛОЦК╢█═ЛДА═ё╒╨╒═╩ ПУТ ЦОЛЕНС БАЦК ИНТО СТРИНГ█═СТА═ТИМЕСТР╚╡█═СТА═ТИМЕСТР╚╣█═ЛДА═ё╖ ╖█═СТА═ТИМЕСТР╚╧═╩ МАКЕ СУРЕ ТХАТ ТХЕ АМ╞ПМ ИС РЕСЕТ█═СТА═ТИМЕСТР╚╠╟█═РТС██╙ ЦОНЖЕРТ ТИМЕ ТО ╠╡ ХОУР ФОРМАТ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ЦОНЖЕРТ═ЛДА═ТИМЕСТР═╩ЦОНЖЕРТ ТО ╠╡ ХОУР█═ЛДЬ═ТИМЕСТР╚╠██═АНД═ё╓╟Ф█═ТАЫ█═ТЬА█═АНД═ё╓╟Ф██═ДЕЫ█═БМИ═ЦОНЖ╡█═ЦЛЦ█═АДЦ═ё╠╟█═ДЕЫ█═БМИ═ЦОНЖ╡█═АДЦ═ё╠╟██ЦОНЖ╡═ЦМП═ё╠╡█═БНЕ═ЦОНЖ╡А█═ЛДА═ё╡╢█ЦОНЖ╡А═ТАЫ█═БНЕ═ЦОНЖЁ█═ЛДА═ё╠╡██ЦОНЖЁ═ЛДЬ═ё╖а╖█═ЦМП═ё╠Ё█═БЦЦ═ЦОНЖ╢██═СБЦ═ё╠╡█═ЛДЬ═ё╖п╖██ЦОНЖ╢═ЛДЫ═ё╖╟╖█ЦОНЖ╣═ЦМП═ё╠╟█═БЦЦ═ЦОНЖ╤██═СБЦ═ё╠╟█═ИНЫ█═БНЕ═ЦОНЖ╣██ЦОНЖ╤═ОРА═ё╖╟╖█═СТА═ТИМЕСТР╚╠█═СТЫ═ТИМЕСТР█═СТЬ═ТИМЕСТР╚╧█═ЛДЬ═ё╖м╖█═СТЬ═ТИМЕСТР╚╠╟█═РТС██╙ ДАТА АРЕА█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ИНИТБЫТ═ХЕЬ═╟╟█ТИМЕСТР═АСЦ═╖╟╟╨╟╟╨╟╟ ╖╛╟╟█
|
||||
*-------------------------------
|
||||
* Thunderclock Driver - 24 hrs
|
||||
*-------------------------------
|
||||
* Date Revised: 08/04/87
|
||||
*-------------------------------
|
||||
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/thunder
|
||||
|
||||
lnbuf equ $200
|
||||
date equ $bf90
|
||||
|
||||
thunder ent
|
||||
org $d00
|
||||
|
||||
*-------------------------------
|
||||
|
||||
slot hex 40
|
||||
mode db 0
|
||||
|
||||
jmp getdate
|
||||
jmp gettime
|
||||
jmp setdate
|
||||
|
||||
; get the date in prodos/gbbs format
|
||||
getdate jsr $bf00
|
||||
hex 82
|
||||
hex 0000
|
||||
|
||||
ldx date
|
||||
lda date+1
|
||||
setdate rts
|
||||
|
||||
* get the current time
|
||||
*-------------------------------
|
||||
gettime jsr rdtime
|
||||
bit mode
|
||||
bpl gtime1
|
||||
jsr convert
|
||||
|
||||
gtime1 ldx #<timestr ; point to string
|
||||
lda #>timestr
|
||||
rts
|
||||
|
||||
* read time from clock
|
||||
*-------------------------------
|
||||
rdtime bit initbyt ; has routine been called before?
|
||||
bmi clock1 ; yep
|
||||
|
||||
lda slot ; get clock slot
|
||||
lup 4
|
||||
lsr
|
||||
--^
|
||||
ora #$c0 ; make into $Cn form
|
||||
|
||||
sta clock2+2 ; modify code for slot
|
||||
sta clock3+2
|
||||
dec initbyt ; show routine has been init'ed
|
||||
|
||||
clock1 lda #"#" ; use "&" mode (24 hour)
|
||||
clock2 jsr $c00b ; modified ($c40b)
|
||||
clock3 jsr $c008 ; modified ($c408)
|
||||
|
||||
ldy #0
|
||||
clock4 lda lnbuf+9,y ; get time from input buffer
|
||||
sta timestr,y
|
||||
iny
|
||||
cpy #8
|
||||
bne clock4
|
||||
lda #":" ; put colens back into string
|
||||
sta timestr+2
|
||||
sta timestr+5
|
||||
lda #' '
|
||||
sta timestr+9 ; make sure that the am/pm is reset
|
||||
sta timestr+10
|
||||
rts
|
||||
|
||||
* convert time to 12 hour format
|
||||
*-------------------------------
|
||||
convert lda timestr ;convert to 12 hour
|
||||
ldx timestr+1
|
||||
|
||||
and #$0f
|
||||
tay
|
||||
txa
|
||||
and #$0f
|
||||
|
||||
dey
|
||||
bmi conv2
|
||||
clc
|
||||
adc #10
|
||||
dey
|
||||
bmi conv2
|
||||
adc #10
|
||||
|
||||
conv2 cmp #12
|
||||
bne conv2a
|
||||
lda #24
|
||||
conv2a tay
|
||||
bne conv3
|
||||
lda #12
|
||||
|
||||
conv3 ldx #'A'
|
||||
cmp #13
|
||||
bcc conv4
|
||||
|
||||
sbc #12
|
||||
ldx #'P'
|
||||
|
||||
conv4 ldy #'0'
|
||||
conv5 cmp #10
|
||||
bcc conv6
|
||||
|
||||
sbc #10
|
||||
iny
|
||||
bne conv5
|
||||
|
||||
conv6 ora #'0'
|
||||
sta timestr+1
|
||||
sty timestr
|
||||
stx timestr+9
|
||||
ldx #'M'
|
||||
stx timestr+10
|
||||
rts
|
||||
|
||||
* data area
|
||||
*-------------------------
|
||||
initbyt hex 00
|
||||
timestr asc '00:00:00 ',00
|
||||
|
|
|
@ -1 +1,148 @@
|
|||
╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ з╜рам уЛТРА ╡╜Ё ╜ ╠╡ ХОУР█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ дАТЕ рЕЖИСЕД╨ ╟╠╞Ё╟╞╧╟█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██═ЛСТ═ОФФ██═РЕЛ█═ДСК═РЕЛ╞УЛТРА██УЛТРА═ЕНТ██═ОРГ═╓╟Д╟╟██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ГЕТъТИМЕ═ЕЯУ═╓╦╡█МЛИ═ЕЯУ═╓БФ╟╟█ДАТЕ═ЕЯУ═╓БФ╧╟██═ДБ═╟╟█МОДЕ═ДБ═╟█═ЙМП═ГЕТДАТЕ█═ЙМП═ГЕТТИМЕ█═ЙМП═СЕТДАТЕ██╙ ГЕТ ТХЕ ДАТЕ ИН ПРОДОС ГББС ФОРМАТ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ГЕТДАТЕ═ЙСР═МЛИ═╩ МЛИ ЦАЛЛ█═ДБ═ГЕТъТИМЕ█═ХЕЬ═╟╟╟╟═╩ НО ПРАМАТЕР ТАБЛЕ██═ЛДЬ═ДАТЕ█═ЛДА═ДАТЕ╚╠█СЕТДАТЕ═РТС██╙ ГЕТ ТХЕ ЦУРРЕНТ ТИМЕ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ГЕТТИМЕ═ЙСР═РДТИМЕ█═БИТ═МОДЕ█═БПЛ═ГТИМЕ╠█═ЙСР═ЦОНЖЕРТ██ГТИМЕ╠═ЛДЬ═ё╪ТИМЕСТР═╩ ПОИНТ ТО СТРИНГ█═ЛДА═ё╬ТИМЕСТР█═РТС██╙ РЕАД ТХЕ ЦУРРЕНТ ТИМЕ ФРОМ ЦЛОЦК█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█РДТИМЕ═ЛДА═ё╓Ц╟╤╟█ХОЛДЦЛК═ЛДА═ё╔╟╟╟╟╟╠╟╠█═СТА═╓Ц╟╤Д█═СТА═╓Ц╟╤Д█═СТА═╓Ц╟╤Д█═ЛДЫ═ёЁ╟█ЛООП═ЛДА═╓Ц╟╤Д█═АНД═ё╔╟╟╟╟╟╟╠╟█═БЕЯ═РЕАДТИМЕ█═ДЕЫ█═БНЕ═ЛООП█═ЛДА═ё╔╟╟╟╟╟╠╟╟█═СТА═╓Ц╟╤Д█═СТА═╓Ц╟╤Д█═СТА═╓Ц╟╤Д█═БНЕ═ХОЛДЦЛК██РЕАДТИМЕ═ЛДА═╓Ц╟╤╣═╩ ╠╟╖С ОФ ХОУР█═АНД═ё╔╟╟╟╟╟╟╠╠█═ОРА═ё╓Ё╟█═СТА═ТИМЕСТР█═ЛДА═╓Ц╟╤╢═╩ ╠╖С ОФ ХОУР█═АНД═ё╔╟╟╟╟╠╠╠╠█═ОРА═ё╓Ё╟█═СТА═ТИМЕСТР╚╠█═ЛДА═╓Ц╟╤Ё═╩ ╠╟╖С ОФ МИНУТЕ█═АНД═ё╔╟╟╟╟╟╠╠╠█═ОРА═ё╓Ё╟█═СТА═ТИМЕСТР╚Ё█═ЛДА═╓Ц╟╤╡═╩ ╠╖С ОФ МИНУТЕ█═АНД═ё╔╟╟╟╟╠╠╠╠█═ОРА═ё╓Ё╟█═СТА═ТИМЕСТР╚╢█═ЛДА═╓Ц╟╤╠═╩ ╠╟╖С ОФ СЕЦОНДС█═АНД═ё╔╟╟╟╟╟╠╠╠█═ОРА═ёЁ╟█═СТА═ТИМЕСТР╚╤█═ЛДА═╓Ц╟╤╟═╩ ╠╖С ОФ СЕЦОНДС█═АНД═ё╔╟╟╟╟╠╠╠╠█═ОРА═ё╓Ё╟█═СТА═ТИМЕСТР╚╥█═ЛДА═ё╔╟╟╟╟╟╠╟╟█═СТА═╓Ц╟╤Д█═СТА═╓Ц╟╤Д═╩ РЕЛЕАСЕ ХОЛД БИТ█═СТА═╓Ц╟╤Д█═РТС██╙ ЦОНЖЕРТ ТИМЕ ТО ╠╡ХР ФОРМАТ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ЦОНЖЕРТ═ЛДА═ТИМЕСТР═╩ЦОНЖЕРТ ТО ╠╡ ХОУР█═ЛДЬ═ТИМЕСТР╚╠██═АНД═ё╓╟Ф█═ТАЫ█═ТЬА█═АНД═ё╓╟Ф██═ДЕЫ█═БМИ═ЦОНЖ╡█═ЦЛЦ█═АДЦ═ё╠╟█═ДЕЫ█═БМИ═ЦОНЖ╡█═АДЦ═ё╠╟██ЦОНЖ╡═ЦМП═ё╠╡█═БНЕ═ЦОНЖ╡А█═ЛДА═ё╡╢█ЦОНЖ╡А═ТАЫ█═БНЕ═ЦОНЖЁ█═ЛДА═ё╠╡██ЦОНЖЁ═ЛДЬ═ё╖а╖█═ЦМП═ё╠Ё█═БЦЦ═ЦОНЖ╢██═СБЦ═ё╠╡█═ЛДЬ═ё╖п╖██ЦОНЖ╢═ЛДЫ═ё╖╟╖█ЦОНЖ╣═ЦМП═ё╠╟█═БЦЦ═ЦОНЖ╤██═СБЦ═ё╠╟█═ИНЫ█═БНЕ═ЦОНЖ╣██ЦОНЖ╤═ОРА═ё╖╟╖█═СТА═ТИМЕСТР╚╠█═СТЫ═ТИМЕСТР█═СТЬ═ТИМЕСТР╚╧█═ЛДЬ═ё╖м╖█═СТЬ═ТИМЕСТР╚╠╟█═РТС███╙ ЖАРИАБЛЕС█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█ТИМЕСТР═АСЦ═╖╟╟╨╟╟╨╟╟ ╖╛╟╟█
|
||||
*-------------------------------
|
||||
* Z-RAM Ultra 2-3 - 12 hour
|
||||
*-------------------------------
|
||||
* Date Revised: 01/30/90
|
||||
*-------------------------------
|
||||
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/ultra
|
||||
|
||||
ultra ent
|
||||
|
||||
org $0d00
|
||||
|
||||
*-------------------------------
|
||||
get_time equ $82
|
||||
mli equ $bf00
|
||||
date equ $bf90
|
||||
|
||||
db 00
|
||||
mode db 0
|
||||
jmp getdate
|
||||
jmp gettime
|
||||
jmp setdate
|
||||
|
||||
* get the date in prodos gbbs format
|
||||
*-------------------------------
|
||||
getdate jsr mli ; mli call
|
||||
db get_time
|
||||
hex 0000 ; no pramater table
|
||||
|
||||
ldx date
|
||||
lda date+1
|
||||
setdate rts
|
||||
|
||||
* get the current time
|
||||
*-------------------------------
|
||||
gettime jsr rdtime
|
||||
bit mode
|
||||
bpl gtime1
|
||||
jsr convert
|
||||
|
||||
gtime1 ldx #<timestr ; point to string
|
||||
lda #>timestr
|
||||
rts
|
||||
|
||||
* read the current time from clock
|
||||
*-------------------------------
|
||||
rdtime lda #$c060
|
||||
holdclk lda #%00000101
|
||||
sta $c06d
|
||||
sta $c06d
|
||||
sta $c06d
|
||||
ldy #30
|
||||
loop lda $c06d
|
||||
and #%00000010
|
||||
beq readtime
|
||||
dey
|
||||
bne loop
|
||||
lda #%00000100
|
||||
sta $c06d
|
||||
sta $c06d
|
||||
sta $c06d
|
||||
bne holdclk
|
||||
|
||||
readtime lda $c065 ; 10's of hour
|
||||
and #%00000011
|
||||
ora #$30
|
||||
sta timestr
|
||||
lda $c064 ; 1's of hour
|
||||
and #%00001111
|
||||
ora #$30
|
||||
sta timestr+1
|
||||
lda $c063 ; 10's of minute
|
||||
and #%00000111
|
||||
ora #$30
|
||||
sta timestr+3
|
||||
lda $c062 ; 1's of minute
|
||||
and #%00001111
|
||||
ora #$30
|
||||
sta timestr+4
|
||||
lda $c061 ; 10's of seconds
|
||||
and #%00000111
|
||||
ora #30
|
||||
sta timestr+6
|
||||
lda $c060 ; 1's of seconds
|
||||
and #%00001111
|
||||
ora #$30
|
||||
sta timestr+7
|
||||
lda #%00000100
|
||||
sta $c06d
|
||||
sta $c06d ; release hold bit
|
||||
sta $c06d
|
||||
rts
|
||||
|
||||
* convert time to 12hr format
|
||||
*----------------------------
|
||||
convert lda timestr ;convert to 12 hour
|
||||
ldx timestr+1
|
||||
|
||||
and #$0f
|
||||
tay
|
||||
txa
|
||||
and #$0f
|
||||
|
||||
dey
|
||||
bmi conv2
|
||||
clc
|
||||
adc #10
|
||||
dey
|
||||
bmi conv2
|
||||
adc #10
|
||||
|
||||
conv2 cmp #12
|
||||
bne conv2a
|
||||
lda #24
|
||||
conv2a tay
|
||||
bne conv3
|
||||
lda #12
|
||||
|
||||
conv3 ldx #'A'
|
||||
cmp #13
|
||||
bcc conv4
|
||||
|
||||
sbc #12
|
||||
ldx #'P'
|
||||
|
||||
conv4 ldy #'0'
|
||||
conv5 cmp #10
|
||||
bcc conv6
|
||||
|
||||
sbc #10
|
||||
iny
|
||||
bne conv5
|
||||
|
||||
conv6 ora #'0'
|
||||
sta timestr+1
|
||||
sty timestr
|
||||
stx timestr+9
|
||||
ldx #'M'
|
||||
stx timestr+10
|
||||
rts
|
||||
|
||||
|
||||
* variables
|
||||
*-------------------------------
|
||||
timestr asc '00:00:00 ',00
|
||||
|
|
|
@ -1 +1,175 @@
|
|||
<EFBFBD><EFBFBD><EFBFBD> Πςονετθυσ Φεςσαγαςδ Δςιφες<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>εφισεδ ΔατεΊ °Έ―°²―Έ·<EFBFBD><EFBFBD><EFBFBD><EFBFBD> μστ οζζ<EFBFBD><EFBFBD> ςεμ<EFBFBD> δσλ ςεμ―φεςσα<EFBFBD><EFBFBD>φεςσα εξτ<EFBFBD><EFBFBD> οςη ¤°δ°°<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ηετίτινε ερυ ¤Έ²<EFBFBD>νμι ερυ ¤βζ°°<EFBFBD>δατε ερυ ¤βζΉ°<EFBFBD><EFBFBD>σμοτ θεψ ΄°<EFBFBD>νοδε δβ °<EFBFBD><EFBFBD> κνπ ηετδατε<EFBFBD> κνπ ηεττινε<EFBFBD> κνπ σετδατε<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ηετ τθε δατε ιξ πςοδοσ ηββσ ζοςνατ<EFBFBD><EFBFBD><EFBFBD>ηετδατε κσς νμι » νμι γαμμ<EFBFBD> δβ ηετίτινε<EFBFBD> θεψ °°°° » ξο πςανατες ταβμε<EFBFBD><EFBFBD> μδψ δατε<EFBFBD> μδα δατε«±<EFBFBD>σετδατε ςτσ<EFBFBD><EFBFBD><EFBFBD> ηετ τθε γυςςεξτ τινε<EFBFBD><EFBFBD><EFBFBD>ηεττινε κσς ςδτινε<EFBFBD> βιτ νοδε<EFBFBD> βπμ ητινε±<EFBFBD> κσς γοξφεςτ<EFBFBD><EFBFBD>ητινε± μδψ £Ότινεστς » ποιξτ το στςιξη<EFBFBD> μδα £Ύτινεστς<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD> ζιηυςε τθε γυςςεξτ τινε<EFBFBD><EFBFBD><EFBFBD>ςδτινε κσς ςδγμογλ<EFBFBD> μδα τινεστς<EFBFBD> πθα » ζιψ θους ¨ςενοφε© αν―πν ιξζο©<EFBFBD> αξδ £¥°°±±°°±±<EFBFBD> στα τινεστς<EFBFBD> πμα<EFBFBD><EFBFBD> μσς<EFBFBD> μσς<EFBFBD> μσς » νοφε αν―πν βιτ ιξτο γαςςω<EFBFBD> βγγ ηεττιν² » ιτ ισ αν ¨δεζαυμτ©<EFBFBD><EFBFBD> μδα £§Π§ » γθαξηε το πν<EFBFBD> στα τινεστς«Ή<EFBFBD><EFBFBD>ηεττιν² μσς » νοφε ±²―²΄ θους βιτ ιξτο γαςςω<EFBFBD> βγγ ηεττιν³ » ιξ ±² θους νοδε¬ αμμ ισ χεμμ<EFBFBD><EFBFBD> μδα £§ § » ιξ ²΄ θους νοδε λιμμ αν―πν<EFBFBD> στα τινεστς«Ή<EFBFBD> στα τινεστς«±°<EFBFBD><EFBFBD>ηεττιν³ ςτσ<EFBFBD><EFBFBD><EFBFBD> ςεαδ τθε δατε ζςον γμογλ<EFBFBD><EFBFBD><EFBFBD>ςδγμογλ μδψ £°<EFBFBD> μδω σμοτ » ηετ σμοτ οζζσετ<EFBFBD>ςδγμλ² μδα γμλπαςν¬ψ » ηετ ζυξγτιοξ<EFBFBD> βερ ςδγμλ΄<EFBFBD> βνι ςδγμλ³ » κυστ ασγιι δατα<EFBFBD><EFBFBD> αξδ £¥°°±±±±±± » λιμμ θιηθ στατυσ ιξζο<EFBFBD> στα ¤γ°Έ²¬ω » ποιξτ το δατα<EFBFBD><EFBFBD> μδα ¤γ°Έ³¬ω » μοαδ ιξ δατα<EFBFBD> αξδ £¥°°°°±±±± » ηετ ςιδ οζ εψτςα<EFBFBD> οςα £§°§ » ναλε ιξτο ξυνεςιγ διηιτ<EFBFBD>ςδγμλ³ αξδ £¤·ζ » λιμμ θιηθ ¨ζςον ασγιι©<EFBFBD> στα τινεστς¬ψ<EFBFBD> ιξψ<EFBFBD> κνπ ςδγμλ² » ηο υξτιμ ουτ οζ δατα<EFBFBD>ςδγμλ΄ ςτσ<EFBFBD><EFBFBD><EFBFBD> γοξφεςτ τινε το ±²θς ζοςνατ<EFBFBD><EFBFBD><EFBFBD>γοξφεςτ μδα τινεστς »γοξφεςτ το ±² θους<EFBFBD> μδψ τινεστς«±<EFBFBD><EFBFBD> αξδ £¤°ζ<EFBFBD> ταω<EFBFBD> τψα<EFBFBD> αξδ £¤°ζ<EFBFBD><EFBFBD> δεω<EFBFBD> βνι γοξφ²<EFBFBD> γμγ<EFBFBD> αδγ £±°<EFBFBD> δεω<EFBFBD> βνι γοξφ²<EFBFBD> αδγ £±°<EFBFBD><EFBFBD>γοξφ² γνπ £±²<EFBFBD> βξε γοξφ²α<EFBFBD> μδα £²΄<EFBFBD>γοξφ²α ταω<EFBFBD> βξε γοξφ³<EFBFBD> μδα £±²<EFBFBD><EFBFBD>γοξφ³ μδψ £§Α§<EFBFBD> γνπ £±³<EFBFBD> βγγ γοξφ΄<EFBFBD><EFBFBD> σβγ £±²<EFBFBD> μδψ £§Π§<EFBFBD><EFBFBD>γοξφ΄ μδω £§°§<EFBFBD>γοξφµ γνπ £±°<EFBFBD> βγγ γοξφ¶<EFBFBD><EFBFBD> σβγ £±°<EFBFBD> ιξω<EFBFBD> βξε γοξφµ<EFBFBD><EFBFBD>γοξφ¶ οςα £§°§<EFBFBD> στα τινεστς«±<EFBFBD> στω τινεστς<EFBFBD> στψ τινεστς«Ή<EFBFBD> μδψ £§Ν§<EFBFBD> στψ τινεστς«±°<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD> γοξφεςτ α ² βωτε δεγιναμ ξυνβες το βιξαςω<EFBFBD><EFBFBD><EFBFBD>δεγβιξΈ αξδ £¤·ζ<EFBFBD> σεγ<EFBFBD> σβγ £§°§<EFBFBD> στα δεγβωτε » σαφε ±°§σ διηιτ<EFBFBD> τψα » νοφε ±§σ ιξτο Α<EFBFBD> αξδ £¤·ζ<EFBFBD> σεγ<EFBFBD> σβγ £§°§<EFBFBD><EFBFBD> μδω £±°<EFBFBD>δεγΈα γμγ<EFBFBD> αδγ δεγβωτε » αδδ τθε ±°§σ διηιτ¬ ±° τινεσ<EFBFBD> δεω<EFBFBD> βξε δεγΈα<EFBFBD> ςτσ » ςετυςξ χιτθ ςεσυμτ<EFBFBD><EFBFBD>δεγβωτε θεψ °°<EFBFBD><EFBFBD><EFBFBD> φαςιαβμεσ<EFBFBD><EFBFBD><EFBFBD>τινεστς ασγ §°°Ί°°Ί°° ΑΝ§¬°°<EFBFBD><EFBFBD>γμλπαςν θεψ ±µ±΄<EFBFBD> ασγ ΆΊΆ<EFBFBD> θεψ ±³±²<EFBFBD> ασγ ΆΊΆ<EFBFBD> θεψ ±±±°<EFBFBD> ασγ Ά ΑΝΆ<EFBFBD> θεψ °°<EFBFBD>
|
||||
*-------------------------------
|
||||
* Promethus Versacard Driver
|
||||
*-------------------------------
|
||||
* Revised Date: 08/02/87
|
||||
*-------------------------------
|
||||
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/versa
|
||||
|
||||
versa ent
|
||||
|
||||
org $0d00
|
||||
|
||||
*-------------------------------
|
||||
|
||||
get_time equ $82
|
||||
mli equ $bf00
|
||||
date equ $bf90
|
||||
|
||||
slot hex 40
|
||||
mode db 0
|
||||
|
||||
jmp getdate
|
||||
jmp gettime
|
||||
jmp setdate
|
||||
|
||||
|
||||
* get the date in prodos gbbs format
|
||||
*-------------------------------
|
||||
getdate jsr mli ; mli call
|
||||
db get_time
|
||||
hex 0000 ; no pramater table
|
||||
|
||||
ldx date
|
||||
lda date+1
|
||||
setdate rts
|
||||
|
||||
* get the current time
|
||||
*-------------------------------
|
||||
gettime jsr rdtime
|
||||
bit mode
|
||||
bpl gtime1
|
||||
jsr convert
|
||||
|
||||
gtime1 ldx #<timestr ; point to string
|
||||
lda #>timestr
|
||||
rts
|
||||
|
||||
* figure the current time
|
||||
*-------------------------------
|
||||
rdtime jsr rdclock
|
||||
lda timestr
|
||||
pha ; fix hour (remove) am/pm info)
|
||||
and #%00110011
|
||||
sta timestr
|
||||
pla
|
||||
|
||||
lsr
|
||||
lsr
|
||||
lsr ; move am/pm bit into carry
|
||||
bcc gettim2 ; it is am (default)
|
||||
|
||||
lda #'P' ; change to pm
|
||||
sta timestr+9
|
||||
|
||||
gettim2 lsr ; move 12/24 hour bit into carry
|
||||
bcc gettim3 ; in 12 hour mode, all is well
|
||||
|
||||
lda #' ' ; in 24 hour mode kill am/pm
|
||||
sta timestr+9
|
||||
sta timestr+10
|
||||
|
||||
gettim3 rts
|
||||
|
||||
* read the date from clock
|
||||
*----------------------------
|
||||
rdclock ldx #0
|
||||
ldy slot ; get slot offset
|
||||
rdclk2 lda clkparm,x ; get function
|
||||
beq rdclk4
|
||||
bmi rdclk3 ; just ascii data
|
||||
|
||||
and #%00111111 ; kill high status info
|
||||
sta $c082,y ; point to data
|
||||
|
||||
lda $c083,y ; load in data
|
||||
and #%00001111 ; get rid of extra
|
||||
ora #'0' ; make into numeric digit
|
||||
rdclk3 and #$7f ; kill high (from ascii)
|
||||
sta timestr,x
|
||||
inx
|
||||
jmp rdclk2 ; go until out of data
|
||||
rdclk4 rts
|
||||
|
||||
* convert time to 12hr format
|
||||
*--------------------------------
|
||||
convert lda timestr ;convert to 12 hour
|
||||
ldx timestr+1
|
||||
|
||||
and #$0f
|
||||
tay
|
||||
txa
|
||||
and #$0f
|
||||
|
||||
dey
|
||||
bmi conv2
|
||||
clc
|
||||
adc #10
|
||||
dey
|
||||
bmi conv2
|
||||
adc #10
|
||||
|
||||
conv2 cmp #12
|
||||
bne conv2a
|
||||
lda #24
|
||||
conv2a tay
|
||||
bne conv3
|
||||
lda #12
|
||||
|
||||
conv3 ldx #'A'
|
||||
cmp #13
|
||||
bcc conv4
|
||||
|
||||
sbc #12
|
||||
ldx #'P'
|
||||
|
||||
conv4 ldy #'0'
|
||||
conv5 cmp #10
|
||||
bcc conv6
|
||||
|
||||
sbc #10
|
||||
iny
|
||||
bne conv5
|
||||
|
||||
conv6 ora #'0'
|
||||
sta timestr+1
|
||||
sty timestr
|
||||
stx timestr+9
|
||||
ldx #'M'
|
||||
stx timestr+10
|
||||
rts
|
||||
|
||||
* convert a 2 byte decimal number to binary
|
||||
*--------------------------------
|
||||
decbin8 and #$7f
|
||||
sec
|
||||
sbc #'0'
|
||||
sta decbyte ; save 10's digit
|
||||
txa ; move 1's into A
|
||||
and #$7f
|
||||
sec
|
||||
sbc #'0'
|
||||
|
||||
ldy #10
|
||||
dec8a clc
|
||||
adc decbyte ; add the 10's digit, 10 times
|
||||
dey
|
||||
bne dec8a
|
||||
rts ; return with result
|
||||
|
||||
decbyte hex 00
|
||||
|
||||
* variables
|
||||
*-------------------------
|
||||
timestr asc '00:00:00 AM',00
|
||||
|
||||
clkparm hex 1514
|
||||
asc ":"
|
||||
hex 1312
|
||||
asc ":"
|
||||
hex 1110
|
||||
asc " AM"
|
||||
hex 00
|
||||
|
|
|
@ -1 +1,29 @@
|
|||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ΗΒΒΣ Πςο Γοξζιη Πςοηςαν <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Δατε<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ςεμ<EFBFBD> δσλ ςεμ―γοξζιη<EFBFBD><EFBFBD> μστ οζζ<EFBFBD> πυτ ερυατεσ<EFBFBD> πυτ σταςτ<EFBFBD> πυτ ςουτιξε<EFBFBD> πυτ δισλ<EFBFBD> πυτ πδισλιο<EFBFBD> πυτ οσπκυξλ<EFBFBD> πυτ φιδδφς<EFBFBD> πυτ νοδεν<EFBFBD> πυτ φιδεο<EFBFBD> πυτ γμογλ<EFBFBD> πυτ πςιξτες<EFBFBD> πυτ ιξιτ<EFBFBD> πυτ πζιμτες<EFBFBD> πυτ πστος<EFBFBD> πυτ βοαςδεδιτ<EFBFBD> πυτ υσες<EFBFBD> πυτ υσεςπυςηε<EFBFBD>
|
||||
********************************
|
||||
* *
|
||||
* GBBS Pro - Config Program *
|
||||
* *
|
||||
********************************
|
||||
Date
|
||||
********************************
|
||||
|
||||
rel
|
||||
dsk rel/config
|
||||
|
||||
lst off
|
||||
put equates
|
||||
put start
|
||||
put routine
|
||||
put disk
|
||||
put pdiskio
|
||||
put ospjunk
|
||||
put viddvr
|
||||
put modem
|
||||
put video
|
||||
put clock
|
||||
put printer
|
||||
put init
|
||||
put pfilter
|
||||
put pstor
|
||||
put boardedit
|
||||
put user
|
||||
put userpurge
|
||||
|
|
|
@ -1 +1,103 @@
|
|||
<EFBFBD><EFBFBD><EFBFBD> Δισλ στυζζ ζος γοξζιη<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ΔατεΊ ³―±±―ΈΈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ςεαδ ιξ α παςτιαμ ςεγοςδ Ϋ±²µµ βωτεσέ<EFBFBD><EFBFBD>ςδπαςτ στψ παςτ<EFBFBD> στα παςτ«± » ποιξτ το βυζζες<EFBFBD> τωα<EFBFBD> ταψ » σαφε γουξτες<EFBFBD><EFBFBD> μδω £°<EFBFBD>Ίμοοπ κσς ςδβωτε » ςεαδ ιξ δατα<EFBFBD> βγσ Ίεςςος » εςςος<EFBFBD><EFBFBD> στα ¨παςτ©¬ω<EFBFBD> ιξω<EFBFBD> δεψ<EFBFBD> βξε Ίμοοπ » δο ξεψτ βωτε<EFBFBD><EFBFBD> γμγ » αμμ χεξτ χεμμ<EFBFBD>Ίεςςος ςτσ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> χςιτε α παςτιαμ βμογλ οζ δατα το δισλ<EFBFBD><EFBFBD>χςπαςτ στψ παςτ » ποιξτ το δατα<EFBFBD> στα παςτ«±<EFBFBD> τωα<EFBFBD> ταψ » σαφε μεξητθ<EFBFBD><EFBFBD> μδω £°<EFBFBD>Ίμοοπ μδα ¨παςτ©¬ω » χςιτε ουτ δατα<EFBFBD> κσς χςβωτε<EFBFBD> ιξω<EFBFBD> δεψ<EFBFBD> βξε Ίμοοπ » δο ξεψτ βωτε<EFBFBD><EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> φεςιζω α τθατ α δισλ ισ οξμιξε<EFBFBD><EFBFBD>φεςιζω στψ φεςιζωίπ«± » ποιξτ το χαξτεδ πατθ<EFBFBD> στα φεςιζωίπ«²<EFBFBD><EFBFBD> κσς νμι<EFBFBD> δβ ¤γ¶ » σετ πςεζιψ<EFBFBD> δχ φεςιζωίπ<EFBFBD> βγσ Ίεςςος<EFBFBD><EFBFBD> κσς νμι »ηετ πςεζιψ ζος σουςγε φομυνε<EFBFBD> δβ ¤γ· »ηετ πςεζιψ<EFBFBD> δχ πίπζψ² »ποιξτ το πατθ<EFBFBD>Ίεςςος ςτσ<EFBFBD><EFBFBD>φεςιζωίπ δβ ±<EFBFBD> δχ ° »αδδςεσσ οζ πατθ το σετ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> μοαδ γοξζιη―αγοσ®οβκ ζςον δισλ<EFBFBD><EFBFBD>μδαγοσ κσς μοηπςη » μοη το τθε πςοηςαν δισλ<EFBFBD> μδψ £Όηξανε<EFBFBD> μδα £Ύηξανε<EFBFBD> κσς νοφξανε » νοφε ζιμεξανε<EFBFBD> κσς οπεξ » οπεξ §αγοσ®οβκ§<EFBFBD> βγσ Ίεςςος » εςςος<EFBFBD><EFBFBD> μδψ £Όγοξζβυζ » μοαδ γοξζιη παςτ ιξτο βυζζες<EFBFBD> μδα £Ύγοξζβυζ<EFBFBD> μδω £²° » ςεαδ ±° παηεσ ¨µ βμογλσ©<EFBFBD> κσς ςδβμλ<EFBFBD> κσς γμοσε » γμοσε ζιμε<EFBFBD> γμγ<EFBFBD>Ίεςςος ςτσ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> χςιτε γοξζιη―αγοσ®οβκ βαγλ το δισλ<EFBFBD><EFBFBD>σφαγοσ κσς μοηπςη » μοη το πςοηςαν δισλ<EFBFBD> μδψ £Όηξανε<EFBFBD> μδα £Ύηξανε<EFBFBD> κσς νοφξανε » νοφε ζιμεξανε<EFBFBD> κσς οπεξ<EFBFBD> βγσ Ίεςςος<EFBFBD><EFBFBD> μδψ £Όγοξζβυζ » χςιτε γοξζιη βαγλ το δισλ<EFBFBD> μδα £Ύγοξζβυζ<EFBFBD> μδω £²°<EFBFBD> κσς χςβμλ » χςιτε ±° παηεσ ¨µ βμογλσ©<EFBFBD> κσς γμοσε<EFBFBD> γμγ<EFBFBD>Ίεςςος ςτσ<EFBFBD><EFBFBD>ςεζξυν δβ °<EFBFBD><EFBFBD><EFBFBD>
|
||||
*-------------------------------
|
||||
* Disk stuff for config
|
||||
*-------------------------------
|
||||
* Date: 3/11/88
|
||||
*-------------------------------
|
||||
|
||||
*-------------------------------
|
||||
* read in a partial record [1-255 bytes]
|
||||
|
||||
rdpart stx part
|
||||
sta part+1 ; point to buffer
|
||||
tya
|
||||
tax ; save counter
|
||||
|
||||
ldy #0
|
||||
:loop jsr rdbyte ; read in data
|
||||
bcs :error ; error
|
||||
|
||||
sta (part),y
|
||||
iny
|
||||
dex
|
||||
bne :loop ; do next byte
|
||||
|
||||
clc ; all went well
|
||||
:error rts
|
||||
|
||||
*-------------------------------
|
||||
* write a partial block of data to disk
|
||||
|
||||
wrpart stx part ; point to data
|
||||
sta part+1
|
||||
tya
|
||||
tax ; save length
|
||||
|
||||
ldy #0
|
||||
:loop lda (part),y ; write out data
|
||||
jsr wrbyte
|
||||
iny
|
||||
dex
|
||||
bne :loop ; do next byte
|
||||
|
||||
rts
|
||||
|
||||
|
||||
*-------------------------------
|
||||
* verify a that a disk is online
|
||||
|
||||
verify stx verify_p+1 ; point to wanted path
|
||||
sta verify_p+2
|
||||
|
||||
jsr mli
|
||||
db $c6 ; set prefix
|
||||
dw verify_p
|
||||
bcs :error
|
||||
|
||||
jsr mli ;get prefix for source volume
|
||||
db $c7 ;get prefix
|
||||
dw p_pfx2 ;point to path
|
||||
:error rts
|
||||
|
||||
verify_p db 1
|
||||
dw 0 ;address of path to set
|
||||
|
||||
|
||||
*-------------------------------
|
||||
* load config/acos.obj from disk
|
||||
|
||||
ldacos jsr logprg ; log to the program disk
|
||||
ldx #<gname
|
||||
lda #>gname
|
||||
jsr movname ; move filename
|
||||
jsr open ; open 'acos.obj'
|
||||
bcs :error ; error
|
||||
|
||||
ldx #<confbuf ; load config part into buffer
|
||||
lda #>confbuf
|
||||
ldy #20 ; read 10 pages (5 blocks)
|
||||
jsr rdblk
|
||||
jsr close ; close file
|
||||
clc
|
||||
:error rts
|
||||
|
||||
*-------------------------------
|
||||
* write config/acos.obj back to disk
|
||||
|
||||
svacos jsr logprg ; log to program disk
|
||||
ldx #<gname
|
||||
lda #>gname
|
||||
jsr movname ; move filename
|
||||
jsr open
|
||||
bcs :error
|
||||
|
||||
ldx #<confbuf ; write config back to disk
|
||||
lda #>confbuf
|
||||
ldy #20
|
||||
jsr wrblk ; write 10 pages (5 blocks)
|
||||
jsr close
|
||||
clc
|
||||
:error rts
|
||||
|
||||
refnum db 0
|
||||
|
||||
|
||||
|
|
|
@ -1 +1,82 @@
|
|||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 獚<EFBFBD> 蔑铈殓 序镧蜥<EFBFBD> <EFBFBD> 篷踽翦<EFBFBD> 獚<EFBFBD> 獚<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 尼翦<EFBFBD> 朝北<EFBFBD>笉<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崓怏犲聃牑案嶌鏍羼鯛ぐ釐躔犲聃牑扳嶃驙羼鯛ぐ鋶骟犲聃牑钡嶃犷犲聃牑备嶅筱犲聃牑扁嶄屐犲聃牑锋崓<EFBFBD> 礤盹蝙 犰祜汜糸镱 <EFBFBD> 怩骀弪髰嶌钼蹑犲聃牑安鞍嶆祛犴鍫羼鯛ぐ嘲皪骒翦<EFBFBD>犲聃牑俺氨嶒弩弭犲聃牑俺娌嶃镱驸蹑犲聃牑案鞍嶆殪翦驙羼鯛ぐ赴祶溴鲱犴犲聃牑案钡嶖殇潋鰻羼鯛ぐ拱皪痱潋鰻羼鯛ぐ惆皪沆脘蝣犲聃牑颁鞍嶍漤潋鰻羼鯛ぐ灏皪沅怡翦犲聃牑北怄嶀铙篝驙羼鯛け便皪轭轸篝驙羼鯛け变皪桎蜮蹑犲聃牑辈鞍崓沅豉疱犲聃牑辨驿嶍镤屙豉疱犲聃牑辨驽嶓弪獒祠<EFBFBD>鍫羼鯛け骀鎹嶍扉犲聃牑怄鞍崓轭轸怩鏍羼鯛け赴皪犷筲蹑犲聃牑备嘲嶆怩姹犲聃牑便鞍嶆钺肀犲聃牑卞鞍崓箫螋怩鏍羼鯛じ鞍皪泔瘗怩鏍羼鯛ざ鞍皪泔瘗磲鵂羼鯛さ赴皪<EFBFBD> <EFBFBD>蝻 疳珏 躞徵鍗嶔屙馉羼鯛ぐ皪翦眇矤羼鯛ぐ矋翦眇碃羼鯛ぐ磵翦眇礌羼鯛ぐ秿<EFBFBD>筢鲥犲聃牑肮嶚唧狯鍫羼鯛ぐ釐汨蝠趄犲聃牑扳嶁狍鍫羼鯛ぐ鋶磲<EFBFBD>孱犲聃牑版嶉铞弪箦犲聃牑卑嶐镩铘盃羼鯛け睄痫轭舯犲聃牑贝嶐蝾犲聃牑倍牷 鄞 怡翦筝嶎蹴痿驙羼鯛け釐痼狯鍫羼鯛け銔痱铘犲聃牑卞崓汨犲聃牑泊嶃鰻羼鯛げ祶嶆眇狎頎羼鯛ざ皪滹篾弪餇羼鯛ざ矋滹箴趄犲聃牑洞嶐狎魻羼鯛ざ秿滹筲<EFBFBD>犲聃牑陡崓痫轭舫犲聃牑驿崓<EFBFBD>
|
||||
********************************
|
||||
* *
|
||||
* Config Program - Equates *
|
||||
* *
|
||||
********************************
|
||||
|
||||
*-------------------------------
|
||||
* Date: 3/11/88
|
||||
*-------------------------------
|
||||
|
||||
bs equ $08
|
||||
lf equ $0a
|
||||
up equ $0b
|
||||
cr equ $0d
|
||||
fs equ $15
|
||||
can equ $18
|
||||
esc equ $1b
|
||||
del equ $7f
|
||||
|
||||
; memory allocation / buffers
|
||||
|
||||
lnbuf equ $0200
|
||||
flname equ $0300
|
||||
fltext equ $0301
|
||||
reset equ $03f2
|
||||
confbuf equ $0800
|
||||
filter equ $0805
|
||||
devnam equ $0815
|
||||
viddrv equ $0900
|
||||
prdrv equ $0c00
|
||||
clkdrv equ $0d00
|
||||
mdmdrv equ $0e00
|
||||
cdbyte equ $11bf
|
||||
ansstr equ $11c0
|
||||
initstr equ $11d0
|
||||
hdrbuf equ $1200
|
||||
|
||||
cdtype equ $1ffd
|
||||
modemtype equ $1ffe
|
||||
serialtype equ $1fff
|
||||
|
||||
mli equ $bf00
|
||||
|
||||
initbuf equ $1800
|
||||
ansbuf equ $1830
|
||||
fbuf1 equ $1c00
|
||||
fnam1 equ $1e00
|
||||
|
||||
sortbuf equ $8000
|
||||
copybuf equ $6000
|
||||
copymax equ $5800
|
||||
; zero page usage
|
||||
|
||||
temp equ $00
|
||||
temp2 equ $02
|
||||
temp3 equ $04
|
||||
temp4 equ $06
|
||||
x_save equ $09
|
||||
y_save equ $0a
|
||||
chrptr equ $0b
|
||||
base equ $0d
|
||||
maxlen equ $0f
|
||||
inverse equ $10
|
||||
point0 equ $11
|
||||
point1 equ $14
|
||||
prn equ $16 ; [4 bytes]
|
||||
numptr equ $1a
|
||||
psave equ $1c
|
||||
prnt equ $1e
|
||||
|
||||
ch equ $24
|
||||
cv equ $25
|
||||
|
||||
fmparm equ $60
|
||||
doszero equ $62
|
||||
dosptr equ $64
|
||||
part equ $66
|
||||
dosbyt equ $68
|
||||
|
||||
point3 equ $fd
|
||||
|
||||
|
||||
|
|
|
@ -263,8 +263,8 @@ hard1 ldx #<einit3
|
|||
jsr cls
|
||||
jsr print
|
||||
asc 'Please enter the slot and drive of your'0d
|
||||
asc 'mass storage device. If your media is',0d
|
||||
asc 'removable, then please make sure there'0d
|
||||
asc 'mass storage device. If your media is',0d
|
||||
asc 'removable, then please make sure there'0d
|
||||
asc 'is formatted media in place.',0d,0d,0d
|
||||
asc ' Slot? [1-7] ',00
|
||||
ldx #7
|
||||
|
@ -288,12 +288,11 @@ hard1 ldx #<einit3
|
|||
|
||||
jsr cls
|
||||
jsr print
|
||||
asc 'If you continue, a subdirectory',0d
|
||||
asc 'GBBS.PRO will be created on your',0d
|
||||
asc 'mass storage device. All needed',0d
|
||||
asc 'files will be copied into this',0d
|
||||
asc 'subdirectory. No existing files',0d
|
||||
asc 'will be destroyed.'00
|
||||
asc 'If you continue, a directory GBBS.PRO',0d
|
||||
asc 'will be created on your mass storage',0d
|
||||
asc 'device. All needed files will be copied',0d
|
||||
asc 'into this folder. Existing files will',0d
|
||||
asc 'not be destroyed.',00
|
||||
jsr getcr
|
||||
|
||||
lda #0 ; no more turning away..
|
||||
|
@ -306,19 +305,18 @@ hard1 ldx #<einit3
|
|||
|
||||
:nospace jsr cls
|
||||
jsr print
|
||||
asc 'The storage device checked does not'0d
|
||||
asc 'contain enough storage space to run',0d
|
||||
asc 'the system. You need to make some'0d
|
||||
asc 'more room on the device, or choose',0d
|
||||
asc 'another device.',00
|
||||
asc "The storage device checked doesn't have",0d
|
||||
asc 'enough free storage space to run the',0d
|
||||
asc 'system. You need to make some more room'0d
|
||||
asc 'on the device, or choose another device.',00
|
||||
|
||||
jsr getcr
|
||||
jmp hard1 ; goto hard/floppy question
|
||||
|
||||
hard2 jsr cls
|
||||
jsr print
|
||||
asc 'The configuration program is now going'0d
|
||||
asc 'to copy all the files needed to run',0d
|
||||
asc 'The configuration program is now going'0d
|
||||
asc 'to copy all the files necessary to run',0d
|
||||
asc 'GBBS Pro onto your mass storage device.',00
|
||||
|
||||
jsr getg ; get permission
|
||||
|
@ -359,10 +357,10 @@ hard2 jsr cls
|
|||
|
||||
jsr cls
|
||||
jsr print
|
||||
asc 'Your system is now configured and is'0d
|
||||
asc 'ready to run. To bring up your system',0d
|
||||
asc 'Your system is now configured and is'0d
|
||||
asc 'ready to run. To bring up your system',0d
|
||||
asc 'for operation, do the following:',0d,0d
|
||||
asc 'Boot up your mass storage device and'0d
|
||||
asc 'Boot up your mass storage device and'0d
|
||||
asc 'type "PREFIX GBBS.PRO/PROGRAM".',0d,0d
|
||||
asc 'Type "-ACOS" to start your system.',00
|
||||
|
||||
|
|
|
@ -1 +1,39 @@
|
|||
𥔱黀𩤃緧<EFBFBD>峁樦<EFBFBD>劌<EFBFBD>蠈麈濎濊黀<EFBFBD>龟限限限限限限限限限限限限限限限<EFBFBD><EFBFBD> 濎濊 黀襢鍡<EFBFBD> 緮<EFBFBD> 臩麧薃<EFBFBD>蘦繰敦<EFBFBD>槴<EFBFBD><EFBFBD>鵽𡵆轂堬荌蔣茞蔣硫酈眥⑺扆妞唬為<EFBFBD>㶑麔僎偽惩隮<EFBFBD>摷<EFBFBD>岐婥揭荓汕累商偷敏祭捲衙副敗飢為銢偽<EFBFBD>摫麇盒<EFBFBD>槴<EFBFBD><EFBFBD>鵽𡵆轂堭荌蔣茞蔣硫眥妞凰為<EFBFBD>滩朅殢捲偽惩隮<EFBFBD>摷<EFBFBD>岐娸偷敏祭捲該掘蔑眥妞凰為<EFBFBD>滩朅殢眼偽惩隮<EFBFBD>摷<EFBFBD>岐婥勝偷惘簽汛細祭捲詩飢為蘇偽<EFBFBD>貗鼤敦<EFBFBD>槴<EFBFBD><EFBFBD>鵽𡵆轂媯荌蔣茞蔣硫眥妞凰為<EFBFBD>滨槴殣殫惩隮<EFBFBD>摷<EFBFBD>岐娸偷敏祭捲詩飢為蘇偽<EFBFBD>歑殫惩隮<EFBFBD>摷<EFBFBD>岐娸偷敏祭捲蒂簽汛累隻荓妞凰為<EFBFBD>滩朅殢僎偽惩隮<EFBFBD>摷<EFBFBD>岐娸偷敏祭捲蒂簽汛畢荓竹啄剪啞飢為蘇偽<EFBFBD>魟酃擩鎀眼惩隮<EFBFBD>摷<EFBFBD>岐娸偷敏祭捲蒂簽汛畢荓眥妞唬為<EFBFBD>纍鐍廜集<EFBFBD>槴<EFBFBD><EFBFBD>鵽𡵆轂荌蔣茞蔣硫蚢善斐茬善策簽汛畢荌竹傅笴妞唬為<EFBFBD>
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/initstr
|
||||
|
||||
*-------------------------------
|
||||
* init strings for modems
|
||||
|
||||
usr2400 ent
|
||||
asc 'ATX2S0=1S2=128E0V0F1Q0',0d,00
|
||||
|
||||
usr9600 ent
|
||||
asc 'ATX4&S1&B2V0S0=1S2=128E0F1Q0',0d,00
|
||||
|
||||
apl1200 ent
|
||||
asc 'ATX1S0=1S2=128V0',0D,00
|
||||
|
||||
hayes1200 ent
|
||||
asc 'ATS0=1S2=128S18=0V0',0D,00
|
||||
|
||||
hayes2400 ent
|
||||
asc 'ATX3S0=1&C1&D2S2=128V0',0D,00
|
||||
|
||||
pro2400 ent
|
||||
asc 'ATX5S0=1S2=128V0',0D,00
|
||||
|
||||
generic ent
|
||||
asc 'ATS0=1S2=128V0',0D,00
|
||||
|
||||
epic ent
|
||||
asc 'ATS0=1S2=128&C1&D2V0&S1',0D,00
|
||||
|
||||
hayes9600 ent
|
||||
asc 'ATS0=1S2=128&C1&D2&S1&K0V0E0W0',0D,00
|
||||
|
||||
datalink24 ent
|
||||
asc 'ATS0=1S2=128&C1&D2&S1V0',0d,00
|
||||
ultra9600 ent
|
||||
asc 'ATS0=1S2=128S95=44S35=5&C1&D2&S0&K3EVM',0d,00
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1,265 @@
|
|||
╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ иНТЕРНАЛ ╜ аППЛЕ цАТ ╠╟Ё█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ дАТЕ Ё╞╠╦╞╦╦ ╜ аен█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██═ЛСТ═ОФФ█═РЕЛ█═ДСК═РЕЛ╞ЦАТ╠╟Ё██СВБЫТ═еяу═╓Ц╟╦╟█СХБЫТ═еяу═╓Ц╟╦╡█ИНДАТА═еяу═╓Ц╟╦Б█СПДБЫТ═еяу═╓Ц╟╦Б█АЦБЫТЕ═еяу═╓Ц╟╦Д█ЬМТБЫТ═еяу═╓Ц╟╦Д█ОУТДАТ═еяу═╓Ц╟╦Е█СТАТУС╠═еяу═╓Ц╟╦Ф██ЦАТ╠╟Ё═ЕНТ██═ОРГ═╓Е╟╟██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ЙУМП ТАБЛЕ██СЛОТ═ДФБ═╓╡╟═╩СЕРИАЛ ЦАРД СЛОТ█ИНИТСПД═ДФБ═╟═╩ИНИТИАЛИЗЕ СПЕЕД█ЦАЛЛСПД═ДФБ═╟═╩СПЕЕД ОФ ЦАЛЛ██БЫТЦНТ═ДФБ═╟╛╟╛╟██═ймп═ИНИТ█═ймп═РИНГСЕТ█═ймп═РИНГ█═ймп═АНСВЕР█═ймп═ХАНГУП█═ймп═ИНП█═ймп═ОУТ█═ймп═ЦХКДЦД█═ЙМП═СЕТСПД█═ЙМП═ДУММЫ═╩РАИСЕ ДТР█═ЙМП═ДУММЫ═╩ЦЛЕАР БУФФЕР█═ЙМП═ДУММЫ═╩ЯУИТ██ДУММЫ═РТС██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ИНИТ ТХЕ МОДЕМ ЦАРД██ИНИТ═сеи█═лдь═СЛОТ═╩ГЕТ СЛОТ ОФФСЕТ█═лды═ё╟█ИНИТ╡═лда═ИНИТБЫТ╛Ы═╩ИНИТ АЛЛ ╠╤ БЫТЕС█═ста═╓Ц╟╦╟╛Ь█═инь█═ины█═цпы═ё╓╠╟█═бне═ИНИТ╡█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ СЕТУП ФОР ТХЕ ЦАЛЛ██РИНГСЕТ═лда═ё╟═╩РЕСЕТ ТИМЕ╜ОН█═ста═БЫТЦНТ█═ста═БЫТЦНТ╚╠█═ста═БЫТЦНТ╚╡█═ста═ЦАРВАИТ═╩РЕСЕТ ВАИТ ФЛАГ█═таы═СЕТ═╩Ё╟╟ БАУД█═ймп═СЕТСПД██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ СЦАН ФОР ТХЕ РИНГ АНД ХАНДЛЕ ИТ██РИНГ═лдь═СЛОТ═╩ГЕТ ОФФСЕТ█═бит═ЦАРВАИТ═╩ДО ТХЕЫ ВАНТ МАНУАЛ╜АНСВЕР©█═бми═РИНГ╡А═╩ЫЕП██═лда═АЦБЫТЕ╛Ь█═анд═ё╔╟╟╟╟╟╟╟╠█═бея═РИНГ╢═╩НОТХИНГ██РИНГ╡═лда═АЦБЫТЕ╛Ь═╩ВАИТ ФОР РИНГ ТО ЦЛЕАР█═анд═ё╔╟╟╟╟╟╟╟╠█═бне═РИНГ╡██РИНГ╡А═лда═ё╔╟╟╟╟╟╟╠╟═╩ПИЦК УП ПХОНЕ█═ста═СХБЫТ╛Ь██═лда═ё╦╟═╩СЕТУП ЦАРРИЕР ВАИТ ТИМЕ█═ста═ЦАРВАИТ██═лда═ё╤╟═╩ВАИТ ФОР ТХИНГС ТО СЕТТЛЕ█═йср═ВАИТ██РИНГЁ═лда═ё╟═╩ДО БИГ ВАИТ╝╝╝█═йср═ВАИТ██═лда═СВБЫТ╛Ь═╩ДО ВЕ ХАЖЕ ЦАРРИЕР©█═анд═ё╔╟╟╠╟╟╟╟╟█═бне═РИНГ╣═╩ЫЕП██═дец═ЦАРВАИТ═╩ЛООП УНТИЛ ЦОУНТ ИС ДОНЕ█═бне═РИНГЁ██═йср═ХАНГУП█РИНГ╢═цлц══╩НОТХИНГ ХАППЕНЕД█═ртс██РИНГ╣═лда═ё╜╠═╩РЕСЕТ ЦАРРИЕР ТИМИНГ█═ста═ЦАРВАИТ█═сец█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ СЕНД АТА██АНСВЕР═лда═ё╜╠═╩СИГНАЛ ВЕ ВАНТ МАНУАЛ╜АНСВЕР█═ста═ЦАРВАИТ█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ХАНГУП ПХОНЕ██ХАНГУП═лдь═СЛОТ═╩ГЕТ ОФФСЕТ█═лда═ё╟█═ста═СХБЫТ╛Ь═╩ХАНГ УП ПХОНЕ█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ИНПУТ ДАТА██ИНП═сть═САЖЕъЬ═╩САЖЕ ь█═лдь═СЛОТ═╩ГЕТ ОФФСЕТ█═лда═СТАТУС╠╛Ь═╩ГЕТ СТАТУС█═анд═ё╔╟╟╟╟╠╟╟╟█═цлц█═бея═ИНП╡═╩НО ДАТА██═лда═ё╓╡╟═╩РЕСЕТ ЦХАР РЕАДЫ БЫТЕ█═ста═ЬМТБЫТ╛Ь██═лда═ИНДАТА╛Ь═╩ГЕТ ДАТА█═сец█ИНП╡═лдь═САЖЕъЬ═╩РЕСТОРЕ ╕ РЕТУРН█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ОУТПУТ ДАТА██ОУТ═сть═САЖЕъЬ═╩САЖЕ Ь█═дец═ТИМЕЦНТ═╩ЦОУНТ ДОВН БЫТЕС ПЕР СЕЦОНД█═бне═ОУТ╠═╩НОТ А СЕЦОНДС ВОРТХ ЫЕТ██═пха█═лда═ЦАЛЛСПД═╩РЕСЕТ ЦОУНТЕР█═асл█═асл█═асл══╩ТИМЕ ЦОУНТ ╫ БАСЕ╝РАТЕ ╙ Ё╡█═асл█═асл█═ста═ТИМЕЦНТ█═пла██═инц═БЫТЦНТ═╩СЕЦОНДС ╜ АТ ╤╢ ЫЕТ©█═бит═БЫТЦНТ█═бжц═ОУТ╠═╩НОПЕ██═лдь═ё╟═╩РЕСЕТ СЕЦОНДС█═сть═БЫТЦНТ██═инц═БЫТЦНТ╚╠═╩МИНУТЕС ╜ АТ ╤╢ ЫЕТ©█═бит═БЫТЦНТ╚╠█═бжц═ОУТ╠═╩НОПЕ██═лдь═ё╟═╩РЕСЕТ МИНУТЕС█═сть═БЫТЦНТ╚╠██═инц═БЫТЦНТ╚╡═╩ИНЦ ХОУРС██ОУТ╠═лдь═СЛОТ██═пха█ОУТ╡═лда═СТАТУС╠╛Ь═╩ЦХЕЦК СТАТУС█═анд═ё╔╟╟╟╠╟╟╟╟█═бея═ОУТ╡═╩ЛООП УНТИЛ РЕАДЫ█═пла██═ста═ОУТДАТ╛Ь═╩ОУТПУТ БЫТЕ█═лдь═САЖЕъЬ█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ЦХЕЦК ФОР ЦАРРИЕР██ЦХКДЦД═сть═САЖЕъЬ═╩ДОНТ КИЛЛ АНЫ РЕГ╖С█═пха██═лда═ЦАРВАИТ═╩ДО ВЕ ХАЖЕ ЦАРРИЕР©█═бея═ЦХКДЦДЁ═╩НОПЕ██═лдь═СЛОТ█═лда═СВБЫТ╛Ь═╩ЦХЕЦК ЦАРРИЕР█═анд═ё╔╟╟╠╟╟╟╟╟█═бея═ЦХКДЦД╡═╩НО ЦАРРИЕР██═лда═ё╜╠═╩БУФФЕР ЦАРРИЕР ДЕТЕЦТ█═ста═ЦАРВАИТ█═сец█═бцс═ЦХКДЦД╢═╩УСЕ РЕТУРН РОУТИНЕ██ЦХКДЦД╡═дец═ЦАРВАИТ═╩ЦОУНТ ДОВН█ЦХКДЦДЁ═цлц█ЦХКДЦД╢═пла══╩РЕСТОРЕ АЛЛ ╕ РЕТУРН█═лдь═САЖЕъЬ█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ СЕТ ТХЕ РС╡Ё╡ СПЕЕД██СЕТСПД═сть═САЖЕъЬ█═лдь═СЛОТ═╩ГЕТ ОФФСЕТ█═лда═СПЕЕД╛Ы═╩ГЕТ СПЕЕД█═ста═СПДБЫТ╛Ь═╩СЕТ СПЕЕД██═лда═ё╠═╩ФИНД ЦАЛЛЕР СПЕЕД ╗ЬЁ╟╟╘█═ста═ЦАЛЛСПД█═цпы═ё╟═╩АТ Ё╟╟©█═бея═СЕТСПДЁ═╩ЫЕП██═асл═ЦАЛЛСПД═╩СПЕЕД ╫ СПЕЕД ╙ ╡█СЕТСПД╡═асл═ЦАЛЛСПД═╩СПЕЕД ╫ СПЕЕД ╙ ╡█═деы█═бне═СЕТСПД╡═╩ЛООП УНТИЛ ЦОРРЕЦТ СПЕЕД ФОУНД██СЕТСПДЁ═лдь═САЖЕъЬ═╩РЕСТОРЕ ╕ РЕТУРН█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ВАИТ РОУТИНЕ██ВАИТ═сец══╩ФРОМ АППЛЕ ш╚ РЕФ МАН ╜ ПГ ╠╢╥щ█ВАИТ╡═пха█ВАИТЁ═сбц═ё╠█═бне═ВАИТЁ█═пла█═сбц═ё╠█═бне═ВАИТ╡█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ЖАРИАБЛЕС██СПЕЕД═ДФБ═╔╟╟╠╟╟╟╠╟╛╔╟╟╟╟╟╟╟╟═╩ХАНДЛЕ Ё╟╟╛ ╠╡╟╟██САЖЕъЬ═ДФБ═╟██ТИМЕЦНТ═ДФБ═╟█ЦАРВАИТ═ДФБ═╟██ИНИТБЫТ═ДФБ═╓╟╟╛╓╦╠╛╓╟╟╛╓╟╤╛╓╟╟╛╓╦╟╛╓╟╟╛╓╟╤█═ДФБ═╓╟╟╛╓╤╢╛╓╟╥╛╓╡╡╛╓╟╣╛╓╠╟╛╓╟╟╛╓╟╟██═АСЦ═╖цАТ╠╟Ё╖█
|
||||
*--------------------------
|
||||
* Internal - Apple Cat 103
|
||||
*--------------------------
|
||||
* Date 3/18/88 - AEN
|
||||
*--------------------------
|
||||
|
||||
lst off
|
||||
rel
|
||||
dsk rel/cat103
|
||||
|
||||
swbyt EQU $c080
|
||||
shbyt EQU $c082
|
||||
indata EQU $c08b
|
||||
spdbyt EQU $c08b
|
||||
acbyte EQU $c08d
|
||||
xmtbyt EQU $c08d
|
||||
outdat EQU $c08e
|
||||
status1 EQU $c08f
|
||||
|
||||
cat103 ent
|
||||
|
||||
org $e00
|
||||
|
||||
*-------------------------------
|
||||
* jump table
|
||||
|
||||
slot dfb $20 ;serial card slot
|
||||
initspd dfb 0 ;initialize speed
|
||||
callspd dfb 0 ;speed of call
|
||||
|
||||
bytcnt dfb 0,0,0
|
||||
|
||||
JMP init
|
||||
JMP ringset
|
||||
JMP ring
|
||||
JMP answer
|
||||
JMP hangup
|
||||
JMP inp
|
||||
JMP out
|
||||
JMP chkdcd
|
||||
jmp setspd
|
||||
jmp dummy ;raise dtr
|
||||
jmp dummy ;clear buffer
|
||||
jmp dummy ;quit
|
||||
|
||||
dummy rts
|
||||
|
||||
*-------------------------------
|
||||
* init the modem card
|
||||
|
||||
init SEI
|
||||
LDX slot ;get slot offset
|
||||
LDY #0
|
||||
init2 LDA initbyt,y ;init all 16 bytes
|
||||
STA $c080,x
|
||||
INX
|
||||
INY
|
||||
CPY #$10
|
||||
BNE init2
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* setup for the call
|
||||
|
||||
ringset LDA #0 ;reset time-on
|
||||
STA bytcnt
|
||||
STA bytcnt+1
|
||||
STA bytcnt+2
|
||||
STA carwait ;reset wait flag
|
||||
TAY set ;300 baud
|
||||
JMP setspd
|
||||
|
||||
*-------------------------------
|
||||
* scan for the ring and handle it
|
||||
|
||||
ring LDX slot ;get offset
|
||||
BIT carwait ;do they want manual-answer?
|
||||
BMI ring2a ;yep
|
||||
|
||||
LDA acbyte,x
|
||||
AND #%00000001
|
||||
BEQ ring4 ;nothing
|
||||
|
||||
ring2 LDA acbyte,x ;wait for ring to clear
|
||||
AND #%00000001
|
||||
BNE ring2
|
||||
|
||||
ring2a LDA #%00000010 ;pick up phone
|
||||
STA shbyt,x
|
||||
|
||||
LDA #80 ;setup carrier wait time
|
||||
STA carwait
|
||||
|
||||
LDA #60 ;wait for things to settle
|
||||
JSR wait
|
||||
|
||||
ring3 LDA #0 ;do big wait...
|
||||
JSR wait
|
||||
|
||||
LDA swbyt,x ;do we have carrier?
|
||||
AND #%00100000
|
||||
BNE ring5 ;yep
|
||||
|
||||
DEC carwait ;loop until count is done
|
||||
BNE ring3
|
||||
|
||||
JSR hangup
|
||||
ring4 CLC ;nothing happened
|
||||
RTS
|
||||
|
||||
ring5 LDA #-1 ;reset carrier timing
|
||||
STA carwait
|
||||
SEC
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* send ata
|
||||
|
||||
answer LDA #-1 ;signal we want manual-answer
|
||||
STA carwait
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* hangup phone
|
||||
|
||||
hangup LDX slot ;get offset
|
||||
LDA #0
|
||||
STA shbyt,x ;hang up phone
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* input data
|
||||
|
||||
inp STX save_x ;save X
|
||||
LDX slot ;get offset
|
||||
LDA status1,x ;get status
|
||||
AND #%00001000
|
||||
CLC
|
||||
BEQ inp2 ;no data
|
||||
|
||||
LDA #$20 ;reset char ready byte
|
||||
STA xmtbyt,x
|
||||
|
||||
LDA indata,x ;get data
|
||||
SEC
|
||||
inp2 LDX save_x ;restore & return
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* output data
|
||||
|
||||
out STX save_x ;save x
|
||||
DEC timecnt ;count down bytes per second
|
||||
BNE out1 ;not a seconds worth yet
|
||||
|
||||
PHA
|
||||
LDA callspd ;reset counter
|
||||
ASL
|
||||
ASL
|
||||
ASL ;time count = base.rate * 32
|
||||
ASL
|
||||
ASL
|
||||
STA timecnt
|
||||
PLA
|
||||
|
||||
INC bytcnt ;seconds - at 64 yet?
|
||||
BIT bytcnt
|
||||
BVC out1 ;nope
|
||||
|
||||
LDX #0 ;reset seconds
|
||||
STX bytcnt
|
||||
|
||||
INC bytcnt+1 ;minutes - at 64 yet?
|
||||
BIT bytcnt+1
|
||||
BVC out1 ;nope
|
||||
|
||||
LDX #0 ;reset minutes
|
||||
STX bytcnt+1
|
||||
|
||||
INC bytcnt+2 ;inc hours
|
||||
|
||||
out1 LDX slot
|
||||
|
||||
PHA
|
||||
out2 LDA status1,x ;check status
|
||||
AND #%00010000
|
||||
BEQ out2 ;loop until ready
|
||||
PLA
|
||||
|
||||
STA outdat,x ;output byte
|
||||
LDX save_x
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* check for carrier
|
||||
|
||||
chkdcd STX save_x ;dont kill any reg's
|
||||
PHA
|
||||
|
||||
LDA carwait ;do we have carrier?
|
||||
BEQ chkdcd3 ;nope
|
||||
|
||||
LDX slot
|
||||
LDA swbyt,x ;check carrier
|
||||
AND #%00100000
|
||||
BEQ chkdcd2 ;no carrier
|
||||
|
||||
LDA #-1 ;buffer carrier detect
|
||||
STA carwait
|
||||
SEC
|
||||
BCS chkdcd4 ;use return routine
|
||||
|
||||
chkdcd2 DEC carwait ;count down
|
||||
chkdcd3 CLC
|
||||
chkdcd4 PLA ;restore all & return
|
||||
LDX save_x
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* set the rs232 speed
|
||||
|
||||
setspd STX save_x
|
||||
LDX slot ;get offset
|
||||
LDA speed,y ;get speed
|
||||
STA spdbyt,x ;set speed
|
||||
|
||||
LDA #1 ;find caller speed (x300)
|
||||
STA callspd
|
||||
CPY #0 ;at 300?
|
||||
BEQ setspd3 ;yep
|
||||
|
||||
ASL callspd ;speed = speed * 2
|
||||
setspd2 ASL callspd ;speed = speed * 2
|
||||
DEY
|
||||
BNE setspd2 ;loop until correct speed found
|
||||
|
||||
setspd3 LDX save_x ;restore & return
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* wait routine
|
||||
|
||||
wait SEC ;from apple [+ ref man - pg 147]
|
||||
wait2 PHA
|
||||
wait3 SBC #1
|
||||
BNE wait3
|
||||
PLA
|
||||
SBC #1
|
||||
BNE wait2
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* variables
|
||||
|
||||
speed dfb %00100010,%00000000 ;handle 300, 1200
|
||||
|
||||
save_x dfb 0
|
||||
|
||||
timecnt dfb 0
|
||||
carwait dfb 0
|
||||
|
||||
initbyt dfb $00,$81,$00,$06,$00,$80,$00,$06
|
||||
dfb $00,$64,$07,$22,$05,$10,$00,$00
|
||||
|
||||
asc 'Cat103'
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1,239 @@
|
|||
╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙иНТЕРНАЛ мИЦРОМОДЕМ щш ╞╞Е█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ дАТЕ ╠╡╞╟╧╞╦╤█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██═ЛСТ═ОФФ██═РЕЛ█═ДСК═РЕЛ╞ММ╡██ДАТА═еяу═╓Ц╟╦╥█СТАТУС═еяу═╓Ц╟╦╤█ЦР╠═еяу═╓Ц╟╦╤█РИНГИН═еяу═╓Ц╟╦╣█ЦР╡═еяу═╓Ц╟╦╣█ЦРЁ═еяу═╓Ц╟╦Ё██ММ╡═ЕНТ██═ОРГ═╓Е╟╟██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ЙУМП ТАБЛЕ██СЛОТ═ДФБ═╓╡╟═╩СЕРИАЛ ЦАРД СЛОТ█═ДФБ═╟═╩ТРАНСМИТ ╞ РЕЦЕИЖЕ█ЦАЛЛСПД═ДФБ═╟═╩СПЕЕД ОФ ЦАЛЛ██БЫТЦНТ═ДФБ═╟╛╟╛╟██═ймп═ИНИТ█═ймп═РИНГСЕТ█═ймп═РИНГ█═ймп═АНСВЕР█═ймп═ХАНГУП█═ймп═ИНП█═ймп═ОУТ█═ймп═ЦХКДЦД█═ЙМП═СЕТСПД█═ЙМП═ДУММЫ═╩РАИСЕ ДТР█═ЙМП═ДУММЫ═╩ЦЛЕАР БУФФЕР█═ЙМП═ДУММЫ═╩ЯУИТ██ДУММЫ═РТС██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ИНИТ ТХЕ МОДЕМ ЦАРД██ИНИТ═СЕИ█═лдь═СЛОТ═╩ГЕТ СЛОТ ОФФСЕТ█═лда═╔╟╟╟╟╟╟╟╟═╩РЕСЕТ ТОНЕ╞СПЕАКЕР█═ста═ЦРЁ╛Ь█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ СЕТУП ФОР ЦАЛЛ██РИНГСЕТ═лда═ё╟═╩РЕСЕТ ТИМЕ╜ОН█═ста═БЫТЦНТ█═ста═БЫТЦНТ╚╠█═ста═БЫТЦНТ╚╡█═ста═ЦАРВАИТ═╩РЕСЕТ ВАИТ ФЛАГ█═таы═СЕТ═╩Ё╟╟ БАУД█═ймп═СЕТСПД██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ СЦНА ФОР РИНГ АНД ХАНДЛЕ ИТ██РИНГ═лдь═СЛОТ═╩ГЕТ ОФФСЕТ█═бит═ЦАРВАИТ═╩ДО ТХЕЫ ВАНТ МАНУАЛ╜АНСВЕР©█═бми═РИНГ╡А═╩ЫЕП██═лда═РИНГИН╛Ь═╩ЦХЕЦК ФОР РИНГ█═анд═╔╠╟╟╟╟╟╟╟█═бне═РИНГ╢═╩НОТХИНГ██РИНГ╡═лда═РИНГИН╛Ь═╩ВАИТ ФОР РИНГ ТО ЦЛЕАР█═анд═╔╠╟╟╟╟╟╟╟█═бея═РИНГ╡██РИНГ╡А═лда═╔╟╟╟╟╟╟╠╠═╩РЕСЕТ УАРТ█═ста═ЦР╠╛Ь█═лда═╔╟╟╟╠╟╠╟╠═╩СЕТ ФОР ╦Н╠█═ста═ЦР╠╛Ь██═лда═╔╟╟╟╟╟╟╟╟═╩РЕСЕТ МОДЕМ█═ста═ЦР╡╛Ь█═лда═╔╠╟╟╟╠╟╠╠═╩ПИЦК УП ПХОНЕ шЕНАБЛЕ ЦАРРИЕРщ█═ста═ЦР╡╛Ь██═лда═ё╓╣╟═╩СЕТУП ЦАРРИЕР ВАИТ ТИМЕ█═ста═ЦАРВАИТ██═лда═ё╓ЁЦ═╩ВАИТ ФОР ТХИНГС ТО СЕТТЛЕ█═йср═ВАИТ██РИНГЁ═лда═ё╟═╩ДО БИГ ВАИТ╝╝╝█═йср═ВАИТ██═лда═ДАТА╛Ь█═лда═СТАТУС╛Ь═╩РЕСЕТ ЦАРРИЕР ФЛАГ█═лда═СТАТУС╛Ь═╩ДО ВЕ ХАЖЕ ЦАРРИЕР©█═анд═╔╟╟╟╟╟╠╟╟█═бея═РИНГ╣═╩ЫЕП██═дец═ЦАРВАИТ═╩ЛООП УНТИЛ ЦОУНТ ИС ДОНЕ█═бне═РИНГЁ██═йср═ХАНГУП█РИНГ╢═цлц══╩НОТХИНГ ХАППЕНЕД█═ртс██РИНГ╣═лда═ё╜╠═╩РЕСЕТ ЦАРРИЕР ТИМИНГ█═ста═ЦАРВАИТ█═сец█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ СЕНД АТА ТО ПХОНЕ██АНСВЕР═лда═ё╜╠═╩СИГНАЛ ВЕ ВАНТ МАНУАЛ╜АНСВЕР█═ста═ЦАРВАИТ█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ХАНГУП ПХОНЕ██ХАНГУП═лдь═СЛОТ═╩ГЕТ ОФФСЕТ█═лда═╔╟╟╟╟╟╟╟╠█═ста═ЦР╡╛Ь═╩ХАНГ УП ПХОНЕ█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ИНПУТ ДАТА██ИНП═сть═САЖЕъЬ═╩САЖЕ ь█═лдь═СЛОТ═╩ГЕТ ОФФСЕТ█═лда═СТАТУС╛Ь═╩ГЕТ СТАТУС█═анд═╔╟╟╟╟╟╟╟╠█═цлц█═бея═ИНП╡═╩НО ДАТА██═лда═ДАТА╛Ь═╩ГЕТ ДАТА█═сец█ИНП╡═лдь═САЖЕъЬ═╩РЕСТОРЕ ╕ РЕТУРН█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ОУТПУТ ДАТА██ОУТ═сть═САЖЕъЬ═╩САЖЕ Ь█═дец═ТИМЕЦНТ═╩ЦОУНТ ДОВН БЫТЕС ПЕР СЕЦОНД█═бне═ОУТ╠═╩НОТ А СЕЦОНДС ВОРТХ ЫЕТ██═пха█═лда═ЦАЛЛСПД═╩РЕСЕТ ЦОУНТЕР█═асл█═асл█═асл══╩ТИМЕ ЦОУНТ ╫ БАСЕ╝РАТЕ ╙ Ё╡█═асл█═асл█═ста═ТИМЕЦНТ█═пла██═инц═БЫТЦНТ═╩СЕЦОНДС ╜ АТ ╤╢ ЫЕТ©█═бит═БЫТЦНТ█═бжц═ОУТ╠═╩НОПЕ██═лдь═ё╟═╩РЕСЕТ СЕЦОНДС█═сть═БЫТЦНТ██═инц═БЫТЦНТ╚╠═╩МИНУТЕС ╜ АТ ╤╢ ЫЕТ©█═бит═БЫТЦНТ╚╠█═бжц═ОУТ╠═╩НОПЕ██═лдь═ё╟═╩РЕСЕТ МИНУТЕС█═сть═БЫТЦНТ╚╠██═инц═БЫТЦНТ╚╡═╩ИНЦ ХОУРС██ОУТ╠═лдь═СЛОТ██═пха█ОУТ╡═лда═СТАТУС╛Ь═╩ЦХЕЦК СТАТУС█═анд═╔╟╟╟╟╟╠╠╟█═бея═ОУТ╡═╩ЛООП УНТИЛ РЕАДЫ█═пла██═ста═ДАТА╛Ь═╩ОУТПУТ БЫТЕ█═лдь═САЖЕъЬ█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ЦХЕЦК ФОР ЦАРРИЕР██ЦХКДЦД═сть═САЖЕъЬ═╩ДОНТ КИЛЛ АНЫ РЕГ╖С█═пха██═лдь═СЛОТ█═лда═СТАТУС╛Ь═╩РЕСЕТ ЦАРРИЕР ФЛАГ█═лда═СТАТУС╛Ь═╩ЦХЕЦК ЦАРРИЕР█═анд═╔╟╟╟╟╟╠╟╟█═цлц█═бне═ЦХКДЦД╡═╩ОППС╛ НО ЦАРРИЕР██═сец══╩СЕЦ ╫ ВЕ ХАЖЕ ЦАРРИЕР█ЦХКДЦД╡═пла══╩РЕСТОРЕ ╕ РЕТУРН█═лдь═САЖЕъЬ█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ СЕТ ТХЕ РС╜╡Ё╡ СПЕЕД шСПЕЕД ОФФСЕТ ИН ыщ██СЕТСПД═лда═ё╠═╩ФИНД ЦАЛЛЕР СПЕЕД ╗ЬЁ╟╟╘█═ста═ЦАЛЛСПД█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ВАИТ РОУТИНЕ██ВАИТ═сец══╩ФРОМ АППЛЕ щш╚ РЕФ МАН ╜ ПГ ╠╢╥█ВАИТ╡═пха█ВАИТЁ═сбц═ё╠█═бне═ВАИТЁ█═пла█═сбц═ё╠█═бне═ВАИТ╡█═ртс██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ АЖАИЛАБЛЕ СПЕЕДС██САЖЕъЬ═ДФБ═╟██ТИМЕЦНТ═ДФБ═╟█ЦАРВАИТ═ДФБ═╟██═АСЦ═╖мм╡╖█
|
||||
*--------------------------
|
||||
*Internal Micromodem ][ //e
|
||||
*--------------------------
|
||||
* Date 12/09/86
|
||||
*--------------------------
|
||||
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/mm2
|
||||
|
||||
data EQU $c087
|
||||
status EQU $c086
|
||||
cr1 EQU $c086
|
||||
ringin EQU $c085
|
||||
cr2 EQU $c085
|
||||
cr3 EQU $c083
|
||||
|
||||
mm2 ent
|
||||
|
||||
org $e00
|
||||
|
||||
*-------------------------------
|
||||
* jump table
|
||||
|
||||
slot dfb $20 ;serial card slot
|
||||
dfb 0 ;transmit / receive
|
||||
callspd dfb 0 ;speed of call
|
||||
|
||||
bytcnt dfb 0,0,0
|
||||
|
||||
JMP init
|
||||
JMP ringset
|
||||
JMP ring
|
||||
JMP answer
|
||||
JMP hangup
|
||||
JMP inp
|
||||
JMP out
|
||||
JMP chkdcd
|
||||
jmp setspd
|
||||
jmp dummy ;raise dtr
|
||||
jmp dummy ;clear buffer
|
||||
jmp dummy ;quit
|
||||
|
||||
dummy rts
|
||||
|
||||
*-------------------------------
|
||||
* init the modem card
|
||||
|
||||
init sei
|
||||
LDX slot ;get slot offset
|
||||
LDA %00000000 ;reset tone/speaker
|
||||
STA cr3,x
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* setup for call
|
||||
|
||||
ringset LDA #0 ;reset time-on
|
||||
STA bytcnt
|
||||
STA bytcnt+1
|
||||
STA bytcnt+2
|
||||
STA carwait ;reset wait flag
|
||||
TAY set ;300 baud
|
||||
JMP setspd
|
||||
|
||||
*-------------------------------
|
||||
* scna for ring and handle it
|
||||
|
||||
ring LDX slot ;get offset
|
||||
BIT carwait ;do they want manual-answer?
|
||||
BMI ring2a ;yep
|
||||
|
||||
LDA ringin,x ;check for ring
|
||||
AND %10000000
|
||||
BNE ring4 ;nothing
|
||||
|
||||
ring2 LDA ringin,x ;wait for ring to clear
|
||||
AND %10000000
|
||||
BEQ ring2
|
||||
|
||||
ring2a LDA %00000011 ;reset uart
|
||||
STA cr1,x
|
||||
LDA %00010101 ;set for 8n1
|
||||
STA cr1,x
|
||||
|
||||
LDA %00000000 ;reset modem
|
||||
STA cr2,x
|
||||
LDA %10001011 ;pick up phone [enable carrier]
|
||||
STA cr2,x
|
||||
|
||||
LDA #$50 ;setup carrier wait time
|
||||
STA carwait
|
||||
|
||||
LDA #$3c ;wait for things to settle
|
||||
JSR wait
|
||||
|
||||
ring3 LDA #0 ;do big wait...
|
||||
JSR wait
|
||||
|
||||
LDA data,x
|
||||
LDA status,x ;reset carrier flag
|
||||
LDA status,x ;do we have carrier?
|
||||
AND %00000100
|
||||
BEQ ring5 ;yep
|
||||
|
||||
DEC carwait ;loop until count is done
|
||||
BNE ring3
|
||||
|
||||
JSR hangup
|
||||
ring4 CLC ;nothing happened
|
||||
RTS
|
||||
|
||||
ring5 LDA #-1 ;reset carrier timing
|
||||
STA carwait
|
||||
SEC
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* send ata to phone
|
||||
|
||||
answer LDA #-1 ;signal we want manual-answer
|
||||
STA carwait
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* hangup phone
|
||||
|
||||
hangup LDX slot ;get offset
|
||||
LDA %00000001
|
||||
STA cr2,x ;hang up phone
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* input data
|
||||
|
||||
inp STX save_x ;save X
|
||||
LDX slot ;get offset
|
||||
LDA status,x ;get status
|
||||
AND %00000001
|
||||
CLC
|
||||
BEQ inp2 ;no data
|
||||
|
||||
LDA data,x ;get data
|
||||
SEC
|
||||
inp2 LDX save_x ;restore & return
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* output data
|
||||
|
||||
out STX save_x ;save x
|
||||
DEC timecnt ;count down bytes per second
|
||||
BNE out1 ;not a seconds worth yet
|
||||
|
||||
PHA
|
||||
LDA callspd ;reset counter
|
||||
ASL
|
||||
ASL
|
||||
ASL ;time count = base.rate * 32
|
||||
ASL
|
||||
ASL
|
||||
STA timecnt
|
||||
PLA
|
||||
|
||||
INC bytcnt ;seconds - at 64 yet?
|
||||
BIT bytcnt
|
||||
BVC out1 ;nope
|
||||
|
||||
LDX #0 ;reset seconds
|
||||
STX bytcnt
|
||||
|
||||
INC bytcnt+1 ;minutes - at 64 yet?
|
||||
BIT bytcnt+1
|
||||
BVC out1 ;nope
|
||||
|
||||
LDX #0 ;reset minutes
|
||||
STX bytcnt+1
|
||||
|
||||
INC bytcnt+2 ;inc hours
|
||||
|
||||
out1 LDX slot
|
||||
|
||||
PHA
|
||||
out2 LDA status,x ;check status
|
||||
AND %00000110
|
||||
BEQ out2 ;loop until ready
|
||||
PLA
|
||||
|
||||
STA data,x ;output byte
|
||||
LDX save_x
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* check for carrier
|
||||
|
||||
chkdcd STX save_x ;dont kill any reg's
|
||||
PHA
|
||||
|
||||
LDX slot
|
||||
LDA status,x ;reset carrier flag
|
||||
LDA status,x ;check carrier
|
||||
AND %00000100
|
||||
CLC
|
||||
BNE chkdcd2 ;opps, no carrier
|
||||
|
||||
SEC ;sec = we have carrier
|
||||
chkdcd2 PLA ;restore & return
|
||||
LDX save_x
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* set the rs-232 speed [speed offset in Y]
|
||||
|
||||
setspd LDA #1 ;find caller speed (x300)
|
||||
STA callspd
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* wait routine
|
||||
|
||||
wait SEC ;from apple ][+ ref man - pg 147
|
||||
wait2 PHA
|
||||
wait3 SBC #1
|
||||
BNE wait3
|
||||
PLA
|
||||
SBC #1
|
||||
BNE wait2
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* available speeds
|
||||
|
||||
save_x dfb 0
|
||||
|
||||
timecnt dfb 0
|
||||
carwait dfb 0
|
||||
|
||||
asc 'MM2'
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1,60 @@
|
|||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 尼翦 氨<EFBFBD>动阜崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖犾篝狅骀崓狉屐崰潴霠蝈殳铛祆礓韻嶎蹯祉漤犲铘崓狅蜱牑灏皪崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 牾眇 翎忪鍗崰滏鉅盃惑弪獒<EFBFBD> 汜蜾 箪雉崰滏鉅盃婚铋<EFBFBD> 盹溴<EFBFBD> 狒繊犱驸牥牷箴邋<EFBFBD> 镦 汜祆崓怡翥铘犱驸牥<EFBFBD><EFBFBD>崓犑托犱镞螋髰犑托犱镞螋髰犑托狉轭鐛犑托犱镞螋髰犑托犱镞螋髰犑托犻铕崰释袪秕魨犑托犮桦溷鋶犼眇犱镞螋髰犼眇犱镞螋髰犼眇犱镞螋髰犼眇犱镞螋髰嵒 轭轸 翳<EFBFBD> 箦蜷犰 汜蜾嶄镞螋鬆以訊嵒 筱犷 骘<EFBFBD> 蜷铉 犷<EFBFBD> 栳钿戾 轸嶒轭鐮锰脥犚杂崓<EFBFBD> 轭瘐<EFBFBD> 溽翎嶉铕犔牧牐皪犆堂崰以訊嵒 秕麴豸 溽翎嶏豸犐蚊犫<EFBFBD>泐魻讳<EFBFBD> 怡翦<EFBFBD>秕铘轭鐛犅闻狅豸睄犐蚊犫<EFBFBD>泐臬睄犅闻狅豸睄犐蚊犫<EFBFBD>泐臬矋嶏豸睜以訊嵒 汨邈<EFBFBD> 骘<EFBFBD> 汜蝌殄驆汨脘沅犆堂崰以訊崰狍銧<EFBFBD>蹯焱镤屙<EFBFBD>
|
||||
*-------------------------------
|
||||
* Date 01/06/87
|
||||
*-------------------------------
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/nullmdm
|
||||
|
||||
nullmdm ent
|
||||
|
||||
org $e00
|
||||
|
||||
*-------------------------------
|
||||
* jump table
|
||||
|
||||
dfb 0 ;serial card slot
|
||||
dfb 0 ;init modem at?
|
||||
dfb 0 ;speed of call
|
||||
|
||||
bytcnt dfb 0,0,0
|
||||
|
||||
JMP do_rts
|
||||
JMP do_rts
|
||||
JMP ring
|
||||
JMP do_rts
|
||||
JMP do_rts
|
||||
JMP inp
|
||||
JMP out
|
||||
JMP chkdcd
|
||||
jmp do_rts
|
||||
jmp do_rts
|
||||
jmp do_rts
|
||||
jmp do_rts
|
||||
|
||||
; init the serial card
|
||||
do_rts RTS
|
||||
|
||||
; scan for ring and handle it
|
||||
ring CLC
|
||||
RTS
|
||||
|
||||
; input data
|
||||
inp LDA #0
|
||||
CLC
|
||||
RTS
|
||||
|
||||
; output data
|
||||
out INC bytcnt ;do byte-counting
|
||||
BNE out1
|
||||
INC bytcnt+1
|
||||
BNE out1
|
||||
INC bytcnt+2
|
||||
|
||||
out1 RTS
|
||||
|
||||
; check for carrier
|
||||
chkdcd CLC
|
||||
RTS
|
||||
|
||||
asc 'NullModem'
|
||||
|
|
|
@ -1 +1,225 @@
|
|||
狅蜱牑灏皪箪雉犱驸牐ぐ矋礓鍫滏鉅¥鞍嶁狨錉滏鉅¥按牷 忉蹁蜥翦 <EFBFBD> 嘲<EFBFBD> 镦 汜祆弪<EFBFBD> 忉蹁嶉铋翕狨錉滏鉅¥按牷 忉蹁蜥翦 <EFBFBD> 嘲<EFBFBD> 麸 轭轸 痫螋 狒嶍镤鍫滏鉅¥氨牷 苯拿<EFBFBD> 溴翦泗轱瞵 敖挠<EFBFBD> 溴翦泗轱顛祜汶痫螋犱驸牐ぐ盃<EFBFBD> <EFBFBD> <EFBFBD> 痫螋 祜汶邃 狒 轭轸 箴邋<EFBFBD> <EFBFBD> 箫骠麽蝈嵒 <EFBFBD> <EFBFBD> 痫螋 祜汶邃 狒 轭轸 箴邋<EFBFBD> <EFBFBD> 泗髰牋牷 <EFBFBD> <EFBFBD> 骘祆秣 汜祆弪<EFBFBD> 蜥翦 <EFBFBD>矧磲飑崓轭轸轸犲聃牑驿皪崰觏馉轫潋轹弪牷 轭轸<EFBFBD> 潋轹弪崰觏馉轲矧魻<EFBFBD> 轭轸<EFBFBD> 痫螋<EFBFBD> 漪<EFBFBD> 镱<EFBFBD> 箦钿<EFBFBD> 轭轸<EFBFBD><EFBFBD> 麸 盹溴韻犼眇犮桢汶牷 骘<EFBFBD> 蜷铉 <EFBFBD> 泔铑邈<EFBFBD> <EFBFBD> 弭銔犼眇犪铙麇驙<EFBFBD> 骘蜚<EFBFBD> 犷篦弪崰觏馉栳铉躔牷 珲弩髰犼眇犵弭汨狎牷 汨邈塍 骘<EFBFBD> 汨狎<EFBFBD> 骝镯 盹溴憩 峤 汨狎 顼魨牋牷 沆<EFBFBD> <EFBFBD> 铒 汨狎徙翦颥 箦<EFBFBD> <EFBFBD> 顼<EFBFBD> 溽翎崰觏馉盹豸牷 箦钿<EFBFBD> 溽翎 秕<EFBFBD> 麸 盹溴憩 瘐蜱弩 怩骀弪 骈蝮魨犼眇犮桦汜驙<EFBFBD> 骈珲蝈<EFBFBD> 秕<EFBFBD> 忉蹁 骝镯 蝈趱蝾髰嶉礓蜷鲥驙牋<EFBFBD> 轭轸<EFBFBD> 潋轹弪崰熹釥¥按崰篝釥桎黧桦<EFBFBD>崰熹釥祜汶痫螋崰沩馉¥安崰忸鍫铒桎黛崰熹釥¥舶崰篝釥桎黧桦<EFBFBD>嶎镨澉鞝熹釥¥案崰篝釥汨腠箅<EFBFBD>崰熹釥盹溴崰忸鍫铒溷鋶犾溽牐げ皪狊翎犮桦眢氆睄铒溷錉熹釥ゃ俺笉狉趔崓轲矧魻牋<EFBFBD> 轭轸<EFBFBD> 痫螋崰熹釥ゃ俺笉犾澍牐ぐ皪轲祓犾溽犻痿忪<EFBFBD>崰忮駹轲漕崰篝釥ゃ俺笉犻铠崰熹釥轲翕飕鴯狊翎牑惆掣崰轭鴯犼眇犻痨饙轲漕犾澌牐嘲崰牦驙麽轸崰熹鶢¥暗崰熹釥%氨卑卑卑崰牦驙黩轸弪彗崰熹鶢轭轸忉蹁崰牦驙箦翕狨鋶狒<EFBFBD>魻熹鵂¥鞍嶀酊祓犾溽犪酊<EFBFBD>崰忮駹狒<EFBFBD>顛犼篁犿秕魨犾澌牐ぐ磵犼篁狑衢魨犻铠崰觏馉狒<EFBFBD>饙狒<EFBFBD>顛犾澌牐こ皪犼篁狑衢魨嶀酊徙銧熹鵂¥鞍嶉铋綮馉熹釥轭轸轸<EFBFBD>崰忮駹轭轸漕崰牦驙盹豸崰熹鶢¥按崰牦驙麽轸崰轭鴯犼眇犻铋綮饙轭轸漕狉趔崓犷篦弪犾澍牐ぐ皪犷箪馉熹釥狒岈鴯犫羼犪铙漕崰牦驙盹豸崰熹鶢¥按崰牦驙麽轸崰轭鴯犼眇犪铙祓嶀铙漕狉趔崓汨邈腱餇熹鶢¥骀崰觏馉汨邈脶嶃桢汶犾澌牐ぐ睄汨邈脶犼篁犵弭汨狎崰忏鬆铒螋髰犱妁崰沭鶢¥鞍崰忸鍫汨邈脶崰沆銔狉趔嶎矧趔崰犷錉¥锋崰沩馉'抱崰忸鍫铒舯舶皪犾溽牐ぐ磵犼眇犵雉忉蹁嶎雉辈鞍犮眇牐Р<EFBFBD>犫铄狀雉泊鞍崰熹釥¥案崰觏馉顼翕狨鋶铒舨窗盃沩馉'恭崰忸鍫汨邈腱飴犾溽牐げ皪顼翕狨錉篝釥ゅ安崓犾澌犾镢腽矧魨犫铄犾镢脲鋶崰翎鶏犼篁狊弭忉蹁嶌镢脲錉箦銔狉趔崓狒鸂滏鉅¥颁崰狍銧Я在<EFBFBD>犱驸牐ぐ洮¥鞍嶀翎犱驸牐ぐ鋶犪筱牕猎璃崰滏鉅¥颁<EFBFBD>ぐ皪嶁漪忪犱驸牐ぐ爆¥按<EFBFBD>ぐ脯¥舶<EFBFBD>ご艾¥鞍崓轲翕鞝滏鉅¥肮<EFBFBD>グ卑鞍鞍皪犱驸牐ぐ船%氨鞍北鞍崰滏鉅¥俺<EFBFBD>ケ卑鞍鞍皪犱驸牐ぐ惮%氨卑鞍鞍崰滏鉅¥肮<EFBFBD>グ鞍鞍鞍皪犱驸牐ぐ岈%鞍鞍鞍鞍崰滏鉅¥扳<EFBFBD>グ卑卑北皪犱驸牐ぐ瀣%鞍鞍鞍氨崰滏鉅¥俺<EFBFBD>ケ卑鞍鞍睄犱驸牐ぐ惮%北卑卑卑崰滏鉅¥搬<EFBFBD>グ鞍鞍鞍皪犱驸牐ぐ娆%北氨鞍卑崰滏鉅¥鞍<EFBFBD>グ鞍鞍鞍皪嶃桦汜驙牋<EFBFBD> 汨邈<EFBFBD> 骘<EFBFBD> 汜蝌殄<EFBFBD> <EFBFBD> 沆憬躞弪 顼铄崰熹釥ゃ俺笉汨腠箅犪钿牐げ皪犮煦崰忮駹汨脬狎鈲狊邈嶃桦汜蜮狉趔崓栳铉躔牋牷 麒狒 滹 <EFBFBD><EFBFBD> 翳轭肟崰熹鶢¥暗崰熹釥%北卑鞍鞍崰觏馉黩轸弪彗崓珏翥栳驙牋<EFBFBD> 珏趔 汨狎徙翦<EFBFBD> 骝镯 盹溴韻牋牷 峤汨狎徙翦<EFBFBD> 顼衄 沆<EFBFBD> <EFBFBD> 铒 汨狎徙翦颥 箦憬溽翎 顼魨犾溽牑惆掣崰犷錉¥氨崰忮駹铒溽翎崰熹釥ゃ俺釐狊邈崰螋髰铒溽翎犮煦崰螋髰嶍秕魻牋<EFBFBD> 箦钿<EFBFBD> 溽翎 麸 盹溴憩 磲脲<EFBFBD> 篚蝈 铒 轭泔黹铉 斌魨狆栳崓盹豸釥熹釥ゃ俺笉犪钿牐ぐ磵犫羼犿秕翎崓盹豸鉅熹釥ゃ俺笉桎黧桦犪钿牐げ皪犫羼犿秕翕崓狆灬崰篝釥ゃ俺釐狉趔崓箦翕狨鋶狋<EFBFBD>崰熹鶢¥鞍嶓弭怃祓犮眇犫漪忪<EFBFBD>崰忮駹顼糸魨犻铢崰忸鍫箦翕潇饙嶇雉轸崰豉釐犪箪崰翎鴯崰熹釥筲翕飕鴯犾澌牐ぐ銔犼篁狑蜷翦蝈鐛犻铠崰轭鶏犾溽狊怍忪<EFBFBD>崰觏馉黩轸弪彗崓筲翕鞝滏鉅¥峰<EFBFBD>ぐ睄犱驸牐さ瀣¥鞍崰滏鉅¥插<EFBFBD>ぐ皪犱驸牐ぐ岈¥鞍崰滏鉅¥按<EFBFBD>ぐ皪嶗蜷翦蝈鐛狊豉牑惆掣崰篝釥ゃ俺笉狉趔崓麽轸犾溽牑惆惫崰怵鞝麽轸嶗衢翎犾溽牑惆惫崰忭闋麽轸釐犱妁崰忸鍫麽轸崰螋髰崓
|
||||
org $e00
|
||||
slot dfb #$02
|
||||
mde dfb #$00
|
||||
baud dfb #$04 ; baudrate / 300 of caller's baud
|
||||
initbaud dfb #$04 ; baudrate / 300 to init port at
|
||||
mode dfb #$01 ; 1=DCD detection, 0=DSR detection
|
||||
lockport dfb #$00 ; 1 = port locked at init speed - software
|
||||
; 2 = port locked at init speed - cts
|
||||
; 0 = follow callers rate (normal)
|
||||
|
||||
initit equ $fd0
|
||||
|
||||
jmp imdriver ; inits driver
|
||||
jmp iport ; inits port, dtr on, sends init.txt to modem
|
||||
jmp check ; for ring / connect / etc
|
||||
jmp answer ; force answer
|
||||
jmp hangup ; guess
|
||||
jmp getchar ; checks for char. from modem, a= char got
|
||||
; clc = no character, sec = got data
|
||||
jmp mout ; sends data out to modem, purges buffer first
|
||||
jmp chkcar ; figures out baud from returns
|
||||
|
||||
imdriver ; inits driver
|
||||
lda #$04
|
||||
sta hdwshk+1
|
||||
lda lockport
|
||||
cmp #$02
|
||||
bne nohdwl
|
||||
lda #$20
|
||||
sta hdwshk+1
|
||||
nohdwl lda #$08
|
||||
sta chkmsk+1
|
||||
lda mode
|
||||
bne nodcd
|
||||
lda #$20
|
||||
sta chkmsk+1
|
||||
nodcd lda $c038
|
||||
rts
|
||||
|
||||
iport ; inits port
|
||||
lda $c038
|
||||
ldx #$00
|
||||
iplp lda iptbl,x
|
||||
beq ipdn
|
||||
sta $c038
|
||||
inx
|
||||
lda iptbl,x
|
||||
sta $c038
|
||||
inx
|
||||
jmp iplp
|
||||
ipdn ldy #30
|
||||
jsr wait
|
||||
ldy #$05
|
||||
lda #%01101010
|
||||
jsr writereg
|
||||
ldy initbaud
|
||||
jsr setbaud
|
||||
atzst ldx #$00
|
||||
atzlp lda atz,x
|
||||
beq atzdn
|
||||
jsr mout
|
||||
ldy #$04
|
||||
jsr wait
|
||||
inx
|
||||
jmp atzlp
|
||||
atzdn
|
||||
ldy #$30
|
||||
jsr wait
|
||||
|
||||
atzacc ldx #$00
|
||||
initlp lda initit,x
|
||||
beq initdn
|
||||
jsr mout
|
||||
ldy #$04
|
||||
jsr wait
|
||||
inx
|
||||
jmp initlp
|
||||
initdn rts
|
||||
|
||||
answer ldx #$00
|
||||
anslp lda ata,x
|
||||
beq ansdn
|
||||
jsr mout
|
||||
ldy #$04
|
||||
jsr wait
|
||||
inx
|
||||
jmp anslp
|
||||
ansdn rts
|
||||
|
||||
checklo ldy #$ff
|
||||
jmp checka
|
||||
check ldy #$01
|
||||
checka jsr getchar
|
||||
bcs norts
|
||||
dey
|
||||
cpy #$00
|
||||
bne checka
|
||||
clc
|
||||
rts
|
||||
norts
|
||||
and #$7f
|
||||
cmp #'1'
|
||||
bne not1200
|
||||
lda #$04
|
||||
jmp gotbaud
|
||||
not1200 cmp #'2'
|
||||
bne not2400
|
||||
lda #$08
|
||||
jmp gotbaud
|
||||
not2400 cmp #'9'
|
||||
bne checklo
|
||||
lda #$20
|
||||
gotbaud sta $e02
|
||||
|
||||
ldy lockport
|
||||
bne locked
|
||||
|
||||
tay
|
||||
jsr setbaud
|
||||
locked sec
|
||||
rts
|
||||
|
||||
atz dfb #$0d
|
||||
asc 'ATZ'
|
||||
dfb #$0d,#$00
|
||||
ata dfb #$0d
|
||||
asc 'ATA'
|
||||
dfb #$0d,#$00
|
||||
|
||||
bdtbl dfb #$01,#$04,#$08,#$20,#$40,#$00
|
||||
|
||||
iptbl dfb #$09,#%01000000
|
||||
dfb #$04,#%01001100
|
||||
dfb #$03,#%11000000
|
||||
dfb #$05,#%01100000
|
||||
dfb #$09,#%00000000
|
||||
dfb #$0a,#%00000000
|
||||
dfb #$0b,#%01010110
|
||||
dfb #$0e,#%00000001
|
||||
dfb #$03,#%11000001
|
||||
dfb #$05,#%11101010
|
||||
dfb #$0a,#%00000000
|
||||
dfb #$0f,#%11010010
|
||||
dfb #$00,#%00000000
|
||||
|
||||
chkcar ; check for carrier - clc=user gone
|
||||
lda $c038
|
||||
chkmsk and #$20
|
||||
clc
|
||||
beq chkcarb
|
||||
sec
|
||||
chkcarb rts
|
||||
|
||||
hangup ; what do you think?
|
||||
ldy #$05
|
||||
lda #%11100000
|
||||
jmp writereg
|
||||
|
||||
getchar ; gets character from modem
|
||||
; a=character got, clc = no character, sec=data got
|
||||
lda $c038
|
||||
and #$01
|
||||
beq nodata
|
||||
lda $c03a
|
||||
sec
|
||||
rts
|
||||
nodata clc
|
||||
rts
|
||||
|
||||
mout ; sends data to modem, makes sure no incoming 1st
|
||||
pha
|
||||
|
||||
mouta lda $c038
|
||||
and #$04
|
||||
beq mouta
|
||||
|
||||
moutb lda $c038
|
||||
hdwshk and #$20
|
||||
beq moutb
|
||||
|
||||
pla
|
||||
sta $c03a
|
||||
rts
|
||||
|
||||
setbaud
|
||||
tya
|
||||
ldy #$00
|
||||
setbdlp cmp bdtbl,y
|
||||
beq gotit
|
||||
iny
|
||||
bne setbdlp
|
||||
|
||||
gotit
|
||||
tya
|
||||
asl
|
||||
tax
|
||||
|
||||
lda sbtbl,x
|
||||
ldy #$0c
|
||||
jsr writereg
|
||||
inx
|
||||
iny
|
||||
lda sbtbl,x
|
||||
jmp writereg
|
||||
|
||||
sbtbl dfb #$7e,#$01
|
||||
dfb #$5e,#$00
|
||||
dfb #$2e,#$00
|
||||
dfb #$0a,#$00
|
||||
dfb #$04,#$00
|
||||
|
||||
writereg
|
||||
sty $c038
|
||||
sta $c038
|
||||
rts
|
||||
|
||||
wait lda $c019
|
||||
bpl wait
|
||||
waita lda $c019
|
||||
bmi waita
|
||||
dey
|
||||
bne wait
|
||||
rts
|
||||
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1,301 @@
|
|||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 娱铉戾 羽邋<EFBFBD> 砒翦蝾犰崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 朝惫<EFBFBD><EFBFBD> 令潋鬻 女 伍汨镬狍崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖犾篝狅骀崓狉屐崰潴霠蝈殳箝铉戾箴鋶嶃驙羼鯛ぐ鋶戽犲聃牑搬崓溽翎犲聃牑惆父嶓翎趱鬆羼鯛ゃ案箥泔眄犷錉羼鯛ゃ案釐泔铘蝻鞝羼鯛ゃ案鈲嶉铋趔趄犲聃牑北浒嶀铙篝驙羼鯛け便皪沅怡翦犲聃牑北怄崓箝铉戾箴錉孱魻牷ㄓ翎螋⿳狅蜱牑灏皪崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 牾眇 翎忪鍗嶓祜魻滏鉅げ盃惑弪獒<EFBFBD> 汜蜾 箪雉嶉铋趔痄犱驸牥牷趄犷箜轸 <EFBFBD> 蝈沐轹鍗汜祆箴錉滏鉅盃惑疱邃 镦 汜祆崓怡翥铘犱驸牥<EFBFBD><EFBFBD>崓犑托犻铋魨犑托狉轭珞弭崰释袪蜷铉崰释袪犷篦弪崰释袪栳铉躔崰释袪轭饙犑托狅豸崰释袪汨脘沅崰觏馉箦趔痄崰觏馉蜥轶邃趄崰觏馉漉眄鶏犼眇犱蹴睐崓漉眄鶢螋髰崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 轭轸 翳<EFBFBD> 箦蜷犰 汜蜾崓轭轸犔牧牐盃或弩弭崰棠貭箪雉崰釉翣篝狒躞<EFBFBD>牷蝈箦<EFBFBD> 踽螋崰釉翣泔眄犷洮鵂或弩弭 泔眄犷鋶崰沆銔狋<EFBFBD>崰徜銧<溽翎崰篝釥溽翎祜惬睜豁犭<EFBFBD> 轭麸 徕箫祯翦 筢鲥崰螋髰崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 箦趱<EFBFBD> 骘<EFBFBD> 汜祆崓蜷铉箦魻棠貭箪雉牷珏<EFBFBD> 镦骟弭崰棠翣%鞍鞍卑北牷趱蝾 镱 脑椰 以訊犛粤犮镯磲钿<EFBFBD>崓狊彘牋讳轶徕戾 轭趔崓犔馁犻铋趔痄牷箦<EFBFBD> 轭轸 箴邋鋶犑右狊弭箴鋶崰棠翣溽翎<EFBFBD>牷沆遽<EFBFBD> 溽翎 篝蝻忮崓犔牧牐盃混镱<EFBFBD> 溴灬鶏犑右狑衢魨犼篁狑衢魨崰棠貭-睜惑翎螋 狒 <EFBFBD>嶒箦舨犐呜牋讳<EFBFBD> 痱瀛轭銔犾溽牐じ皪犼篁狑衢魨犔牧犻铋趔趄<EFBFBD>牷珏<EFBFBD> 盹溴<EFBFBD> 轭轸 篝蜷铉崰屡褷蝮弭碃击<EFBFBD> 狎<EFBFBD> 滹铄崰觏馉蝮弭矋嶒箦舫犾溽牐秿狊翎犮秕铘祜崰篝釥泔躅翳閸嶒箦舸犾澌牐て茘蝮弭禒溴鶏犫羼犱邈秕铘崓犼篁犻铕崰忏銧蝮弭祶犪钿牐し鎹犮眇牐<EFBFBD><EFBFBD>汇桢汶 骘<EFBFBD> ⑾刷崰忮駹戾狯鍗犼眇狉箦舻崓溴泔躅魻溴銧泔躅綮飴犫铄狉箦舸崰溴銧泔躅翳閸犫铄狉箦舸崰觏馉蜷铉箦魨嶌遽鲥犾溽牐皪狊翎犫<EFBFBD>泐魻或弩弭 怡翦 泔躅翦驆狊翎犫<EFBFBD>泐臬睄狊翎犫<EFBFBD>泐臬矋犮煦崰螋鬆牷蝈趱蝾崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 筱犷 骘<EFBFBD> 蜷铉 犷<EFBFBD> 栳钿戾 轸崓蜷铉犔呢狊祜魻荤弭 镦骟弭崰棠翣篝狒躞<EFBFBD>崰廖臓沅怡翦牷篝蜷<EFBFBD> 秕<EFBFBD> 媚 怡翦崰锰脥犅闻狉轭绯牷铒翳轭鐛崰优脿牷麇 栳鲥 <EFBFBD> 泔铑邈糸镱崰棠貭5嶒轭绮犔牧牐盃讳屐狴 忮骘蝈 顼轭<EFBFBD> 镱扉铄崰视覡麽轸崰呐貚犅闻狉轭绮崰视覡轭馉荤镡忪<EFBFBD> 屮趄釐犛琶崓蜷铉碃以訊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 箦钿 狒<EFBFBD> 麸 痂镱鍗嶀铙麇驙棠貭0嶀铙麇虿犔牧犪铙篝颥鵂荤弭 翦<EFBFBD>崰屡褷犷篦弪碃击<EFBFBD> 狎<EFBFBD> 滹铟崓犑右狅豸牷箦钿 轸崓犾溽牐じ盃讳屐狴 <EFBFBD> 扉趑戾崰牦驙麽轸崓犐呜崰挛艩犷篦弪矤混镲饙嶀铙麇虺犚杂崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 栳铉躔 痂镱鍗嶈犷珲馉棠貭箪雉牷珏<EFBFBD> 镦骟弭崰棠翣0崰釉翣泔眄犷洮鵂昏犷<EFBFBD> 躔 痂镱鍗犚杂崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 轭瘐<EFBFBD> 溽翎崓轭馉釉貭筢鲥啉牷筢鲥 貚犔呢狊祜魻荤弭 镦骟弭崰棠翣篝狒躞<EFBFBD>牷珏<EFBFBD> 篝狒躞崰廖臓%鞍鞍卑鞍崰锰脥犅叛犻铕矤活<EFBFBD> 溽翎崓犔牧犱狒岈鴯犛琶嶉铕矤棠貭筢鲥啉牷蝈篝矧<EFBFBD> <EFBFBD> 蝈趱蝾崰以訊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 秕麴豸 溽翎崓秕魻釉貭筢鲥啉牷筢鲥 鴯犇琶狋轫邈铘牷泔躅<EFBFBD> 滹黝 怡翦<EFBFBD> 疱<EFBFBD> 箦泔钿崰挛艩秕舯牷铒<EFBFBD> <EFBFBD> 箦泔钿<EFBFBD> 黠螋<EFBFBD> <EFBFBD>魨崰腥翇犔牧犮犰祗痄牷蝈箦<EFBFBD> 泔躅翦驆犃犹崰劣虓犃犹牋霍轫<EFBFBD> 泔躅<EFBFBD> <EFBFBD> 忉箦<EFBFBD>狒<EFBFBD> <EFBFBD> 巢崰劣虓犃犹崰釉翣糸礤泐魨犘塘崓犐蚊犫<EFBFBD>泐魻惑邈镱潴 <EFBFBD> 狒 洞 <EFBFBD>艨崰律誀怡翥铘崰轮脿秕舯牷铒疱崓犔呢牐盃或弩弭 箦泔钿髰犛载犫<EFBFBD>泐魨崰晌脿怡翥铘<EFBFBD>牷黹铛翦<EFBFBD> <EFBFBD> 狒 洞 <EFBFBD>艨崰律誀怡翥铘<EFBFBD>崰轮脿秕舯牷铒疱崓犔呢牐盃或弩弭 黹铛翦髰犛载犫<EFBFBD>泐臬睄崰晌脿怡翥铘<EFBFBD>牷轭<EFBFBD> 栾躜髰嶏豸睜棠貭箪雉崓犘攘嶏豸矤棠翣篝狒躞<EFBFBD>牷汨邈<EFBFBD> 篝狒躞崰廖臓%鞍氨鞍鞍崰屡褷秕舨牷祜镳 躅糸<EFBFBD> 蝈徜鶏犘塘崓溽翎祜銧釉翣溽翎牷箦戽<EFBFBD>镤殒殄鋶犔呢狊狯暹鴯犚杂崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 汨邈<EFBFBD> 骘<EFBFBD> 汜蝌殄<EFBFBD> 箦<EFBFBD> <EFBFBD> 麇 栳鲥 汜蝌殄驆嶃桦溷錉釉貭筢鲥啉牷滹铘 腴祆 犷<EFBFBD> 蝈绉髰犘攘崓犔呢狊祜魻荤弭 镦骟弭崰棠翣篝狒躞<EFBFBD>崰廖臓沅怡翦牷汨邈<EFBFBD> 汜蝌殄驆犆堂崰挛艩汨脘沅矋崰优脥汨脘沅矤刑翣蝈篝矧鍫会祆 <EFBFBD> 蝈趱蝾崰棠貭筢鲥啉崰以訊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 箦<EFBFBD> 翳<EFBFBD> 蝮<EFBFBD>巢 箴邋<EFBFBD> 垠疱邃 镦骟弭 轭 佥崓箦趔痄犛载狊狯暹鴯犔呢狊祜魻荤弭 镦骟弭崰棠翣箴邋洮鶢荤弭 箴邋鋶犛粤犮镱趄镬<EFBFBD>牷箦<EFBFBD> 箴邋鋶崰棠翣1牷骈钿 汜祆弪 箴邋<EFBFBD> <EFBFBD>嘲癌崰釉翣汜祆箴鋶犆匈牐盃会<EFBFBD> 嘲翱崰屡褷箦趔痄碃基屦崓犃犹犮犰祗痄牷箴邋<EFBFBD> <EFBFBD> 箴邋<EFBFBD> <EFBFBD> 矋箦趔痄矤劣虪汜祆箴錉惑疱邃 <EFBFBD> 箴邋<EFBFBD> <EFBFBD> 矋犇刨崰挛艩箦趔痄矤混镲<EFBFBD> 躅糸<EFBFBD> 泔蝌邈<EFBFBD> 箴邋<EFBFBD> 骘躅鋶嶓弭箴涑犔呢狊狯暹鵂或弩麸蝈 <EFBFBD> 蝈趱蝾崰以訊崻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瓖<EFBFBD> 趱蝾 镱 漪虔螋髰嶒衢箦漪驙篝鵂筢鲥啉崰熹鵂箪雉崓犾溽牐グ鞍氨氨睜霍躜<EFBFBD> 镱 脑椰 以訊狊翎犮镯磲钿<EFBFBD>崰箦闋牷蝈<EFBFBD>轶徕戾崓犾澍狊狯暹鴯狉趔崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 麽轸 蝻豸轭鍗嶗衢魻优脿牷骝镯 狃痨<EFBFBD> 蒇<EFBFBD> 蝈<EFBFBD> 磲<EFBFBD> <EFBFBD> 痃 贝穽麽轸矤腥翇麽轸碃勇脿1崰挛艩麽轸硩犘塘崰勇脿1崰挛艩麽轸矋犚杂崓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>崻 狯衢灬忪<EFBFBD> 箴邋潴崓箴邋錉滏鉅グ鞍卑北盃怀鞍崰滏鉅グ鞍北鞍盃槐舶皪犱驸牓鞍氨卑卑牷泊鞍崰滏鉅グ鞍北卑盃淮赴皪犱驸牓鞍氨北卑牷苟鞍崰滏鉅グ鞍北北睜槐共鞍崓泔躅綮餇溻牥嶃秕铘栝犱鉅皪筢鲥啉犱驸牥嶔轫邈铘犱驸牥崓犪筱牕娱铉戾羽洄<EFBFBD>
|
||||
*-------------------------------
|
||||
* Single Speed External
|
||||
*-------------------------------
|
||||
* 3/19/88 Andrew E. Nicholas
|
||||
*-------------------------------
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/singlespd
|
||||
|
||||
cr equ $0d
|
||||
lf equ $0a
|
||||
|
||||
data equ $c088
|
||||
status equ $c089
|
||||
command equ $c08a
|
||||
control equ $c08b
|
||||
|
||||
initstr equ $11d0
|
||||
ansstr equ $11c0
|
||||
cdbyte equ $11bf
|
||||
|
||||
singlespd ent ;(Start)
|
||||
org $e00
|
||||
|
||||
*-------------------------------
|
||||
* jump table
|
||||
|
||||
slot dfb $20 ;serial card slot
|
||||
initspd dfb 0 ;transmit / receive
|
||||
callspd dfb 0 ;speed of call
|
||||
|
||||
bytcnt dfb 0,0,0
|
||||
|
||||
JMP init
|
||||
JMP ringset
|
||||
JMP ring
|
||||
JMP answer
|
||||
JMP hangup
|
||||
JMP inp
|
||||
JMP out
|
||||
JMP chkdcd
|
||||
jmp setspd
|
||||
jmp raisedtr
|
||||
jmp dummy
|
||||
jmp dummy
|
||||
|
||||
dummy rts
|
||||
|
||||
*-------------------------------
|
||||
* init the serial card
|
||||
|
||||
init LDA #0 ;reset
|
||||
LDX slot
|
||||
STA status,x ;reset uart
|
||||
STA command,x ;reset command
|
||||
|
||||
clc
|
||||
txa
|
||||
adc #<data
|
||||
sta dataloc+1 ;make into absolute save
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
* setup for call
|
||||
|
||||
ringset LDX slot ;get offset
|
||||
LDA #%00001011 ;turn on DTR, RTS
|
||||
STA command,x
|
||||
|
||||
sei ;disable ints
|
||||
|
||||
LDY initspd ;set init speed
|
||||
JSR setspd
|
||||
|
||||
LDA data,x ;clear data strobe
|
||||
|
||||
LDA #0 ;long delay
|
||||
JSR wait
|
||||
jsr wait
|
||||
|
||||
LDX #-1 ;start at -1
|
||||
rset2 INX ;do pre-inc
|
||||
lda #$80
|
||||
jsr wait
|
||||
LDA initstr,x ;get modem init string
|
||||
BEQ rset3 ;we are done
|
||||
jmp rset2
|
||||
|
||||
rset3 lda #6
|
||||
sta countlo
|
||||
sta counthi
|
||||
|
||||
rset4 ldy #$FF
|
||||
rset5 dey
|
||||
beq decount
|
||||
|
||||
jsr inp
|
||||
bcc rset5
|
||||
and #$7f
|
||||
cmp #'K' ;check for "OK"
|
||||
beq leave
|
||||
jmp rset5
|
||||
|
||||
decount dec countlo
|
||||
bne rset4
|
||||
dec counthi
|
||||
bne rset4
|
||||
jmp ringset
|
||||
|
||||
leave lda #0
|
||||
sta bytcnt ;reset byte counter
|
||||
sta bytcnt+1
|
||||
sta bytcnt+2
|
||||
clc
|
||||
rts ;return
|
||||
|
||||
*-------------------------------
|
||||
* scan for ring and handle it
|
||||
|
||||
ring LDX slot ;get offset
|
||||
LDA status,x
|
||||
AND cdbyte ;strip out CD byte
|
||||
CLC
|
||||
BNE ring3 ;nothing
|
||||
|
||||
SEC ;we have a connection
|
||||
LDX #5
|
||||
ring2 LDA #0 ;delay before going online
|
||||
JSR wait
|
||||
DEX
|
||||
BNE ring2
|
||||
JSR inp ;gobble extra
|
||||
SEC
|
||||
|
||||
ring3 RTS
|
||||
|
||||
*-------------------------------
|
||||
* send ata to phone
|
||||
|
||||
answer LDX #0
|
||||
answer2 LDA ansstr,x ;get text
|
||||
BEQ answer3 ;we are donw
|
||||
|
||||
JSR out ;send it
|
||||
|
||||
lda #$80 ;delay a little
|
||||
jsr wait
|
||||
|
||||
INX
|
||||
BNE answer2 ;loop
|
||||
|
||||
answer3 RTS
|
||||
|
||||
*-------------------------------
|
||||
* hangup phone
|
||||
|
||||
hangup LDX slot ;get offset
|
||||
LDA #0
|
||||
STA command,x ;hang up phone
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* input data
|
||||
|
||||
inp STX save_x ;save X
|
||||
LDX slot ;get offset
|
||||
LDA status,x ;get status
|
||||
AND #%00001000
|
||||
CLC
|
||||
BEQ inp2 ;no data
|
||||
|
||||
LDA data,x
|
||||
SEC
|
||||
inp2 LDX save_x ;restore & return
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* output data
|
||||
|
||||
out STX save_x ;save x
|
||||
DEC timecnt ;count down bytes per second
|
||||
BNE out1 ;not a seconds worth yet
|
||||
|
||||
PHA
|
||||
LDA callspd ;reset counter
|
||||
ASL
|
||||
ASL
|
||||
ASL ;time count = base.rate * 32
|
||||
ASL
|
||||
ASL
|
||||
STA timecnt
|
||||
PLA
|
||||
|
||||
INC bytcnt ;seconds - at 64 yet?
|
||||
BIT bytcnt
|
||||
BVC out1 ;nope
|
||||
|
||||
LDX #0 ;reset seconds
|
||||
STX bytcnt
|
||||
|
||||
INC bytcnt+1 ;minutes - at 64 yet?
|
||||
BIT bytcnt+1
|
||||
BVC out1 ;nope
|
||||
|
||||
LDX #0 ;reset minutes
|
||||
STX bytcnt+1
|
||||
|
||||
INC bytcnt+2 ;inc hours
|
||||
|
||||
out1 LDX slot
|
||||
|
||||
PHA
|
||||
out2 LDA status,x ;check status
|
||||
AND #%00010000
|
||||
BEQ out2 ;loop until ready
|
||||
PLA
|
||||
|
||||
dataloc STA data ;self-modified
|
||||
LDX save_x
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* check for carrier sec = we have carrier
|
||||
|
||||
chkdcd STX save_x ;dont kill any reg's
|
||||
PHA
|
||||
|
||||
LDX slot ;get offset
|
||||
LDA status,x
|
||||
AND cdbyte ;check carrier
|
||||
CLC
|
||||
BNE chkdcd2
|
||||
|
||||
SEC
|
||||
chkdcd2 PLA restore ;all & return
|
||||
LDX save_x
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* set the rs-232 speed [speed offset in Y]
|
||||
|
||||
setspd STX save_x
|
||||
LDX slot ;get offset
|
||||
LDA speed,y ;get speed
|
||||
STA control,x ;set speed
|
||||
|
||||
LDA #1 ;find caller speed (x300)
|
||||
STA callspd
|
||||
CPY #0 ;at 300?
|
||||
BEQ setspd3 ;yep
|
||||
|
||||
ASL callspd ;speed = speed * 2
|
||||
setspd2 ASL callspd ;speed = speed * 2
|
||||
DEY
|
||||
BNE setspd2 ;loop until correct speed found
|
||||
|
||||
setspd3 LDX save_x ;restore & return
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* turn on dtr/rts
|
||||
|
||||
raisedtr stx save_x
|
||||
ldx slot
|
||||
|
||||
lda #%00001011 ;turn on DTR, RTS
|
||||
sta command,x
|
||||
sei ;re-disable
|
||||
|
||||
ldx save_x
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
* wait routine
|
||||
|
||||
wait SEC ;from apple ][+ ref man - pg 147
|
||||
wait2 PHA
|
||||
wait3 SBC #1
|
||||
BNE wait3
|
||||
PLA
|
||||
SBC #1
|
||||
BNE wait2
|
||||
RTS
|
||||
|
||||
*-------------------------------
|
||||
* available speeds
|
||||
|
||||
speed dfb %00010110 ;300
|
||||
dfb %00011000 ;1200
|
||||
dfb %00011010 ;2400
|
||||
dfb %00011100 ;4800
|
||||
dfb %00011110 ;9600
|
||||
dfb %00011111 ;19200
|
||||
|
||||
countlo db 0
|
||||
counthi db 0
|
||||
save_x dfb 0
|
||||
timecnt dfb 0
|
||||
|
||||
asc 'SingleSpd'
|
||||
|
|
|
@ -1 +1,58 @@
|
|||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ΗΒΒΣ Πςο Ξυμμ Νοδεν Δςιφες <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ΔατεΊ ³―±±―ΈΈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ξυμμνδν οςη ¤°ε°°<EFBFBD><EFBFBD>» κυνπ ταβμε<EFBFBD><EFBFBD> δβ ° » σεςιαμ γαςδ σμοτ<EFBFBD> δβ ° » ιξιτ νοδεν ατΏ<EFBFBD> δβ ° » σπεεδ οζ γαμμ<EFBFBD><EFBFBD>βωτγξτ δβ °¬°¬°<EFBFBD><EFBFBD> κνπ δοίςτσ<EFBFBD> κνπ δοίςτσ<EFBFBD> κνπ ςιξη<EFBFBD> κνπ δοίςτσ<EFBFBD> κνπ δοίςτσ<EFBFBD> κνπ ιξπ<EFBFBD> κνπ ουτ<EFBFBD> κνπ γθλδγδ<EFBFBD><EFBFBD><EFBFBD>» ιξιτ τθε σεςιαμ γαςδ<EFBFBD>δοίςτσ ςτσ<EFBFBD><EFBFBD>» σγαξ ζος ςιξη αξδ θαξδμε ιτ<EFBFBD>ςιξη γμγ<EFBFBD> ςτσ<EFBFBD><EFBFBD>» ιξπυτ δατα<EFBFBD>ιξπ μδα £°<EFBFBD> γμγ<EFBFBD> ςτσ<EFBFBD><EFBFBD>» ουτπυτ δατα<EFBFBD>ουτ ιξγ βωτγξτ » δο βωτεγουξτιξη<EFBFBD> βξε ουτ±<EFBFBD> ιξγ βωτγξτ«±<EFBFBD> βξε ουτ±<EFBFBD> ιξγ βωτγξτ«²<EFBFBD><EFBFBD>ουτ± ςτσ<EFBFBD><EFBFBD>» γθεγλ ζος γαςςιες<EFBFBD>γθλδγδ γμγ<EFBFBD> ςτσ<EFBFBD><EFBFBD> οςη<EFBFBD><EFBFBD><EFBFBD>
|
||||
********************************
|
||||
* *
|
||||
* GBBS Pro - Null Modem Driver *
|
||||
* *
|
||||
********************************
|
||||
|
||||
*-------------------------------
|
||||
* Date: 3/11/88
|
||||
*-------------------------------
|
||||
|
||||
nullmdm org $0e00
|
||||
|
||||
; jump table
|
||||
|
||||
db 0 ; serial card slot
|
||||
db 0 ; init modem at?
|
||||
db 0 ; speed of call
|
||||
|
||||
bytcnt db 0,0,0
|
||||
|
||||
jmp do_rts
|
||||
jmp do_rts
|
||||
jmp ring
|
||||
jmp do_rts
|
||||
jmp do_rts
|
||||
jmp inp
|
||||
jmp out
|
||||
jmp chkdcd
|
||||
|
||||
|
||||
; init the serial card
|
||||
do_rts rts
|
||||
|
||||
; scan for ring and handle it
|
||||
ring clc
|
||||
rts
|
||||
|
||||
; input data
|
||||
inp lda #0
|
||||
clc
|
||||
rts
|
||||
|
||||
; output data
|
||||
out inc bytcnt ; do byte-counting
|
||||
bne out1
|
||||
inc bytcnt+1
|
||||
bne out1
|
||||
inc bytcnt+2
|
||||
|
||||
out1 rts
|
||||
|
||||
; check for carrier
|
||||
chkdcd clc
|
||||
rts
|
||||
|
||||
org
|
||||
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1,284 @@
|
|||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> Γοξζιη ΠςοΔΟΣ δισλ Ι―Ο <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ΔατεΊ ³―±±―ΈΈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>γςεατε² ερυ <EFBFBD> » εξτςω ζος εψτεςξαμ ζιμεσ<EFBFBD>γςεατε στω πίγςεατ«΄ » σαφε ζιμετωπε<EFBFBD> κσς νμι<EFBFBD> δβ ¤γ°<EFBFBD> δχ πίγςεατ<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD>οπεξ μδω £°<EFBFBD>βζοπεξ μδα βυζαδς¬ω » ποιξτ ατ βυζζες<EFBFBD> στα πίοπεξ«΄<EFBFBD><EFBFBD> κσς νμι<EFBFBD> δβ ¤γΈ » οπεξ<EFBFBD> δχ πίοπεξ<EFBFBD> βξε οπεξ²<EFBFBD><EFBFBD> μδα πίοπεξ«µ » σαφε ςεζξυν<EFBFBD> στα ςεζξυν<EFBFBD> γμγ<EFBFBD> ςτσ<EFBFBD><EFBFBD>οπεξ² μδα £± » ναλε συςε ςεζξυν ισ ιμμεηαμ<EFBFBD> στα ςεζξυν<EFBFBD> σεγ<EFBFBD> ςτσ<EFBFBD><EFBFBD>βυζαδς δβ Ύζβυ汬Ύζβυ沬Ύνσηβυζ<EFBFBD><EFBFBD><EFBFBD>γμοσε μδα ςεζξυν » υσε ςεζξυν<EFBFBD> στα πίγμοσε«±<EFBFBD> κσς νμι<EFBFBD> δβ ¤γγ » γμοσε<EFBFBD> δχ πίγμοσε<EFBFBD> ςτσ<EFBFBD><EFBFBD>ζμυσθ μδα ςεζξυν » υσε ςεζξυν<EFBFBD> στα πίγμοσε«±<EFBFBD> κσς νμι<EFBFBD> δβ ¤γδ » ζμυσθ<EFBFBD> δχ πίγμοσε<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD>» σετυπ ζος σιξημε μιξε ςεαδ<EFBFBD>ςδμξσετ μδα ςεζξυν<EFBFBD> στα πίξεχ°«± » σαφε ςεζξυν<EFBFBD> στα πίξεχ±«±<EFBFBD> στα πίςδμξ«±<EFBFBD><EFBFBD> κσς νμι<EFBFBD> δβ ¤γΉ » εξαβμε ξεχμιξε<EFBFBD> δχ πίξεχ±<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD>» ςεαδ α μιξε ζςον α ζιμε<EFBFBD>ςδμιξε κσς νμι<EFBFBD> δβ ¤γα » ςεαδ<EFBFBD> δχ πίςδμξ<EFBFBD> βξε ςδμιξε² » ςεαδ εςςος<EFBFBD><EFBFBD> μδψ πίςδμ » ισ τθεςε α γς ατ εξδ οζ μιξεΏ<EFBFBD> μδα μξβυ汬ψ<EFBFBD> αξδ £¤·ζ<EFBFBD> γνπ £γς<EFBFBD> βξε ςδμιξε² » ξο νοςε στυζζ<EFBFBD> γμγ<EFBFBD> ςτσ<EFBFBD><EFBFBD>ςδμιξε² μδα £° » ξο δατα ιξ μιξε<EFBFBD> στα μξβυζ<EFBFBD> σεγ » εοζ<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD>» ςεαδ α σιξημε βωτε<EFBFBD>ςδβωτε μδα ςεζξυν » σαφε ςεζξυν<EFBFBD> βερ ςδβωτε²<EFBFBD><EFBFBD> στα πίςβωτ«±<EFBFBD> κσς νμι<EFBFBD> δβ ¤γα » ςεαδ ± βωτε<EFBFBD> δχ πίςβωτ<EFBFBD> βξε ςδβωτε²<EFBFBD><EFBFBD> μδα πίβωτε » ηετ βωτε<EFBFBD> γμγ » χεςε δοξε<EFBFBD> ςτσ<EFBFBD><EFBFBD>ςδβωτε² μδα £° » ζαλε δατα<EFBFBD> σεγ<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD>» χςιτε α βμογλ ζος τθε νση ςουτιξεσ<EFBFBD>χςβμλ πθα<EFBFBD> μδα £¤γβ » υσε χςιτε γαμμ<EFBFBD> στα ςχτωπε » δοεσ νοδιζω<EFBFBD> πμα<EFBFBD> κνπ ςχβμλ<EFBFBD><EFBFBD>» ςεαδ α βμογλ ζος τθε νση ςουτιξεσ<EFBFBD>ςδβμλ πθα<EFBFBD> μδα £¤γα » υσε ςεαδ γαμμ<EFBFBD> στα ςχτωπε » δοεσ νοδιζω<EFBFBD> πμα<EFBFBD><EFBFBD>ςχβμλ στψ πίςδβμλ«²<EFBFBD> στα πίςδβμλ«³ » σαφε ςεαδ αδδςεσσ<EFBFBD><EFBFBD> μδα £°<EFBFBD> στα πίςδβμλ«΄<EFBFBD> στω πίςδβμλ«µ » σαφε ξυνβες οζ βμογλσ το ςεαδ<EFBFBD><EFBFBD> μσς πίςδβμλ«µ » διφιδε βω ²<EFBFBD> ςος πίςδβμλ«΄<EFBFBD><EFBFBD> μδα ςεζξυν » ηετ ςεζξυν<EFBFBD> στα πίςδβμλ«±<EFBFBD><EFBFBD> κσς νμι » γαμμ νμι<EFBFBD>ςχτωπε δβ ¤γα » <EFBFBD><EFBFBD><EFBFBD> νοδιζιεδ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> δχ πίςδβμλ<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD>» χςιτε α βωτε οζ δατα<EFBFBD>χςβωτε στα πίβωτε » σαφε δατα<EFBFBD> πθα<EFBFBD> μδα ςεζξυν<EFBFBD> βερ χςβωτε² » ιζ ξο ςεζξυν<EFBFBD><EFBFBD> στα πίςβωτ«±<EFBFBD> κσς νμι<EFBFBD> δβ ¤γβ » χςιτε βωτε<EFBFBD> δχ πίςβωτ<EFBFBD> γμγ » αμμ ισ χεμμ<EFBFBD> βερ χςβωτε³<EFBFBD><EFBFBD>χςβωτε² σεγ » οππσ¬ πςοβμεν<EFBFBD>χςβωτε³ πμα » ηετ βαγλ δατα<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD>» ποσιτιοξ ζιμε<EFBFBD>ποσνση μδω νσηςεζ » σαφε ςεζξυν<EFBFBD> στω ςεζξυν<EFBFBD><EFBFBD> μσς α » σετυπ Ω¬Α¬Ψ χ―εψαγτ βωτε<EFBFBD> ταω<EFBFBD> τψα<EFBFBD> ςος α<EFBFBD> πθα<EFBFBD> μδα £±¶<EFBFBD> ςος α<EFBFBD> ταψ<EFBFBD> πμα<EFBFBD> κνπ σετποσ<EFBFBD><EFBFBD><EFBFBD>» ζιξδ τθε εξδ οζ ζιμε<EFBFBD>ηετεοζ μδα ςεζξυν » σαφε ςεζξυν<EFBFBD> στα πίναςλ«±<EFBFBD> κσς νμι<EFBFBD> δβ ¤δ± » ηετ εοζ<EFBFBD> δχ πίναςλ<EFBFBD> μδψ πίναςλ«²<EFBFBD> μδα πίναςλ«³ » ηετ μεξητθ<EFBFBD> μδω πίναςλ«΄<EFBFBD> ςτσ<EFBFBD><EFBFBD>» σετ α ναςλ ιξτο α ζιμε<EFBFBD>σετναςλ μδω £°<EFBFBD><EFBFBD>» δο αγτυαμ ποσιτιοξ σετ χιτθιξ ζιμε<EFBFBD>σετποσ στψ πίναςλ«²<EFBFBD> στα πίναςλ«³ » ποιξτ το ξεχ μογατιοξ<EFBFBD> στω πίναςλ«΄<EFBFBD><EFBFBD> μδα ςεζξυν<EFBFBD> στα πίναςλ«± » σαφε ςεζξυν<EFBFBD><EFBFBD>σετποσ² κσς νμι<EFBFBD> δβ ¤γε » σετ ναςλ<EFBFBD> δχ πίναςλ<EFBFBD> γν𠣤΄δ » γθεγλ ζος ουτοζςαξηε<EFBFBD> βξε σετποσ³<EFBFBD><EFBFBD> κσς νμι<EFBFBD> δβ ¤δ° » σετ εοζ<EFBFBD> δχ πίναςλ<EFBFBD> βερ σετποσ² » ποσιτιοξ αηαιξ<EFBFBD><EFBFBD>σετποσ³ ςτσ<EFBFBD><EFBFBD><EFBFBD>» ηετ γυςςεξτ ζιμε ναςλες<EFBFBD>ηετναςλ μδα ςεζξυν » σαφε ςεζξυν<EFBFBD> στα πίναςλ«±<EFBFBD> κσς νμι<EFBFBD> δβ ¤γζ » ηετ ναςλ<EFBFBD> δχ πίναςλ<EFBFBD> σεγ<EFBFBD> βξε ηετνςλ² » οππσ¬ εςςος<EFBFBD><EFBFBD> γμγ<EFBFBD> μδψ πίναςλ«² » αμμ ισ χεμμ<EFBFBD> μδα πίναςλ«³<EFBFBD>ηετνςλ² ςτσ<EFBFBD><EFBFBD>δεμζιμε κσς νμι<EFBFBD> δβ ¤γ± » δεμετε ζιμε<EFBFBD> δχ πίδεμ<EFBFBD> ςτσ<EFBFBD><EFBFBD>» παςνσ <EFBFBD><EFBFBD>πίοπεξ δβ ³<EFBFBD> δχ ζμξανε<EFBFBD> δχ ζβυζ±<EFBFBD> δβ °<EFBFBD><EFBFBD>πίγμοσε δβ ±<EFBFBD> δβ °<EFBFBD><EFBFBD>πίςβωτ δβ ΄<EFBFBD> δβ °<EFBFBD> δχ πίβωτε<EFBFBD> δχ ±<EFBFBD> δχ °<EFBFBD><EFBFBD>πίβωτε δβ °<EFBFBD><EFBFBD>πίναςλ δβ ²<EFBFBD> δβ °<EFBFBD> δβ °¬°¬°<EFBFBD><EFBFBD>πίξεχ° δβ ³<EFBFBD> δβ °<EFBFBD> δβ °<EFBFBD> δβ °<EFBFBD><EFBFBD>πίξεχ± δβ ³<EFBFBD> δβ °<EFBFBD> δβ ¤·ζ<EFBFBD> δβ ¤°δ<EFBFBD><EFBFBD>πίςδμξ δβ ΄<EFBFBD> δβ °<EFBFBD> δχ μξβυζ<EFBFBD> δχ ¤°°ζζ<EFBFBD> δχ ¤°°°°<EFBFBD><EFBFBD>πίςδβμλ δβ ΄<EFBFBD> δβ °<EFBFBD> δχ ¤°°°°<EFBFBD> δχ ¤°°Έ°<EFBFBD> δχ ¤°°°°<EFBFBD><EFBFBD>πίδεμ δβ ±<EFBFBD> δχ ζμξανε<EFBFBD><EFBFBD>πίγςεατ δβ ·<EFBFBD> δχ ζμξανε<EFBFBD> δβ ¤γ³<EFBFBD> δβ °<EFBFBD> δχ °<EFBFBD> δβ ¤°±<EFBFBD> δχ ¤°°°°<EFBFBD> δχ ¤°°°°<EFBFBD><EFBFBD><EFBFBD>
|
||||
********************************
|
||||
* *
|
||||
* Config - ProDOS disk I/O *
|
||||
* *
|
||||
********************************
|
||||
|
||||
*-------------------------------
|
||||
* Date: 3/11/88
|
||||
*-------------------------------
|
||||
|
||||
create2 equ * ; entry for external files
|
||||
create sty p_creat+4 ; save filetype
|
||||
jsr mli
|
||||
db $c0
|
||||
dw p_creat
|
||||
rts
|
||||
|
||||
|
||||
open ldy #0
|
||||
bfopen lda bufadr,y ; point at buffer
|
||||
sta p_open+4
|
||||
|
||||
jsr mli
|
||||
db $c8 ; open
|
||||
dw p_open
|
||||
bne open2
|
||||
|
||||
lda p_open+5 ; save refnum
|
||||
sta refnum
|
||||
clc
|
||||
rts
|
||||
|
||||
open2 lda #-1 ; make sure refnum is illegal
|
||||
sta refnum
|
||||
sec
|
||||
rts
|
||||
|
||||
bufadr db >fbuf1,>fbuf2,>msgbuf
|
||||
|
||||
|
||||
close lda refnum ; use refnum
|
||||
sta p_close+1
|
||||
jsr mli
|
||||
db $cc ; close
|
||||
dw p_close
|
||||
rts
|
||||
|
||||
flush lda refnum ; use refnum
|
||||
sta p_close+1
|
||||
jsr mli
|
||||
db $cd ; flush
|
||||
dw p_close
|
||||
rts
|
||||
|
||||
|
||||
; setup for single line read
|
||||
rdlnset lda refnum
|
||||
sta p_new0+1 ; save refnum
|
||||
sta p_new1+1
|
||||
sta p_rdln+1
|
||||
|
||||
jsr mli
|
||||
db $c9 ; enable newline
|
||||
dw p_new1
|
||||
rts
|
||||
|
||||
|
||||
; read a line from a file
|
||||
rdline jsr mli
|
||||
db $ca ; read
|
||||
dw p_rdln
|
||||
bne rdline2 ; read error
|
||||
|
||||
ldx p_rdln+6 ; is there a cr at end of line?
|
||||
lda lnbuf-1,x
|
||||
and #$7f
|
||||
cmp #cr
|
||||
bne rdline2 ; no more stuff
|
||||
clc
|
||||
rts
|
||||
|
||||
rdline2 lda #0 ; no data in line
|
||||
sta lnbuf
|
||||
sec ; eof
|
||||
rts
|
||||
|
||||
|
||||
; read a single byte
|
||||
rdbyte lda refnum ; save refnum
|
||||
beq rdbyte2
|
||||
|
||||
sta p_rbyt+1
|
||||
jsr mli
|
||||
db $ca ; read 1 byte
|
||||
dw p_rbyt
|
||||
bne rdbyte2
|
||||
|
||||
lda p_byte ; get byte
|
||||
clc ; were done
|
||||
rts
|
||||
|
||||
rdbyte2 lda #0 ; fake data
|
||||
sec
|
||||
rts
|
||||
|
||||
|
||||
; write a block for the msg routines
|
||||
wrblk pha
|
||||
lda #$cb ; use write call
|
||||
sta rwtype ; --- does modify
|
||||
pla
|
||||
jmp rwblk
|
||||
|
||||
; read a block for the msg routines
|
||||
rdblk pha
|
||||
lda #$ca ; use read call
|
||||
sta rwtype ; --- does modify
|
||||
pla
|
||||
|
||||
rwblk stx p_rdblk+2
|
||||
sta p_rdblk+3 ; save read address
|
||||
|
||||
lda #0
|
||||
sta p_rdblk+4
|
||||
sty p_rdblk+5 ; save number of blocks to read
|
||||
|
||||
lsr p_rdblk+5 ; divide by 2
|
||||
ror p_rdblk+4
|
||||
|
||||
lda refnum ; get refnum
|
||||
sta p_rdblk+1
|
||||
|
||||
jsr mli ; call mli
|
||||
rwtype db $ca ; *** modified ***
|
||||
dw p_rdblk
|
||||
rts
|
||||
|
||||
|
||||
; write a byte of data
|
||||
wrbyte sta p_byte ; save data
|
||||
pha
|
||||
lda refnum
|
||||
beq wrbyte2 ; if no refnum
|
||||
|
||||
sta p_rbyt+1
|
||||
jsr mli
|
||||
db $cb ; write byte
|
||||
dw p_rbyt
|
||||
clc ; all is well
|
||||
beq wrbyte3
|
||||
|
||||
wrbyte2 sec ; opps, problem
|
||||
wrbyte3 pla ; get back data
|
||||
rts
|
||||
|
||||
|
||||
; position file
|
||||
posmsg ldy msgref ; save refnum
|
||||
sty refnum
|
||||
|
||||
lsr a ; setup Y,A,X w/exact byte
|
||||
tay
|
||||
txa
|
||||
ror a
|
||||
pha
|
||||
lda #16
|
||||
ror a
|
||||
tax
|
||||
pla
|
||||
jmp setpos
|
||||
|
||||
|
||||
; find the end of file
|
||||
geteof lda refnum ; save refnum
|
||||
sta p_mark+1
|
||||
jsr mli
|
||||
db $d1 ; get eof
|
||||
dw p_mark
|
||||
ldx p_mark+2
|
||||
lda p_mark+3 ; get length
|
||||
ldy p_mark+4
|
||||
rts
|
||||
|
||||
; set a mark into a file
|
||||
setmark ldy #0
|
||||
|
||||
; do actual position set within file
|
||||
setpos stx p_mark+2
|
||||
sta p_mark+3 ; point to new location
|
||||
sty p_mark+4
|
||||
|
||||
lda refnum
|
||||
sta p_mark+1 ; save refnum
|
||||
|
||||
setpos2 jsr mli
|
||||
db $ce ; set mark
|
||||
dw p_mark
|
||||
cmp #$4d ; check for out-of-range
|
||||
bne setpos3
|
||||
|
||||
jsr mli
|
||||
db $d0 ; set eof
|
||||
dw p_mark
|
||||
beq setpos2 ; position again
|
||||
|
||||
setpos3 rts
|
||||
|
||||
|
||||
; get current file marker
|
||||
getmark lda refnum ; save refnum
|
||||
sta p_mark+1
|
||||
jsr mli
|
||||
db $cf ; get mark
|
||||
dw p_mark
|
||||
sec
|
||||
bne getmrk2 ; opps, error
|
||||
|
||||
clc
|
||||
ldx p_mark+2 ; all is well
|
||||
lda p_mark+3
|
||||
getmrk2 rts
|
||||
|
||||
delfile jsr mli
|
||||
db $c1 ; delete file
|
||||
dw p_del
|
||||
rts
|
||||
|
||||
; ------ parms ------
|
||||
|
||||
p_open db 3
|
||||
dw flname
|
||||
dw fbuf1
|
||||
db 0
|
||||
|
||||
p_close db 1
|
||||
db 0
|
||||
|
||||
p_rbyt db 4
|
||||
db 0
|
||||
dw p_byte
|
||||
dw 1
|
||||
dw 0
|
||||
|
||||
p_byte db 0
|
||||
|
||||
p_mark db 2
|
||||
db 0
|
||||
db 0,0,0
|
||||
|
||||
p_new0 db 3
|
||||
db 0
|
||||
db 0
|
||||
db 0
|
||||
|
||||
p_new1 db 3
|
||||
db 0
|
||||
db $7f
|
||||
db $0d
|
||||
|
||||
p_rdln db 4
|
||||
db 0
|
||||
dw lnbuf
|
||||
dw $00ff
|
||||
dw $0000
|
||||
|
||||
p_rdblk db 4
|
||||
db 0
|
||||
dw $0000
|
||||
dw $0080
|
||||
dw $0000
|
||||
|
||||
p_del db 1
|
||||
dw flname
|
||||
|
||||
p_creat db 7
|
||||
dw flname
|
||||
db $c3
|
||||
db 0
|
||||
dw 0
|
||||
db $01
|
||||
dw $0000
|
||||
dw $0000
|
||||
|
||||
|
||||
|
|
|
@ -1 +1,259 @@
|
|||
╙ дАТЕ╨ Ё╞╠╠╞╦╦█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ПРОФАНИТЫ ФИЛТЕР█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█═══╩ ЦХАНГЕ ПРОФАНИТЫ ФИЛТЕР ╗ЫУК╘█ДОъФИЛТ═ЙСР═ЛОГПРГ═╩ ЛОГ ТО ╖АЦОС╝ОБЙ╖ ДРИЖЕ█═ЛДЬ═ё╪ГНАМЕ█═ЛДА═ё╬ГНАМЕ═╩ ПОИНТ ТО ФИЛЕНАМЕ█═ЙСР═МОЖНАМЕ█═ЙСР═ОПЕН═╩ ОПЕН ФИЛЕ██═ЛДЬ═ё╟╟█═ЛДА═ФИЛТЕР═╩ ПОИНТ АТ ФИЛТЕР ТАБЛЕ█═ЙСР═СЕТМАРК██═ЛДЬ═ё╪ХДРБУФ█═ЛДА═ё╬ХДРБУФ█═ЛДЫ═ё╡═╩ РЕАД ╠ ПАГЕ ╗╡ БЛОЦКС╘█═ЙСР═РДБЛК█═ЙСР═ЦЛОСЕ═╩ ТХАТС ИТ ФОР НОВ██ФИЛТ╡═ЙСР═тОПбОЬ█═ЙСР═ПРИНТ█═ДБ═╠╛Ё╛╥█═АСЦ═╖╜ еДИТ пРОФАНИТЫ фИЛТЕР ╜╖╛╟╟█═ЙСР═ЦЛС██═ЛДА═ё╟═╩ СТАРТ АТ ё╠█═СТА═ТЕМП╡██ФИЛТЁ═ЛДЬ═ТЕМП╡═╩ ГЕТ ЕНТРЫ НУМБЕР█═ЙСР═ФНДВОРД═╩ ФИНД ТХЕ ВОРД█═БЦС═ФИЛТ╣═╩ ОППС╛ ЕНД ОФ ТАБЛЕ██═ЛДА═ЦХ═╩ САЖЕ ЦУРРЕНТ ХОРИЗ█═ПХА██═ЛДА═ТЕМП╡═╩ ПРИНТ ЕНТРЫ ЛЕТТЕР█═ЦЛЦ█═АДЦ═ё╖а╖█═ЙСР═ЦОУТ█═ИНЦ═ТЕМП╡═╩ ГОТО НЕЬТ ЕНТРЫ НЕЬТ ПАСС██═ЛДА═ё╖╘╖═╩ СХОВ А БОРДЕР█═ЙСР═ЦОУТ█═ИНЦ═ЦХ═╩ МОЖЕ ОЖЕР ╠ СПАЦЕ██ФИЛТ╢═ЛДА═ХДРБУФ╛Ы═╩ ГЕТ ДАТА█═ПХП█═ЙСР═ЦОУТ═╩ ПРИНТ ДАТА█═ИНЫ█═ПЛП█═БПЛ═ФИЛТ╢═╩ КЕЕП СХОВИНГ██═ПЛА█═ЦЛЦ█═АДЦ═ё╠╧█═СТА═ЦХ═╩ МОЖЕ ОЖЕР ХОРИЗ ПОСИТИОН██═ЛДА═ё╖ ╖═╩ ЕИТХЕР ВРАП ОР МОЖЕ ╠ СПАЦЕ█═ЙСР═ЦОУТ█═ЙМП═ФИЛТЁ██ФИЛТ╣═ЙСР═ПРИНТ█═ДБ═╠╛╡╟╛╟█═АСЦ═╖цМД╨ а╫аДД╛ д╫дЕЛЕТЕ╛ я╫яУИТ © ╖╛╟╟██═ЛДА═ё╠█═СТА═МАЬЛЕН═╩ ГЕТ ЦОММАНД█═ЛДА═ё╔╠╟╟╟╟╟╟╟█═СТА═ИНПМОДЕ█═ЙСР═ИНПЛН██═ЛДА═ЛНБУФ█═ЦМП═ё╖а╖█═БНЕ═╨ТРЫД█═ЙМП═ФЛъАДД█╨ТРЫД═ЦМП═ё╖д╖█═БЕЯ═ФЛъДЕЛ█╨ТРЫЯ═ЦМП═ё╖я╖█═БНЕ═ФИЛТ╣█═ЙМП═ФЛъЯУИТ██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ДЕЛЕТЕ А ВОРД ФРОМ ЛИСТ██ФЛъДЕЛ═ЛДЬ═ё╡╟█═ЙСР═ЦЛЕОС═╩ ЦЛЕАР ЛИНЕ█═ЙСР═ПРИНТ█═ДБ═╠╛╡╟╛╟█═АСЦ═╖дЕЛЕТЕ ша╜╖╛╟╟██═ЦЛЦ█═ЛДА═ТЕМП╡█═АДЦ═ё╖ю╖█═ЙСР═ЦОУТ═╩ ПРИНТ РАНГЕ██═ЙСР═ПРИНТ█═АСЦ═╖щ © ╖╛╟╟██═ЛДА═ё╔╠╟╟╟╟╟╟╟█═СТА═ИНПМОДЕ═╩ СЕТ МОДЕ██═ЙСР═ИНПЛН═╩ ГЕТ ДАТА█═ЛДА═ЛНБУФ█═ЦМП═ё╖а╖█═БЦЦ═ФИЛТ╣═╩ МОЖЕ БАЦК╛ ЕРРОР██═СЕЦ█═СБЦ═ё╖а╖═╩ МАКЕ ИНТО ш╟╜ЬЬЬщ РАНГЕ█═ЦМП═ТЕМП╡█═БЦЦ═╙╚╣█═ЙМП═ФИЛТ╣═╩ ОУТ ОФ РАНГЕ██═ПХА█═ТАЬ█═ИНЬ█═ЙСР═ФНДВОРД═╩ ЛОЦАТЕ СЕЦОНД ВОРД█═СТЫ═ТЕМП╡╚╠═╩ САЖЕ ОФФСЕТ█═ПЛА█═ТАЬ█═ЙСР═ФНДВОРД═╩ ЛОЦАТЕ ФИРСТ ВОРД█═ЛДЬ═ТЕМП╡╚╠═╩ ПОИНТ ТО СЕЦОНД ВОРД██ФЛъДЕЛ╡═ЛДА═ХДРБУФ╛Ь═╩ МОЖЕ ДАТА█═СТА═ХДРБУФ╛Ы█═ИНЫ█═ИНЬ█═БНЕ═ФЛъДЕЛ╡═╩ ЛООП█═ЙМП═ФИЛТ╡═╩ СХОВ НЕВ СЦРЕЕН██╩ АДД А ВОРД ТО ЛИСТ█ФЛъАДД═ЛДЬ═ё╡╟█═ЙСР═ЦЛЕОС═╩ ЦЛЕАР ЛИНЕ█═ЙСР═ПРИНТ█═ДБ═╠╛╡╟╛╟█═АСЦ═╖еНТЕР НЕВ ВОРД╨ ╖╛╟╟██═ЛДА═ё╠╤═╩ ╠╤ ЦХАРС МАЬ ЛЕНГТХ█═СТА═МАЬЛЕН█═ЛДА═ё╔╠╟╟╟╟╟╟╟█═СТА═ИНПМОДЕ═╩ СЕТ ИНПУТ МОДЕ██═ЙСР═ИНПЛН═╩ ГЕТ ТХЕ ДАТА█═ЛДА═ЛНБУФ█═ЦМП═ё╖а╖█═БЦЦ═ФЛъАДД╢═╩ АБОРТ██═ЛДЬ═ТЕМП╡═╩ ГЕТ ЛАСТ ВОРД█═ЙСР═ФНДВОРД═╩ ФИНД ЕНД█═СТЫ═ТЕМП╡╚╠═╩ САЖЕ ЦУРРЕНТ ЕНД██═ЛДЬ═ё╟█ФЛъАДД╡═ЛДА═ЛНБУФ╛Ь█═ЦМП═ё╖а╖█═БЦЦ═ФЛъАДДЁ██═СТА═ХДРБУФ╛Ы═╩ АДД БЫТЕ█═ИНЬ█═ИНЫ█═БНЕ═ФЛъАДД╡═╩ АНД ЛООП██═ЛДА═ё╟█═ЛДЫ═ТЕМП╡╚╠═╩ МАРК ОЛД ЕНД ОФ ТАБЛЕ█═СТА═ХДРБУФ╛Ы██═ЙСР═ПРИНТ█═ДБ═╠╛╡╟╛╟█═АСЦ═╖еРРОР╨ фИЛТЕР тАБЛЕ оЖЕРРУН╝ пРЕСС шретурнщ ╖╛╟╟█═ЙСР═ГЕТЦР═╩ ВАИТ ФОР ЦР█ФЛъАДД╢═ЙМП═ФИЛТ╣═╩ ГЕТ НЕВ ДАТА██ФЛъАДДЁ═ЛДА═ё╟═╩ МАРК ЕНД ОФ ТАБЛЕ█═СТА═ХДРБУФ╛Ы█═ДЕЫ█═ЛДА═ХДРБУФ╛Ы═╩ МАРК АС ЛАСТ ЦХАР█═ОРА═ё╓╦╟█═СТА═ХДРБУФ╛Ы█═ЙМП═ФИЛТ╡═╩ СХОВ НЕВ ТАБЛЕ██╩ ЯУИТ ФРОМ ФИЛТЕР ЦХАНГЕР█ФЛъЯУИТ═ЛДЬ═ё╡╟█═ЙСР═ЦЛЕОС═╩ ЦЛЕАР БОТТОМ ОФ СЦРЕЕН█═ЙСР═ПРИНТ█═ДБ═╠╛╡╟╛╟█═АСЦ═╖иС ТХЕ АБОЖЕ ТАБЛЕ ЦОРРЕЦТ шы╞нщ © ╖╛╟╟█═ЙСР═ИНПЫН█═БЦЦ═ФЛъСАЖЕ█═ЙМП═СТАРТ═╩ НОПЕ║██ФЛъСАЖЕ═ЙСР═ЛОГПРГ═╩ ЛОГ ТО ╖АЦОС╝ОБЙ╖ ДРИЖЕ█═ЛДЬ═ё╪ГНАМЕ█═ЛДА═ё╬ГНАМЕ═╩ СЕТУП НАМЕ БУФФЕР█═ЙСР═МОЖНАМЕ█═ЙСР═ОПЕН═╩ ОПЕН ФИЛЕ██═ЛДЬ═ё╟╟█═ЛДА═ФИЛТЕР═╩ ПОСИТИОН ТО ФИЛТЕР ТАБЛЕ█═ЙСР═СЕТМАРК██═ЛДЬ═ё╪ХДРБУФ█═ЛДА═ё╬ХДРБУФ█═ЛДЫ═ё╡═╩ ВРИТЕ ╠ ПАГЕ ╗╡ БЛОЦКС╘█═ЙСР═ВРБЛК█═ЙСР═ЦЛОСЕ═╩ ТХАТС ИТ ФОР НОВ█═ЙМП═СТАРТ███╩ ЛОЦАТЕ А ВОРД шИНДЕЬЕД БЫ Ьщ█ФНДВОРД═ЛДЫ═ё╟█═ЦПЬ═ё╟═╩ ВЕ ДОНЕ©█═БЕЯ═ФНДВД╡═╩ ЫЕП██ФНДВД╠═ЛДА═ХДРБУФ╛Ы═╩ ЛООП УНТИЛ НЕЬТ ВОРД█═БЕЯ═ФНДВД╢═╩ ЕНД ОФ ТАБЛЕ██═ИНЫ══╩ ГОТО НЕЬТ БЫТЕ█═АСЛ═А═╩ ЦХЕЦК ХИГХ БИТ█═БЦЦ═ФНДВД╠██═ДЕЬ══╩ ЦОУНТ ДОВН ЕНТРИЕС█═БНЕ═ФНДВД╠██ФНДВД╡═ЛДА═ХДРБУФ╛Ы█═БЕЯ═ФНДВД╢═╩ ОППС╛ ТХАТ ИС ЕНД МАРКЕР██ФНДВДЁ═ЦЛЦ█═РТС══╩ ВЕ АРЕ ДОНЕ██ФНДВД╢═СЕЦ══╩ ОППС╛ ЕНД ОФ ТАБЛЕ█═РТС██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ яУИТ█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██╩ ЯУИТ ТХЕ ПРОГРАМ█ДОъЯУИТ═ЙСР═╓ФЦ╣╦═╩ ЦЛЕАР СЦРЕЕН█═СТА═╓Ц╟╣╠═╩ ГОТО ТЕЬТ МОДЕ██═ЛДА═ё╓ФФ═╩ РЕСЕТ ИНЖЕРСЕ ФЛАГ█═СТА═╓Ё╡███═ЙСР═МЛИ█═ДБ═╓╤╣═╩ ЯУИТ█═ДВ═ПъЯУИТ█═РТС███ПъЯУИТ═ДБ═╢█═ДБ═╟█═ДВ═╟█═ДБ═╟█═ДВ═╟███
|
||||
* Date: 3/11/88
|
||||
*-------------------------------
|
||||
|
||||
*-------------------------------
|
||||
* profanity filter
|
||||
*-------------------------------
|
||||
; change profanity filter (yuk)
|
||||
do_filt jsr logprg ; log to 'acos.obj' drive
|
||||
ldx #<gname
|
||||
lda #>gname ; point to filename
|
||||
jsr movname
|
||||
jsr open ; open file
|
||||
|
||||
ldx #00
|
||||
lda filter ; point at filter table
|
||||
jsr setmark
|
||||
|
||||
ldx #<hdrbuf
|
||||
lda #>hdrbuf
|
||||
ldy #2 ; read 1 page (2 blocks)
|
||||
jsr rdblk
|
||||
jsr close ; thats it for now
|
||||
|
||||
filt2 jsr TopBox
|
||||
jsr print
|
||||
db 1,3,7
|
||||
asc '- Edit Profanity Filter -',00
|
||||
jsr cls
|
||||
|
||||
lda #0 ; start at #1
|
||||
sta temp2
|
||||
|
||||
filt3 ldx temp2 ; get entry number
|
||||
jsr fndword ; find the word
|
||||
bcs filt5 ; opps, end of table
|
||||
|
||||
lda ch ; save current horiz
|
||||
pha
|
||||
|
||||
lda temp2 ; print entry letter
|
||||
clc
|
||||
adc #'A'
|
||||
jsr cout
|
||||
inc temp2 ; goto next entry next pass
|
||||
|
||||
lda #')' ; show a border
|
||||
jsr cout
|
||||
inc ch ; move over 1 space
|
||||
|
||||
filt4 lda hdrbuf,y ; get data
|
||||
php
|
||||
jsr cout ; print data
|
||||
iny
|
||||
plp
|
||||
bpl filt4 ; keep showing
|
||||
|
||||
pla
|
||||
clc
|
||||
adc #19
|
||||
sta ch ; move over horiz position
|
||||
|
||||
lda #' ' ; either wrap or move 1 space
|
||||
jsr cout
|
||||
jmp filt3
|
||||
|
||||
filt5 jsr print
|
||||
db 1,20,0
|
||||
asc 'Cmd: A=Add, D=Delete, Q=Quit ? ',00
|
||||
|
||||
lda #1
|
||||
sta maxlen ; get command
|
||||
lda #%10000000
|
||||
sta inpmode
|
||||
jsr inpln
|
||||
|
||||
lda lnbuf
|
||||
cmp #'A'
|
||||
bne :tryd
|
||||
jmp fl_add
|
||||
:tryd cmp #'D'
|
||||
beq fl_del
|
||||
:tryq cmp #'Q'
|
||||
bne filt5
|
||||
jmp fl_quit
|
||||
|
||||
*-------------------------------
|
||||
* delete a word from list
|
||||
|
||||
fl_del ldx #20
|
||||
jsr cleos ; clear line
|
||||
jsr print
|
||||
db 1,20,0
|
||||
asc 'Delete [A-',00
|
||||
|
||||
clc
|
||||
lda temp2
|
||||
adc #'@'
|
||||
jsr cout ; print range
|
||||
|
||||
jsr print
|
||||
asc '] ? ',00
|
||||
|
||||
lda #%10000000
|
||||
sta inpmode ; set mode
|
||||
|
||||
jsr inpln ; get data
|
||||
lda lnbuf
|
||||
cmp #'A'
|
||||
bcc filt5 ; move back, error
|
||||
|
||||
sec
|
||||
sbc #'A' ; make into [0-xxx] range
|
||||
cmp temp2
|
||||
bcc *+5
|
||||
jmp filt5 ; out of range
|
||||
|
||||
pha
|
||||
tax
|
||||
inx
|
||||
jsr fndword ; locate second word
|
||||
sty temp2+1 ; save offset
|
||||
pla
|
||||
tax
|
||||
jsr fndword ; locate first word
|
||||
ldx temp2+1 ; point to second word
|
||||
|
||||
fl_del2 lda hdrbuf,x ; move data
|
||||
sta hdrbuf,y
|
||||
iny
|
||||
inx
|
||||
bne fl_del2 ; loop
|
||||
jmp filt2 ; show new screen
|
||||
|
||||
; add a word to list
|
||||
fl_add ldx #20
|
||||
jsr cleos ; clear line
|
||||
jsr print
|
||||
db 1,20,0
|
||||
asc 'Enter new word: ',00
|
||||
|
||||
lda #16 ; 16 chars max length
|
||||
sta maxlen
|
||||
lda #%10000000
|
||||
sta inpmode ; set input mode
|
||||
|
||||
jsr inpln ; get the data
|
||||
lda lnbuf
|
||||
cmp #'A'
|
||||
bcc fl_add4 ; abort
|
||||
|
||||
ldx temp2 ; get last word
|
||||
jsr fndword ; find end
|
||||
sty temp2+1 ; save current end
|
||||
|
||||
ldx #0
|
||||
fl_add2 lda lnbuf,x
|
||||
cmp #'A'
|
||||
bcc fl_add3
|
||||
|
||||
sta hdrbuf,y ; add byte
|
||||
inx
|
||||
iny
|
||||
bne fl_add2 ; and loop
|
||||
|
||||
lda #0
|
||||
ldy temp2+1 ; mark old end of table
|
||||
sta hdrbuf,y
|
||||
|
||||
jsr print
|
||||
db 1,20,0
|
||||
asc 'Error: Filter Table Overrun. Press [RETURN] ',00
|
||||
jsr getcr ; wait for cr
|
||||
fl_add4 jmp filt5 ; get new data
|
||||
|
||||
fl_add3 lda #0 ; mark end of table
|
||||
sta hdrbuf,y
|
||||
dey
|
||||
lda hdrbuf,y ; mark as last char
|
||||
ora #$80
|
||||
sta hdrbuf,y
|
||||
jmp filt2 ; show new table
|
||||
|
||||
; quit from filter changer
|
||||
fl_quit ldx #20
|
||||
jsr cleos ; clear bottom of screen
|
||||
jsr print
|
||||
db 1,20,0
|
||||
asc 'Is the above table correct [Y/N] ? ',00
|
||||
jsr inpyn
|
||||
bcc fl_save
|
||||
jmp start ; nope!
|
||||
|
||||
fl_save jsr logprg ; log to 'acos.obj' drive
|
||||
ldx #<gname
|
||||
lda #>gname ; setup name buffer
|
||||
jsr movname
|
||||
jsr open ; open file
|
||||
|
||||
ldx #00
|
||||
lda filter ; position to filter table
|
||||
jsr setmark
|
||||
|
||||
ldx #<hdrbuf
|
||||
lda #>hdrbuf
|
||||
ldy #2 ; write 1 page (2 blocks)
|
||||
jsr wrblk
|
||||
jsr close ; thats it for now
|
||||
jmp start
|
||||
|
||||
|
||||
; locate a word [indexed by x]
|
||||
fndword ldy #0
|
||||
cpx #0 ; we done?
|
||||
beq fndwd2 ; yep
|
||||
|
||||
fndwd1 lda hdrbuf,y ; loop until next word
|
||||
beq fndwd4 ; end of table
|
||||
|
||||
iny ; goto next byte
|
||||
asl a ; check high bit
|
||||
bcc fndwd1
|
||||
|
||||
dex ; count down entries
|
||||
bne fndwd1
|
||||
|
||||
fndwd2 lda hdrbuf,y
|
||||
beq fndwd4 ; opps, that is end marker
|
||||
|
||||
fndwd3 clc
|
||||
rts ; we are done
|
||||
|
||||
fndwd4 sec ; opps, end of table
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
* Quit
|
||||
*-------------------------------
|
||||
|
||||
; quit the program
|
||||
do_quit jsr $fc58 ; clear screen
|
||||
sta $c051 ; goto text mode
|
||||
|
||||
lda #$ff ; reset inverse flag
|
||||
sta $32
|
||||
|
||||
|
||||
jsr mli
|
||||
db $65 ; quit
|
||||
dw p_quit
|
||||
rts
|
||||
|
||||
|
||||
p_quit db 4
|
||||
db 0
|
||||
dw 0
|
||||
db 0
|
||||
dw 0
|
||||
|
||||
|
||||
|
|
|
@ -1 +1,89 @@
|
|||
<EFBFBD> Πςιξτες ςεγοξζιηυςατιοξ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ξυμμπςιξτ εψτ »ξυμμ πςιξτες δςιφες<EFBFBD>σεςιαμ εψτ »σεςιαμ―γουτ πςιξτες δςιφες<EFBFBD>ηςαππμες εψτ »παςαμμεμ ηςαππμες πςιξτες δςιφες<EFBFBD>παςαμμεμ εψτ »παςαμμεμ πςιξτες δςιφες<EFBFBD><EFBFBD>ςείπς κσς ΤοπΒοψ<EFBFBD> κσς πςιξτ<EFBFBD> δβ ±¬³¬±°<EFBFBD> ασγ § Πςιξτες Ιξτεςζαγεσ §¬°°<EFBFBD><EFBFBD> κσς γμσ<EFBFBD> μδψ £Όσταςτ » σετυπ εσγ θαξδμες<EFBFBD> μδα £Ύσταςτ<EFBFBD> κσς εσγαπε<EFBFBD><EFBFBD> κσς πςιξτ<EFBFBD> δβ ±¬·¬°<EFBFBD> ασγ § ± Αππμε ――γ βυιμτιξ ποςτ§¬°δ<EFBFBD> ασγ § ² Αππμε Συπες Σεςιαμ Γαςδ ¨ΣΣΓ©§¬°δ<EFBFBD> ασγ § ³ Αππμε ΙΙησ βυιμτιξ ποςτ§¬°δ<EFBFBD> ασγ § ΄ Ηεξεςιγ Πςιξτες Δςιφες§¬°δ<EFBFBD> ασγ § µ Στας Νιγςοξιγσ Ηςαζστας§¬°δ<EFBFBD> ασγ § ¶ Οςαξηε Νιγςο Ηςαππμες γας䧬°δ<EFBFBD> ασγ § · Αππμε Παςαμμεμ ιξτεςζαγ姬°δ<EFBFBD> ασγ § Έ Επσοξ ΑΠΜ πςιξτες γας䧬°δ<EFBFBD> ασγ § Ή Αππςιγοςξ Παςαμμεμ γας䧬°δ<EFBFBD> ασγ §±° Τωφεγ Πςιξτες Ιξτεςζαγ姬°δ<EFBFBD> ασγ §±± Ξο Πςιξτες ιξ σωστεν§¬°δ¬°δ<EFBFBD> ασγ §ΧθιγθΏ Ϋ±±±έ §¬°°<EFBFBD><EFBFBD> μδψ £±± »ηετ πςιξτες £<EFBFBD> κσς ιξπξυν<EFBFBD><EFBFBD> γνπ £µ<EFBFBD> βμτ Ίσεςιαμ<EFBFBD> γνπ £·<EFBFBD> βμτ Ίηςαππμες<EFBFBD> γνπ £±±<EFBFBD> βμτ Ίπαςαμμεμ<EFBFBD><EFBFBD>Ίξυμμ μδα £Όξυμμπςιξτ<EFBFBD> στα ποιξτ°<EFBFBD> μδα £Ύξυμμπςιξτ<EFBFBD> στα ποιξτ°«±<EFBFBD> κνπ Ίξοσμοτ<EFBFBD><EFBFBD>Ίσεςιαμ μδα £Όσεςιαμ<EFBFBD> μδψ £Ύσεςιαμ<EFBFBD> κνπ Ίηετσμοτ<EFBFBD><EFBFBD>Ίηςαππμες μδα £Όηςαππμες<EFBFBD> μδψ £Ύηςαππμες<EFBFBD> κνπ Ίηετσμοτ<EFBFBD><EFBFBD>Ίπαςαμμεμ μδα £Όπαςαμμεμ<EFBFBD> μδψ £Ύπαςαμμεμ<EFBFBD><EFBFBD>Ίηετσμοτ στα ποιξτ°<EFBFBD> στψ ποιξτ°«±<EFBFBD><EFBFBD> κσς πςιξτ<EFBFBD> δβ ±¬²°¬°<EFBFBD> ασγ §Χθιγθ σμοτ―ποςτ δοεσ ωους πςιξτες§¬°δ<EFBFBD> ασγ §υσεΏ Ϋ±·έ §¬°°<EFBFBD><EFBFBD> μδψ £· » ηετ σμοτ<EFBFBD> κσς ιξπξυν<EFBFBD> ασμ α<EFBFBD> ασμ α<EFBFBD> ασμ α<EFBFBD> ασμ α<EFBFBD>Ίξοσμοτ πθα »σαφε σμοτ<EFBFBD><EFBFBD> μδω £° »νοφε τθε σιξημε παηε<EFBFBD>Ίμοοπ μδα ¨ποιξτ°©¬ω »σουςγε<EFBFBD> στα πςδςφ¬ω »δεστιξατιοξ<EFBFBD> ιξω<EFBFBD> βξε Ίμοοπ<EFBFBD><EFBFBD> πμα »ηετ τθε σμοτ βαγλ<EFBFBD> στα πςδςφ<EFBFBD><EFBFBD> κσς γθιξιτ » γθεγλ ζος ιξιτ<EFBFBD> κνπ χςτγθη » χςιτε τθε γθαξηεσ<EFBFBD><EFBFBD><EFBFBD>
|
||||
* Printer re-configuration
|
||||
*-------------------------------
|
||||
|
||||
nullprint ext ;null printer driver
|
||||
serial ext ;serial/cout printer driver
|
||||
grappler ext ;parallel grappler printer driver
|
||||
parallel ext ;parallel printer driver
|
||||
|
||||
re_pr jsr TopBox
|
||||
jsr print
|
||||
db 1,3,10
|
||||
asc '- Printer Interfaces -',00
|
||||
|
||||
jsr cls
|
||||
ldx #<start ; setup esc handler
|
||||
lda #>start
|
||||
jsr escape
|
||||
|
||||
jsr print
|
||||
db 1,7,0
|
||||
asc ' 1 - Apple //c built-in port',0d
|
||||
asc ' 2 - Apple Super Serial Card (SSC)',0d
|
||||
asc ' 3 - Apple IIgs built-in port',0d
|
||||
asc ' 4 - Generic Printer Driver',0d
|
||||
asc ' 5 - Star Micronics Grafstar',0d
|
||||
asc ' 6 - Orange Micro Grappler card',0d
|
||||
asc ' 7 - Apple Parallel interface',0d
|
||||
asc ' 8 - Epson APL printer card',0d
|
||||
asc ' 9 - Appricorn Parallel card',0d
|
||||
asc '10 - Tyvec Printer Interface',0d
|
||||
asc '11 - No Printer in system',0d,0d
|
||||
asc 'Which? [1-11] ',00
|
||||
|
||||
ldx #11 ;get printer #
|
||||
jsr inpnum
|
||||
|
||||
cmp #5
|
||||
blt :serial
|
||||
cmp #7
|
||||
blt :grappler
|
||||
cmp #11
|
||||
blt :parallel
|
||||
|
||||
:null lda #<nullprint
|
||||
sta point0
|
||||
lda #>nullprint
|
||||
sta point0+1
|
||||
jmp :noslot
|
||||
|
||||
:serial lda #<serial
|
||||
ldx #>serial
|
||||
jmp :getslot
|
||||
|
||||
:grappler lda #<grappler
|
||||
ldx #>grappler
|
||||
jmp :getslot
|
||||
|
||||
:parallel lda #<parallel
|
||||
ldx #>parallel
|
||||
|
||||
:getslot sta point0
|
||||
stx point0+1
|
||||
|
||||
jsr print
|
||||
db 1,20,0
|
||||
asc 'Which slot/port does your printer',0d
|
||||
asc 'use? [1-7] ',00
|
||||
|
||||
ldx #7 ; get slot
|
||||
jsr inpnum
|
||||
asl a
|
||||
asl a
|
||||
asl a
|
||||
asl a
|
||||
:noslot pha ;save slot
|
||||
|
||||
ldy #0 ;move the single page
|
||||
:loop lda (point0),y ;source
|
||||
sta prdrv,y ;destination
|
||||
iny
|
||||
bne :loop
|
||||
|
||||
pla ;get the slot back
|
||||
sta prdrv
|
||||
|
||||
jsr chinit ; check for init
|
||||
jmp wrtchg ; write the changes
|
||||
|
||||
|
||||
|
|
|
@ -1 +1,68 @@
|
|||
╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙█╙ ╙█╙ гРАППЛЕР пРИНТЕР дРИЖЕР ╙█╙ ╙█╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ дАТЕ╨ ╠╡╞╟╥╞╦╤█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█═ЛСТ═ОФФ██═РЕЛ█═ДСК═РЕЛ╞ГРАППЛЕР██ЦР═ЕЯУ═╓╟Д█ЛФ═ЕЯУ═╓╟А██ГРАППЛЕР═ЕНТ██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██═ОРГ═╓Ц╟╟█╩ ЙУМП ТАБЛЕ█СЛОТ═ДБ═╓╠╟██═ЙМП═ИНИТ█═ЙМП═ПРИНТ█═ЙМП═ЦЛЕАР██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ИНИТ ПРИНТЕР██ИНИТ═РТС══╩ НО ИНИТ ЦОДЕ НЕЕДЕД██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ПРИНТ ЦХАРАЦТЕР╨ а ╫ ЦХАРАЦТЕР██ПРИНТ═ПХА█═СТЬ═САЖЕъЬ██═ЛДЬ═СЛОТ█ПРИНТ╡═ЛДА═╓Ц╟╦╟╛Ь═╩ ЦХЕЦК ПРИНТЕР СТАТУС█═АНД═ё╔╟╟╟╟╟╠╠╠═╩ ЦХЕЦК БУСЫ╞ВАИТ БИТС█═ЕОР═ё╔╟╟╟╟╟╟╠╠═╩ ТУРН АЛЛ БИТС ОФФ█═БНЕ═ПРИНТ╡═╩ ВАИТ ТО ЦОМЕ РЕАДЫ██═ПЛА█═ПХА█═АНД═ё╓╥Ф█═СТА═╓Ц╟╦╟╛Ь═╩ ПРИНТ ДАТА█═ЦМП═ёЦР█═БНЕ═ПРИНТЁ██═ЛДА═ёЛФ═╩ АДД ЛФ ТО ЦР█═ЛДЬ═САЖЕъЬ█═ЙСР═ПРИНТ██ПРИНТЁ═ЛДЬ═САЖЕъЬ═╩ ФИНИСХ УП█═ПЛА█═РТС██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ЦЛЕАР ПРИНТ БУФФЕР ╗НОТ АЖАИЛАБЛЕ╘██ЦЛЕАР═РТС███САЖЕъЬ═ДБ═╟█
|
||||
********************************
|
||||
* *
|
||||
* Grappler Printer Driver *
|
||||
* *
|
||||
********************************
|
||||
|
||||
*-------------------------------
|
||||
* Date: 12/07/86
|
||||
*-------------------------------
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/grappler
|
||||
|
||||
cr equ $0d
|
||||
lf equ $0a
|
||||
|
||||
grappler ent
|
||||
|
||||
*-------------------------------
|
||||
|
||||
org $c00
|
||||
; jump table
|
||||
slot db $10
|
||||
|
||||
jmp init
|
||||
jmp print
|
||||
jmp clear
|
||||
|
||||
*-------------------------------
|
||||
* init printer
|
||||
|
||||
init rts ; no init code needed
|
||||
|
||||
*-------------------------------
|
||||
* print character: A = character
|
||||
|
||||
print pha
|
||||
stx save_x
|
||||
|
||||
ldx slot
|
||||
print2 lda $c080,x ; check printer status
|
||||
and #%00000111 ; check busy/wait bits
|
||||
eor #%00000011 ; turn all bits off
|
||||
bne print2 ; wait to come ready
|
||||
|
||||
pla
|
||||
pha
|
||||
and #$7f
|
||||
sta $c080,x ; print data
|
||||
cmp #cr
|
||||
bne print3
|
||||
|
||||
lda #lf ; add lf to cr
|
||||
ldx save_x
|
||||
jsr print
|
||||
|
||||
print3 ldx save_x ; finish up
|
||||
pla
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
* clear print buffer (not available)
|
||||
|
||||
clear rts
|
||||
|
||||
|
||||
save_x db 0
|
||||
|
|
|
@ -1 +1,32 @@
|
|||
╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙█╙ ╙█╙ нО пРИНТЕР дРИЖЕР ╙█╙ ╙█╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ дАТЕ╨ ╟╠╞╟Ё╞╦╤█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█═ЛСТ═ОФФ██═РЕЛ█═ДСК═РЕЛ╞НУЛЛ██НУЛЛПРИНТ═ЕНТ██═ОРГ═╓Ц╟╟█╩ ЙУМП ТАБЛЕ█СЛОТ═ДБ═╓╠╟██═ЙМП═ИНИТ█═ЙМП═ПРИНТ█═ЙМП═ЦЛЕАР██╩ ИНИТ ПРИНТЕР█ИНИТ═РТС██╩ ПРИНТ ЦХАРАЦТЕР╨ а ╫ ЦХАРАЦТЕР█ПРИНТ═РТС██╩ ЦЛЕАР ПРИНТ БУФФЕР ╗НОТ АЖАИЛАБЛЕ╘█ЦЛЕАР═РТС█
|
||||
********************************
|
||||
* *
|
||||
* No Printer Driver *
|
||||
* *
|
||||
********************************
|
||||
|
||||
*-------------------------------
|
||||
* Date: 01/03/86
|
||||
*-------------------------------
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/null
|
||||
|
||||
nullprint ent
|
||||
|
||||
org $c00
|
||||
; jump table
|
||||
slot db $10
|
||||
|
||||
jmp init
|
||||
jmp print
|
||||
jmp clear
|
||||
|
||||
; init printer
|
||||
init rts
|
||||
|
||||
; print character: A = character
|
||||
print rts
|
||||
|
||||
; clear print buffer (not available)
|
||||
clear rts
|
||||
|
|
|
@ -1 +1,68 @@
|
|||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> Πςιξτες Θεαδες Βμογλ <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ΔατεΊ °±―°¶―Έ·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> μοαδ ιξζοΊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ¤Έ°° ½ θεαδες »οζζσετ<EFBFBD><EFBFBD> ¤α°° ½ παςαμμεμ πςιξτες »²<EFBFBD><EFBFBD> ¤β°° ½ ηςαππμες »³<EFBFBD><EFBFBD> ¤γ°° ½ γουτ βασεδ »΄<EFBFBD><EFBFBD> ¤δ°° ½ ξο πςιξτες »µ<EFBFBD><EFBFBD> οςη ¤°Έ°°<EFBFBD><EFBFBD><EFBFBD> Ερυατεσ<EFBFBD><EFBFBD> ώώώώώώώ<EFBFBD><EFBFBD>γς ερυ ¤°δ<EFBFBD>μζ ερυ ¤°α<EFBFBD><EFBFBD> δβ ¤°΄¬¤°±<EFBFBD> ασγ §Αππμε ――γ Πςιξτες Ποςτ §<EFBFBD> δβ ¤°²¬¤°±<EFBFBD> ασγ §Αππμε Παςαμμεμ Ιξτεςζαγε §<EFBFBD> δβ ¤°΄¬¤°±<EFBFBD> ασγ §Αππμε Συπες Σεςιαμ Γαςδ §<EFBFBD> δβ ¤°²¬¤°±<EFBFBD> ασγ §Επσοξ ΑΠΜ Πςιξτες Γαςδ §<EFBFBD> δβ ¤°²¬¤°±<EFBFBD> ασγ §Τωφεγ Πςιξτες Ιξτεςζαγε §<EFBFBD> δβ ¤°²¬¤°±<EFBFBD> ασγ §Αππςιγοςξ Παςαμμεμ Γαςδ §<EFBFBD> δβ ¤°³¬¤°±<EFBFBD> ασγ §Στας Νιγςοξιγσ Ηςαζστας §<EFBFBD> δβ ¤°³¬¤°±<EFBFBD> ασγ §Οςαξηε Νιγςο Ηςαπμες Γαςδ §<EFBFBD> δβ ¤°΄¬¤°±<EFBFBD> ασγ §Ηεξεςιγ Πςιξτες Δςιφες §<EFBFBD> δβ ¤Έµ¬¤°±<EFBFBD> ασγ §Ξο Πςιξτες ιξ Σωστεν §<EFBFBD> δβ °°¬°°<EFBFBD> δσ ά<EFBFBD><EFBFBD> οςη ¤°α°°<EFBFBD> οςη ¤°γ°°<EFBFBD> πυτ ―νεςμιξ―ηββσ―πςιξτες―παςαμμεμ<EFBFBD> δσ ά<EFBFBD> οςη ¤°β°°<EFBFBD> οςη ¤°γ°°<EFBFBD> πυτ ―νεςμιξ―ηββσ―πςιξτες―ηςαππμες<EFBFBD> δσ ά<EFBFBD> οςη ¤°γ°°<EFBFBD> οςη ¤°γ°°<EFBFBD> πυτ ―νεςμιξ―ηββσ―πςιξτες―σεςιαμ<EFBFBD> δσ ά<EFBFBD> οςη ¤°δ°°<EFBFBD> οςη ¤°γ°°<EFBFBD> πυτ ―νεςμιξ―ηββσ―πςιξτες―ξυμμ<EFBFBD><EFBFBD> σαφ ―ηββσ®πςο―πςιξτεςσ<EFBFBD><EFBFBD><EFBFBD>
|
||||
********************************
|
||||
* *
|
||||
* Printer Header Block *
|
||||
* *
|
||||
********************************
|
||||
|
||||
*-------------------------------
|
||||
* Date: 01/06/87
|
||||
*-------------------------------
|
||||
*
|
||||
* load info:
|
||||
*
|
||||
* $800 = header ;offset
|
||||
* $a00 = parallel printer ;2
|
||||
* $b00 = grappler ;3
|
||||
* $c00 = cout based ;4
|
||||
* $d00 = no printer ;5
|
||||
|
||||
org $0800
|
||||
|
||||
* Equates
|
||||
* ~~~~~~~
|
||||
|
||||
cr equ $0d
|
||||
lf equ $0a
|
||||
|
||||
db $04,$01
|
||||
asc 'Apple //c Printer Port '
|
||||
db $02,$01
|
||||
asc 'Apple Parallel Interface '
|
||||
db $04,$01
|
||||
asc 'Apple Super Serial Card '
|
||||
db $02,$01
|
||||
asc 'Epson APL Printer Card '
|
||||
db $02,$01
|
||||
asc 'Tyvec Printer Interface '
|
||||
db $02,$01
|
||||
asc 'Appricorn Parallel Card '
|
||||
db $03,$01
|
||||
asc 'Star Micronics Grafstar '
|
||||
db $03,$01
|
||||
asc 'Orange Micro Grapler Card '
|
||||
db $04,$01
|
||||
asc 'Generic Printer Driver '
|
||||
db $85,$01
|
||||
asc 'No Printer in System '
|
||||
db 00,00
|
||||
ds \
|
||||
|
||||
org $0a00
|
||||
org $0c00
|
||||
put /merlin/gbbs/printer/parallel
|
||||
ds \
|
||||
org $0b00
|
||||
org $0c00
|
||||
put /merlin/gbbs/printer/grappler
|
||||
ds \
|
||||
org $0c00
|
||||
org $0c00
|
||||
put /merlin/gbbs/printer/serial
|
||||
ds \
|
||||
org $0d00
|
||||
org $0c00
|
||||
put /merlin/gbbs/printer/null
|
||||
|
||||
sav /gbbs.pro/printers
|
||||
|
||||
|
||||
|
|
|
@ -1 +1,70 @@
|
|||
╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙█╙ ╙█╙ пАРАЛЛЕЛ пРИНТЕР дРИЖЕР ╙█╙ ╙█╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ дАТЕ╨ ╠╡╞╟╥╞╦╤█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█═ЛСТ═ОФФ██═РЕЛ█═ДСК═РЕЛ╞ПАРАЛЛЕЛ██ЦР═ЕЯУ═╓╟Д█ЛФ═ЕЯУ═╓╟А███ПАРАЛЛЕЛ═ЕНТ██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██═ОРГ═╓Ц╟╟██СЛОТ═ДБ═╓╠╟██═ЙМП═ИНИТ█═ЙМП═ПРИНТ█═ЙМП═ЦЛЕАР██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██ИНИТ═ЛДА═СЛОТ█═ЛУП═╢█═ЛСР═А█═╜╜ч█═ЦЛЦ█═АДЦ═ё╓Ц╟═╩ ГЕТ ╓цЬ ЖАЛУЕ█═СТА═ПРИНТ╡╚╡█═РТС██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ПРИНТ ЦХАРАЦТЕР╨ а ╫ ЦХАРАЦТЕР██ПРИНТ═ПХА█═СТЬ═САЖЕъЬ█ПРИНТ╡═ЛДА═╓Ц╠Ц╠═╩ ИС ПРИНТЕР РЕАДЫ©█═БМИ═ПРИНТ╡═╩ НОПЕ██═ПЛА█═ПХА█═ЛДЬ═СЛОТ═╩ ГЕТ ОФФСЕТ█═АНД═ё╓╥Ф█═СТА═╓Ц╟╦╟╛Ь═╩ ПРИНТ ДАТА█═ЦМП═ёЦР█═БНЕ═ПРИНТЁ██═ЛДА═ёЛФ═╩ АДД ЛФ ТО ЦР█═ЛДЬ═САЖЕъЬ█═ЙСР═ПРИНТ██ПРИНТЁ═ЛДЬ═САЖЕъЬ═╩ ФИНИСХ УП█═ПЛА█═РТС██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██ЦЛЕАР═РТС██САЖЕъЬ═ДБ═╟█
|
||||
********************************
|
||||
* *
|
||||
* Parallel Printer Driver *
|
||||
* *
|
||||
********************************
|
||||
|
||||
*-------------------------------
|
||||
* Date: 12/07/86
|
||||
*-------------------------------
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/parallel
|
||||
|
||||
cr equ $0d
|
||||
lf equ $0a
|
||||
|
||||
|
||||
parallel ent
|
||||
|
||||
*-------------------------------
|
||||
|
||||
org $c00
|
||||
|
||||
slot db $10
|
||||
|
||||
jmp init
|
||||
jmp print
|
||||
jmp clear
|
||||
|
||||
*-------------------------------
|
||||
|
||||
init lda slot
|
||||
lup 4
|
||||
lsr a
|
||||
--^
|
||||
clc
|
||||
adc #$c0 ; get $Cx value
|
||||
sta print2+2
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
* print character: A = character
|
||||
|
||||
print pha
|
||||
stx save_x
|
||||
print2 lda $c1c1 ; is printer ready?
|
||||
bmi print2 ; nope
|
||||
|
||||
pla
|
||||
pha
|
||||
ldx slot ; get offset
|
||||
and #$7f
|
||||
sta $c080,x ; print data
|
||||
cmp #cr
|
||||
bne print3
|
||||
|
||||
lda #lf ; add lf to cr
|
||||
ldx save_x
|
||||
jsr print
|
||||
|
||||
print3 ldx save_x ; finish up
|
||||
pla
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
|
||||
clear rts
|
||||
|
||||
save_x db 0
|
||||
|
|
|
@ -1 +1,124 @@
|
|||
╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙█╙ ╙█╙ сЕРИАЛ пРИНТЕР дРИЖЕР ╙█╙ ╙█╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ дАТЕ╨ ╠╡╞╟╥╞╦╤█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█═ЛСТ═ОФФ██═РЕЛ█═ДСК═РЕЛ╞СЕРИАЛ██ЦР═ЕЯУ═╓╟Д█ЛФ═ЕЯУ═╓╟А██СЕРИАЛ═ЕНТ██═ОРГ═╓Ц╟╟██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╩ ЙУМП ТАБЛЕ█СЛОТ═ДБ═╓╠╟██═ЙМП═ИНИТ█═ЙМП═ПРИНТ█═ЙМП═ЦЛЕАР██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ФЛАГ ИНИТ СТАТУС ФОР ОУТПУТ██ИНИТ═ПХА█═ЛДА═ё╟═╩ СИГНАЛ ТХАТ ПРИНТЕР НОТ ИНИТ╖ЕД█═СТА═ИНИТФЛГ█═ПЛА█═РТС██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ПРИНТ ЦХАРАЦТЕР╨ а ╫ ЦХАРАЦТЕР██ПРИНТ═ПХП══╩ ДИСАБЛЕ ИНТ╖С█═СЕИ█═ПХА══╩ САЖЕ АЛЛ РЕГ╖С█═СТЬ═САЖЕъЬ█═СТЫ═САЖЕъЫ█═ЛДА═╓Ц╟╦╡═╩ ЕНАБЛЕ РОМС██═ЛДЬ═ё╓╠Ё█ПРИНТ╠═ЛДА═╓╡╢╛Ь═╩ САЖЕ ЗЕРО ПАГЕ СТУФФ█═СТА═ЗЕРО╛Ь█═ДЕЬ█═БПЛ═ПРИНТ╠██═БИТ═ИНИТФЛГ═╩ ХАС ПРИНТЕР БЕЕН УСЕД©█═БМИ═ПРИНТЁ═╩ ЫЕП██═ЛДА═СЛОТ█═СТА═╓╡╤═╩ САЖЕ СЛОТ ФОР ЦАРД█═ЛУП═╢█═ЛСР═А═╩ МОЖЕ ДОВН СЛОТ█═╜╜ч█═ЦЛЦ█═АДЦ═ё╓Ц╟█═СТА═ПРИНТ╡╚╡█═СТА═╓Ё╥═╩ ПОИНТ ╗╓╟╟Ё╤╘ АТ ╓Ц╠╟╟██═ЛДА═ё╟═╩ ИНИТ ПРИНТЕР ЦАРД█═ТАЬ█═ТАЫ█═СТА═╓╡╢═╩ ЗЕРО ХОРИЗ ОФФСЕТ█═СТА═╓╡╥═╩ ЗЕРО ЦХАРАЦТЕР БУФФЕР█═СТА═╓Ё╤█ПРИНТ╡═ЙСР═╓Ц╠╟╟█═ЛДА═╓Ё╤═╩ ПОИНТ ТО ОУТПУТ РОУТИНЕ█═СТА═ЙПРИНТ╚╠█═ЛДА═╓Ё╥█═СТА═ЙПРИНТ╚╡█═ДЕЦ═ИНИТФЛГ═╩ СХОВ ВЕ ХАЖЕ ДОНЕ ИНИТ██═ЛДА═ё╖и╖╜╓╢╟═╩ СЕНД ЦТРЛ╜и ╦╟ Н█═ЙСР═ДОПРИНТ█═ЛДА═ё╖╦╖█═ЙСР═ДОПРИНТ█═ЛДА═ё╖╟╖█═ЙСР═ДОПРИНТ█═ЛДА═ё╖н╖█═ЙСР═ДОПРИНТ█═ЛДА═ёЦР█═ЙСР═ДОПРИНТ██ПРИНТЁ═ЛДА═ё╟═╩ СЕТ ЦХ ОЖЕР ТО БОРДЕР█═СТА═╓╡╢█═ПЛА══╩ ГЕТ БЫТЕ ТО ПРИНТ█═ПХА█═ЙСР═ДОПРИНТ██═ЛДЬ═ё╓╠Ё█ПРИНТ╢═ЛДА═ЗЕРО╛Ь═╩ РЕСТОРЕ ЗЕРО ПАГЕ█═СТА═╓╡╢╛Ь█═ДЕЬ█═БПЛ═ПРИНТ╢██═ЛДА═╓Ц╟╦Ё═╩ ЕНАБЛЕ РАМ ЦАРД█═ЛДА═╓Ц╟╦Ё█═ЛДЬ═САЖЕъЬ═╩ РЕСТОРЕ РЕГ╖С█═ЛДЫ═САЖЕъЫ█═ПЛА█═ПЛП══╩ РЕСТОРЕ ИНТ СТАТУС█═РТС██ДОПРИНТ═ОРА═ё╓╦╟═╩ ПРИНТ ВИТХ ХИГХ╜БИТ СЕТ█ЙПРИНТ═ЙМП═╓Ц╟╟╟═╩ ДО ОУТПУТ РОУТИНЕ███╩ ЦЛЕАР ПРИНТ БУФФЕР ╗НОТ АЖАИЛАБЛЕ╘█ЦЛЕАР═РТС███САЖЕъЬ═ДБ═╟█САЖЕъЫ═ДБ═╟█ИНИТФЛГ═ДБ═╟██ЗЕРО═ДС═╓╠╢█
|
||||
********************************
|
||||
* *
|
||||
* Serial Printer Driver *
|
||||
* *
|
||||
********************************
|
||||
|
||||
*-------------------------------
|
||||
* Date: 12/07/86
|
||||
*-------------------------------
|
||||
lst off
|
||||
|
||||
rel
|
||||
dsk rel/serial
|
||||
|
||||
cr equ $0d
|
||||
lf equ $0a
|
||||
|
||||
serial ent
|
||||
|
||||
org $c00
|
||||
|
||||
*-------------------------------
|
||||
; jump table
|
||||
slot db $10
|
||||
|
||||
jmp init
|
||||
jmp print
|
||||
jmp clear
|
||||
|
||||
*-------------------------------
|
||||
* flag init status for output
|
||||
|
||||
init pha
|
||||
lda #0 ; signal that printer not init'ed
|
||||
sta initflg
|
||||
pla
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
* print character: A = character
|
||||
|
||||
print php ; disable int's
|
||||
sei
|
||||
pha ; save all reg's
|
||||
stx save_x
|
||||
sty save_y
|
||||
lda $c082 ; enable roms
|
||||
|
||||
ldx #$13
|
||||
print1 lda $24,x ; save zero page stuff
|
||||
sta zero,x
|
||||
dex
|
||||
bpl print1
|
||||
|
||||
bit initflg ; has printer been used?
|
||||
bmi print3 ; yep
|
||||
|
||||
lda slot
|
||||
sta $26 ; save slot for card
|
||||
lup 4
|
||||
lsr a ; move down slot
|
||||
--^
|
||||
clc
|
||||
adc #$c0
|
||||
sta print2+2
|
||||
sta $37 ; point ($0036) at $c100
|
||||
|
||||
lda #0 ; init printer card
|
||||
tax
|
||||
tay
|
||||
sta $24 ; zero horiz offset
|
||||
sta $27 ; zero character buffer
|
||||
sta $36
|
||||
print2 jsr $c100
|
||||
lda $36 ; point to output routine
|
||||
sta jprint+1
|
||||
lda $37
|
||||
sta jprint+2
|
||||
dec initflg ; show we have done init
|
||||
|
||||
lda #'I'-$40 ; send ctrl-I 80 n
|
||||
jsr doprint
|
||||
lda #'8'
|
||||
jsr doprint
|
||||
lda #'0'
|
||||
jsr doprint
|
||||
lda #'N'
|
||||
jsr doprint
|
||||
lda #cr
|
||||
jsr doprint
|
||||
|
||||
print3 lda #0 ; set ch over to border
|
||||
sta $24
|
||||
pla ; get byte to print
|
||||
pha
|
||||
jsr doprint
|
||||
|
||||
ldx #$13
|
||||
print4 lda zero,x ; restore zero page
|
||||
sta $24,x
|
||||
dex
|
||||
bpl print4
|
||||
|
||||
lda $c083 ; enable ram card
|
||||
lda $c083
|
||||
ldx save_x ; restore reg's
|
||||
ldy save_y
|
||||
pla
|
||||
plp ; restore int status
|
||||
rts
|
||||
|
||||
doprint ora #$80 ; print with high-bit set
|
||||
jprint jmp $c000 ; do output routine
|
||||
|
||||
|
||||
; clear print buffer (not available)
|
||||
clear rts
|
||||
|
||||
|
||||
save_x db 0
|
||||
save_y db 0
|
||||
initflg db 0
|
||||
|
||||
zero ds $14
|
||||
|
|
|
@ -1 +1,250 @@
|
|||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ΗΒΒΣ Γοξζιη Πςοδοσ Στοςαηε <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ΔατεΊ ³―±±―ΈΈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ςείστος κσς γμσ » γμεας σγςεεξ<EFBFBD><EFBFBD> μδα £Όθδςβυζ<EFBFBD> στα τενπ<EFBFBD> μδα £Ύθδςβυζ<EFBFBD> στα τενπ«±<EFBFBD><EFBFBD> μδψ £° » σταςτ ποιξτεςσ<EFBFBD> μδω £°<EFBFBD> στω τενπ² » σετ δεφιγε γουξτ ατ ϊεςο<EFBFBD>στος² μδα δεφξαν¬ψ » ηετ δςιφε ιξζο<EFBFBD> στα τεν𲫱<EFBFBD><EFBFBD>στος³ μδα δεφξαν¬ψ » γοπω πατθξανε<EFBFBD> στα ¨τενπ©¬ω<EFBFBD> ιξψ<EFBFBD> ιξω<EFBFBD> δεγ τεν𲫱<EFBFBD> βπμ στος³<EFBFBD><EFBFBD> γμγ<EFBFBD> μδα τενπ » ηο το ξεψτ αδδςεσσ<EFBFBD> αδγ £±²Έ<EFBFBD> στα τενπ<EFBFBD> μδα τενπ«±<EFBFBD> αδγ £°<EFBFBD> στα τενπ«±<EFBFBD><EFBFBD> μδω £°<EFBFBD> ιξγ τενπ² » ιξγ ξυνβες οζ πατθξανεσ<EFBFBD> μδα τενπ²<EFBFBD> γνπ £±² » δοξε αμμ ±²Ώ<EFBFBD> βξε στος² » ξοπε<EFBFBD><EFBFBD>στος΄ κσς ΤοπΒοψ<EFBFBD> κσς πςιξτ<EFBFBD> δβ ±¬³¬²<EFBFBD> ασγ § Εδιτ Δςιφε Σπεγιζιες Αμμογατιοξ §¬°°<EFBFBD> κσς γμσ<EFBFBD><EFBFBD> μδψ £±<EFBFBD>στοςµ ιξψ<EFBFBD> κσς σθχπζψ » σθοχ δςιφε<EFBFBD> μδα £γς » αδδ εξδ οζ μιξε<EFBFBD> κσς γουτ<EFBFBD> γπψ £±±<EFBFBD> βγγ στοςµ » σθοχ αμμ ±² εξτςιεσ<EFBFBD><EFBFBD>στος¶ κσς πςιξτ<EFBFBD> δβ ±¬²°¬°<EFBFBD> ασγ §ΕδιτΊ ΫΑΜέ ος Ρ½Ρυιτ Ώ §¬°°<EFBFBD><EFBFBD> μδα £¥±°°°°°°°<EFBFBD> στα ιξπνοδε » σετ νοδε °<EFBFBD> μδα £±<EFBFBD> στα ναψμεξ » σετ μεξητθ το ±<EFBFBD><EFBFBD> κσς ιξπμξ » ηετ ιξπυτ<EFBFBD> μδα μξβυζ<EFBFBD> γν𠣧ѧ » ρυιτΏ<EFBFBD> βξε στος· » ωεπ<EFBFBD><EFBFBD> κνπ στοςΉ » θαξδμε ρυιτ<EFBFBD><EFBFBD>στος· σεγ<EFBFBD> σβγ £§Α§ » ναλε ιξτο ςαξηε<EFBFBD> γνπ £±² » ισ ιτ ολΏ<EFBFBD> βγσ στος¶ » ξοπε<EFBFBD><EFBFBD> πθα<EFBFBD> ταψ<EFBFBD> κσς ζιξδδςφ » ζιξδ τθε δςιφε μογατιοξ<EFBFBD><EFBFBD> μδψ £²°<EFBFBD> κσς γμεοσ » γμαες μαστ μιξε<EFBFBD><EFBFBD> μδψ £²° » ποσιτιοξ<EFBFBD> στψ γφ<EFBFBD> μδψ £°<EFBFBD> στψ γθ<EFBFBD><EFBFBD> πμα<EFBFBD> γμγ<EFBFBD> αδγ £§Α§ » σθοχ δςιφε σπεγιζιες<EFBFBD> κσς γουτ<EFBFBD> κσς πςιξτ<EFBFBD> ασγ §Ί ―§¬°°<EFBFBD><EFBFBD> μδα £³° » ναλε ναψ μεξητθ ³² τοταμ<EFBFBD> στα ναψμεξ<EFBFBD> μδα £¥±°±°°°°±<EFBFBD> στα ιξπνοδε<EFBFBD><EFBFBD> κσς ιξπμξ<EFBFBD> μδα μξβυ汬ω<EFBFBD> γν𠣧―§ » γθεγλ ζος εξδιξη σμασθ<EFBFBD> βξε στος·ζ<EFBFBD><EFBFBD> μδα £γς » δεμετε εξδιξη σμασθ<EFBFBD> στα μξβυ汬ω<EFBFBD><EFBFBD>στος·ζ μδα μξβυζ » διδ τθεω κυστ δο α ςετυςξΏ<EFBFBD> γνπ £γς<EFBFBD> βξε στοςΈ »ξοπε<EFBFBD><EFBFBD> κσς πςιξτ<EFBFBD> δβ ±¬²°¬°<EFBFBD> ασγ §Γμεας γοξτεξτσ οζ τθισ μιξε ΫΩ―Ξέ Ώ §¬°°<EFBFBD><EFBFBD> κσς ιξπωξ » ηετ αξσχες<EFBFBD> βγσ στος·α » ξοπε<EFBFBD><EFBFBD> μδω £°<EFBFBD> τωα » ξυμμιζω αξ εξτςω<EFBFBD> στα ¨τεν𴩬ω<EFBFBD>στος·α κνπ στος΄ » δο αξοτθες<EFBFBD><EFBFBD>στοςΈ μδψ £°<EFBFBD> μδω £²<EFBFBD>στοςΈα μδα μξβυζ¬ψ » γοπω πατθξανε<EFBFBD> στα ¨τεν𴩬ω<EFBFBD> ιξψ<EFBFBD> ιξω<EFBFBD> γνπ £γς<EFBFBD> βξε στοςΈα<EFBFBD><EFBFBD> μδω £° » σαφε μεξητθ<EFBFBD> τψα<EFBFBD> στα ¨τεν𴩬ω<EFBFBD> ιξω<EFBFBD> μδα £§―§ » αδδ μεαδιξη σμασθ<EFBFBD> στα ¨τεν𴩬ω<EFBFBD> κνπ στος΄ » σθοχ ςεσυμτσ<EFBFBD><EFBFBD><EFBFBD>στοςΉα κνπ σταςτ » αβοςτ ουτ<EFBFBD><EFBFBD>στοςΉ μδψ £²°<EFBFBD> κσς γμεοσ » γμεας βοττον<EFBFBD> κσς πςιξτ<EFBFBD> δβ ±¬²°¬°<EFBFBD> ασγ §Ισ τθε αβοφε γοςςεγτ ΫΩ―Ξέ Ώ §¬°°<EFBFBD> κσς ιξπωξ<EFBFBD> βγσ στοςΉα » ξοπε<EFBFBD><EFBFBD> μδα £Όθδςβυζ<EFBFBD> στα τενπ » ποιξτ ατ πατθξανεσ<EFBFBD> μδα £Ύθδςβυζ<EFBFBD> στα τενπ«±<EFBFBD><EFBFBD> μδψ £°<EFBFBD> μδω £°<EFBFBD> στω τενπ² » σταςτ χιτθ δςιφε ΑΊ<EFBFBD>στοςΉβ μδα ¨τενπ©¬ω<EFBFBD> στα τεν𲫱 » σαφε μεξητθ<EFBFBD><EFBFBD>στοςΉγ μδα ¨τενπ©¬ω » ηετ δατα<EFBFBD> στα δεφξαν¬ψ<EFBFBD> ιξψ<EFBFBD> γπψ £¤ζ° » ισ ταβμε ολΏ<EFBFBD> βερ στοςΉδ » ξοπε¬ ιτ ισ τοο βιη<EFBFBD><EFBFBD> ιξω<EFBFBD> δεγ τεν𲫱 » γουξτ δοχξ μεξητθ<EFBFBD> βπμ στοςΉγ<EFBFBD><EFBFBD> γμγ<EFBFBD> μδα τενπ<EFBFBD> αδγ £¤Έ° » ηο το ξεψτ ζιεμδ<EFBFBD> στα τενπ<EFBFBD> μδα τενπ«±<EFBFBD> αδγ £°<EFBFBD> στα τενπ«±<EFBFBD><EFBFBD> μδω £° » ςεσετ ποιξτες χιτθιξ ζιεμδ<EFBFBD> ιξγ τενπ²<EFBFBD> μδα τενπ² » δοξε αμμ ±² ωετΏ<EFBFBD> γνπ £±²<EFBFBD> βξε στοςΉβ » ξοπε¬ μοοπ<EFBFBD> κνπ χςτγθη » χςιτε γθαξηεσ το δισλ<EFBFBD><EFBFBD>στοςΉδ κσς γμσ<EFBFBD> κσς πςιξτ<EFBFBD> ασγ §Ε<EFBFBD><EFBFBD>Ο<EFBFBD> ΅§¬°δ¬°δ<EFBFBD> ασγ §Οφεςζμοχ εςςος® Τοο νυγθ δατα χιτθιξ §<EFBFBD> ασγ §δςιφε ταβμε® Γυτ δοχξ οξ τθε ανουξτ§¬°δ¬°δ<EFBFBD> ασγ §οζ δατα χιτθιξ τθε ταβμ宧<EFBFBD> δβ ±¬²°¬°<EFBFBD> ασγ §Πςεσσ Ϋ<EFBFBD>ΕΤΥ<EFBFBD>Ξέ το γοξτιξυε®®® §¬°°<EFBFBD><EFBFBD>στοςΉε κσς ςδλεω » χαιτ ζος α ςετυςξ<EFBFBD> γνπ £γς<EFBFBD> βξε στοςΉε<EFBFBD> κνπ στος΄ » ηετ ξεχ στυζζ<EFBFBD><EFBFBD><EFBFBD>» ποιξτ το τθε πατθξανε οζ α δεφιγε<EFBFBD>ζιξδδςφ μδα £° » σετ μοχες το °<EFBFBD> στα τενπ΄<EFBFBD> τψα<EFBFBD> μσς α<EFBFBD> ςος τενπ΄ » πυτ εψτςα ιξτο μοχ<EFBFBD> γμγ<EFBFBD> αδγ £Ύθδςβυζ<EFBFBD> στα τενπ΄«± » σετυπ θιηθ<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD>» σθοχ α πατθξανε οζ α δεφιγε<EFBFBD>σθχπζψ κσς ζιξδδςφ » ποσιτιοξ<EFBFBD> τψα<EFBFBD> γμγ<EFBFBD> αδγ £§Α§ » σθοχ δςιφε ξανε<EFBFBD> κσς γουτ<EFBFBD><EFBFBD> μδα £§Ί§ » αδδ γομοξ<EFBFBD> κσς γουτ<EFBFBD><EFBFBD> μδα £§ § » πυτ ιξ σπαγε<EFBFBD> κσς γουτ<EFBFBD><EFBFBD> μδω £° » γθεγλ ζος δατα<EFBFBD> μδα ¨τεν𴩬ω<EFBFBD> στα τεν𲫱<EFBFBD> βερ πςδςφ³ » ξοπε¬ τθεςε ισξτ αξω<EFBFBD><EFBFBD>πςδςφ² ιξω<EFBFBD> μδα ¨τεν𴩬ω » ηετ βωτε οζ ξανε<EFBFBD> κσς γοξφ<EFBFBD> κσς γουτ » σθοχ ιτ<EFBFBD> δεγ τεν𲫱<EFBFBD> βξε πςδςφ² » λεεπ ηοιξη<EFBFBD><EFBFBD> γμγ<EFBFBD> ςτσ<EFBFBD><EFBFBD>πςδςφ³ σεγ » ξο δατα<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD>
|
||||
********************************
|
||||
* *
|
||||
* GBBS Config - Prodos Storage *
|
||||
* *
|
||||
********************************
|
||||
|
||||
*-------------------------------
|
||||
* Date: 3/11/88
|
||||
*-------------------------------
|
||||
|
||||
re_stor jsr cls ; clear screen
|
||||
|
||||
lda #<hdrbuf
|
||||
sta temp
|
||||
lda #>hdrbuf
|
||||
sta temp+1
|
||||
|
||||
ldx #0 ; start pointers
|
||||
ldy #0
|
||||
sty temp2 ; set device count at zero
|
||||
stor2 lda devnam,x ; get drive info
|
||||
sta temp2+1
|
||||
|
||||
stor3 lda devnam,x ; copy pathname
|
||||
sta (temp),y
|
||||
inx
|
||||
iny
|
||||
dec temp2+1
|
||||
bpl stor3
|
||||
|
||||
clc
|
||||
lda temp ; go to next address
|
||||
adc #128
|
||||
sta temp
|
||||
lda temp+1
|
||||
adc #0
|
||||
sta temp+1
|
||||
|
||||
ldy #0
|
||||
inc temp2 ; inc number of pathnames
|
||||
lda temp2
|
||||
cmp #12 ; done all 12?
|
||||
bne stor2 ; nope
|
||||
|
||||
stor4 jsr TopBox
|
||||
jsr print
|
||||
db 1,3,2
|
||||
asc '- Edit Drive Specifier Allocation -',00
|
||||
jsr cls
|
||||
|
||||
ldx #-1
|
||||
stor5 inx
|
||||
jsr shwpfx ; show drive
|
||||
lda #cr ; add end of line
|
||||
jsr cout
|
||||
cpx #11
|
||||
bcc stor5 ; show all 12 entries
|
||||
|
||||
stor6 jsr print
|
||||
db 1,20,0
|
||||
asc 'Edit: [A-L] or Q=Quit ? ',00
|
||||
|
||||
lda #%10000000
|
||||
sta inpmode ; set mode 0
|
||||
lda #1
|
||||
sta maxlen ; set length to 1
|
||||
|
||||
jsr inpln ; get input
|
||||
lda lnbuf
|
||||
cmp #'Q' ; quit?
|
||||
bne stor7 ; yep
|
||||
|
||||
jmp stor9 ; handle quit
|
||||
|
||||
stor7 sec
|
||||
sbc #'A' ; make into range
|
||||
cmp #12 ; is it ok?
|
||||
bcs stor6 ; nope
|
||||
|
||||
pha
|
||||
tax
|
||||
jsr finddrv ; find the drive location
|
||||
|
||||
ldx #20
|
||||
jsr cleos ; claer last line
|
||||
|
||||
ldx #20 ; position
|
||||
stx cv
|
||||
ldx #0
|
||||
stx ch
|
||||
|
||||
pla
|
||||
clc
|
||||
adc #'A' ; show drive specifier
|
||||
jsr cout
|
||||
jsr print
|
||||
asc ': /',00
|
||||
|
||||
lda #30 ; make max length 32 total
|
||||
sta maxlen
|
||||
lda #%10100001
|
||||
sta inpmode
|
||||
|
||||
jsr inpln
|
||||
lda lnbuf-1,y
|
||||
cmp #'/' ; check for ending slash
|
||||
bne stor7f
|
||||
|
||||
lda #cr ; delete ending slash
|
||||
sta lnbuf-1,y
|
||||
|
||||
stor7f lda lnbuf ; did they just do a return?
|
||||
cmp #cr
|
||||
bne stor8 ;nope
|
||||
|
||||
jsr print
|
||||
db 1,20,0
|
||||
asc 'Clear contents of this line [Y/N] ? ',00
|
||||
|
||||
jsr inpyn ; get answer
|
||||
bcs stor7a ; nope
|
||||
|
||||
ldy #0
|
||||
tya ; nullify an entry
|
||||
sta (temp4),y
|
||||
stor7a jmp stor4 ; do another
|
||||
|
||||
stor8 ldx #0
|
||||
ldy #2
|
||||
stor8a lda lnbuf,x ; copy pathname
|
||||
sta (temp4),y
|
||||
inx
|
||||
iny
|
||||
cmp #cr
|
||||
bne stor8a
|
||||
|
||||
ldy #0 ; save length
|
||||
txa
|
||||
sta (temp4),y
|
||||
iny
|
||||
lda #'/' ; add leading slash
|
||||
sta (temp4),y
|
||||
jmp stor4 ; show results
|
||||
|
||||
|
||||
stor9a jmp start ; abort out
|
||||
|
||||
stor9 ldx #20
|
||||
jsr cleos ; clear bottom
|
||||
jsr print
|
||||
db 1,20,0
|
||||
asc 'Is the above correct [Y/N] ? ',00
|
||||
jsr inpyn
|
||||
bcs stor9a ; nope
|
||||
|
||||
lda #<hdrbuf
|
||||
sta temp ; point at pathnames
|
||||
lda #>hdrbuf
|
||||
sta temp+1
|
||||
|
||||
ldx #0
|
||||
ldy #0
|
||||
sty temp2 ; start with drive A:
|
||||
stor9b lda (temp),y
|
||||
sta temp2+1 ; save length
|
||||
|
||||
stor9c lda (temp),y ; get data
|
||||
sta devnam,x
|
||||
inx
|
||||
cpx #$f0 ; is table ok?
|
||||
beq stor9d ; nope, it is too big
|
||||
|
||||
iny
|
||||
dec temp2+1 ; count down length
|
||||
bpl stor9c
|
||||
|
||||
clc
|
||||
lda temp
|
||||
adc #$80 ; go to next field
|
||||
sta temp
|
||||
lda temp+1
|
||||
adc #0
|
||||
sta temp+1
|
||||
|
||||
ldy #0 ; reset pointer within field
|
||||
inc temp2
|
||||
lda temp2 ; done all 12 yet?
|
||||
cmp #12
|
||||
bne stor9b ; nope, loop
|
||||
jmp wrtchg ; write changes to disk
|
||||
|
||||
stor9d jsr cls
|
||||
jsr print
|
||||
asc 'ERROR !',0d,0d
|
||||
asc 'Overflow error. Too much data within '
|
||||
asc 'drive table. Cut down on the amount',0d,0d
|
||||
asc 'of data within the table.'
|
||||
db 1,20,0
|
||||
asc 'Press [RETURN] to continue... ',00
|
||||
|
||||
stor9e jsr rdkey ; wait for a return
|
||||
cmp #cr
|
||||
bne stor9e
|
||||
jmp stor4 ; get new stuff
|
||||
|
||||
|
||||
; point to the pathname of a device
|
||||
finddrv lda #0 ; set lower to 0
|
||||
sta temp4
|
||||
txa
|
||||
lsr a
|
||||
ror temp4 ; put extra into low
|
||||
clc
|
||||
adc #>hdrbuf
|
||||
sta temp4+1 ; setup high
|
||||
rts
|
||||
|
||||
|
||||
; show a pathname of a device
|
||||
shwpfx jsr finddrv ; position
|
||||
txa
|
||||
clc
|
||||
adc #'A' ; show drive name
|
||||
jsr cout
|
||||
|
||||
lda #':' ; add colon
|
||||
jsr cout
|
||||
|
||||
lda #' ' ; put in space
|
||||
jsr cout
|
||||
|
||||
ldy #0 ; check for data
|
||||
lda (temp4),y
|
||||
sta temp2+1
|
||||
beq prdrv3 ; nope, there isnt any
|
||||
|
||||
prdrv2 iny
|
||||
lda (temp4),y ; get byte of name
|
||||
jsr conv
|
||||
jsr cout ; show it
|
||||
dec temp2+1
|
||||
bne prdrv2 ; keep going
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
prdrv3 sec ; no data
|
||||
rts
|
||||
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1,126 @@
|
|||
╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙█╙ ╙█╙ цОНФИГ пРОГРАМ ╜ сТАРТ ╙█╙ ╙█╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ дАТЕ╨ ╣╞╡╧╞╧╠█╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██БЕГИН═СТА═╓Ц╟╣╠═╩ТЕЬТ МОДЕ█═СТА═╓ц╟╟е═╩тУРН мОУСЕтЕЬТ ОФФ█═БИТ═╓ц╟╦╡██═ЛДА═ё╪ДОъЯУИТ═╩ФУДГЕ РЕСЕТ ЖЕЦТОР█═СТА═РЕСЕТ█═ЛДА═ё╬ДОъЯУИТ█═СТА═РЕСЕТ╚╠█═ЕОР═ё╓а╣█═СТА═РЕСЕТ╚╡██═ЛДЬ═ё╓ф╟═╩РЕСЕТ СТАЦК█═ТЬС██═ЙСР═ФИНДЦОН═╩ФИНД ТХЕ ЦОНФИГ ДИСК╛ЛОГИТ█═ЙСР═жИДЕОсТАРТУП═╩ иНИТ ТХЕ ЖИДЕО ДРИЖЕР███═ЙСР═ДОъМАИН██╙ ЙМП ЛОАДГ ╩ФОРЦЕ ТО РЕЦОНФИГ██═ЙСР═ЦЛС═╩ ЦЛЕАР СЦРЕЕН█═ЙСР═ПРИНТ█═ДБ═╠╛╥╛╟█═АСЦ═╖вХЕН ЫОУ ДО АН ИНИТИАЛ ЦОНФИГУРЕ╛ АЛЛ╖╛╟Д█═АСЦ═╖ПРЕЖИОУС ДАТА ВИЛЛ БЕ ДЕСТРОЫЕД АНД╖╛╟Д█═АСЦ═╖РЕПЛАЦЕД ВИТХ ТХЕ НЕВ ЦОНФИГУРАТИОН╝╖╛╟Д╛╟Д█═АСЦ═╖алл олд цонфигуратион дата вилл бе лост╖╛╟Д╛╟Д╛╟Д█═АСЦ═╖дО ЫОУ ВАНТ ТО ДО АН иНИТИАЛ цОНФИГУРЕ©╖╛╟Д█═АСЦ═╖шы╞нщ ╖╛╟╟██═ЙСР═ИНПЫН═╩ ИНПУТ ЫЕС╞НО█═БЦС═ЛОАДГ██═ЙСР═ЛДАЦОС═╩ ЛОАД ИН АЦОС ФИЛЕ█═ЙМП═ДОИНИТ═╩ ДО ИНИТИАЛ ЦОНФИГ██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██ЛОАДГ═ЙСР═ЛДЦОНФГ═╩ ЛОАД ЦОНФИГ СЕГМЕНТ██СТАРТ═ЛДА═ё╟═╩ ТУРН ОФФ ЕСЦАПЕ ХАНДЛЕР█═СТА═РЕФНУМ█═ЙСР═ЕСЦАПЕ█═ЙСР═ЦЛОСЕ═╩ ЦЛОСЕ АЛЛ ФИЛЕС█═ЙСР═ЛОГЦОН██═ЙСР═ДОъМАИН██═ЙСР═ЦЛС═╩ ЦЛЕАР СЦРЕЕН█═ЙСР═ПРИНТ█═АСЦ═╖сЕЛЕЦТ АН оПТИОН╨╖╛╟Д╛╟Д█═АСЦ═╖ ╠ ╜ рЕЦОНФИГУРЕ мОДЕМ╖╛╟Д█═АСЦ═╖ ╡ ╜ рЕЦОНФИГУРЕ жИДЕО╖╛╟Д█═АСЦ═╖ Ё ╜ рЕЦОНФИГУРЕ пРИНТЕР╖╛╟Д█═АСЦ═╖ ╢ ╜ рЕЦОНФИГУРЕ цЛОЦК╖╛╟Д█═АСЦ═╖ ╣ ╜ рЕЦОНФИГУРЕ сТОРАГЕ╖╛╟Д█═АСЦ═╖ ╤ ╜ еДИТ пРОФАНИТЫ фИЛТЕР╖╛╟Д█═АСЦ═╖ ╥ ╜ еДИТ бУЛЛЕТИН бОАРД иНФО╖╛╟Д█═АСЦ═╖ ╦ ╜ сОРТ АНД пРИНТ уСЕРЛИСТ╖╛╟Д█═АСЦ═╖ ╧ ╜ пУРГЕ уСЕРС фРОМ сЫСТЕМ╖╛╟Д█═АСЦ═╖ ╠╟ ╜ еЬИТ цОНФИГУРЕ╖╛╟Д╛╟Д██═АСЦ═╖вХИЦХ© ш╠╜╠╟щ ╖╛╟╟██═ЛДЬ═ё╠╟═╩ ГЕТ А НУМБЕР ш╠╜╤щ█═ЙСР═ИНПНУМ██═ПХА█═ЛДЬ═ё╪СТАРТ█═ЛДА═ё╬СТАРТ█═ЙСР═ЕСЦАПЕ═╩ЕСЦ ГОЕС БАЦК ТО ХЕРЕ█═ПЛА█═АСЛ═А█═ТАЬ██═ЛДА═ЙУМПТАБЛЕ╛Ь█═СТА═ПРН█═ИНЬ══╩ПУСХ ЛОВ█═ЛДА═ЙУМПТАБЛЕ╛Ь█═СТА═ПРН╚╠█═ЙМП═╗ПРН╘██ЙУМПТАБЛЕ═ДВ═╟█═ДА═РЕъМДМ█═ДА═РЕъЖИД█═ДА═РЕъПР█═ДА═РЕъЦЛК█═ДА═РЕъСТОР█═ДА═ДОъФИЛТ█═ДА═БРДЕДИТ█═ДА═УСРЛИСТ█═ДА═УСРКИЛЛ█═ДА═ДОъЯУИТ██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜█╙ ПРИНТ ТХЕ ТОП БОЬ██ДОъМАИН═ЙСР═тОПбОЬ█═ЙСР═ПРИНТ█═ДБ═╠╛╡╛Ё█═АСЦ═╖гббс цОНФИГ пРОГРАМ ╜ жЕРСИОН ╡╝╡╖╛╟╟█═ЙСР═ПРИНТ█═ДБ═╠╛╢╛╡█═АСЦ═╖цОПЫРИГХТ ╠╧╦╤╜╡╟╠╧ кЕЖИН сМАЛЛВООД╖╛╟╟█═РТС██╙╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜╜██ИНИТ═ДБ═╟██УСРНАМЕ═ДБ═╣█═АСЦ═╖усерс╖█ГНАМЕ═ДБ═╦█═АСЦ═╖ацос╝обй╖█
|
||||
********************************
|
||||
* *
|
||||
* Config Program - Start *
|
||||
* *
|
||||
********************************
|
||||
|
||||
*-------------------------------
|
||||
* Date: 5/29/91
|
||||
*-------------------------------
|
||||
|
||||
begin sta $c051 ;text mode
|
||||
sta $C00E ;Turn MouseText off
|
||||
bit $C082
|
||||
|
||||
lda #<do_quit ;fudge reset vector
|
||||
sta reset
|
||||
lda #>do_quit
|
||||
sta reset+1
|
||||
eor #$A5
|
||||
sta reset+2
|
||||
|
||||
ldx #$F0 ;reset stack
|
||||
txs
|
||||
|
||||
jsr findcon ;find the config disk,logit
|
||||
jsr VideoStartup ; Init the video driver
|
||||
|
||||
|
||||
jsr do_main
|
||||
|
||||
* jmp loadg ;force to reconfig
|
||||
|
||||
jsr cls ; clear screen
|
||||
jsr print
|
||||
db 1,7,0
|
||||
asc 'When you do an initial configure, all',0d
|
||||
asc 'previous data will be destroyed and',0d
|
||||
asc 'replaced with the new configuration.',0d
|
||||
asc 'All old data will be lost.',0d,0d,0d
|
||||
asc 'Do you want to do an Initial Configure?',0d
|
||||
asc '[Y/N] ',00
|
||||
|
||||
jsr inpyn ; input yes/no
|
||||
bcs loadg
|
||||
|
||||
jsr ldacos ; load in acos file
|
||||
jmp doinit ; do initial config
|
||||
|
||||
*-------------------------------
|
||||
|
||||
loadg jsr ldconfg ; load config segment
|
||||
|
||||
start lda #0 ; turn off escape handler
|
||||
sta refnum
|
||||
jsr escape
|
||||
jsr close ; close all files
|
||||
jsr logcon
|
||||
|
||||
jsr do_main
|
||||
|
||||
jsr cls ; clear screen
|
||||
jsr print
|
||||
asc 'Select an Option:',0d,0d
|
||||
asc ' 1 - Reconfigure Modem',0d
|
||||
asc ' 2 - Reconfigure Video',0d
|
||||
asc ' 3 - Reconfigure Printer',0d
|
||||
asc ' 4 - Reconfigure Clock',0d
|
||||
asc ' 5 - Reconfigure Storage',0d
|
||||
asc ' 6 - Edit Profanity Filter',0d
|
||||
asc ' 7 - Edit Bulletin Board Info',0d
|
||||
asc ' 8 - Sort and Print Userlist',0d
|
||||
asc ' 9 - Purge Users From System',0d
|
||||
asc ' 10 - Exit Configure',0d,0d
|
||||
|
||||
asc 'Which? [1-10] ',00
|
||||
|
||||
ldx #10 ; get a number [1-6]
|
||||
jsr inpnum
|
||||
|
||||
pha
|
||||
ldx #<start
|
||||
lda #>start
|
||||
jsr escape ;esc goes back to here
|
||||
pla
|
||||
asl a
|
||||
tax
|
||||
|
||||
lda jumptable,x
|
||||
sta prn
|
||||
inx ;push low
|
||||
lda jumptable,x
|
||||
sta prn+1
|
||||
jmp (prn)
|
||||
|
||||
jumptable dw 0
|
||||
da re_mdm
|
||||
da re_vid
|
||||
da re_pr
|
||||
da re_clk
|
||||
da re_stor
|
||||
da do_filt
|
||||
da brdedit
|
||||
da usrlist
|
||||
da usrkill
|
||||
da do_quit
|
||||
|
||||
*-------------------------------
|
||||
* print the top box
|
||||
|
||||
do_main jsr TopBox
|
||||
jsr print
|
||||
db 1,2,3
|
||||
asc 'GBBS Config Program - Version 2.2',00
|
||||
jsr print
|
||||
db 1,4,2
|
||||
asc 'Copyright 1986-2019 Kevin Smallwood',00
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
|
||||
init db 0
|
||||
|
||||
usrname db 5
|
||||
asc 'USERS'
|
||||
gname db 8
|
||||
asc 'ACOS.OBJ'
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1,253 @@
|
|||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> φιδεο δςιφες ζος γοξζιη<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ΔατεΊ ³―±±―ΈΈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>παηε± ερυ ¤γ°µ΄<EFBFBD>παηε² ερυ ¤γ°µµ<EFBFBD><EFBFBD>ΦιδεοΣταςτυπ στα ¤γ°°γ »γμςΈ°φιδ<EFBFBD> στα ¤γ°°° »γμςΈ°γομ<EFBFBD> στα παηε±<EFBFBD><EFBFBD> μδα £° » σετ το παηε ±<EFBFBD> στα ιξφεςσε » σετ το ξοςναμ νοδε<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>γμσ μδα £¶ »γμεας σγςεεξ<EFBFBD> στα γφ »μιξε ¶ οξ δοχξ<EFBFBD><EFBFBD>γμσμυπ² μδα γφ »γμεας το εξδ οζ σγςεεξ<EFBFBD> ασμ α »γφ Ί½ γφ <EFBFBD> ²<EFBFBD> ταω<EFBFBD> μδα ΜιξεΑδδςεσσ¬ω<EFBFBD> στα βασε<EFBFBD> ιξω<EFBFBD> μδα ΜιξεΑδδςεσσ¬ω<EFBFBD> στα βασε«±<EFBFBD><EFBFBD> μδω £³Ή<EFBFBD> μδα £¤α°<EFBFBD>Ίμοοπ στα ¨βασ婬ω<EFBFBD> δεω<EFBFBD> βπμ Ίμοοπ<EFBFBD><EFBFBD> ιξγ γφ<EFBFBD> μδα γφ<EFBFBD> γνπ £²΄<EFBFBD> βξε γμσμυπ²<EFBFBD><EFBFBD> μδα £° »°¬¶<EFBFBD> στα γθ<EFBFBD> μδα £·<EFBFBD> στα γφ<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>γμεοσ στψ γφ<EFBFBD> κνπ γμσμυπ²<EFBFBD><EFBFBD>γμεομ πθα<EFBFBD> μδα γθ » σαφε μογατιοξ οζ γυςσος<EFBFBD> πθα<EFBFBD> μδα γφ<EFBFBD> πθα<EFBFBD><EFBFBD>γμεομ² μδα £§ §<EFBFBD> κσς γουτ » πυτ σπαγε οφες γθας<EFBFBD> μδα γθ<EFBFBD> βξε γμεομ² » ηο υξτιμ ιτ χςαπσ το ξεψτ μιξε<EFBFBD><EFBFBD> πμα<EFBFBD> στα γφ » πυτ γυςσος βαγλ<EFBFBD> πμα<EFBFBD> στα γθ<EFBFBD> πμα<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΤοπΒοψ πθα<EFBFBD><EFBFBD> μδα £°<EFBFBD> στα γφ<EFBFBD><EFBFBD> κσς δοΙΜιξε<EFBFBD> ιξγ γφ<EFBFBD> κσς δοΕδηε<EFBFBD> ιξγ γφ<EFBFBD> κσς δοΕδηε<EFBFBD> ιξγ γφ<EFBFBD> κσς δοΕδηε<EFBFBD> ιξγ γφ<EFBFBD> κσς δοΕδηε<EFBFBD> ιξγ γφ<EFBFBD> κσς δοΙΜιξε<EFBFBD><EFBFBD> μδω £³Ή<EFBFBD> μδα £¤²°<EFBFBD> στα ¨βασ婬ω<EFBFBD> μδω £°<EFBFBD> στα ¨βασ婬ω<EFBFBD><EFBFBD> πμα<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δοΕδηε κσς ναλεβασε<EFBFBD><EFBFBD> μδω £°<EFBFBD> μδα £¤²°<EFBFBD> στα ¨βασ婬ω<EFBFBD><EFBFBD> μδω £³Έ<EFBFBD> μδα £¤α°<EFBFBD>Ίμοοπ στα ¨βασ婬ω<EFBFBD> δεω<EFBFBD> βξε Ίμοοπ<EFBFBD><EFBFBD> μδω £³Ή<EFBFBD> μδα £¤²°<EFBFBD> στα ¨βασ婬ω<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> πςιξτ αξ ιξφεςσε μιξε αγςοσσ τθε σγςεεξ<EFBFBD><EFBFBD>δοΙΜιξε κσς ναλεβασε<EFBFBD><EFBFBD> μδω £³Ή<EFBFBD> μδα £¤ΔΖ<EFBFBD>Ίμοοπ στα ¨βασ婬ω<EFBFBD> δεω<EFBFBD> βπμ Ίμοοπ<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ναλεβασε μδα γφ<EFBFBD> ασμ α<EFBFBD> ταω »σετυπ ιξδιςεγτ αδδςεσσ<EFBFBD> μδα ΜιξεΑδδςεσσ¬ω<EFBFBD> στα βασε<EFBFBD> ιξω<EFBFBD> μδα ΜιξεΑδδςεσσ¬ω<EFBFBD> στα βασε«±<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>πμοτγθς πθα » σαφε<EFBFBD><EFBFBD> κσς ναλεβασε »σετυπ ιξδιςεγτ ζος σγςεεξ αδδςεσσ<EFBFBD><EFBFBD> μδω γθ<EFBFBD><EFBFBD> πμα<EFBFBD> οςα £¤Έ° »σετ θιηθ βιτ<EFBFBD> στα ¨βασ婬ω »πυτ ιτ οξτο τθε σγςεεξ<EFBFBD> ςτσ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ουτπυτ α γθαςαγτες<EFBFBD><EFBFBD>γουτ στψ ψίσαφε » σαφε εφεςωτθιξη<EFBFBD> στω ωίσαφε<EFBFBD> πθα<EFBFBD><EFBFBD> αξδ £¤·ζ » γμεας θιηθ<EFBFBD> γνπ £γς<EFBFBD> βερ γουτ²<EFBFBD> γνπ £μζ<EFBFBD> βερ γουτ³<EFBFBD> γνπ £βσ<EFBFBD> βερ γουτµ<EFBFBD> γν𠣧 §<EFBFBD> βγγ γουτ΄<EFBFBD><EFBFBD> κσς πμοτγθς » πμοτ τθε συγλες<EFBFBD><EFBFBD> ιξγ γθ » νοφε οφες ± σπαγε<EFBFBD> μδω γθ<EFBFBD> γπω £΄° » χςαπαςουξδΏ<EFBFBD> βξε γουτ΄ » ξοπε<EFBFBD><EFBFBD>γουτ² μδω £° » ςεσετ θοςιϊ<EFBFBD> στω γθ<EFBFBD><EFBFBD>γουτ³ ιξγ γφ » ηο δοχξ ± μιξε<EFBFBD> μδα γφ » ισ ιτ ιξ ςαξηεΏ<EFBFBD> γνπ £²΄<EFBFBD> βξε γουτ΄ » ξοπε<EFBFBD><EFBFBD> δεγ γφ » πυτ ιτ βαγλ<EFBFBD><EFBFBD>γουτ΄ πμα<EFBFBD> μδψ ψίσαφε » ςεστοςε στυζζ<EFBFBD> μδω ωίσαφε<EFBFBD> ςτσ<EFBFBD><EFBFBD>γουτµ δεγ γθ » βαγλυπ<EFBFBD> βπμ γουτ΄ » αμμ ισ χεμμ<EFBFBD><EFBFBD> μδα £΄° » νοφε το εξδ οζ μιξε<EFBFBD> στα γθ<EFBFBD><EFBFBD> μδα γφ » αςε χε ατ τθε τοπ<EFBFBD> γνπ £°<EFBFBD> βερ γουτ΄ » ωεπ<EFBFBD><EFBFBD> δεγ γφ<EFBFBD> κνπ γουτ΄ » ολ¬ χε αςε δοξε<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΜιξεΑδδςεσσ δχ ¤΄°°<EFBFBD> δχ ¤΄Έ°<EFBFBD> δχ ¤µ°°<EFBFBD> δχ ¤µΈ°<EFBFBD> δχ ¤¶°° »ζιςστ ±―³ οζ τεψτ σγςεεξ<EFBFBD> δχ ¤¶Έ°<EFBFBD> δχ ¤·°°<EFBFBD> δχ ¤·Έ°<EFBFBD><EFBFBD> δχ ¤΄²Έ<EFBFBD> δχ ¤΄αΈ<EFBFBD> δχ ¤µ²Έ<EFBFBD> δχ ¤µαΈ<EFBFBD> δχ ¤¶²Έ »σεγοξδ ±―³ οζ τεψτ σγςεεξ<EFBFBD> δχ ¤¶αΈ<EFBFBD> δχ ¤·²Έ<EFBFBD> δχ ¤·αΈ<EFBFBD><EFBFBD> δχ ¤΄µ°<EFBFBD> δχ ¤΄δ°<EFBFBD> δχ ¤µµ°<EFBFBD> δχ ¤µδ°<EFBFBD> δχ ¤¶µ° »μαστ ±―³ οζ τεψτ σγςεεξ<EFBFBD> δχ ¤¶δ°<EFBFBD> δχ ¤·µ°<EFBFBD> δχ ¤·δ°<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
*-------------------------------
|
||||
* video driver for config
|
||||
*-------------------------------
|
||||
|
||||
*-------------------------------
|
||||
* Date: 3/11/88
|
||||
*-------------------------------
|
||||
|
||||
page1 equ $c054
|
||||
page2 equ $c055
|
||||
|
||||
VideoStartup sta $c00c ;clr80vid
|
||||
sta $c000 ;clr80col
|
||||
sta page1
|
||||
|
||||
lda #0 ; set to page 1
|
||||
sta inverse ; set to normal mode
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
|
||||
cls lda #6 ;clear screen
|
||||
sta cv ;line 6 on down
|
||||
|
||||
clslup2 lda cv ;clear to end of screen
|
||||
asl a ;cv := cv * 2
|
||||
tay
|
||||
lda LineAddress,y
|
||||
sta base
|
||||
iny
|
||||
lda LineAddress,y
|
||||
sta base+1
|
||||
|
||||
ldy #39
|
||||
lda #$a0
|
||||
:loop sta (base),y
|
||||
dey
|
||||
bpl :loop
|
||||
|
||||
inc cv
|
||||
lda cv
|
||||
cmp #24
|
||||
bne clslup2
|
||||
|
||||
lda #0 ;0,6
|
||||
sta ch
|
||||
lda #7
|
||||
sta cv
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
|
||||
cleos stx cv
|
||||
jmp clslup2
|
||||
|
||||
cleol pha
|
||||
lda ch ; save location of cursor
|
||||
pha
|
||||
lda cv
|
||||
pha
|
||||
|
||||
cleol2 lda #' '
|
||||
jsr cout ; put space over char
|
||||
lda ch
|
||||
bne cleol2 ; go until it wraps to next line
|
||||
|
||||
pla
|
||||
sta cv ; put cursor back
|
||||
pla
|
||||
sta ch
|
||||
pla
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
|
||||
TopBox pha
|
||||
|
||||
lda #0
|
||||
sta cv
|
||||
|
||||
jsr doILine
|
||||
inc cv
|
||||
jsr doEdge
|
||||
inc cv
|
||||
jsr doEdge
|
||||
inc cv
|
||||
jsr doEdge
|
||||
inc cv
|
||||
jsr doEdge
|
||||
inc cv
|
||||
jsr doILine
|
||||
|
||||
ldy #39
|
||||
lda #$20
|
||||
sta (base),y
|
||||
ldy #0
|
||||
sta (base),y
|
||||
|
||||
pla
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
|
||||
doEdge jsr makebase
|
||||
|
||||
ldy #0
|
||||
lda #$20
|
||||
sta (base),y
|
||||
|
||||
ldy #38
|
||||
lda #$a0
|
||||
:loop sta (base),y
|
||||
dey
|
||||
bne :loop
|
||||
|
||||
ldy #39
|
||||
lda #$20
|
||||
sta (base),y
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
* print an inverse line across the screen
|
||||
|
||||
doILine jsr makebase
|
||||
|
||||
ldy #39
|
||||
lda #$DF
|
||||
:loop sta (base),y
|
||||
dey
|
||||
bpl :loop
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
|
||||
makebase lda cv
|
||||
asl a
|
||||
tay ;setup indirect address
|
||||
lda LineAddress,y
|
||||
sta base
|
||||
iny
|
||||
lda LineAddress,y
|
||||
sta base+1
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
|
||||
plotchr pha ; save
|
||||
jsr makebase ;setup indirect for screen address
|
||||
ldy ch
|
||||
pla
|
||||
|
||||
ora #$80 ;set high bit
|
||||
|
||||
* check for ][ plus
|
||||
|
||||
stx x_save ; save x
|
||||
ldx $fbb3
|
||||
cpx #$ea ;][ plus?
|
||||
bne plotchr1 ;nope
|
||||
|
||||
* convert everything to uppercase
|
||||
|
||||
cmp #"a" ;lower?
|
||||
bcc plotchr1 ;nope
|
||||
cmp #"z"+1 ;lower
|
||||
bcs plotchr1 ;nope
|
||||
sbc #$1f ;make upper
|
||||
|
||||
plotchr1 ldx x_save
|
||||
sta (base),y ;put it onto the screen
|
||||
rts
|
||||
|
||||
*-------------------------------
|
||||
* output a character
|
||||
|
||||
cout stx x_save ; save everything
|
||||
sty y_save
|
||||
pha
|
||||
|
||||
and #$7f ; clear high
|
||||
cmp #cr
|
||||
beq cout2
|
||||
cmp #lf
|
||||
beq cout3
|
||||
cmp #bs
|
||||
beq cout5
|
||||
cmp #' '
|
||||
bcc cout4
|
||||
|
||||
jsr plotchr ; plot the sucker
|
||||
|
||||
inc ch ; move over 1 space
|
||||
ldy ch
|
||||
cpy #40 ; wrap-around?
|
||||
bne cout4 ; nope
|
||||
|
||||
cout2 ldy #0 ; reset horiz
|
||||
sty ch
|
||||
|
||||
cout3 inc cv ; go down 1 line
|
||||
lda cv ; is it in range?
|
||||
cmp #24
|
||||
bne cout4 ; nope
|
||||
|
||||
dec cv ; put it back
|
||||
|
||||
cout4 pla
|
||||
ldx x_save ; restore stuff
|
||||
ldy y_save
|
||||
rts
|
||||
|
||||
cout5 dec ch ; backup
|
||||
bpl cout4 ; all is well
|
||||
|
||||
lda #40 ; move to end of line
|
||||
sta ch
|
||||
|
||||
lda cv ; are we at the top
|
||||
cmp #0
|
||||
beq cout4 ; yep
|
||||
|
||||
dec cv
|
||||
jmp cout4 ; ok, we are done
|
||||
|
||||
*-------------------------------
|
||||
|
||||
LineAddress dw $400
|
||||
dw $480
|
||||
dw $500
|
||||
dw $580
|
||||
dw $600 ;first 1/3 of text screen
|
||||
dw $680
|
||||
dw $700
|
||||
dw $780
|
||||
|
||||
dw $428
|
||||
dw $4a8
|
||||
dw $528
|
||||
dw $5a8
|
||||
dw $628 ;second 1/3 of text screen
|
||||
dw $6a8
|
||||
dw $728
|
||||
dw $7a8
|
||||
|
||||
dw $450
|
||||
dw $4d0
|
||||
dw $550
|
||||
dw $5d0
|
||||
dw $650 ;last 1/3 of text screen
|
||||
dw $6d0
|
||||
dw $750
|
||||
dw $7d0
|
||||
|
|
|
@ -1 +1,73 @@
|
|||
<EFBFBD> Φιδεο Δςιφες ςεγοξζιηυςατιοξ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>φιδ΄° εψτ<EFBFBD>φιδΈ° εψτ<EFBFBD>φιδ΄°πμ εψτ<EFBFBD>φιδεψ εψτ<EFBFBD><EFBFBD>ςείφιδ κσς ΤοπΒοψ<EFBFBD> κσς πςιξτ<EFBFBD> δβ ±¬³¬·<EFBFBD> ασγ § Γοξζιηυςε Φιδεο Δςιφες §¬°°<EFBFBD><EFBFBD> κσς γμσ<EFBFBD> μδψ £Όσταςτ » σετυπ εσγ θαξδμες<EFBFBD> μδα £Ύσταςτ<EFBFBD> κσς εσγαπε<EFBFBD><EFBFBD> κσς πςιξτ<EFBFBD> δβ ±¬·¬°<EFBFBD> ασγ § ± Αππμε έΫ« χ―ο μοχες γασ姬°δ<EFBFBD> ασγ § ² Αππμε έΫ« χ― μοχες γασ姬°δ<EFBFBD> ασγ § ³ Αππμε έΫ« χ― Φιδεψ Έ° γο짬°δ<EFBFBD> ασγ § ΄ Αππμε ――ε ιξ ΄° γομ νοδ姬°δ<EFBFBD> ασγ § µ Αππμε ――ε ιξ Έ° γομ νοδ姬°δ<EFBFBD> ασγ § ¶ Αππμε ――γ ιξ ΄° γομ νοδ姬°δ<EFBFBD> ασγ § · Αππμε ――γ ιξ Έ° γομ νοδ姬°δ<EFBFBD> ασγ § Έ Αππμε ΙΙησ ιξ ΄° γομ νοδ姬°δ<EFBFBD> ασγ § Ή Αππμε ΙΙησ ιξ Έ° γομ νοδ姬°δ¬°δ<EFBFBD> ασγ §ΧθιγθΏ Ϋ±Ήέ §¬°°<EFBFBD><EFBFBD> μδψ £Ή »ηετ πςιξτες £<EFBFBD> κσς ιξπξυν<EFBFBD><EFBFBD> ασμ α »ποιξτ° ποιξτσ το τθε<EFBFBD> ταψ »φιδεο δεφιγε δςιφες<EFBFBD> μδα Ίφιδταβμε¬ψ<EFBFBD> στα ποιξτ°<EFBFBD> ιξψ<EFBFBD> μδα Ίφιδταβμε¬ψ<EFBFBD> στα ποιξτ°«±<EFBFBD><EFBFBD> μδα £Όφιδδςφ »τεμμ ιτ το νοφε τθε φιδεο<EFBFBD> στα ποιξτ± »δςιφες<EFBFBD> μδα £Ύφιδδςφ<EFBFBD> στα ποιξτ±«±<EFBFBD><EFBFBD> μδψ £³ »νοφε ³ ιμμυστςιουσ παηεσ<EFBFBD>Ίμοοπ² μδω £°<EFBFBD>Ίμοοπ μδα ¨ποιξτ°©¬ω »σουςγε<EFBFBD> στα ¨ποιξτ±©¬ω »δεστιξατιοξ<EFBFBD> ιξω<EFBFBD> βξε Ίμοοπ<EFBFBD> ιξγ ποιξτ°«±<EFBFBD> ιξγ ποιξτ±«±<EFBFBD> δεψ<EFBFBD> βξε Ίμοοπ²<EFBFBD><EFBFBD> κσς γθιξιτ » γθεγλ ζος ιξιτ<EFBFBD> κνπ χςτγθη » χςιτε τθε γθαξηεσ<EFBFBD><EFBFBD>Ίφιδταβμε δχ °<EFBFBD> δα φιδ΄°<EFBFBD> δα φιδ΄°πμ<EFBFBD> δα φιδεψ<EFBFBD> δα φιδ΄°<EFBFBD> δα φιδΈ°<EFBFBD> δα φιδ΄°<EFBFBD> δα φιδΈ°<EFBFBD> δα φιδ΄°<EFBFBD> δα φιδΈ°<EFBFBD><EFBFBD><EFBFBD>
|
||||
* Video Driver re-configuration
|
||||
*-------------------------------
|
||||
|
||||
vid40 ext
|
||||
vid80 ext
|
||||
vid40pl ext
|
||||
videx ext
|
||||
|
||||
re_vid jsr TopBox
|
||||
jsr print
|
||||
db 1,3,7
|
||||
asc '- Configure Video Driver -',00
|
||||
|
||||
jsr cls
|
||||
ldx #<start ; setup esc handler
|
||||
lda #>start
|
||||
jsr escape
|
||||
|
||||
jsr print
|
||||
db 1,7,0
|
||||
asc ' 1 - Apple ][+ w/o lower case',0d
|
||||
asc ' 2 - Apple ][+ w/ lower case',0d
|
||||
asc ' 3 - Apple ][+ w/ Videx 80 col',0d
|
||||
asc ' 4 - Apple //e in 40 col mode',0d
|
||||
asc ' 5 - Apple //e in 80 col mode',0d
|
||||
asc ' 6 - Apple //c in 40 col mode',0d
|
||||
asc ' 7 - Apple //c in 80 col mode',0d
|
||||
asc ' 8 - Apple IIgs in 40 col mode',0d
|
||||
asc ' 9 - Apple IIgs in 80 col mode',0d,0d
|
||||
asc 'Which? [1-9] ',00
|
||||
|
||||
ldx #9 ;get printer #
|
||||
jsr inpnum
|
||||
|
||||
asl a ;point0 points to the
|
||||
tax ;video device driver
|
||||
lda :vidtable,x
|
||||
sta point0
|
||||
inx
|
||||
lda :vidtable,x
|
||||
sta point0+1
|
||||
|
||||
lda #<viddrv ;tell it to move the video
|
||||
sta point1 ;driver
|
||||
lda #>viddrv
|
||||
sta point1+1
|
||||
|
||||
ldx #3 ;move 3 illustrious pages
|
||||
:loop2 ldy #0
|
||||
:loop lda (point0),y ;source
|
||||
sta (point1),y ;destination
|
||||
iny
|
||||
bne :loop
|
||||
inc point0+1
|
||||
inc point1+1
|
||||
dex
|
||||
bne :loop2
|
||||
|
||||
jsr chinit ; check for init
|
||||
jmp wrtchg ; write the changes
|
||||
|
||||
:vidtable dw 0
|
||||
da vid40
|
||||
da vid40pl
|
||||
da videx
|
||||
da vid40
|
||||
da vid80
|
||||
da vid40
|
||||
da vid80
|
||||
da vid40
|
||||
da vid80
|
||||
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user