ուրեմն, փորձում էի «բարեւ աշխարհ» գրել oric atmos֊ի համար հէնց cc65֊ով։
նախ մտածեցի՝ պէտք ա գտնել իրա մինիմալ օհ֊ի ֆունկցիաների ցանկը։ ես այն ունէի pravetz-8d ֊ի հետ եկած, մատրիցային տպիչով արուած գրքի մէջ։
դա, ի դէպ խօսում ա բուլղարական արտադրութեան բարձր որակի մասին՝ սովէտական «միկրոշայի» ձեռնարկը պատճէն էր (քսէրոքս)՝ գրամեքենայով հաւաքուած տեքստի եւ այդ նոյն էջերում ձեռագիր տեքստի։
ֆունկցիաների ցանկը գտայ այստեղ։ iss֊ը լաւ մեկնաբանել ա յիշողութեան դամփը, եւ աւելացրել ա յղումներ — շատ լաւ գործ ա արել։
էստեղ գտայ ping ֊ի հասցէն, նախ դա արեցի։ տող տպելը չկարողացայ։
յետոյ այս գիրքն էի կարդում։ ու նա էնտեղ նկարագրում ա ինչպէս տպել տող՝ նիշ առ նիշ, զի տող տպելու հատուկ ֆունկցիա չկայ։
մի քիչ փոխեցի իր կոդը, էսպիսի տեսք ունեցաւ իմը՝
.segment "DATA"
msg: .asciiz "Hello world!"
.segment "STARTUP"
.segment "INIT"
.segment "ONCE"
.segment "CODE"
.export _main
_main:
output:
ldy 0
next:
ldx msg, y ; load a character to x from msg+y address
txa
cmp 0
beq outend
jsr $F77C ; print a character
iny
jmp next
outend:
rts
; jsr $FA9F ; ping
; rts
շինում եմ էսպէս՝
ca65 -o test.o test.s
cl65 -t atmos -o test.tap test.o
ու ստացուե՛ց՝
իրականում ահագին տառապեցի սրա համար, երկրորդ օրն ա ինչ փորձեր էի անում։
ու տէնց։
#էկրանահան #ասմ #մեքենայական_կոդ #cc65 #oric #oric_atmos #atmos #pravetz #pravetz-8d #ասեմբլեր #6502 #բարեւ_աշխարհ #oricutron #գիրք #ծրագրաւորում
բացայայտել եմ այսպիսի հաւէս պրոցեսոր՝ http://www.apollo-core.com/index.htm?page=features
հետաքրքիր ա, որ «սելֆ մոդիֆայինգ» (ինքն իրան փոխող) կոդի հնարաւորութիւնը կար միայն օրիգինալ 68000֊ների վրայ, եւ հետագայում հեռացուել ա, 68020֊ից սկսած։
ենթադրում եմ, որ դա «ֆիչըր» չէր, իսկ «ֆիչըրը»՝ երկաթէ ապահովութիւնն էր, որ հետագայում աւելացուեց որ ինքն իրեն փոխող կոդ գրել հնարաւոր չլինի։
իսկ այսօր հնարաւորութիւնը վերադարձել ա ինչպէս «ֆիչըր»՝ զի այն ինչ նախկինում պէտք էր գոյատեւելու համար, այսօր մենք անում ենք հաւէսի համար։
#ապոլլօ #68կ #մոտորոլա #ամիգա #աթարի #ատարի #ասմ #ասեմբլեր #մեքենայական_կոդ #68000 #68020 #68080 #էկրանահան #ռետրո #ռետրօ #ռետրոհամակարգչութիւն #համակարգիչ #կարգիչ