From 43cc0db7220d02c0895444824032b42ac0f08951 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Thu, 24 Oct 2019 19:19:57 -0400 Subject: [PATCH] Beginnings of a working CCP --- SOFTCARD65#ff2000 | Bin 486 -> 446 bytes SOFTCARD65.S#040000 | 2 +- SOFTCARD80.ASM#040000 | 69 +++++++++++++++++++++++++++++++++++++----- SOFTCARD80.BIN#041000 | Bin 43011 -> 43011 bytes zapple2.po | Bin 819200 -> 819200 bytes 5 files changed, 62 insertions(+), 9 deletions(-) diff --git a/SOFTCARD65#ff2000 b/SOFTCARD65#ff2000 index 5f0dce8e3057bf679363102b787cd2dcaa8abed3..5f676fe4a2da7292accb5e25fa995742312e2b68 100644 GIT binary patch delta 330 zcmaFHypMT;c75-KCq4{26cTr=WLU&7H)8*b2cj2#C@}8)z^QQSuR_5NAO9U|d3W|I z?^KY6igkg-Gg~M?8=`onaS*o;q@Fl6PP#eVA#!| zz_9;>D3Egq$~mR9Gl7NSFaQ7l3?R8vh9EA3Ae4K?VP^s(!&0`B3>R24GJxJY$#_9x z>01wtrR>W%mT)R`?QCUl<7naJ$Y_0=aFXc)8(1XaB=ZG+9fku2tScFOns=^bY~^H6 MP`LY>A?Gy%0KKY?jsO4v delta 369 zcmdnT{ET^mcKy~1Pkb15D0J>v$*_oFZp8i<4@58gP|)1@fm7kuUxgVve9CvMHQm|k zy;H#%Dz*tM7Pu2Azcv6wD)jwTNZhG#aEF2!iZ-X6y-_ACpKu5K4v~Y4{w7yL^$#j7YERt}N f`2xQV!vO=$' + ; Load and run a .COM file to 0100H ; DE is the address of the FCB describing the file to run RUNCOM CALL F_OPEN ; @@ -1878,23 +1915,39 @@ RUNCOM CALL F_OPEN ; LD HL,0100H ; Set DMAADDR to 0100H LD (DMAADDR),HL ; ... RCL1 CALL F_READ ; Read records until done - CP 0 ; ... - JP Z,RCL1 ; ... + PUSH AF ; Preserve A + LD HL,(DMAADDR) ; Advance DMAADDR for each record + LD BC,80H ; ... + ADD HL,BC ; ... + LD (DMAADDR),HL ; ... + POP AF ; Restore A + CP 0 ; Check return code from F_READ + JP Z,RCL1 ; If zero, keep looping + CP 1 ; Check return code from F_READ + JP NZ,RCLERR ; If not EOF (1), then error POP HL ; Restore DMAADDR LD (DMAADDR),HL ; ... - CP 1 ; Check it was EOF - JP NZ,RCLERR ; Load error - JP PROGSTRT ; 0100H - RET + LD DE,LMSG ; Print 'Loaded' + CALL C_WRITESTR ; ... + CALL PROGSTRT ; 0100H + RET ; RCOERR LD DE,OEMSG ; 'Open error' message CALL C_WRITESTR ; RET RCLERR LD DE,REMSG ; 'Read error' message CALL C_WRITESTR ; + POP HL ; Restore DMAADDR + LD (DMAADDR),HL ; ... RET -OEMSG DEFM 'Not found',13,'$' -REMSG DEFM 'Read error',13,'$' +LMSG DEFM 'Loaded' + DEFB 13,'$' + +OEMSG DEFM 'Not found' + DEFB 13,'$' + +REMSG DEFM 'Read error' + DEFB 13,'$' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Additional private scratch space for BDOS diff --git a/SOFTCARD80.BIN#041000 b/SOFTCARD80.BIN#041000 index f6003ed903f29ace24d52153f247afa71e26655b..2601c0f5c6d81f20e7d83de61d49d78cc43f2f1e 100644 GIT binary patch delta 1393 zcmbW1Z)h839LJx#BrTQZ+Gn$IZMrSjrrnz1bl26&bq1P&FLWr(&6PRXb+&u6t|@gR z%CO0t!tRo5?&&iah)COjB4X<-NMHD8Z7P`PGpp#!fP=|Eh_o*z_@b%5=k7{m_LYR( z@B93IpXc|FORlYo*H*>Pyu$8N9;uG`5bLsP`UfQOThL41=;_7cULo(NdxW==V-A7O zASuAfdJi_dQVU3IRYOf~2&n%f=c}0--ApND7fIrkY79fHf{HyN{?n6xTEzF=(BG~d zL6VCM*vLgO>Q^!-8dgk%uOfTY{J3aa4Db#o-@7*a-nMYkp`!zl07|sO2Zy}QeHgXD z?X{=sdem{1UkNzn@HV5pT*Y@fxFmo*D~a&TS46dT4W{h%Jiu>yRra{P9`8iBi?Vtv zx*5j@D7f(3UU=r8@!%0I%CEPgNUIBR6o~5!$31iJG#}c$Ij?w-;zdddDIHYlq{=?3 z?57K@*W-eClu%P|7jpELzU!%GA~z6r%dDVfWT-*1k&u)TA`fw2WR$RCb|cX+zmW*3 zdypKaHR#1Upy;OF6pRsBb*~;V)EHq?*~(_|hyfUV!f0t8BY2E3ufd<6=$_b)`NogWfdbXbVthSS6UO7eN zV}!05ExrySw-VZrR(Ao`y)8DFZt)!^@&Q6q>7H7r6r*3Jg8^HYFS zi$7>N9fG|`nQq|*jb)zXnW2GExpcmbt!4k!fRWj1;Nwhh-w07O!n^HuH}~+B$VF0q z{v`RR9Q(P+EFT>t@&Ml)A0=pR^{ASM{eQWOFwBULEL<`73Ok*)w*p^HLV$ic8R;D( zu*$XoVs{K!Y%mLJmggRJ9K7)#Ldxoob_if47Jrvg zDEh_@)~Cad;CJ~9f;93~RD)RGlE3m#vDhoU`m4bG#5kLIHolRRJ%7N$NaSI2Ioq8Xoe8Ux;4{osVB01$lgU za40l9J{}+UhePO_+rLa}wYk|mLP&rw0@u?0X-&w@f?8gm*2LWGJ+4Max13(qqXEZPPV<{*2z2cnR;}88an!szY=Uj2;r5Q~GmOEF^R`pL878=RT Fz(323liH;FU{V{@)U>u;h+x{Hn_?|Z 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 delta 2131 zcmbVNZA?>F7(Vy5x4mtl^p;u_P)}vSg+z2!bSVZE5hR;n03&m5Ql%;rsJ7MWjL;Bh_(p{u!u(;F|)CjsDoz zlBiOWRZ788rLgl+B@CWi6D-qjT5f>Z(5g2>i%D-@T~fXZmKn;7rcKE($6zRi79%tn zEC#bBIWiR%_D@$`CuPFi8!p3HZf~6^8Qhs8Qiw zwIeQ7$kqS8I#iB%&1m@}^ym;>PGGxCPU5@eDX9|=;3=mG9y1$+v;C8*?;8^V<9GWb z*tCF=X?J56Qz^uEi%!6l@Sxuu50c`;B%X>HpYeg#NK`(BQgiF#M9z)dhdd%~$Rk!g zlC`?EKDYLwTifR5;&;$Sg1o~bM>U;5WTC^=^yuj)Sxpn`KkOI=XMkOIiXF1bwF;Mp zc41$V(&hI#hpbVDhOAIG4rng8MIcv#Stw9VkBaMKHP^$rGwr%Q*6(%>2YfT_n1?3Y z>DVzU7o&3dg?9cvQ0;H8!&NrhHJxs>+)nFAY8_A#pRn2sYu0XZ2nr0S7)zG@pn0WQIM12h={={n9 zS!AoBQ^cWi>(GfBI!+yY=+^9TFJD6_fTZ99zLh%EUqeH@B6%%6m3SMa*V0pXecVX7 zrhDZC|A6yfjo52nG_t>zo{_3>X@xGn@2hNRk1r=BF|Pi12HCy+>7An-{c|ao<{3Xb zKUAFKMXx#sJuULf@KWrKr2QZkDRQ-5p=MQPMV=|;nhx11OFvEUUZxj zuU(VpdCAfFvLg@4opg0ftNWPmh*Rgo=9p7=5u5Lwx;8iZ#z|LH`WvdT;zAaGIeImK zcrNKnWqU9lCeAEoTL96@e8}>jMP^md