Acorn System BASIC
એકોર્ન સિસ્ટમ બેઝિક અને એટમ બેઝિક એ એકોર્ન કોમ્પ્યુટર્સ દ્વારા એકોર્ન સિસ્ટમ 3 અને એકોર્ન એટમ જેવા તેમના પ્રારંભિક માઇક્રોકોમ્પ્યુટર્સ માટે વિકસાવવામાં આવેલી બેઝિક પ્રોગ્રામિંગ લેંગ્વેજની બે નજીકથી સંબંધિત બોલીઓ છે. ઘરેલું કમ્પ્યુટર યુગની મોટાભાગની બેઝિક બોલીઓની સરખામણીમાં તેમની પાસે સંખ્યાબંધ નોંધપાત્ર વિશિષ્ટતાઓ છે. ખાસ કરીને, ભાષામાં મશીનના ઘણા આંતરિક કાર્યો માટે નિવેદનોનો અભાવ હતો અને તે PEEK અને POKE ને બદલે ઇન્ડાયરેક્શન ઓપરેટર્સનો ઉપયોગ કરીને મેમરી સ્થાનોની સીધી પહોંચ અને હેરફેરનો ઉપયોગ કરીને પ્રદાન કરે છે. બંનેમાં ફ્લોટિંગ-પોઇન્ટ સપોર્ટનો પણ અભાવ હતો, જો કે આને વૈકલ્પિક ROM સાથે ઉમેરી શકાય છે જેણે વધુ વિશિષ્ટતાઓ રજૂ કરી હતી. સિસ્ટમ અને એટમ બેઝિક મુખ્યત્વે એ બાબતમાં અલગ પડે છે કે એટમે પ્રાથમિક સ્ટ્રિંગ હેરફેર પ્રદાન કરવા માટે સમાન દિશાસૂચક સિસ્ટમનો ઉપયોગ કર્યો હતો, જેનો સ્ટાન્ડર્ડમાં અભાવ હતો અને કમ્પ્યુટર ગ્રાફિક્સ માટે થોડી સંખ્યામાં નવા નિવેદનો ઉમેર્યા હતા. આમાંની મોટાભાગની વિચિત્રતાઓને દૂર કરવામાં આવી હતી જ્યારે અણુના અનુગામી, બીબીસી માઇક્રો પર બીબીસી બેઝિકનું ઉત્પાદન કરવા માટે અંતર્ગત પ્રણાલીનું મોટા પ્રમાણમાં વિસ્તરણ કરવામાં આવ્યું હતું. બીબીસી બેઝિક રોમ્સ પાછળથી અણુ વપરાશકર્તાઓને ઓફર કરવામાં આવ્યા હતા. એકોર્ન કમ્પ્યુટર્સની રચના 1978માં થઈ હતી અને 1979માં એકોર્ન સિસ્ટમ 1થી શરૂ કરીને કિટ-બિલ્ટ અને યુરોકાર્ડ-આધારિત સિસ્ટમોની શ્રેણી બનાવવાની શરૂઆત થઈ હતી. તેઓએ આ મશીનો માટે એકોર્ન સિસ્ટમ બેઝિક વિકસાવી, જે માત્ર એક પૂર્ણાંક-માત્ર બોલી છે જેને કુલ માત્ર 4 KB મેમરીની જરૂર છે. આ ભાષામાં અમલીકરણની સંખ્યાબંધ વિગતો હતી જેણે તેને "અત્યંત બિન-માનક" બનાવી હતી. 1980 માં રજૂ કરાયેલ અણુ, સિસ્ટમ 3 ના ભાગોમાંથી બનાવવામાં આવ્યું હતું, જે એક જ બોર્ડ પર પેક કરવામાં આવ્યું હતું. સિસ્ટમોએ 2 KB રેમ અને 8 KB ROM સાથે પ્રમાણભૂત મોકલ્યા, જેમાં બેઝિક અને સંખ્યાબંધ ડિવાઇસ ડ્રાઇવર્સનો સમાવેશ થાય છે. એટમ બેઝિકમાં સિસ્ટમ વર્ઝનમાંથી માત્ર થોડા ફેરફારો કરવામાં આવ્યા હતા, જેમાં સ્ટ્રિંગ મેનીપ્યુલેશન માટે સપોર્ટ અને થોડી સંખ્યામાં ગ્રાફિક્સ કમાન્ડ્સ ઉમેરવામાં આવ્યા હતા. કુલ 12 KB સુધીની RAM અને વધારાના 4 KB ROM સાથે અણુ અપગ્રેડ કરી શકાય તેવું હતું, જેણે ફ્લોટિંગ-પોઇન્ટ સપોર્ટ ઉમેર્યો હતો. આ અલગ કાર્યો અને કામગીરીઓનો ઉપયોગ કરે છે જે તેમના પર કામ કરે છે, જે% ચિહ્ન દ્વારા સૂચવવામાં આવે છે. પ્રતીકની આ પસંદગી કમનસીબ હતી, કારણ કે માઈક્રોસોફ્ટ બેઝિકે ફ્લોટિંગ પોઇન્ટ નહીં પણ પૂર્ણાંકો સૂચવવા માટે ટકા ચિહ્નનો ઉપયોગ કર્યો હતો. એકોર્ને તેના અનુગામી પ્રોટોનનો વિકાસ શરૂ કર્યો તે પહેલાં અણુ માત્ર ટૂંકા ગાળા માટે બજારમાં હતું. આ શરૂઆતમાં બે-પ્રોસેસર એકમ બનવાનું હતું. ડિઝાઇન હજુ પણ તેના પ્રારંભિક તબક્કામાં હતી જ્યારે ઘટનાઓની શ્રેણીને કારણે તેને સિંગલ-CPU BBC માઇક્રોના આધાર તરીકે પસંદ કરવામાં આવી હતી. તે સમયે, એવી ટિપ્પણીઓ કરવામાં આવી હતી કે તેણે ચોક્કસપણે એકોર્નની વિવિધ પ્રકારની બેઝિકનો ઉપયોગ ન કરવો જોઈએ, જે "વર્ચ્યુઅલ રીતે અન્ય કોઈ માઇક્રોકોમ્પ્યુટર સમજી શકતું નથી" અને "જો નવી ભાષા અણુના બેઝિકના સ્વરૂપ પર આધારિત હોત, તો તે એક આપત્તિ હશે". આખરે, બીબીસી પ્રણાલીએ એકોર્ન-લિખિત બેઝિકનો ઉપયોગ કર્યો હતો, પરંતુ તેમાં ભારે ફેરફાર કરવામાં આવ્યો હતો. પરિણામી બીબીસી બેઝિક માઇક્રોસોફ્ટ બેઝિક જેવું જ હતું અને બાદમાં તેને એટમમાં અપગ્રેડ તરીકે રજૂ કરવામાં આવ્યું હતું. વર્ણન બે બોલીઓ ખૂબ સમાન હોવાથી, નીચેની બોલીઓ મુખ્યત્વે એટમ બેઝિકનો સંદર્ભ આપશે અને જ્યાં તેઓ અસ્તિત્વ ધરાવે છે ત્યાં તફાવતો તરફ ધ્યાન દોરશે. પ્રોગ્રામ એડિટિંગ એ યુગના મોટાભાગના બેઝિકની જેમ, એટમ બેઝિકે સીધી (તાત્કાલિક) અને પરોક્ષ સ્થિતિઓ સાથે લાઇન-ઓરિએન્ટેડ એડિટરનો ઉપયોગ કર્યો હતો. લાઇન નંબર વિના નિવેદનમાં ટાઇપ કરવાથી તરત જ ઓપરેશન કરવામાં આવ્યું. તેના બદલે લાઇન નંબર ઉમેરવાથી તે નિવેદનો સંગ્રહિત પ્રોગ્રામમાં મૂકવામાં આવ્યા. એક વિશિષ્ટતા એ હતી કે જ્યારે તે એક જ લીટી પર બહુવિધ નિવેદનોને મંજૂરી આપે છે, ત્યારે નિવેદનો વચ્ચેનું વિભાજક સામાન્ય રીતે ઉપયોગમાં લેવાતા કોલોનને બદલે અર્ધવિરામ હતું, આમ અન્ય કમ્પ્યુટર્સ માટે પ્રોગ્રામ્સ લખતી વખતે વપરાશકર્તાને તે અક્ષરને રૂપાંતરિત કરવાની જરૂર પડે છે. કમ્પ્યુટર ટર્મિનલ્સ સાથે ઉપયોગ કરવાના હેતુથી, એકોર્ન બેઝિક ફુલ-સ્ક્રીન એડિટિંગ મોડને સપોર્ટ કરતું ન હતું. તેનાથી વિપરીત, કોમોડોર બેઝિક (અને અન્ય ઘણી માઇક્રોકોમ્પ્યુટર બોલીઓ) માં, પ્રોગ્રામની સૂચિમાં ઉપરની તરફ જવા માટે, સ્ક્રીન પર ફેરફારો કરવા માટે, અને પછી તે ફેરફારો દાખલ કરવા માટે કર્સર કીનો ઉપયોગ કરી શકાય છે. એટમ પર, કર્સર કીનો ઉપયોગ કરીને સૂચિમાં ઉપરની તરફ જઈ શકાય છે, પરંતુ તે લખાણને સંપાદિત કરવા માટે, કીને ઇનપુટ વિસ્તારમાં નકલ કરવા માટે દબાવવામાં આવી હતી જ્યાં તેને સંપાદિત કરી શકાય છે. અણુ પરનો બીજો તફાવત કી હતો, જેણે સિસ્ટમ રીસેટ કર્યું હતું, જે સંભવિત રીતે મેમરીમાંથી પ્રોગ્રામને સાફ કરે છે. જો ભૂલથી કી દબાવવામાં આવી હોય તો આને રીસેટ કરવા માટે, એટમ બેઝિકે આદેશ ઉમેર્યો, જેનો ઉપયોગ આકસ્મિક રીસેટ કરવા માટે પણ થઈ શકે છે. વધુ નાનો ફેરફાર એ હતો કે માઇનસ સાઇનને બદલે લાઇન નંબરોથી અને તેનાથી અલગ અલ્પવિરામનો ઉપયોગ કરીને 20 થી 40 રેખાઓ છાપવામાં આવે છે. ભાષામાં શાખાઓ માટે સંખ્યાઓને બદલે રેખા લેબલનો ઉપયોગ કરવાની ક્ષમતા પણ હતી. લેબલ્સમાં એક લોઅર-કેસ અક્ષરનો સમાવેશ થતો હતો જે લાઇન નંબર પછી તરત જ ટાઇપ કરવામાં આવતો હતો. દાખલા તરીકેઃ 10s પ્રિન્ટ "*" 20 જીઓટીઓ આ પદ્ધતિનો ફાયદો એ છે કે નિવેદનનું મેમરી સરનામું એસ માં સંગ્રહિત છે, જેનો અર્થ છે કે શાખા, જીઓટીઓ, મેળ ખાતી લાઇન નંબરની શોધમાં પ્રોગ્રામની દરેક લાઇનમાં શોધ કર્યા વિના સીધી તે લાઇન પર જઈ શકે છે. એકોર્ને શાખા લક્ષ્યો માટે લાઇન નંબર બનાવવા માટે કોઈપણ અભિવ્યક્તિનો ઉપયોગ કરવાની મંજૂરી પણ આપી હતી, જેમ કે. એકોર્નના પ્રારંભિક નિવેદનો તે યુગના અન્ય મૂળભૂત નિવેદનો જેવા જ હતા, અને મોટાભાગના પ્રાથમિક નિવેદનોને ટેકો આપ્યો હતો. ત્યાં સંખ્યાબંધ સામાન્ય નિવેદનો છે જે ખૂટે છે, ખાસ કરીને પ્રોગ્રામમાં માહિતી સંગ્રહિત કરવા માટે, ગણતરી કરેલી શાખાઓ અને વપરાશકર્તા-નિર્ધારિત કાર્યો માટે વપરાય છે. આ મૂળભૂત બાબતોમાં, એકોર્ન નીચે-ચકાસાયેલ, અભિવ્યક્તિ-આધારિત લૂપ્સના નિર્માણ માટે ઉમેરવામાં આવ્યું હતું. એફઓઆર લૂપ્સ તેમના અનુક્રમણિકા ચલ અને સ્થિર મૂલ્ય વચ્ચેની સીધી સરખામણીનો ઉપયોગ કરીને ખૂબ જ ઑપ્ટિમાઇઝ થાય છે જે લૂપમાં પ્રવેશ પર માત્ર એક જ વાર સેટ કરવામાં આવે છે. અન્ય ઓપ્ટિમાઇઝેશન એ છે કે FOR નું સરનામું સંગ્રહિત છે, લાઇન નંબર નહીં, તેથી જ્યારે મેળ ખાતો NEXT આવે ત્યારે પ્રોગ્રામ તરત જ FOR પર પાછા શાખા કરી શકે છે. જ્યારે FOR ઘણા લૂપ્સ માટે યોગ્ય છે, જ્યારે વધુ નિયંત્રણની જરૂર હોય છે, ઉદાહરણ તરીકે વધુ જટિલ માપદંડ સાથે સરખામણી કરતી વખતે, IF સ્ટેટમેન્ટનો ઉપયોગ કરી શકાય છેઃ 500 A = A + 1 510 REM વધારાના સ્ટેટમેન્ટ અહીં 600 IF A> 10 અને B> 100 TEN 500 લૂપની આ શૈલીની નકારાત્મકતા એ છે કે શાખાને પ્રોગ્રામને લાઇન 500 માટે શોધવાની જરૂર છે, જે સામાન્ય રીતે લૂપમાં ઘણી વખત થાય છે. મોટા કાર્યક્રમોમાં, આ નોંધપાત્ર ઓવરહેડ રજૂ કરી શકે છે. આ હેતુ માટે ડી. ઓ. નો ઉપયોગ ઉચ્ચ પ્રદર્શન પ્રદાન કરે છેઃ 500 ડી. ઓ. એ. = એ + 1 510 આર. ઈ. એમ. વધારાના નિવેદનો અહીં 600 યુ. એન. ટી. એલ. એ> 10 અને બી> 100 આ કિસ્સામાં, એફ. ઓ. આર. લૂપની જેમ, જ્યારે લૂપ દાખલ કરવામાં આવે ત્યારે ડી. ઓ. નું સરનામું સંગ્રહિત થાય છે, જે યુ. એન. ટી. એલ. ને પ્રોગ્રામ દ્વારા સ્કેન કર્યા વિના તરત જ લૂપની ટોચ પર પાછા ફરવાની મંજૂરી આપે છે. ખાસ કેસની નોંધ લો કે અર્ધવિરામ વિભાજકની જરૂર વગર ડી. ઓ. ને સીધા અન્ય નિવેદન દ્વારા અનુસરી શકાય છે-તે તેનો ભાગ નથી, તે એક અલગ નિવેદન છે. વધુ નાના ઉમેરાઓમાં નિવેદન છે, જે દરેક સેકન્ડમાં આગામી ઘડિયાળની ટિક સુધી અમલને અટકાવે છે. આ એક સંપૂર્ણ ટિકની રાહ જોતું નથી, ફક્ત આગામી ટિક સુધી, જે તરત જ થઈ શકે છે. મોટાભાગની બોલીઓમાં અથવા તેના એનાલોગ તરીકે મશીન લેંગ્વેજ રૂટિન કહેવાય છે. ગણિત, સંચાલકો અને કાર્યો એકોર્ને તમામ ગણિત માટે 32-બીટ હસ્તાક્ષરિત પૂર્ણાંકોનો ઉપયોગ કર્યો હતો, જેમાં કોઈ પ્રમાણભૂત ફ્લોટિંગ-પોઇન્ટ સપોર્ટ નહોતો. વિભાજનને નિયંત્રિત કરવા માટે, જે ઘણીવાર અપૂર્ણાંક ભાગ પરત કરે છે, તેમણે બાકીનો ભાગ પરત કરવા માટે સંચાલકને ઉમેર્યું. દાખલા તરીકે, 2 પરત કરશે, જ્યારે 1 પરત કરશે. ચલ નામોમાં માત્ર એક જ અક્ષર હોઈ શકે છે, A થી Z. બધા બે અક્ષરોના સંયોજનો એરે તરીકે આરક્ષિત છે, તેથી E એક જ મૂલ્ય હતું, જ્યારે EE એક એરે હતું. તમામ એરે માટે DIM સ્ટેટમેન્ટની જરૂર હતી, તે માઈક્રોસોફ્ટ બેઝિકની જેમ 10 નું પરિમાણ ધારણ કરતું ન હતું. રનટાઇમ સમયે, એરે પર કરવામાં આવતી એકમાત્ર તપાસ એ હતી કે જે અનુક્રમણિકા પસાર કરવામાં આવી રહી છે તે હકારાત્મક મૂલ્ય હતું, તેથી કોઈ પણ પરિમાણ કરતાં મોટા મૂલ્યો પસાર કરીને મેમરીમાં વાંચી શકે છે. તે બહુ-પરિમાણીય શ્રેણીઓને ટેકો આપતું ન હતું. મૂળભૂત ગણિતની કામગીરીનો સમાવેશ થાય છે. તે બિટવાઇઝ લોજિક ઓપરેટરોને પણ ટેકો આપે છે, જેનો ઉપયોગ અનુક્રમે AND, OR અને XOR માટે થાય છે. આ ઓપરેટરો સરખામણી કરે છે, તેથી 0 આપે છે. OR માટે કોલોનનો ઉપયોગ એ છે કે શા માટે નિવેદન વિભાજકને અર્ધવિરામનો ઉપયોગ કરવો પડ્યો. નોંધ લો કે આ IF સ્ટેટમેન્ટમાં જોવા મળતા લોજિકલ જોડાણોથી અલગ છે, જેમ કે, જે સપોર્ટેડ પણ છે. ત્યાં માત્ર બે ગણિત કાર્યો હતા, અને. એબીએસ અન્ય બેઝિકની જેમ કામ કરે છે, જે આપેલ ઇનપુટનું સંપૂર્ણ મૂલ્ય પરત કરે છે. આર. એન. ડી. નથી, તે-વે અને + વે મહત્તમ પૂર્ણાંક મૂલ્યો વચ્ચેનું મૂલ્ય આપે છે. 0 અને આપેલ હકારાત્મક મૂલ્ય વચ્ચેની કિંમત પરત કરવા માટે પરંપરાગત સ્વરૂપમાં આનો ઉપયોગ કરવા માટે, ઉદાહરણ તરીકે 0 અને 10 ની વચ્ચે, એક વપરાય છે. આ યુગના મોટાભાગના મૂળભૂત વિષયોએ મશીનની ચોક્કસ કાર્યક્ષમતાને ઍક્સેસ કરવા માટે પી. ઈ. કે. અને પી. ઓ. કે. ઈ. નો ઉપયોગ કર્યો હતો જે ભાષામાં જ બાંધવામાં આવી ન હતી. એકોર્ન પાસે PEEK અને POKE નહોતા, અને ઉપયોગમાં સરળ પ્રણાલીમાં આ કાર્યક્ષમતા પ્રદાન કરવા માટે નવા ઓપરેટર્સનો ઉપયોગ કર્યો હતો. ઓપરેટરો હતા અને, પહેલું સેટિંગ અથવા આપેલ સ્થાન પર બાઈટ પરત કરે છે, અને પછીનું સેટિંગ અથવા 4-બાઈટ "વર્ડ" પરત કરે છે. દાખલા તરીકે, મોટાભાગની બોલીઓમાં પી. ઈ. કે. ના સામાન્ય ઉદાહરણો, જેમ કે, સાથે પરિપૂર્ણ કરી શકાય છે. મોટાભાગની બોલીઓમાં! ની સમકક્ષતાનો અભાવ હતો. વધુમાં, સમાન વાક્યરચનાનો ઉપયોગ મેમરીમાં મૂલ્ય સેટ કરવા માટે થઈ શકે છે, જેમ કે ઉદાહરણ તરીકે, પી. ઓ. કે. ઇ. મેમરીમાં સતત સ્વરૂપમાં ગોઠવાયેલા ડેટાને ઍક્સેસ કરવામાં મદદ કરવા માટે, જેમ કે સંખ્યાઓના એરે, ઓપરેટરોને ચલની જમણી બાજુએ લાગુ કરી શકાય છે. જ્યારે આ રીતે ઉપયોગ કરવામાં આવે છે, જેમ કે, સિસ્ટમ મેમરીમાં ચલના સ્થાન પર મેમરીને એક્સેસ કરે છે. ઓપરેટરને અનુસરતા કોઈપણ નંબરને ઓફસેટ તરીકે લાગુ કરવામાં આવ્યો હતો, તેથી દાખલા તરીકે, મેમરીમાં A ના સ્થાન પછી 100 સ્થાનોની કિંમત પરત કરશે. આનો ઉપયોગ ઘણીવાર અન્ય એકોર્ન-માત્ર ખ્યાલ, "વેક્ટર" સાથે થતો હતો. ગૂંચવણભરી રીતે, આ એરે તરીકે સમાન DIM આદેશોનો ઉપયોગ કરીને બનાવવામાં આવ્યા હતા, પરંતુ એક-અક્ષર ચલ પર લાગુ કરવામાં આવ્યા હતા. જ્યારે ડીઆઈએમનો સામનો કરવામાં આવ્યો ત્યારે સિસ્ટમ મેમરીની ટોચ પર ઘણા સ્થાનોને અલગ રાખશે, અને પછી મેમરી પોઇન્ટરને ઉપર ખસેડશે. આ મેમરીનો એક બ્લોક છોડી ગયો હતો જેને પછી ઇન્ડાયરેક્શન ઓપરેટરો સાથે એક્સેસ કરી શકાય છે. દાખલા તરીકેઃ 10 DIM A (100) 20 PRINT A? 10 જે A માં 11મા સ્થાન પર બાઈટ મૂલ્ય છાપશે (તમામ પ્રવેશો શૂન્ય-અનુક્રમિત છે). તેવી જ રીતે, ચલ નામ પહેલાં લાગુ કરાયેલ સમાન ઓપરેટરનો ઉપયોગ કરીને મેમરીમાં મૂલ્યો સંગ્રહિત કરી શકાય છેઃ! A = 123456 આ ASCII માંથી દશાંશ મૂલ્ય 123456 ને પૂર્ણાંકમાં રૂપાંતરિત કરશે અને તેને A માટે આધાર સ્થાનથી શરૂ થતા મેમરી સ્થાનોમાં સંગ્રહિત કરશે. વેક્ટર સાથે કામગીરીમાં મદદ કરવા માટે, એકોર્ને સ્યુડો-વેરિયેબલ ઉમેર્યું. જ્યારે સિસ્ટમ પ્રથમ શરૂ થઈ, ત્યારે તે પ્રોગ્રામના અંત પછીના પ્રથમ સ્થાન તરફ નિર્દેશ કરે છે. કોઈપણ ડીઆઈએમ પછી ટોપના વર્તમાન મૂલ્ય પર બનાવવામાં આવ્યા હતા, અને પછી ટોપને નવા ઓબ્જેક્ટના અંતમાં અપડેટ કરવામાં આવ્યું હતું. ટોચની સીધી હેરફેર કરીને ગતિશીલ વેક્ટર બનાવવાનું શક્ય હતું. સ્ટ્રિંગ્સ એટમ બેઝિકે સ્ટ્રિંગ સપોર્ટ ઉમેર્યો હતો પરંતુ તે સ્ટ્રિંગ વેરિયેબલ્સને સપોર્ટ કરતો ન હતો અને ન તો તેમાં અણુ પ્રકાર તરીકે સ્ટ્રિંગનો ખ્યાલ હતો. તેના બદલે, વેક્ટર સિસ્ટમનો ઉપયોગ મેમરીમાં સ્ટ્રિંગ ડેટાને ASCII મૂલ્યો તરીકે હેરફેર કરવા માટે કરવામાં આવ્યો હતો. આ ઉપયોગને મદદ કરવા માટે, ઓપરેટરે ઇન-મેમરી મૂલ્યોને તેમના ASCII મૂલ્યોમાં રૂપાંતરિત કર્યા. આ ઓપરેટરે પરત ન આવે ત્યાં સુધી મેમરીમાંથી ડેટા વાંચવાનું ચાલુ રાખ્યું, અને મેમરીમાં ડેટા લખતી વખતે, હંમેશા અંતે વળતર ઉમેર્યું. તેથી જ્યારે સંખ્યા તરીકે મેમરીમાં A ના સ્થાન પર બાઇટનું એક મૂલ્ય છાપશે, તે સ્થાનથી શરૂ થતા મૂલ્યોને વાંચશે અને તેને સ્ટ્રિંગ તરીકે છાપશે. દાખલા તરીકેઃ 10 ડિમ એ (12) એ = "હેલો, વર્લ્ડ" 30 પ્રિન્ટ $એ આ કોડ અન્ય બોલીઓમાં શબ્દમાળાઓના ઉપયોગ સાથે ખૂબ સમાન દેખાઈ શકે છે, જો કે ચલ નામના સંબંધમાં $નું સ્થાન બદલાય છે. તે ખાસ કરીને તે બોલીઓ જેવી જ છે જેમાં એચપી ટાઇમ-શેર્ડ બેઝિક અથવા અટારી બેઝિક જેવી તમામ શબ્દમાળાઓ પર ડીઆઈએમની જરૂર પડે છે. આંતરિક રીતે, ઓપરેશન ખૂબ જ અલગ છે. તે બોલીઓમાં, એ અને એ $બે અલગ અલગ ચલ છે અને $, અસરકારક રીતે, નામનો એક ભાગ છે. એકોર્ન, A અને $A માં તેઓ સમાન ચલ છે, અને $તે ચલ પર એક સમાન કામગીરી લાગુ કરી રહ્યું છે. આનો અર્થ એ પણ છે કે સ્ટ્રિંગ્સ માટે એરેનો ઉપયોગ કરી શકાય છે, જેમ કે, જે એએ (10) માં મૂલ્યને સ્ટ્રિંગમાં રૂપાંતરિત કરે છે. આ ખ્યાલ વેક્ટર નોટેશનનો ઉપયોગ કરીને વ્યક્તિગત અક્ષરોને ઍક્સેસ કરવાની મંજૂરી આપે છે. દાખલા તરીકે, 5મા અક્ષરનું ASCII મૂલ્ય પરત કરશે, આ કિસ્સામાં O માટે 79, જ્યારે આઉટપુટ "O" હશે. એક જ ઓપરેશનમાં સબસ્ટ્રિંગ કાઢવાની કોઈ રીત નથી, વ્યક્તિએ અક્ષરો પર લૂપ કરવું પડે છે અને તેમને એક પછી એક ખસેડવું પડે છે. એક ચલને બીજાના અંતમાં સોંપીને જોડાણ શક્ય છે, ઉદાહરણ તરીકે, સ્ટ્રિંગ B ને A ના અંતમાં નકલ કરો. ભાષામાં માત્ર બે શબ્દમાળા કાર્યો છે, જે પાછળના વળતર અક્ષરને જુએ છે અને લંબાઈને પરત કરે છે, અને અક્ષરનું ASCII મૂલ્ય પરત કરે છે. સીએચમાં પેરેન્ટ્સ વિના વિચિત્ર ફોર્મેટ છે, તેથી તે 65 પરત કરશે. તે અન્યથા અન્ય બોલીઓમાં જોવા મળતી વધુ સામાન્ય ભાષા જેવી જ છે. અન્ય એક નવો ઓપરેટર હતો, જેણે આંકડાકીય મૂલ્યને હેક્સાડેસિમલ સ્ટ્રિંગમાં રૂપાંતરિત કર્યું હતું. $ની જેમ, આનો ઉપયોગ રૂપાંતરણ કરવા માટે ગમે ત્યાં થઈ શકે છે. દાખલા તરીકે, A નું મૂલ્ય દશાંશ મૂલ્ય 16384 પર સુયોજિત કરે છે, જે સ્ક્રીન મેમરીનું સ્થાન છે. આને ઘણીવાર $ઓપરેટર સાથે જોડવામાં આવતું હતું જેથી શબ્દમાળાઓ "કર્સર અપ" અક્ષર જેવા છાપી ન શકાય તેવા અક્ષરો સમાવી શકે. વધારાના 4 KB ROM વિસ્તરણ સાથે ફ્લોટિંગ પોઇન્ટ ફ્લોટિંગ-પોઇન્ટ સપોર્ટ ઉમેરી શકાય છે. આમાં વિસ્તૃત 40-બીટ શબ્દ કદ, હસ્તાક્ષરિત મેન્ટિસાના 32 બિટ્સ અને ત્યારબાદ 8-બીટ એક્સ્પોનન્ટનો ઉપયોગ કરવામાં આવ્યો હતો. આનો અર્થ એ થયો કે સિસ્ટમને મેમરીમાંથી માહિતીને વાંચતી અને લખતી વખતે અલગ પાડવા માટે કોઈ રીતની જરૂર હતી, જે સ્ટ્રિંગ ઓપરેટર જેવી જ રીતે હાથ ધરવામાં આવી હતી, જેમાં ઉપસર્ગનો ઉપયોગ કરવામાં આવ્યો હતોઃ% A = 123.45 કારણ કે કોડ અલગ 4 KB ROMમાં સમાયેલો હતો, તેણે PRINT જેવા હાલના નિવેદનોમાં ફેરફાર કર્યો ન હતો. તેના બદલે, નિવેદનોનો એક સંપૂર્ણપણે નવો સમૂહ રજૂ કરવામાં આવ્યો હતો, જેમાં સમાવેશ થાય છે. આનો અર્થ એ છે કે, દાખલા તરીકે, જો મૂલ્યો ફ્લોટિંગ પોઇન્ટ હોય, તો તેના બદલે કોઈએ ન કરવું જોઈએ. પૂર્ણાંક મૂલ્યને ફ્લોટ ઓપરેટર,% નો ઉપયોગ કરીને ફ્લોટમાં રૂપાંતરિત કરી શકાય છે, અને પૂર્ણાંકમાં ફ્લોટ કરી શકાય છે. રોમમાં ગણિતના કાર્યોની ઘણી મોટી વિવિધતા પણ સામેલ હતી, જેમાં સમાવેશ થાય છે. ફ્લોટિંગ-પોઇન્ટ નંબરને સ્ટ્રિંગમાં રૂપાંતરિત કર્યો, જેમ કે અન્ય બોલીઓમાં થયું હતું, પરંતુ આ કિસ્સામાં, સ્ટ્રિંગને મેમરીમાં લખવામાં આવી હતી અને ફંક્શન તે સરનામું પરત કરે છે જ્યાં તેને સંગ્રહિત કરવામાં આવ્યું હતું. કારણ કે દોરીને પકડી રાખવા માટે પૂરતા લાંબા સમય સુધી સંગ્રહની જરૂર હતી, આ ઘણીવાર ટોપનો ઉપયોગ કરીને પૂર્ણ કરવામાં આવતું હતું. દાખલા તરીકેઃ STR PI, TOP PRINT $TOP TOP = TOP-LEN (TOP) આ સ્યુડો-વેરિયેબલ PI ના મૂલ્યને મેમરી સ્થાન TOP થી શરૂ થતી સ્ટ્રિંગમાં રૂપાંતરિત કરે છે, $TOP નો ઉપયોગ કરીને સ્ટ્રિંગને પ્રિન્ટ કરે છે, અને પછી તે મેમરીને છોડી દે છે. ઇનપુટ/આઉટપુટ અને મોટાભાગે અન્ય બોલીઓની જેમ કામ કરે છે. એક વિચિત્રતા આવી કારણ કે કોલોન અને અર્ધવિરામ પહેલેથી જ અન્ય હેતુઓ માટે ઉપયોગમાં લેવાતા હતા, માત્ર અલ્પવિરામને અલગ ક્ષેત્રો માટે છોડી દીધું હતું. તેમની વચ્ચે કોઈ જગ્યા ન હોય તેવા મૂલ્યોને છાપવા માટે, મૂલ્યોને તેમની વચ્ચે જગ્યા અક્ષર સાથે સૂચિબદ્ધ કરવામાં આવ્યા હતા, જેમ કે, એક બંધારણ કે જે ભાગ્યે જ ઉપયોગમાં લેવાતી હોવા છતાં અન્ય ઘણી બોલીઓ પર પણ મંજૂરી આપવામાં આવી હતી. આ એકલા સંખ્યાઓને કોમ્પેક્ટ ફોર્મેટમાં છાપવાનું કારણ નહીં બને, કારણ કે તેઓ સામાન્ય રીતે દરેકને 8 અક્ષરો પહોળા બનાવવા માટે જમણી બાજુએ જગ્યાઓ સાથે છાપવામાં આવે છે. એક જ અવતરણ સાથે એક નવી પંક્તિ છાપવામાં આવી હતી. કર્સર કૉલમ પરત કરે છે, જે મોટાભાગની બોલીઓમાં જેવું જ છે. અણુ માટેનું મૂળભૂત સંગ્રહ ઉપકરણ કોમ્પેક્ટ કેસેટ સિસ્ટમ હતું. દરેક ફાઇલ બ્લોકની શ્રેણી તરીકે સંગ્રહિત કરવામાં આવી હતી, જેમાંના દરેકમાં ફાઇલના નામ સાથે હેડર હતું. સાથે સંગ્રહિત ફાઇલોને સાથે વાંચી શકાય છે, જ્યારે કેસેટ પર ફાઇલોના નામ સૂચિબદ્ધ કરે છે કારણ કે તે તેમના હેડરની પાછળ વાંચે છે. મનસ્વી માહિતીનો ઉપયોગ કરીને અથવા તેની સાથે લખીને વાંચવા માટે ખોલી શકાય છે, જે બંને આંકડાકીય ફાઇલ હેન્ડલ પરત કરે છે. ફાઇલો સાથે બંધ કરવામાં આવી હતી. માહિતીને આંકડાકીય સ્વરૂપમાં વાંચી અથવા લખવામાં આવી હતી, એક જ બાઇટ્સ તરીકે અને શબ્દમાળાઓ તરીકે ઉપયોગમાં લેવાતી હતી. ફાઇલની લંબાઈ પરત કરે છે, જ્યારે ફાઇલમાં વર્તમાન નિર્દેશક પરત કરે છે અથવા સેટ કરે છે, ત્યારે અત્યાર સુધી વાંચેલા અથવા લખેલા બાઇટ્સની સંખ્યા. જો ફ્લોટિંગ-પોઇન્ટ ROM હાજર હોય, તો તે ઉમેરવામાં આવ્યું હતું. દાખલા તરીકેઃ એ = એફઓયુટી "એએફઆઇએલઇ" બી. પી. યુ. ટી. એ, 88; રાહ જુઓ; રાહ જુઓ; રાહ જુઓ; જ્યાં સુધી વપરાશકર્તા પ્રોગ્રામને રોકવા માટે દબાવતો નથી ત્યાં સુધી 0 નો ઉપયોગ બાઇટ્સની શ્રેણી, 88 લખવા માટે કરશે. પછી તેમને (જાતે ટેપને રિવાઇન્ડ કર્યા પછી) આનો ઉપયોગ કરીને વાંચી શકાય છેઃ A = FIN "AFILE" ડુ પ્રિન્ટ $BGET A; 0 સુધી ડોલરનું ચિહ્ન સિસ્ટમને આવતા દ્વિસંગી ડેટાને સ્ટ્રિંગ ફોર્મેટમાં રૂપાંતરિત કરવા માટે કહે છે, તેથી આ કિસ્સામાં, આઉટપુટ X ની શ્રેણી હશે, 88 ની નહીં. એવું લાગે છે કે BGET ને બદલે SGET નો ઉપયોગ કરી શકાય છે, પરંતુ આ ફાઇલમાંથી ત્યાં સુધી વાંચવાનું ચાલુ રાખવાનો પ્રયાસ કરશે જ્યાં સુધી તે વળતર અક્ષર ન જુએ, જે આ ઉદાહરણમાં લખવામાં આવ્યું ન હતું. ગ્રાફિક્સ સપોર્ટ ધ એટમમાં પ્રાથમિક બિટમેપ ગ્રાફિક્સ હતા અને એટમ બેઝિકે તેને ટેકો આપવા માટે સંખ્યાબંધ આદેશો ઉમેર્યા હતા. સ્ક્રીનને સાફ કરી, ગ્રાફિકલ કર્સરને આપેલ X, Y સ્થાન પર ખસેડ્યું અને વર્તમાન સ્થાનથી પ્રદાન કરેલા X, Y પર એક રેખા દોરી. ફ્લોટિંગ-પોઇન્ટ રૉમમાં સ્ટેટમેન્ટના ઉમેરા સાથે કલર ગ્રાફિક્સ માટે સપોર્ટ પણ સામેલ હતો. કલરને 0 થી 3 પરિમાણ સાથે કૉલ કરીને, તે પછીના આઉટપુટને તે રંગ પર સેટ કરે છે. કાળા અને સફેદ ડિસ્પ્લે પર, રંગો ગ્રે રંગના શેડ્સ તરીકે દર્શાવવામાં આવ્યા હતા. નોંધો સંદર્ભો સંદર્ભો ગ્રંથસૂચિ એકોર્ન કોમ્પ્યુટર્સ બેઝિક દુભાષિયા બેઝિક પ્રોગ્રામિંગ લેંગ્વેજ ફેમિલી