home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Software / 1581-LIST-PROC (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  9.5 KB  |  375 lines

  1. 1 PRINT"[147]":I=828
  2. 2 READA:IFA=256THEN4
  3. 3 POKEI,A:I=I+1:GOTO2
  4. 4 IFPEEK(65440)=135THENPOKE924,189
  5. 6 DATA 169,1,32,195,255,169,36
  6. 7 DATA 141,240,3,169,48,141,241
  7. 8 DATA 3,169,1,162,8,160,0
  8. 9 DATA 32,186,255,169,2,162,240
  9. 10 DATA 160,3,32,189,255,32,192
  10. 11 DATA 255,169,64,32,144,255,162
  11. 12 DATA 1,32,198,255,32,144,255
  12. 13 DATA 32,207,255,32,207,255,32
  13. 14 DATA 207,255,32,207,255,201,0
  14. 15 DATA 240,58,32,204,255,32,228
  15. 16 DATA 255,201,32,208,3,32,196
  16. 17 DATA 3,162,1,32,198,255,32
  17. 18 DATA 207,255,168,32,207,255,72
  18. 19 DATA 152,170,104,32,205,221,169
  19. 20 DATA 32,32,210,255,32,207,255
  20. 21 DATA 201,0,208,8,169,13,32
  21. 22 DATA 210,255,76,115,3,32,210
  22. 23 DATA 255,76,162,3,169,1,32
  23. 24 DATA 195,255,32,204,255,169,204
  24. 25 DATA 133,178,96,32,228,255,201
  25. 26 DATA 32,208,249,96,256
  26. 27 REM *** BY KARL J MOHR III
  27. 28 REM *** 1340 5TH AVENUE
  28. 30 REM *** 1-815-397-0093
  29. 31 REM *** THIS PRG WAS SET UP TO ACCOMODATE THE OKIDATA 120 PRINTER
  30. 32 REM *** THE STRANGE OPEN AND CLOSE SEQUENCES IN THE PRINT MODS HAD TO BE
  31. 33 REM *** THERE IN ORDER TO TAKE ADVANTAGE OF READING THE ST VARIABLE
  32. 34 REM *** IT SEEMS THAT THE ST VAR. DOESN'T WORK RIGHT WHEN THE
  33. 35 REM *** SECONDARY ADDRESS OF 7 IS USED
  34. 36 REM *** YOU MAY POSSIBLY HAVE TO RECONFIGURE THE PRINT MODS
  35. 49 DN=8
  36. 50 DIMA$(200):DN=PEEK(828+18)
  37. 55 POKE53280,0:POKE53281,0
  38. 60 PRINTCHR$(14)
  39. 100 PRINT"[147]":POKE646,1:POKE53280,0
  40. 110 PRINTSPC(2);"1541/1581 [196]UAL [196]RIVE [204]IST [208]ROCESSOR"
  41. 130 PRINT:PRINT:PRINTSPC(16);"[195]OMMAND:":PRINT:PRINT
  42. 140 PRINT"     1)  RETRIEVE LIST FROM DISK      "
  43. 150 PRINT"  [159]   2)  SAVE LIST TO DISK            "
  44. 160 PRINT"  [158]   3)  START NEW LIST               "
  45. 170 PRINT"  [156]   4)  SEE PRESENT LIST IN MEMORY   "
  46. 180 PRINT"  [155]   5)  CHANGE ENTRY IN LIST         "
  47. 190 PRINT"  [150]   6)  CONTINUE LIST                "
  48. 200 PRINT"  [154]   7)  DELETE ENTRY                 "
  49. 201 PRINT"  [153]   8)  GET PRINTOUT                 "
  50. 202 PRINT"  [152]   9)  SEE FILES IN DIRECTORY       "
  51. 203 PRINT"  [159]   [210])  READ ANY SEQ. FILE           "
  52. 204 PRINT"     [208])  READ & PRINT SEQ. FILE       "
  53. 205 PRINT"     [211])  SCRATCH DISK FILE            "
  54. 207 PRINT"  [158]   [196])  DISK OPTIONS                 "
  55. 208 PRINT"  [155]   [197])  END                          "
  56. 210 POKE646,3
  57. 215 GETK$:IFK$=""THEN 215
  58. 220 IFK$="1"THEN600
  59. 230 IFK$="2"THEN700
  60. 240 IFK$="3"THEN800
  61. 250 IFK$="4"THEN890
  62. 260 IFK$="5"THEN1000
  63. 270 IFK$="6"THEN1100
  64. 280 IFK$="7"THEN1800
  65. 281 IFK$="8"THEN1300
  66. 286 IFK$="9"THEN1400
  67. 287 IFK$="R"THEN1600
  68. 288 IFK$="P"THEN1700
  69. 289 IFK$="E"THEN1200
  70. 290 IFK$="S"THEN400
  71. 292 IFK$="D"THENGOSUB25000:GOTO100
  72. 295 IFK$<"1"ORK$>"8"THEN215
  73. 400 REM ** SCRATCH dr FILES
  74. 402 PRINT"[153][147]";TAB(3);"                           "
  75. 404 PRINTTAB(3);" [196]ISK [205]ODE:  [211][195][210][193][212][195][200] [198][201][204][197][211] "
  76. 405 PRINTTAB(3);" [198]ILE TO BE [211]CRATCHED....  "
  77. 406 PRINTTAB(3);"                           "
  78. 407 POKE646,1
  79. 409 PRINT:PRINT:PRINTTAB(3):INPUTNL$
  80. 411 PRINT:PRINT:PRINT"   [193]RE YOU SURE?  [217] OR [206]"
  81. 412 GETS$:IFS$=""THEN412
  82. 413 IFS$="Y"THEN420
  83. 414 IFS$="N"THEN100
  84. 415 IFS$<>"Y"THEN412
  85. 420 OPEN15,DN,15
  86. 425 PRINT#15,"S0:"+NL$
  87. 430 GOSUB20000
  88. 435 CLOSE15
  89. 436 POKE646,10:PRINT:PRINT:PRINTTAB(3);NL$;"  HAS BEEN SCRATCHED !":FORT=1TO1500:NEXT
  90. 440 GOTO100
  91. 600 FORL=1TO48:A$(L)="":NEXT
  92. 602 PRINT"[153][147]"
  93. 603 PRINTTAB(3);" [196]ISK [205]ODE:  [210][197][212][210][201][197][214][197]   "
  94. 604 PRINTTAB(4):PRINT"(\) FOR DISK OPTIONS...":PRINTTAB(4);"([193]NY KEY) TO CONTINUE.."
  95. 605 GETX$:IFX$=""THEN605
  96. 606 IFX$="\"THENGOSUB25000
  97. 607 IFX$<>"\"THEN608
  98. 608 PRINT"[147][196]EVICE NO. =";DN:PRINT"[197]NTER [198]ILENAME TO [204]OAD...."
  99. 609 POKE646,1:PRINT:PRINT:PRINTTAB(3):INPUTNL$
  100. 612 OPEN15,DN,15
  101. 615 OPEN2,DN,2,"0:"+NL$+",S,R"
  102. 616 IFST=-128THENPRINT"DEVICE NOT PRESENT":GOTO100
  103. 617 GOSUB20000
  104. 620 INPUT#2,L:INPUT#2,L$
  105. 630 FORS=1TOL-1
  106. 640 INPUT#2,A$(S)
  107. 650 NEXT
  108. 660 CLOSE2:CLOSE15
  109. 670 GOTO890
  110. 700 PRINT"[153][147]"
  111. 701 PRINTTAB(3);"[196]ISK [205]ODE:  [211][193][214][197]       ":PRINTTAB(3);"(\) FOR DISK OPTIONS...
  112. 702 [153][163]3);"ATNNY KEY TO CONTINUE...."
  113. 703 [161]X$:[139]X$[178]""[167]703
  114. 704 [139]X$[178]"\"[167][141]25000
  115. 705 [139]X$[179][177]"\"[167]706
  116. 706 [153]"LOADSTR$EVICE NO. =";DN:[153]"VALNTER FILENAME TO SAVE....":[151]646,1
  117. 707 [153]:[153]:[153][163]3):[133]NL$:[139]NL$[178]"ZZZ"[167]100
  118. 708 [159]15,DN,15:
  119. 710 [159]2,DN,2,"@0:"[170]NL$[170]",S,W"
  120. 712 [141]20000
  121. 715 [152]2,L:[152]2,L$
  122. 720 [129]S[178]1[164]L[171]1
  123. 730 [152]2,A$(S)
  124. 740 [130]
  125. 750 [160]2:[160]15
  126. 760 [137]100
  127. 800 [153]"LOADVALNTER (null)IST (null)ITLE...."
  128. 801 [153]:[153]:[133]L$
  129. 802 [153]"LOADDEF                              "
  130. 803 [153]" VALNTER LIST....               "
  131. 805 [153]" (null)IMIT ENTRY TO 36 CHARACTERS "
  132. 810 [153]" (null)RESS '*' TO STOP            "
  133. 812 [153]"                              ":[153]:[151]646,3
  134. 830 [129]L[178]1[164]200:A$(L)[178]"":[130]
  135. 831 [129]L[178]1[164]200
  136. 832 [133]A$(L):[139]A$(L)[178]""[167]A$(L)[178]"                "
  137. 833 B$[178]A$(L):[139][195](B$)[178][177]36[167]A$(L)[178][200](B$,36)
  138. 834 [139]A$(L)[178]"*"[167]A$(L)[178]"":[137]900
  139. 838 [130]
  140. 840 [137]1135
  141. 890 CD$[178]"":[151]646,3
  142. 900 [143] ** d} AT 890
  143. 902 [153]"LOADDEF(null)RESS (S) TO START AND STOP LIST..."
  144. 903 [153]"(null)RESS (M) TO GO BACK TO MENU..."
  145. 904 [161]X$:[139]X$[178]""[167]904
  146. 905 [139]X$[178]"S"[167]908
  147. 906 [139]X$[178]"M"[167]100
  148. 907 [139]X$[179][177]"S"[167]904
  149. 908 [151]646,1:[153]"LOAD";L$:[153]"OPEN":[129]X[178]1[164]800:[130]
  150. 910 [153]"LOAD":[129]S[178]1[164]L[171]1:[153]S;A$(S):[129]X[178]1[164]50:[130]
  151. 912 [161]X$
  152. 915 [139]X$[178]"S"[167]925
  153. 920 [137]935
  154. 925 [161]X$:[139]X$[178]""[167]925
  155. 927 [139]X$[178]"S"[167]935
  156. 930 [139]X$[179][177]"S"[167]925
  157. 935 [130]:[151]646,15
  158. 940 [153]"";[163]28);"           "
  159. 945 [153][163]28);" (null)RINTOUT? "
  160. 950 [153][163]28);" ((null)ES/(null)O)  "
  161. 955 [153][163]28);"           "
  162. 960 [161]R$:[139]R$[178]""[167]960
  163. 965 [139]R$[178]"Y"[167]1300
  164. 970 [139]R$[178]"N"[167]100
  165. 980 [139]R$[179][177]"N"[176]R$[179][177]"Y"[167]960
  166. 1000 [143]************CHANGE ENTRY
  167. 1003 [151]646,15
  168. 1005 [153]"LOAD                    "
  169. 1010 [153]" CHANGE WHICH ITEM? "
  170. 1015 [153]" (ZZZ) TO EXIT...   "
  171. 1016 [153]"                    "
  172. 1017 [151]646,3
  173. 1020 [153]:[153]:[133]V$:[153]:[153]
  174. 1025 [139]V$[178]"ZZZ"[167]100
  175. 1026 V[178][197](V$)
  176. 1030 [153]"ITEM";V;"IS";A$(V)
  177. 1035 [151]646,1
  178. 1040 [153]:[153]:[133]"CHANGE TO  ";B$
  179. 1055 A$(V)[178]B$:[139][195](B$)[177]36[167]A$(V)[178][200](B$,36)
  180. 1060 [137]890
  181. 1100 [143]*************CONTINUE LIST
  182. 1101 [153]"LOAD";" LENONTINUE (null)IST AT LENURSOR.... ":[129]T[178]1[164]1300:[130]:[153]"OPEN"
  183. 1102 [129]S[178]1[164]L[171]1
  184. 1103 [153]A$(S):[130]
  185. 1105 Y[178]L
  186. 1106 [129]L[178]Y[164]200
  187. 1110 [133]A$(L)
  188. 1115 B$[178]A$(L):[139][195](B$)[178][177]36[167]A$(L)[178][200](B$,36)
  189. 1120 [139]A$(L)[178]"*"[167]A$(L)[178]"":[137]890
  190. 1125 [139]L[177]200[167]A$(L)[178]"":L[178]L[171]1
  191. 1130 [130]:[151]646,15
  192. 1135 [153]"";[163]20);"              "
  193. 1140 [153][163]20);" (null)IST FULL... "
  194. 1150 [153][163]20);" CLOSE FILE.  "
  195. 1155 [153][163]20);" AND RE-OPEN. "
  196. 1157 [153][163]20);"              "
  197. 1160 [129]T[178]1[164]2000:[130]:[137]100
  198. 1200 [153]"LOAD(null)ARIABLES HAVE BEEN CLEARED.....":[129]T[178]1[164]1100:[130]
  199. 1210 [151]53280,14:[151]53281,6:[153]"LOAD"
  200. 1220 [153]"":[128]
  201. 1300 [143]*********PRINT LIST
  202. 1305 P$[178][199](16):Z$[178][199](13)
  203. 1310 [159]3,4
  204. 1315 [152]3,[199](27);"1";[199](15)
  205. 1317 [139]ST[178][171]128[167]1450
  206. 1318 [160]3:[159]3,4,7
  207. 1320 [152]3,[199](27)"C"P$"05"L$[199](27)"D"
  208. 1321 [152]3
  209. 1322 [152]3,[199](28)
  210. 1324 [129]S[178]1[164]L[171]1
  211. 1330 [152]3,P$"00"S;P$"05"A$(S);P$"48"S[170][181](L[173]2)P$"53"A$(S[170][181](L[173]2))
  212. 1345 [139]S[177]L[173]2[171]1[167]1360
  213. 1350 [130]S
  214. 1360 [152]3,[199](24):[160]3
  215. 1370 [137]100
  216. 1400 [153]"LOADOPEN                          "
  217. 1401 [153]" (T) TO TOGGLE DEVICE NO. "
  218. 1402 [153]"                          ":[153]"ONON";[163]27);"DEV ="DN;"OPEN"
  219. 1407 [153]:[151]646,10:[153]:[153]"ATNNY (null)EY FOR STR$IRECTORY.....":[153]
  220. 1408 [161]X$:[139]X$[178]""[167]1408
  221. 1409 [139]X$[178]"T"[167][141] 30000:[137]1400
  222. 1410 [139]X$[179][177]"T"[167]1414
  223. 1414 [151]646,13:[158]828:[129]X[178]1[164]800:[130]
  224. 1417 [151]646,15:[153]"ONONONON";[163]26);"             "
  225. 1420 [153][163]26);" F1 TO CONT. "
  226. 1424 [153][163]26);"             "
  227. 1426 [161]R$:[139]R$[178]""[167]1426
  228. 1428 [139]R$[178][199](133)[167]100
  229. 1430 [139]R$[179][177][199](133)[167]1426
  230. 1450 [160]3
  231. 1451 [153]"LOADLIST                     "
  232. 1452 [153]" (null)TATUS         ";ST;"CMD "
  233. 1454 [153]" (null)UT PRINTER ON-LINE "
  234. 1456 [153]"                     "
  235. 1458 [151]646,14:[153]:[153]:[153]"(null)ETURN TO LENONTINUE"
  236. 1460 [161]X$:[139]X$[179][177][199](13)[167]1460
  237. 1462 [139]X$[178][199](13)[167][160]3:[137]100
  238. 1600 [153]"LOAD";[163]1);"LIST                              "
  239. 1605 [153][163]1);" (null)AME OF (null)EQ. ASCILE TO BE (null)VALATNSTR$ "
  240. 1610 [153][163]1);"                              ":[153]:[153]
  241. 1615 [153][163]1):[151]646,3:[133]KM$:[153]:[153]
  242. 1618 [159]15,DN,15
  243. 1620 [159]2,DN,2,"0:"[170]KM$[170]",S,R"
  244. 1625 [141]20000
  245. 1630 [161]#2,X$
  246. 1635 [153]X$;
  247. 1640 [139]ST[178]64[167][160]2:[160]15:[137]1660
  248. 1650 [137]1630
  249. 1660 [151]646,1:[153]"ON";[163]15);" ATN(null)(null) WAIT KEY TO CONTINUE...."
  250. 1670 [161]X$:[139]X$[178]""[167]1670
  251. 1680 [137]100
  252. 1700 [143]***PRINT SEQ FILE
  253. 1701 [153]"LOAD";[163]1);"LIST                                 "
  254. 1705 [153][163]1);" (null)AME OF (null)EQ. ASCILE TO BE (null)(null)RIGHT$(null)(null)VALSTR$ "
  255. 1710 [153][163]1);"                                 ":[153]:[153]
  256. 1715 [153][163]1):[151]646,3:[133]KM$:[153]:[153]
  257. 1718 [159]15,DN,15
  258. 1720 [159]2,DN,2,"0:"[170]KM$[170]",S,R"
  259. 1723 [159]3,4:[152]3,[199](27);"1"
  260. 1724 [139]ST[178][171]128[167][160]2:[160]3:[160]15:[137]1451
  261. 1725 [141]20000
  262. 1726 [160]3:[159]3,4,7
  263. 1730 [152]3,X$;
  264. 1732 [161]#2,X$
  265. 1735 [153]X$;
  266. 1740 [139]ST[178]64[167][152]3," ":[160]2:[160]3:[160]15:[137]1760
  267. 1750 [137]1730
  268. 1760 [151]646,1:[153]"ON";[163]15);" ATN(null)(null) WAIT KEY TO CONTINUE...."
  269. 1770 [161]X$:[139]X$[178]""[167]1670
  270. 1780 [137]100
  271. 1800 [143] **** DELETE ENTRY MODULE
  272. 1802 [153]"LOAD"
  273. 1804 [153][163]3);"LIST                         "
  274. 1805 [153][163]3);" VALNTRY NO. TO BE DELETED "
  275. 1806 [153][163]3);" (ZZZ) TO EXIT......     "
  276. 1807 [153][163]3);"                         "
  277. 1810 [153]:[153]:[153][163]3):[151]646,3:[133]X$:[139]X$[178]"ZZZ"[167]100
  278. 1815 X[178][197](X$)
  279. 1820 A$(X)[178]""
  280. 1825 [129]I[178]X[164]L[171]1
  281. 1830 A$(I)[178]A$(I[170]1)
  282. 1835 [130]:L[178]L[171]1
  283. 1850 [137]890
  284. 20000 [132]15,A1,B2$,C1,D1
  285. 20010 [139]A1[177]1[167]21000
  286. 20020 [142]
  287. 21000 [153]"LOAD":[151]646,15
  288. 21010 [153]"                          "
  289. 21015 [153]" STR$ISK VALRROR (null)TATUS....... "
  290. 21020 [153]"                          "
  291. 21030 [151]646,14:[153]:[153]:[153]:[153]
  292. 21040 [153][163]9);B2$:[153]:[153]
  293. 21060 [153][163]9);"(null)RACK     "C1
  294. 21070 [153][163]9);"(null)ECTOR    "D1
  295. 21075 [153][163]9);"LENODE (null)O.  "A1
  296. 21080 [153]:[153]:[153][163]3);"LIST ATNNY WAITSYS KEY FOR MENU..."
  297. 21085 [161]X$:[139]X$[178]""[167]21085
  298. 21090 [160]2:[160]3:[160]15:[137]100
  299. 25000 [143]
  300. 25010 [139]DN[178]8[167][151]53280,7
  301. 25015 [139]DN[178]9[167][151]53280,10
  302. 25020 [143] ** CHANGE DEVICE NO.
  303. 25030 [153]"LOADLENHANGE DEVICE NO?OPEN":[153]
  304. 25040 [153]"CURRENT DEVICE ISDEF";DN;"OPEN":[153]
  305. 25050 [153]"(T) TO TOGGLE DEVICE NO."
  306. 25060 [153]"((null)ETURN TO LENONTINUE)"
  307. 25070 [161]X$:[139]X$[178]""[167]25070
  308. 25080 [139]X$[178]"T"[167]25690
  309. 25090 [139]X$[178][199](13)[167]25110
  310. 25100 [139]X$[179][177]"T"[175]X$[179][177][199](13)[167]25070
  311. 25110 [139]DN[178]8[167][151]846,DN:[137]25130:[151]53280,7
  312. 25120 [139]DN[178]9[167][151]846,DN:[137]25270:[151]53280,10
  313. 25130 [143] ** DEVICE 8 MENU
  314. 25140 [153]"SYSSTR$EVICE 8 (null)ENU"
  315. 25150 [153]:[153]"D)  STR$IRECTORY"
  316. 25160 [153]"S)  (null)AIN MENU"
  317. 25170 [153]"R)  (null)ROCEED WITH RIGHT$/(null)"
  318. 25180 [153]"G)  CHR$O BACK TO DEV CHANGE"
  319. 25190 [153]"E)  VALND (PEEKOOT PRG IF DESIRED)
  320. 25200 GETX$:IFX$=""THEN25200
  321. 25210 IFX$="D"THENGOSUB25760
  322. 25220 IFX$="S"THEN 100
  323. 25230 IFX$="G"THEN25020
  324. 25240 IFX$="E"THEN END
  325. 25250 IFX$="R"THEN RETURN
  326. 25260 IFX$<>"D"THEN25130
  327. 25270 REM ** DEVICE 9 MENU
  328. 25280 PRINT"[158][196]EVICE 9 [205]ENU"
  329. 25290 PRINT:PRINT"D)  [196]IRECTORY"
  330. 25300 PRINT"S)  [205]AIN MENU"
  331. 25310 PRINT"R)  [208]ROCEED WITH [201]/[207]"
  332. 25320 PRINT"G)  [199]O BACK TO DEV CHANGE"
  333. 25330 PRINT"M)  [199]OTO [210]OOT [196]IR.
  334. 25340 [153]"P)  CHR$OTO (null)UB-STR$IRECTORY"
  335. 25350 [153]"E)  VALND
  336. 25360 GETX$:IFX$=""THEN25360
  337. 25370 IFX$="D"THENGOSUB25760
  338. 25380 IFX$="S"THEN 100
  339. 25390 IFX$="G"THEN25020
  340. 25400 IFX$="M"THEN25450
  341. 25410 IFX$="P"THEN25490
  342. 25420 IFX$="E"THEN END
  343. 25430 IFX$="R"THEN RETURN
  344. 25440 IFX$<>"D"THEN25270
  345. 25450 REM ** CHANGE TO ROOT
  346. 25460 OPEN15,9,15:PRINT#15,"/":INPUT#15,A,B$,C,D:CLOSE15:PRINT
  347. 25470 REM PRINTA;B$;C;D:PRINT
  348. 25480 POKE646,3:GOSUB25760:GOTO25270
  349. 25490 REM ** CHANGE TO SUB
  350. 25500 PRINT:PRINT"[153][215]HICH [211]UB-[196]IRECTORY....  (CBM) FILE?[158]"
  351. 25510 PRINT:INPUTNA$
  352. 25520 OPEN15,9,15,"/0:"+NA$:INPUT#15,A,B$,C,D:CLOSE15
  353. 25530 PRINT"[147]":GOSUB25760:GOTO25270
  354. 25690 REM ** DEVICE CHANGE
  355. 25700 TD=PEEK(828+18):IFTD=8THENDN=9
  356. 25710 IFTD=9THENDN=8
  357. 25720 IFDN=8THENPOKE53280,7
  358. 25730 IFDN=9THENPOKE53280,10
  359. 25740 POKE828+18,DN
  360. 25750 GOTO25020
  361. 25760 REM ** JUMP TO DIRECTORY ML ROUTINE
  362. 25770 POKE646,3:PRINT"[147][196]IRECTORY OF DEV.";DN
  363. 25780 PRINT:SYS828:POKE646,1
  364. 25790 PRINT:PRINT"[193]NY KEY....."
  365. 25840 GETX$:IFX$=""THEN25840
  366. 25850 POKE646,7
  367. 25860 IFX$<>""THENPRINT"[145][145][145]":RETURN
  368. 30000 REM ** DEVICE CHANGE
  369. 30010 TD=PEEK(828+18):IFTD=8THENDN=9
  370. 30020 IFTD=9THENDN=8
  371. 30030 IFDN=8THENPOKE53280,7
  372. 30040 IFDN=9THENPOKE53280,10
  373. 30050 POKE828+18,DN
  374. 30060 RETURN
  375.