home *** CD-ROM | disk | FTP | other *** search
/ ABBUC Magazin 47B / ABBUC_Magazin_47_1996_ABBUC_Side_B.atr / xl23.txt < prev    next >
Text File  |  2023-02-26  |  8KB  |  18 lines

  1. ¯≡βπδ³HOW XL2 WORKS (PROGRAMMING STUFF)¢¢~⇦uses two areas in RAM. The low memory portion, up to 99 byte~❎/length, provid~⇦Mhe entry and exit points for all func~⇦Os. 49 more~◆Oare~⇦æd~❎*~⇦Hdisplay list~❎O~
  2. ①ne which also must be~⇦æma~◆ד¢¢With SpartaDOS 3.2+ this code replace~◆in ~⇦$~╱Tsup~⇦≤~╱לkeyboard buffer. ~❎W3.2g~╱Mis a tight fit leaving seven~◆ךto spare; w~⇦<other vers~D╱~⇦ere's 51 un~E~I^~❎a~D¢ after~Eפgets do~D⇧~⇦Mit~E»re~⇦ëyet~FQroom~EGexpan~⇦h~❎.out bump~⇦íMEMLO under~G% a~⑤≥ itself~⇦`now~◆ñ.¢¢U~ ;~D], patch~❎†to~EP~Dצmade~D⇨modify~❎bRT8~Fwto pr~D*t it from enabl~⇦ía cartridg~H∮is~F¢~D$to~D±off~à⑨~Dbteal~å7ay-of-the-week~╱j~Dits own~äe. Fur~Eêhook~å|~✓⌐al~äⁿacces~E¶~⇦Tbuilt-in,~❎¶"set"~❎y"g~⇦
  3. ~ïצAll of~⇦4se~I⓪~⇦^~G≡ dependant s~╱[installa~⇦A h~Däo search through~EKto fi~⇦δhe correct addres~גג~E❎~❎t~⇦lsaved~åA~Dta~הXby~àBfo~⇦β~Fcsystem swap.¢¢~ג°only~çú~דLmemory~╱Ais~åu~⇦Wformatt~Dïime/date~I✓~Gãu~⇦Ü~⇦,prin~äij~çQ~דαemporary storage~✓ב last two~ו◆on p~⇦zero~äóa po~❎N. Since~❎4user's~✓`~G⑦ may well~ä*~G$4000-$7FFF range, I saw n~D°ternative~⇦isome~גg~⇦Fdeci~åwrite~⇦àrogram~◆Ω~å-~◆∈~åp~äכBW-DOS,~◆%would not permit~⇦À~ç, non-exist~ג♪key~◆י. U~
  4. $~K④f float~Dג~E RAM~N*hav~Dxesen~Dñn~גioblem (I'm~❎ådea~דi~Eצan~גÀerrupt here).¢¢When copy~⇦'OS~❎f~ג!n extra bank, most~H⓪mers~Eפe $C~EkC~Dkat~Hz4~❎nd $D8~⇦⓪⇦~╱5~❎~Dÿ;~àÑdo~GNsame. This leav~à∮ un~àÉ2k~╱<~❎Z57FF~Gj~ä¿~⇦ג~❎A~àה~Föor~❎\lives~⇦Te ~גΩ~⇦ש~❎ simply enabl~◆~appropri~ä∧~
  5. ⌠~❎IJJMP's or JSR'~דÀ~D⑧ntry~Gö~àsi~ד³a. Upo~⇦çmple~ג#,~£return~❎G~⇦ö~וvto re~╱É~╱,~⇦¼~⇦}~I¼s.¢¢IMMEDIATE VERTICAL BLANK¢¢Dur~D†~EHt~ä1 vbl~EÀ~à¬artridg~❎tus~D9checked. If vibra~דעor heavy~à£~äW~äϕ~àdinadver~ä¨~I<d a~♪\that was ~⇦Γed off,~FΣis~Fjit ag~⇦∞bef~ä;~⇦£OS finds out it~Dkn~❎√sh~גHn't~גת(lockup time)~ç'is m~⇦F~E∩E~D¢han XL's beca~וvphysical design.¢¢Next~❎{jiffy cou~De~⇦Odecrem~הJand, if~דB~גj~╱יexit~E©~◆†~Hn~Dץ. Otherwis~╱ם~♪Y~גát~⇦760 (NTSC)~Dj50 (PAL)~❎∩~❎2~⇦µ~⇦0in~
  6. ëby a second~H8~⇦å~
  7. à.¢¢DEFERRED~æ⑨Firs~╱ϕcon~D¶~D③DOSINI~ï❎~⇦Lensure~Dúis~❎⌡~à§~àVo p~⇦µ7~à,~❎!~Fretakes~◆P~Jûrequired~EÜtwo-part~⇦&~וÃ~F~◆åevery~Dת you go~✓ןDUP menu. Af~DF~ä^~åמfollow~⇦Üfunc~äÃs (a-d) occur only~D´~⇦,display line~⇦¢on:¢¢a.~st~הmts add~ä÷~גרSDLSTL,~גן verifi~å⑦ adjus~D¢if~
  8. ∮to match~❎[~הJoff~זqo~╱ÅTD~❎è;¢¢b. once each minut~å5~ õ, from day-of-the-week~H!e~àís upda~çõ step c.~⇦⑦skipped;¢¢c~╱∩~åCs por~הδ~V"~✓O~❎ßper~◆8;~⇦`¢¢d~Dµe typ~ד]~✓=(drive~⇦⌠x-y)~îZ~⇦û~    ó~è.¢¢~⇦HHelp key~⓪2a swap~⇦P~⇦handl~ä⇨oggl~❎Ñexecu~Géapplicable~àánei~גå~╱[~ê! was called,~Fδ~╱²~ ^~à~åך~❎ïs~à™~⇦-~◆ns any repeat~⇦o custom~❎E~✓i. When~⑧\it completel~❎Jlaces~וו ome.¢¢E~גץis made via low memory~D·XITVBV. No attemp~
  9. -~ג¿~ג[rve~❎¬defer~ä¢vertical blank rout~Dϕ~❎-nt w~⇦Ø~⇦≈~ג®nst~E'.¢¢SYSTEM SWAP¢¢First~❎&dis~⇦³s NMI's~Dר~╱õpossi~D⑦~E7~⇦~⇦Æinterrupt~◆③already~ג`prog~דlwith~❎Wstrou~ä%sults. Next, aft~äçav~ג≤several curr~⇦©values (stack po~❎p, etc.)~Fלexchang~GhRAM at $C000-$CFFF~╱extra~    4~❎4FFF~à≡n~⇦π~
  10. Ha pag~דit~D3tern~⇦ôode~╱M~ e~àBjump~❎Çr~Eºget out~זâextended~╱8dd~E⑤r~⇦l.¢¢From~❎hnew loca~äg~çº~çL~╱ם~ה2f~äJ~⇦Hby~✓Ø~D7$D8~⇦פ⇦~◆∩$5~❎⓪7~❎ΓIt~⇦An~O*low~גthree main bank~G¡~◆⑥or~♪©~╱bef~⇦⑥return~⇦z~ä⇦~⇦®ormal~    ∧i~ה$four~F}~J⇧~⇦H~Ev~Ff~IHis ag~⇦ê~✓ºd~✓îe~Gde so~❎⓪previ~äKsystem~⇦<sto~ג correctl~àé~K⌡nd~ז⇨~åá~äד~⇦Jnext~E[~Dïollow~❎ר~Gp, a number~Dzvari~ה~⇦O~◆δ~⇦re adjusted~D⓪accommodate~◆dw~✓⌐pri~⇦yo exit~ח¯~⇦ó~יⁿ~D~E∈proc~DNtak~⇦gb~äTtwo seconds,~ä❎which amoun~Eτ clock~⇦Θbump~דΘKEYBOARD INTERRUPT¢¢~⇦dkey handler~EBimila~❎ß~⇦Hone~HוOS~Jïaddi~äú~D①~Eôto check~ES~D⑨execute any~Etkey~F2~⇦?removal~    >support~Hu1200XL func~❎e~    <play~⇦%~❎êPORTB.~Fעgnores KEYDIS.~╱ךe~⇦úng~    Gs oper~DÅdi~çon screen~E}us~⇦/valu~Dhl~å#set~Da~F⇧~Dûis~D'w~דµgood references~ג¼~E/(Mapping... or~EיC~וו...). How often have you s~⇦çprograms calcul~⇦¡an~חPo~Fë~◆øby~Eç~G4~יtSAVMSC~DôCOLCRS plus 40 times ROWCRS? Why?~❎¢~    _f~å;urso~à ~H⇦in OLDADR, c~גכesy~✓-O~Hnkeyboard interrupt~I∈st~גπ~äøvertical blank both save,~❎,~⇦∩r re~דד,~❎1byte~❎°p~⇦Czero~êδr~גReded~àrin~Fק~✓כ~D| T~ג%ubroutines~çµ~╱ô~Dv~⇦t~◆n as~╱Ä~    ®s us~✓,m~╱®~❎ì~è⇨possible because:¢¢a.~❎2~W all other~D∧ls~דϕL2, except v~E⑤, disa~❎W~⇦ÉIRQ'~åⁿNMI's s~הù~╱,~⇦åinhibited until exit from~è~G❎;~⇦K¢¢b~╱¿~ג;~Oô~הÅets~❎!~
  11. ijfla~DR~ Scannot,~⇦)ref~Eø~
  12. 0~♪Ñbu~⇦¯y~⇦י will be~äΦcessed~Dysoon~⇦✓~K|~D∞~äσ~D    d~זÇRTI~
  13. ם~╱].¢¢I~D1covered,~גÿn work~ג⑧on~Fathat~ä8~G²6502~⑧Σ automa~E③ly~⇦Ban~⇦´, it does not appear~DIJdo~Dô~⇦'~Dí~E"~H~╱9~D'~î✓~⇦' with often unpleasant~äîults.¢¢LOW RAM CODING¢¢To minimize low memory usage, maximum~àõof~❎ו~àímad~⇦∞~❎µmai~J⑧area. A~Dïu~M½~E³e~⇦¡~F~❎6program at one comm~גæoint~╱חa valu~    kX regis~גכ~ה¼is transferred~D6~דWtack~àםpul~Dµin~◆ə~❎IJ. F~Gδ~DLsuc~ä0ive branche~å$~❎πdepend~DBon~    =~E❎~⇦#u~çffollows:¢¢  ~◆ U~DA   X=¢ sv.bdizc¢ ❎.1.1 Reset  $05¢ .1..~❎⑤Keyon   45¢ 1~╱⑤. Gettd   C4¢ 1⇦~❎④S~◆④8~⇦④~❎)1~♪)6 RT8 present~◆51~♪5~ ~⇦Æ1. Fm~╱06~    Æ. On/off  44 TD line~◆א.~⇦¡irq  04¢¢~ג†first~KAf~Dñentry~D*¢ BCC TD?¢ BVC XRESET¢so, if both~
  14. :fail you have~Dעbe~ä~D©~àCto handle Sparta's KEY~à;and.~╱Ä~❎*at~⇦r is¢ BPL FMT~    üSETRT8¢ BEQ G~╱ ~ä.if a~ä´~ î,~❎ì~D∈~⑥åa VGETTD ~גש f~äY~╱Ö us~ג①~⇦3jiffy cou~䯠(no~Lâ). Down~⇦_~╱ú similar checks determine~⇦á~❎éaller~äⁿa key IRQ, a t/d~Eñ o~EÃ, or return~ג†a formatt~ג'ime/date~G/disadvant~äø~דk~גπethod~╱fbit~⇦Dlost~❎=~ד\space~⇦V~E5~⇦Ö~H9. ~⇦V~♪S~ג≤at a ~D③le low memory JSR~זÃmain~F_can~D°~דâwithout each rout~⇦πhav~E]o~Fwa sub~✓to ~ג^PORTB~❎⌐i~Dwrupts~❎ano~ג√~⇦(restore~⇦~m~גΓexit--~❎Nstantial s~╱kwhere it~Fוs:~DãMemlo~╱ϕvblank~⇦Ω~G®ly~ç"d~❎א~G¨rry flag~Iר~ê#proces~à2~⇦ñ~⇦ë points.¢¢A BYTE SAVING CHEAT¢¢I'v~E´cover~Dר~Dbit~⇦âunne~⇦Nary~E#ontrol NMI's~ïùtraditional manner. i.e. Instead of¢  LDA #$00  ~äQ~╱⓪$E0¢  STA~⇦TEN◆~
  15. ¢~ג/~Dijget away~❎¯¢  INC~╱"~◆HDE~◆⓪~åäreason~⇦®~╱%~àxwrite-only regist~⇦úIf~דôr~⇦ó~❎,~וúlways~╱w value~äø$FF no ~à∙r w~D$~⇦-stuff~ä⑨o it. S~åüeffec~àΩ~⇦¡~äÀo~╱â zero~⇦it while~❎®~❎s $FE~⇦⑤ch enables~ד⓪~Fmas ~❎®~Eohree high~גPs~◆ö~ä?is~EÀseful~à™ave by~⇦]but no~הv; ei~à´~ו¢require~äsx mach~ä³cycl~גéSo, i~F*h~⇦Oa known, suit~⇦º~G$in a~I], ST(A/X/Y)~Gçwil~ד⇨e two~    ]~DõINC/~D╱tric~à∙also~❎∞ly~GJive~◆ä're juggl~ä|~הÜbetween OS ROM~à÷RAM~⇦±~Fס~❎Àto keep~ג:~Frack~Dí~DQ~╱H~❎ו.¢¢PROGRAMM~ג#WITHOUT A~äÿCK¢¢When~G∙art swapp~⇦ïmemory aroun~זCncludes page one~Åprogram~àשout benefi~à5a~⇦^ck. Onc~Dq~⇦f~D⑨ent~גó, XL2 makes~äôus~àí~⇦ח~❎7 until~à<~◆ûfor~❎new system has b~D6~❎אed~åבpla~⇦q~❎א~✓Npoi~⇦w~
  16. 2correctly set from~❎.~å╱~DΓd~◆qat~◆n.¢¢L~GoJSR~⇦טovercom~à6~❎k~⇦Γrout~äzby us~DU~ài condition~דG~äßeve~הémigh~D: called a "rela~à0sub~◆Q"~◆Obranch~äwFortunately,~הõxtended~Iזddress range~åöl posi~╱[o a~הÇsign (or "N") flag indica~גs~ä»ve ~❎Φto~╱hnd~D╱it. Similar~⇦éw~çU~⇦.passe~FÇlast~ç=f main~◆ß~╱øzero~╱r~ד[be~DÅ~הR~HI~Eâexch~⇦הs~❎6~✓Ocod~⇦ן, s~
  17. ç~ג™~Q=~╱E~H; o~DÉmple~Dæ ba~⇦¼o~Fגcar~ällag.¢¢THE SOURCE CODE¢¢I~⇦§mad~⇦Q~DBur~äjvailabl~à✓unnumb~äβ ASCII~äFm~àKexamina~❎s~ג/ a word~גCcessor~àøeasy~ä-vers~⇦*to non-MAC/65~❎Mat (ve~⇦Ñew macros are employed). It's well-comm~גqd (it~à³to~Df~⇦æ~Fעmodify things af~ג&several months away~ה#it)~D⑦~D(~D{~ד"ime, date,~❎IJkey func~å∮~àuways present~ז,~ה²in~D⇦k~äןarea. W~D¿is mis~ä∈,~G*ny DOS othe~דön Sparta,~❎·~àgow RAM ent~ä·~DJxit~ה°s~àQr~ד⇨no reaso~འcannot ac~Dé s~äΣof~⇦Pse~♪ד~❎√~╱|FMS~גם~Fכ~⇦Ã~ï✓~E③~⇦zwrit~⇦your ~ג²COMs~G8set~❎$get~E;~êτs, under most~❎ϕwould require~❎«to: sav~╱±contents~⇦õDOSVEC,~ä±stitut~⇦ê~ח¯~E⇦~⇦É13 by~גקbe~D/a desi~ä¬six-~⇦ə buffer, call~◆f~◆קt~ג∧restore~◆p. If~❎ÿwant~äK~Dz~DD~àL lik~⇦¬~גƒensure Break~Dàdis~ג0d~◆Zat~FGystem will reboot if Re~D3i~åA~ג⌐bef~
  18. ä~⇦⑨~◆ûd. I~ä\is case it~GCbe~גVier jus~❎⌐cop~ä≥e clock value~F¯w~ä(.¢¢MODIFYING~ä⌐¢¢Currently,~Do2k~י⌠RAM,~àמuses 2048~Geso~⇦™~L ~וkXL2,~⇦⑧'ll h~Eנo manufact~D'~àçspace~àÕ best b~F❎~⇦Œkeyboard handler--~❎ןdecide w~DOfea~⇦Ks~sacrific~Fעrip~⇦Nm out, ta~דàc~הOat~❎9remov~⇦.y~ç³depend~⇦O~ä⑧. A~G¨ame~àל,~✓3~◆º~è?~çµ~ëö~דS~⇦&file STOW.M65. Likely~גÿdida~DGfor~╱Val~חϕ~ד❎defaul~הN~Fזset~àΦ~✓³.¢¢H~⇦*fun~G|~⇦XL2~ë´d~ä me up with~❎δinte~äS~⇦,~❎6ications or idea~╱ö~Dª, I'd~çΘo hear abou~E⑥m. You~⇦ט catch me o~äáe USF~⇦LIAN~⇦◆by mail~à╱y~äFr group (GCACE).¢¢¢jkp¢16 Feb 96¢